Release Notes

Release 1.5.77 - May 10th, 2022

SnowConvert Core 5.0.132

Added:

  • Transformation for multiple return statements inside User Defined Functions
  • Transformation for IS_MEMBER conversion
  • Functional equivalence review (removed MSCEWI1046) for built-in functions such as:
    • CONCAT
    • COUNT_BIG
    • DATALENGTH
    • DATEDIFF
    • DATEFROMPARTS
    • DATENAME
    • EOMONTH
    • GETDATE
    • ISDATE
    • ISNULL
    • LEFT
    • LEN
    • LTRIM
    • MAX
    • MIN
    • NEWID
    • NULLIF
    • PATINDEX
    • POWER
    • RANK
    • REPLACE
    • REPLICATE
    • RIGHT
    • ROW_NUMBER
    • DATEADD
    • SUM

Fixed:

  • Transformation for INSERT statement without INTO clause
  • Transformation for User Defined Functions to Stored Procedures without helpers
  • Transformation for IIF function that was wrongly mapped
  • Comment out default value for BINARY column definitions

Release 1.5.56 - April 25th, 2022

SnowConvert Core 5.0.88

Added:

  • Improvements to code preprocessing documentation in UI

Fixed:

  • NUMBER datatypes with no scale transformation

Release 1.5.41 - April 12th, 2022

SnowConvert Core 5.0.71

Added:

Fixed:

  • HTML assessment report generation

Release 1.5.19 - March 28th, 2022

SnowConvert Core 5.0.35

Added:

  • Procedures target transformation to Snowflake Scripting (UI and CLI)
  • Transformation for supported SYSTEM TABLES. See also MSCEWI4046
  • Transformation for OBJECT_NAME function inside Stored Procedures
  • Transformation for ODBC NOW function
  • Robustness on the parser for CREATE PROCEDURES

Fixed:

  • Transformation for multiple declarations in user defined functions
  • Transformation for user defined functions with body not generated

Release 1.4.140 - March 14th, 2022

SnowConvert Core 4.0.108

Added:

  • Transformation for User Defined Functions with multiple IF statements without the ELSE clause
  • Transformation for User Defined Functions with variable self assignment pattern inside SELECT statements (only applies to SELECT Statements without the FROM clause)
  • Transformation for multiple return statements inside User Defined Functions (only applies to functions without statements transformed to Common Table Expressions)
  • Robustness on parser in Stored Procedures

Release 1.4.140 - March 14th, 2022

SnowConvert Core 4.0.108

Added:

  • Transformation for User Defined Functions with multiple IF statements without the ELSE clause
  • Transformation for User Defined Functions with variable self assignment pattern inside SELECT statements (only applies to SELECT Statements without the FROM clause)
  • Transformation for multiple return statements inside User Defined Functions (only applies to functions without statements transformed to Common Table Expressions)
  • Robustness on parser in Stored Procedures

Release 1.4.117 - February 28th, 2022

SnowConvert Core 4.0.60

Added

  • UnrecognizedElementsLOC to Assessment.docx and Assessment.csv

Release 1.4.98 - February 14th, 2022

SnowConvert Core 4.0.33

Added

  • Transformation for basic IF statement inside user defined functions
  • Warnings for:
  • IMMUTABLE keyword to all generated UDF helpers
  • Glossary section of the main concepts in the Assessment.docx report
  • Hierarchy-oriented naming in the ObjectDB column of the Top-level objects report and Top-level queries report. Check here for more information
  • Added 2 precision decimals to the conversion rates of the assessment reports to improve precision
Fixed
  • Thrown exception while translate names with special characters
  • Thrown exception inside Table-Valued function with qualified name
  • Empty object names in the Top-level objects report

Release 1.4.74 - February 1st, 2022

SnowConvert Core 3.2.86

Added

  • Improved transformations for CURRENT_DATE and DATE_PART
  • Parsing improvements for AUTO keyword, FROM clause and WITH alias
  • Several improvements to UDFs translations, including:
    • Add cast to columns inside union all when semantic information was not found
    • Add warning to function expressions identified as user-defined functions
    • Translation for parameter usages inside queries in inline table valued functions
    • Support for semicolons inside SQL functions
Fixed
  • Exception in OBJECT_ID with non string parameter
  • Exception in SET with square brackets with blank space in update clause
  • Several MSCEWI1013 instances
  • CURSOR error when the result is only 1 row

