2021

Details about the releases of Mobilize.Net SnowConvert for Teradata during 2021.

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 .mobilize/ 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 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.

Generated Python code comparison 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.