Issues and Troubleshooting
Definitions
SnowConvert generates different kinds of messages in the output code indicating additional effort that needs to be made in order to achieve functional equivalence in Snowflake.
EWI (Errors, Warnings and Issues)
If SnowConvert is unable to fully convert a piece of code, then an EWI is generated. Any EWI will have a negative impact on the conversion rate for a code unit. Reasons why SnowConvert may be unable to fully convert the code include:
A conversion rule has not been implemented yet
Missing dependent code that is required for the conversion rule to be applied.
There is not currently an equivalent statement available in Snowflake and/or a UDF has not been developed yet to emulate the functionality required.
Since they typically represent issues that should be addressed before deploying the output code, SnowConvert generates a !!!RESOLVE EWI!!!
before each EWI in order to break the compilation.
The SnowConvert team uses internal metrics to classify EWIs into four severity levels (Low, Medium, High, and Critical) based on how much effort, on average, it takes to correct the code.
FDM (Functional Difference Messages)
In the course of converting a legacy platform code to Snowflake, it is essential to acknowledge that such platforms (Teradata, Oracle, SqlServer) and Snowflake are different, each with its unique set of features, functions, and capabilities. In many cases, full functional equivalence cannot be achieved through automation, and involvement is required to bridge those functional differences.
An FDM is generated when SnowConvert is able to output converted, syntactically correct code but that code may not provide exact functional equivalence to the original legacy code. Reasons for functional in-equivalence may be due to features that are not available within Snowflake and require re-solutions beyond what can be done with straight code conversion. Many times, business or architectural input will be required to determine further course of action needed (if any) related to FDMs; since FDMs are added to converted code that should not break the code compilation they do not punish the conversion rate.
PRF (Performance Review)
These types of messages are added to the converted code to let the user know that while the code is translated correctly, it might have performance issues in some scenarios. Some refactoring might be needed to fully take advantage of the Snowflake capabilities.
OOS (Out Of Scope)
As described in the conversion scope page and in the out of scope messages section some code units are considered out of scope for conversion reasons. SnowConvert generates these types of messages to let the user know that the whole code unit was not converted.
New Codes Format
We have improved the format of the EWIs to make it more user-friendly and easier to understand the type of message and the language it belongs to. The following will explain the change with examples.
General
General EWIs were previously mapped using the codes 1000. Now, General EWIs will be those that do not have any abbreviation referring to any of the languages supported by SnowConvert.
Example
SSC-EWI-0001
MSCEWI1001
Teradata
Teradata EWIs were previously mapped using the codes 2000. Now, Teradata EWIs will be mapped with a 'TD' at the beginning of the numeric part of the code.
Example
SSC-EWI-TD0001
MSCEWI2001
Oracle
Oracle EWIs were previously mapped using the codes 3000. Now, Oracle EWIs will be mapped with a 'OR' at the beginning of the numeric part of the code.
Example
SSC-EWI-OR0012
MSCEWI3012
SQL Server
SQL Server EWIs were previously mapped using the codes 2000. Now, SQL Server EWIs will be mapped with a 'TS' at the beginning of the numeric part of the code.
Example
SSC-EWI-TS0003
MSCEWI4003
Changed Category To FDM
General
SSC-FDM-0002
MSCINF0002
General
SSC-FDM-0002
MSCINF0002
Teradata
SSC-FDM-TD0010
MSCEWI2042
Oracle
SSC-FDM-OR0012
MSCEWI3131
SQL Server
SSC-FDM-TS0003
MSCEWI4064
SQL Server
SSC-FDM-TS0008
MSCEWI4065
SQL Server
SSC-FDM-TS0011
MSCEWI1088
Changed Category To PRF
Teradata
SSC-PRF-TD0001
MSCEWI2008
Deprecated EWIs
General
MSCEWI1008
General
MSCEWI1016
General
MSCEWI1017
General
MSCEWI1019
General
MSCEWI1029
General
MSCEWI1055
General
MSCEWI1037
General
MSCEWI1042
General
MSCEWI1043
General
MSCEWI1048
General
MSCEWI1059
General
MSCEWI1069
General
MSCEWI1074
General
MSCEWI1079
General
MSCEWI1081
General
MSCEWI1082
General
MSCEWI1083
General
MSCEWI1085
General
MSCEWI1087
General
MSCEWI1089
General
MSCEWI1090
General
MSCEWI1091
General
MSCEWI1097
General
MSCEWI1098
General
MSCEWI1099
General
MSCEWI1108
General
MSCINF0001
General
MSCINF0002
General
MSCINF0003
Teradata
MSCEWI2002
Teradata
MSCEWI2006
Teradata
MSCEWI2007
Teradata
MSCEWI2016
Teradata
MSCEWI2018
Teradata
MSCEWI2026
Teradata
MSCEWI2028
Teradata
MSCEWI2032
Teradata
MSCEWI2033
Teradata
MSCEWI2038
Teradata
MSCEWI2044
Teradata
MSCEWI2047
Teradata
MSCEWI2050
Teradata
MSCEWI2056
Teradata
MSCEWI2065
Teradata
MSCEWI2078
Teradata
MSCEWI2081
Teradata
MSCEWI2085
Teradata
MSCEWI2088
Teradata
MSCEWI2089
Teradata
MSCEWI2090
Oracle
MSCEWI3003
Oracle
MSCEWI3007
Oracle
MSCEWI3015
Oracle
MSCEWI3019
Oracle
MSCEWI3024
Oracle
MSCEWI3027
Oracle
MSCEWI3028
Oracle
MSCEWI3037
Oracle
MSCEWI3043
Oracle
MSCEWI3044
Oracle
MSCEWI3054
Oracle
MSCEWI3058
Oracle
MSCEWI3061
Oracle
MSCEWI3063
Oracle
MSCEWI3064
Oracle
MSCEWI3065
Oracle
MSCEWI3077
Oracle
MSCEWI3083
Oracle
MSCEWI3084
Oracle
MSCEWI3085
Oracle
MSCEWI3088
Oracle
MSCEWI3096
Oracle
MSCEWI3117
Oracle
MSCEWI3119
Oracle
MSCEWI3122
Oracle
MSCEWI3125
Oracle
SSC-EWI-OR0130
SQL Server
MSCEWI4002
SQL Server
MSCEWI4006
SQL Server
MSCEWI4008
SQL Server
MSCEWI4011
SQL Server
MSCEWI4012
SQL Server
MSCEWI4014
SQL Server
MSCEWI4018
SQL Server
MSCEWI4019
SQL Server
MSCEWI4020
SQL Server
MSCEWI4026
SQL Server
MSCEWI4028
SQL Server
MSCEWI4030
SQL Server
MSCEWI4040
SQL Server
MSCEWI4042
SQL Server
MSCEWI4050
SQL Server
MSCEWI4052
SQL Server
MSCEWI4054
SQL Server
MSCEWI4056
SQL Server
MSCEWI4068
SQL Server
SSC-EWI-TS0048
General
SSC-FDM-0002
MSCINF0002
Last updated