Release 1.4.58 - January 18th, 2022

SnowConvert Core 3.2.67

Added

  • Transformation for INLINE TABLE-VALUED FUNCTIONS
  • Transformation for user-defined functions with SET and DECLARE statements
  • Transformation for variable assignment using SELECT inside user-defined functions
  • Transformation for user-defined function calls inside STORED PROCEDURES
  • Transformation for BITWISE operators
  • Improvements on Object Conversion rate assessment
Fixed
  • Transformation for queries getting MERGE ACTION count from OUTPUT inside STORED PROCEDURES
  • Transformation for WITH statement with multiple COMMON TABLE EXPRESSIONS
  • Transformation for CURRENT_TIMESTAMP
  • Transformation for BULK INSERT inside dynamic SQL
  • Transformation for SELECT setting multiple variables
  • Thrown exception while transforming identifiers with square brackets

Release 1.4.32 - January 3rd, 2022

SnowConvert Core 3.2.34

Added

  • Transformation for OUTER APPLY clause.
  • Accuracy improvements on Assessment Object conversion rate.
  • Transformation for User-Defined functions that can only be translated to Stored Procedures
  • Robustness on parser on SELECT statements.
Fixed
  • Invalid transformation for GETDATE()
  • Thrown exception on maintain folder structure flag while preprocessing the code

Release 1.4.1 - December 22nd, 2021

SnowConvert Core 3.2.16

Added

  • Robustness on parser on SELECT statements.
  • Code preprocess before converting the source code. Learn more
  • Accuracy improvements on Assessment.
