2021

Details about the releases of Snowflake SnowConvert for Teradata during 2021.

Release 2.0.23 - December 21st, 2021

Updated Conversion Core 3.2.13

Fixed

  • The default value in a column gives a parsing error

  • Removed the unused options avoidTruncatedDataInCast, warnIfCastMightTruncateData and useLeftFunctionInTruncatedCast

  • Fix multiple EWIs not appearing in the assessment reports

  • INTERVAL not recognized in addition and subtraction of Datetime values

  • STRTOK_SPLIT_TO_TABLE not being transformed

Added

  • Support REGEXP_REPLACE, REGEXP_SUBSTR, REGEXP_INSTR functions with COLLATE arguments

  • Conversion of NEW ST_GEOMETRY

Release 2.0.22 - December 7th, 2021

Updated Conversion Core 3.1.43

Fixed

  • Update conversion for NULLIFZERO function

  • Not recognizing unsupported INTERVAL type

Added

  • ET or END TRANSACTION is now supported when used in SQL files

Release 2.0.21 - November 22nd, 2021

Updated Conversion Core 3.1.24

Fixed

  • UDF helpers are hardcoded to use PUBLIC schema

  • Extend MSCEWI2015 description. Deprecate MSCEWI2046

  • T12 scripts parsing error when a $variable is used as a statement

  • T12 scripts parsing error related with $variable in LOGTABLE and BEGIN IMPORT statements

  • Empty file migration is incorrect

  • Function CHAR_LENGTH is not translated

Added

  • General improvements to casts to string for both ANSI and Teradata syntaxes

  • Support Default Period Constructor transformation

Release 2.0.20 - November 8th, 2021

Updated Conversion Core 3.1.21

Fixed

  • Fix SQL Statements parsing recovery in T12 scripts

  • Cursor with locking statement is not parsed

  • Some comments are missing in the Stored Procedures Header

  • Some MACROS are not identified in assessment reports

Added

  • Extended support for TO_CHAR function migration for both datetime and numeric types

  • Improvements to preprocessing scripts, more info here

  • Generation of HTML assessment report

Release 2.0.19 - October 25th, 2021

Updated Conversion Core 3.1.10

Fixed

  • Bug in NOT LIKE ALL syntax transformation

  • Literals in VIEW columns require an alias

  • Missing statement in generated code

Added

  • Python helpers technical documentation website

  • Python helpers logging improvements described here

  • Authenticator parameter in python helpers connection method

  • Support for special Teradata MERGE syntax

  • Parsing support for SEQUENCED and NONSEQUENCED VALIDTIME clauses

Release 2.0.18 - October 11th, 2021

Updated Conversion Core 3.1.9

Fixed

  • Parenthesis in a CURSOR FOR causes code to be commented out.

  • Issues in INSERT clause using MERGE statement.

  • License file not saved in temp location when SnowConvert is executed with a root user.

  • Parsing error for EXPAND ON statement.

Added

  • Improvement to generated Python code, adding indentation to Exec command arguments. An example is shown in the following image.

  • Changing argument's binding format in Procedures, from a question mark (?) to a numbered index (:1, :2). An example is shown in the following image.

  • Casting string nulls to varchar(1) in VIEWs definition.

  • Support for PERIOD and END functions along with a new warning for period-related types/functions

  • Minor UI updates (some colors changed, and buttons placement). New images are displayed in the Using SnowConvert section.

Release 2.0.17 - September 27th, 2021

Updated Conversion Core 3.1.6

Fixed

  • Incorrect migration forQUERY TAGstatements.

  • Stack overflow caused by VIEWs containing parameters with the same name as columns of the SELECT.

Added

  • Implicit conversions for numeric/dates parameters for several functions. More information can be found in the EWI that is generated for non-literal cases.

  • Support for file extensions.ddl and .dml, they are treated like any other.sqlfile, but the original extension is preserved.

  • Warning for possible compilation errors in Snowflake when using subqueries in OUTER JOIN statements. More info can be found on the EWI page.

  • New Logo for SnowConvert and minor UI update (some colors changed). New images are displayed in the Using SnowConvert section.