Fixed
  • Cursor error when the result is only 1 row inside Stored Procedures
  • Unhandled exception while converting OBJECT_ID
  • Transformation for temporal (#) tables
  • Unhandled exception while converting aliases with special characters or spaces.
  • Unhandled exception while converting MERGE statements

Release 1.3.4 - December 7th, 2021

SnowConvert Core 3.1.43

Fixed
  • Transformation for ISDATE function
  • Transformation for PATINDEX function
  • Transformation for string concatenation using +

Release 1.3.3 - November 22nd, 2021

SnowConvert Core 3.1.24

Added
Fixed
  • Transformation for MONEY and SMALLMONEY
  • Transformation for TABLE datatype in stored procedures
  • Error on SELECT helper
  • Transformation for addition assignment operators (+=, -=)
  • Transformation for UPDATE statements using the table alias as target
  • Comments lost during stored procedures transformation.

Release 1.3.1 - November 8th, 2021

SnowConvert Core 3.1.20

Added
  • Count of User Defined Functions inside and outside queries
  • Assessment section for User Defined Functions
  • Transformation for @@ROWCOUNT function
Fixed
  • Exception thrown while generating the HTML report
  • Transformation for DECLARE statements with scalar default value
  • Transformation for Common Table Expressions with Delete statement removing duplicates

Release 1.3.0 - October 25th, 2021

SnowConvert Core 3.1.11

Added
  • Robustness on the parser for CREATE PROCEDURES
  • Parsing and basic Assessment for CREATE FUNCTION
  • Object conversion rate for each identified object.
Fixed
  • Exception that was causing a file not to be generated
  • Transformation for variable declaration inside labels
  • Transformation for ROW_NUMBER with partition

Release 1.2.1 - October 11th, 2021

SnowConvert Core 3.1.9

Added
  • Robustness on the parser for CREATE PROCEDURES
  • Transformation for BULK INSERT statements
  • Transformation for object_id inside IF statements
  • Transformation for object_schema_name(@ObjectId, @DatabaseId)
  • Transformation for object_name(@ObjectId, @DatabaseId)
  • Transformation for modulo (%) operations in IF conditions
  • Transformation for WAITFOR statements
  • Transformation for empty statements inside Stored Procedures
  • Transformation for ERROR_SEVERITY function
Fixed
  • Transformation for double-dot qualifiers. Example:
Input
select * from db..table1
Output
select * from db.dbo.table1
  • Comment objects with missing dependencies
  • Inconsistent Total Issues value on UI vs Assessment report
  • Custom database and schema options not working in the UI
  • Disabling EWI comments generation in some cases
  • Transformation for Procedures inside Unicode literals

Release 1.2.0 - September 28th, 2021

SnowConvert Core 3.1.8

Added
Fixed
  • Translation for CROSS APPLY
  • Translation for NLiteral expressions inside SELECT statements
  • Translation for IDENTITY with default values
  • Translation for UPDATE statements with JOIN clauses
  • Translation for SELECT INTO used in COMMON TABLE EXPRESSION

Release 1.1.17 - September 14th, 2021

SnowConvert Core 3.1.3

Added
  • Robustness on the parser for CREATE VIEW and CREATE PROCEDURES
  • Translation for CASE Expressions and built-In functions calls inside procedures.
  • Translation for BREAK statement.
  • Translation for supported ODBC SCALAR FUNCTIONS.
  • Translation for SELECT @LOCAL_VARIABLE.
  • Missing dependencies warning to views without their dependencies in the source code.
  • Regions for PROCEDURES helpers.
  • Warning for MASKED columns.
Fixed
  • EXISTS translation in order to use the Snowflake built-in.

Release 1.1.16 - August 31st, 2021

SnowConvert Core 3.1.1

Added
  • Robustness on the parser for CREATE TABLE , CREATE VIEW and CREATE PROCEDURES
  • Assessment Accuracy Improvements:
    • Parsing errors count on output code and issues csv file.
    • Differentiation between warnings and errors count.
    • Warnings to some transformations properly added.
  • Built-In functions translation:
    • CONVERT
    • COALESCE
    • ISNUMERIC
    • QUOTENAME
    • USER_NAME
    • SOUNDEX
    • DATEPART
    • DATENAME
    • NEWID
    • PATINDEX
    • FORMAT
    • PARSENAME
    • STUFF
    • DATABASE_PRINCIPAL_ID
  • Translation for sysname , datetimeoffset , NChar , NText , sql_variant and timestamp data types
  • Translation for computed columns
Fixed
  • Translation for identity columns with negative values.

Release 1.1.15 - August 18th, 2021

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

Release 1.1.14 - August 16th, 2021

SnowConvert Core 3.1.0

Added
  • Assessment Accuracy Improvements.
  • Empty square brackets can now being parsed as column definition.
  • CONSTRAINT PRIMARY KEY is now being properly translated.
  • Top Level object report Generated.
  • Default Parameters in Procedures now supported.
  • Support Column names with reserved or special keywords.
  • Assignments of the EXEC helper refactored to be more accurate to the source code.
  • XML, Image, SMALLDATETIME and UNIQUEIDENTIFIER types now supported on translations.
Fixed
  • Invalid keywords are no longer kept in the table DDL.
  • Fixed StackOverflowException on MAC that caused the application to failed with error or log message.
  • Fixed error where Hexadecimal values caused errors when contained inside procedures.

Release 1.1.12 - August 4th, 2021

SnowConvert Core 3.0.22

Added

  • Better error handling for:
    • Unicode Literal failed transformations (Accurate EWI is now displayed)
  • Parser robustness for:
    • GO command
    • OPEN GLOBAL
    • CLOSE GLOBAL
    • Files starting with invalid text (Not with SQL comments or SQL grammar elements)
  • Translation for:
    • LIKE
    • NOT LIKE

Fixed

  • Warnings added for SEQUENCE not being accurately counted.
  • Inconsistencies shown in assessment information between identical runs of the tool for some workloads.
  • Exception occurring during SELECT INTO transformation.

Release 1.1.11 - July 19th, 2021

SnowConvert Core 3.0.20

Added
  • Improved Assessment Accuracy for:
    • Declare Statements in procedures.
    • If Statements.
    • Cursor Statements.
    • Merge Statements.
  • Translate statement SELECT INTO TableName .
  • Translate statements in Create Procedure:
    • Identity Column.
    • Column names with operators.
  • Disclaimer for SQL Identified objects and SQL Files conversion rate.
Fixed
  • EXECcall not being generated in the output.
  • SnowConvert conversion loop for certain store procedures.
  • Error migrating views and code being removed.
  • Translation of negative values being translated to positive values.
  • NOT EXISTS is being translated as EXISTS.
  • Inconsistencies in Assessment Accuracy conversion rate.
  • DefaultExpression should be counted as an error and affect the conversion rate.
  • MSC-ISSUE renamed to MSC-ERROR in all the reports.

Release 1.1.10 - July 6th, 2021

SnowConvert Core 3.0.16

Added
  • Robustness on the parser for CREATE TABLE , CREATE VIEW and CREATE PROCEDURES
  • Translate basic statements in CREATE PROCEDURES such as:
    • Translate BEGIN TRANSACTION statement
    • Translate COMMIT statement
    • Translate for ROLLBACK and ROLLBACK TRANSACTION statement
    • Translate THROW statement
    • Translate INSERT INTO EXEC
  • Translate Temporal Tables
  • Translate for EXECUTE Statement and N Literal
  • Translate of CREATE PROCEDURE AS OWNER
  • Translate built-in functions that have equivalence in Snowflake
  • Translate TRUNCATE Statement
  • Translate DROP TABLE statement
  • Telemetry for assessment

Release 1.1.9 - June 22nd, 2021

SnowConvert Core 3.0.13

Added
  • Robustness on the parser for CREATE TABLE , CREATE VIEW and CREATE PROCEDURES
  • Translate basic statements in CREATE PROCEDURE such as:
    • Translate EXECUTE/EXEC statement
    • Translate embedded CREATE TABLE statement
  • Translate basic predicates such as:
    • BETWEEN Predicate
    • EXISTS Predicate
    • IN Predicate
  • Translate WITH Clauses in CREATE TABLE
  • Translate Cursor DECLARE, OPEN, FETCH, CLOSE and DEALLOCATE

Release 1.1.5 - June 9th, 2021

SnowConvert Core 3.0.9

Added

  • Robustness on the parser for CREATE TABLE , CREATE VIEW and CREATE PROCEDURES

Release 1.1.3 - May 25th, 2021

SnowConvert Core 3.0.5

Added
  • Translated basic CREATE PROCEDURE
  • Translate basic statements in CREATE PROCEDURE such as:
    • DECLARE @variable
    • SET @variable
    • TRY CATCH Statement
    • IF Statement
    • While Statement
    • RETURN Statement
    • SELECT, UPDATE, INSERT, DELETE and MERGE.
  • Translate basic expressions in CREATE PROCEDURE such as:
    • IS NULL / IS NOT NULL predicate
    • BINARY Operations ( +, -, *, / )
    • Comparisons ( >,<, <=, >= )
In order to try out the newly added translation features, you can use this example code and migrate this example with SQLServer SnowConvert.
1
CREATE PROCEDURE Procedure1(
2
@model_year SMALLINT,
3
@FirstName NVARCHAR(50),
4
@Age INT,
5
@Balance SMALLMONEY,
6
@Description VARCHAR
7
) AS
8
BEGIN
9
DECLARE @cursor_db CURSOR;
10
DECLARE @database_id INT, @database_name VARCHAR(255);
11
DECLARE @product_list VARCHAR(MAX) = ' ';
12
DECLARE @Variable1 AS VARCHAR(100), @Variable2 AS VARCHAR(100);
13
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
14
SET NOCOUNT ON
15
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
16
SET NOCOUNT OFF
17
SET @product_list = '';
18
SET @var1 += '';
19
SET @var2 &= '';
20
SET @var3 ^= '';
21
SET @var4 |= '';
22
SET @var5 /= '';
23
SET @var6 %= '';
24
SET @var7 *= '';
25
SET @var8 -= '';
26
SET @statement = 'SELECT * FROM TABLE1 WHERE COL1 = '+@param1+ ' AND COL2 = ' + @param2;
27
28
BEGIN TRY
29
IF @Age > 15
30
return
31
ELSE
32
return 2;
33
34
WHILE (@PATITO < 2)
35
BEGIN
36
SELECT * FROM TABLE1;
37
END;
38
39
INSERT INTO TABLE1 VALUES (1,2,3, @param1);
40
DELETE dbo.Table2 FROM dbo.Table2 INNER JOIN dbo.Table1 ON (dbo.Table2.ColA = dbo.Table1.ColA) WHERE @ColA = 1;
41
Update PruebaUpdate Set Col1 = 5;
42
END TRY
43
BEGIN CATCH
44
return -1;
45
END CATCH
46
END;
47
GO
Copied!

Release 1.1.2 - May 14th, 2021

SnowConvert Core 3.0.3

Added
  • Translate Tables
  • Translate Views
  • Assessment Report for Tables and Views
Known issue: you may get some error in the UI if you try to migrate Procedures and Functions