Release 2.0.16 - September 14th, 2021

Updated Conversion Core 3.1.3

Fixed

  • Transformation improvements for function STRTOK_SPLIT_TO_TABLE

  • Null pointer exception in Views and in SELECT with alias

  • Remove RANGE_N warning when is used within the PARTITION BY

  • Execute Immediate with concatenation is not working

  • Macro being translated as a procedure with double schema name

  • Parsing error: Last valid token was ''^''

  • Internet connection timeout taking up 2 minutes

Added

  • Add helpers region tags in macros translated to procedures.

  • TD_DAY_OF_MONTH function transformation

  • MCHARACTERS function transformation

  • Transformation for BYTES/BYTE function and hexadecimal byte literals

Release 2.0.15 - September 1st, 2021

Updated Conversion Core 3.1.2

Fixed

  • Parsing recovery for fields with empty space in their name

  • Issue with results from subqueries in Stored Procedures

  • Exception thrown when converting names with a different encoding.

  • Unnecessary warning added when converting special character in identifiers

  • Fix for parsing error inconsistent count

  • Delete alias should not be qualified.

Added

  • Parsing recovery for .mload fields with empty space in their name.

  • STRTOK_SPLIT_TO_TABLE transformation improvement

  • Implicit conversion behavior of parameters for functions INDEX, POSITION

  • Improvements in procedure helpers and tablelist functionality

  • None Schema functionality

  • OTRANSLATE function transformation

Release 2.0.14 - August 18th, 2021

Fixed

  • The confirmation pop-up window for canceling the migration process is not displayed correctly.

Release 2.0.13 - August 16th, 2021

Updated Conversion Core 3.1.0

Fixed

  • Quotes in comments causing a compiler error

  • Missing statement in output code

Added

  • Support for STROK_SPLIT_TO_TABLE function

  • Support for TD_LEFT function

  • Support for TD_RIGHT function

Release 2.0.11 - August 4th, 2021

Updated Conversion Core 3.0.22

Fixed

  • Removed unnecessary assignment after EXEC in SP.

  • MDIFF function translating to missing UDF.

  • BTEQ Stub Generation for unsupported Statements

    • .LOGON

    • .SET WIDTH

    • .SET SEPARATOR

    • .SET NULL AS

    • .SET SIDETITLES

    • .LOGMECH

    • .SET RECORDMODE

  • BTEQ file execution transformation

  • INTERSECT ALL not supported

  • Fix Stack Overflow due to a circular reference when top-level objects invoke each other

  • NOTFOUND Helpers generated when are not required

Added

  • Udf Helper file reorganization

Release 2.0.10 - July 19th, 2021

Updated Conversion Core 3.0.20

Fixed

  • Unknown custom data type is causing to comment a lot of code

  • CAST NULL AS INT has unnecessary Truncate

  • Unexpected behavior when the input path is very long

  • Parsing issue with MERGEBLOCKRATIO with PERCENT

  • Cursor naming declaration and ACTIVITY_COUNT update inside cursor

  • NOWAIT statement that is part of the LOOKING is causing a parsing error

  • Trim leading being marked with Collation warning

  • MSC-ISSUE was renamed to MSC-ERROR in all the reports and output code

  • [Stored Procedures] Improved generation of MSC comments for better readability

  • [Stored Procedures] The INTO function overrides the values set by the ERRORHANDLERS function

  • [Stored Procedures] EXIT HANDLER doesn't work properly

Added

  • [Stored Procedures] Helpers Code Regions, and better code organization.

  • EWI about procedures with out (or inout) parameters

  • SHOW command support

  • Transformation for REGEXP_REPLACE, REGEXP_SUBSTR, REGEXP_INSTR.

Release 2.0.9 - July 7th, 2021

Updated Conversion Core 3.0.17

Fixed

  • LEAD cannot be used as a column identifier

  • Stored Procedures don't handle NOT FOUND exception properly

Added

  • Transformation for CREATE TABLE AS

  • Internet connection validation for telemetry

Release 2.0.8 - July 6th, 2021

Updated Conversion Core 3.0.15

Fixed

  • JIS_COLL parsing error

  • SHOW parsing error

  • PERIOD FIELD conversion when a FORMAT or TITLE are attached

  • Functions converting to variables

Added

  • Support to recognize Collation Constraints

  • [TPT] Transform STEP node

  • Stored-Procedure-Tags feature, to recognize each converted component, for more information about how to use it in the UI check here or in the CLI check here .

  • JSON return object for Store Procedures OUT parameters

  • Conversion for SHOW statement to GET_DDL

  • Support for "--param" to set the LOG_ON environment variables

Release 2.0.7 - June 21st, 2021

Updated Conversion Core to 3.0.12

Fixed

  • Naming inconsistency for UDFs inserted by the Conversion Tool

  • Parsing error in MLOAD import

  • DBC.COLUMNSV is mapped to INFORMATION_SCHEMA.COLUMNS. More info here.

  • Parsing error of "Last valid token was 'field'}"

  • Export.Reset() exception in BTEQ - Python files

  • "free" command issue

  • MAC OS Big Sur issue that prevented SnowConvert from executing

Added

  • [Assessment Report] Count of views created by "select * from..."

  • Support for TRIM with CAST integer FORMAT '99'

  • Add warnings for unsupported functions

Release 2.0.6 - June 9, 2021

Updated Conversion Core to 3.0.11

Fixed

  • Generated OTHER_UDF.sql helper file has some compilation errors

  • Duplicated quit_application() statement in BTEQ - Python files

  • Extra folder created after migration in UNIX OS

  • Assessment Mode generates not wanted UDF files

  • Unbound title message in Assessment Mode GUI

Release 2.0.5 - June 7, 2021

Updated Conversion Core to 3.0.8

Added

  • [Assessment Report] Add table: "Data Types"

  • [Assessment Report] Add table: "Data Values"

  • [Assessment Report] Add table: "Unique Conversion Elements"

  • Generate stub for XMLAGG function

  • Conversion for REGEX_REPLACE function

  • Support helper for DATE conversion with JS EXEC

  • [TPT] Conversion percentages for most commonly used statements.

  • Recognize SESSION and use current_session()

  • New documentation about Javascript helper functions here

  • New internal documentation to Python helpers, more info here

Fixed

  • Exception serializing file in temporary folder

  • Transformation for CALL with DBC.SYSEXECSQL()

  • Several parsing errors on Stored Procedures make the Conversion Rate very low.

  • LIKE statement is now converted to LIKE statement in SnowFlake

  • [TPT] Significant reduction of parsing errors in the client's workload.

  • Linux CLI crash.

Release 2.0.3

Updated Conversion Core to 3.0.7

Added

  • [Assessment Report] Add table: "Constraint / Data Values" for Assesment.docx report

  • [Assessment Report] Add table: "Object naming" for Assesment.docx report

  • [Assessment Report] Add table: "Table Types" for Assesment.docx report

  • NULLS FIRST to ORDER by ASC when needed.

  • Identify unsupported usage of INTERVAL constant

  • Warning message to CREATE [SET] VOLATILE TABLE as SELECT ...

Fixed

  • DATE variable comparison in Javascript Snow Procedures.

  • Rename UDF TIMES_DIFFERENCE to TIME_DIFFERENCE

  • Performance issue, JOIN operator causes throughput degradation.

  • WITH CHECK OPTION in view definition not supported in SnowFlake

  • [CodeSmells] Top priority code smells.

  • [TPT] Transform OPERATOR node for type DDL and UPDATE

  • [TPT] Transform OPERATOR node for type DATACONNECTOR PRODUCER

  • Some comments are getting lost during translation

  • Procedures not identified in TopLevelObject report nor Assessment report

Release 2.0.0

This version has breaking changes due to improvements in the SnowConvert Python Helpers

Updated Conversion Core to 3.0.0

Fixed

  • Fix .mload parsing IMPORT WHERE with multiple nested logical comparisons

  • Control flow on BTEQ scripts translation is not preserving equivalence

  • NOT expression in LIKE ANY statements

  • Fixing issue with global variables being defined twice with the Python Helpers new version.

Added

  • [AssessmentReport] Replace "object ratio" for "file generated ratio" in files table

  • [AssessmentReport] Removal of "Notes on Output Files Not Generating" from table of content when not needed.

  • [AssessmentReport] Add SnowConvert and ConversionCore versions to the assessment report and assessment csv.

  • TIMESTAMP at TIMEZONE conversion

  • Mapping SUBSTR function to UDF when "startPosition" is zero or negative

  • Identify Teradata Integer Dates and use UDF

  • Mapping TO_DATE function to UDF when 'format' is JULIAN (YYYYDDD).

  • Added conversion rate by SQL Top Level object in Dashboard.csv

  • Support for MLOAD IMPORT with APPLY using WHERE statements

New Python SnowConvert Helpers Version 2.0.0

The next image highlights the differences in the python generated code between versions 1.7.14 and 2.0.0.

The main differences are:

  • Line 7 on the right, where a new import is made for the "exec" function.

  • All instances of the string "snowconvert_helpers" are changed to "snowconvert.helpers".

  • All instances of the "execute_sql_statement" are changed to "exec".

  • The "exec" function (and other functions) now have the "con" parameter optional. If not passed it will use the last connection.

  • A "main" function is created instead of having a "try"... "except"... "finally" block, for better code organization.

More info about the changes can be found here.

Have Python code generated with an older version of SnowConvert and wish to use the new version of the helpers?

Here is what you need to do with the code:

  • Add this new import to your files "from snowconvert.helpers import exec".

  • Replace all string instances of "snowconvert_helpers" to "snowconvert.helpers".

  • Replace all string instances of "execute_sql_statement" to "exec".

Release 1.7.14

Updated Conversion Core to 2.0.7

Added

  • [Assessment Report] Explanation to tables "SQL/Scripts - Identified Objects".

  • [Assessment Report] Conditional generation of last's section "Notes on Output Files Not Generating".

Fixed

  • Error when loading files due to race conditions in a multithreading environment.

  • MLOAD migration issues with LAYOUT

  • Typo in Assessment Report.

  • Parsing problem with PERIOD and INTERVAL as CASE expressions.

  • Object Conversion Rate value not associated in Assessment Report.

Release 1.7.13

Updated Conversion Core to 2.0.6

Added

  • Initial setup + parsing of TPT files.

Fixed

  • Issue that caused integer, decimal and number datatypes to always be converted to float.

  • Regression, some top-level objects were not identified anymore.

Release 1.7.11

Updated Conversion Core to 2.0.4

Fixed

  • Crash in Linux when two files differ only by capitalization.

  • MLOAD .LOGOFF statement

  • MLOAD .END Statement Warning

  • Fixing an unexpected encoding crash, a new EWI was created to represent this issue (more info here).

  • [UX] Encoding auto-select issue when changing TimeStampt format.

Release 1.7.8

Updated Conversion Core to 2.0.2

Fixed

  • Crash at Step 3, Semantic Analysis of Top Level Objects.

  • [BTEQ] Do not introduce unnecessary TRUNC statements if not needed.

  • Fix parsing of CONTAINS keyword followed by an additive expression.

  • Table PARTITION BY Statement Issue.

  • [UX] Encoding auto-select issue.

Release 1.7.7

Updated Conversion Core to 2.0.0

Added

  • Transformation for CREATE FUNCTION syntax.

  • Feature to disable EWI comments generation on transformed code (Errors, Warnings, and Issues), this new option is available in both CLI (more info here) and UI (more info here).

  • Several Assessment Report Improvements:

    • Adding count of procedures with IN/OUT or OUT parameters.

    • Adding count of views that reference more than 10 dependencies.

    • Adding info about "max() vs (order by) and other non-rank related window functions".

    • Adding info about "Float Data Aggregation".

    • Adding info about the "JOIN elimination" feature in Teradata.

    • Adding info for FUNCTIONs identified on the source code, such as count (detailed by language), conversion rate, lines of code, parsing errors, among others.

Fixed

  • INSTR User Defined Function parameters mismatch.

  • Generation of queries with LOCKING statement inside procedures.

  • Parsing of CONTAINS keyword followed by an additive expression.

Release 1.7.5

Updated Conversion Core to 1.11.0

Added

  • Top-Level Queries report generation, more info here.

  • Parallel CLI implementation.

  • Parsing for CREATE FUNCTION syntax.

Fixed

  • Fix stub generation Case_N in MAC OS.

  • Add explicit binding for Date type variables.

  • Symbol Loading improvements.

Release 1.7.3

Updated Conversion Core to 1.10.2

Added

  • Parsing and conversion support for "^" character, which is a "NOT" equivalent.

  • Support for Command Line Interface (CLI) on Linux Operating System.

Fixed

  • Preserving comments in BTEQ files.

Release 1.7.1

Fixed

  • Fixed a problem that caused previously activated licenses to be ignored.

Release 1.7.0

Due to an update in the licensing infrastructure, a license key re-activation might be required. This was fixed in the release 1.7.1

Updated Conversion Core to 1.10.0

Added

  • The BTEQ files converted to Python scripts now include a comment that indicates the compatible version of the SnowConvert Helpers, so that the person installing the PIP package can install the correct version.

  • Extra columns to the TopLevelObject CSV report.

  • Support for HEX_ENCODE function calls.

  • Support for timestamp difference (minus operator).

Fixed

  • Stub files generation improvements.

    • Better naming conventions for files and elements.

    • Added PUBLIC Schema for all stub functions.

    • Stub files are now generated under "UDF Helpers" folder.

  • [Assessment] Downgrade the dynamic SQL issue from Error to a Warning.

Release 1.6.3

Starting from this release, the SnowConvert Python Helpers will be distributed as a Python Package and will not be copied to the output folder. You can follow the instructions in this documentation page.

Conversion Core 1.9.9

Added

  • The SnowConvert Python Helpers are now distributed as a Python package.

Fixed

  • Random with bounds not converted properly

  • TRIM function support Collation but errors

  • LTRIM Collation Compile Issue

  • Hexadecimal character literals not converted properly

  • Minor issue in conversion of PIVOT statement

  • Fixed a false positive detection of recursive references in a Forward Alias

  • Fixes in the snowconvert_helpers Python package

Release 1.6.2

Conversion Core 1.9.7

Added

  • Added hyperlinks for each issue in the issues breakdown summary report

  • Added support for UNPIVOT statement

Fixed

  • Improved EWI classification

  • Fixed some INTO ? in EXEC statements not being transformed correctly

  • Fixed issue of Timestamp with default date

Release 1.6.1

Conversion Core 1.9.6

Added

  • [Assessment] Missing dependent object improvements

  • Support for CREATE TABLE AS ... WITH NO DATA

  • Support for Teradata timezone change

  • EXPORT add support for all variants

Fixed

  • Binding arguments are not being replaced by ? for EXEC calls

  • BTEQ error recovery mechanism should consider newlines

  • CHARACTER is not being mapped to LEN for all of its variants

  • Change view reference for DML statements when applicable

  • Some comments are deleted during migration.

  • TIME to INT or NUMBER conversion require special attention in teradata

  • Remove .TOISOString from Date Arguments

  • DATE to INT conversion require special attention in Teradata

  • BTEQ delete all add parameter configuration

Known Issues

  • If you currently have the 1.5.5 version installed in macOS, you have to uninstall it and install the 1.6.0 version manually.