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
New Code | Old Code |
---|---|
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
New Code | Old Code |
---|---|
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
New Code | Old Code |
---|---|
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
New Code | Old Code |
---|---|
SSC-EWI-TS0003 | MSCEWI4003 |
Changed Category To FDM
Dialect | New code | Old code |
---|---|---|
General | MSCINF0001 | |
General | SSC-FDM-0002 | MSCINF0002 |
General | MSCINF0003 | |
General | MSC-GP0001 | |
General | MSCEWI1096 | |
General | MSCEWI1066 | |
General | MSCEWI1050 | |
General | MSCEWI1093 | |
General | MSCCP0002 | |
General | MSCEWI1044 | |
General | MSCEWI1045 | |
General | MSCEWI1097 | |
General | MSCEWI1008 | |
General | MSCEWI1035 | |
General | MSCEWI1064 | |
General | MSCEWI1076 | |
General | MSCEWI1072 | |
General | SSC-EWI-0049 | |
General | MSCEWI1058 | |
General | MSCEWI1028 | |
General | SSC-EWI-0068 | |
Teradata | MSCEWI2013 | |
Teradata | MSCEWI2014 | |
Teradata | MSCEWI2073 | |
Teradata | MSCEWI2074 | |
Teradata | MSCEWI2058 | |
Teradata | MSCEWI2045 | |
Teradata | MSCEWI2018 | |
Teradata | MSCEWI2080 | |
Teradata | MSCEWI2019 | |
Teradata | MSCEWI2042 | |
Teradata | MSCEWI2064 | |
Teradata | MSCEWI2004 | |
Teradata | MSCEWI2075 | |
Teradata | MSCEWI2023 | |
Teradata | MSCEWI2020 | |
Teradata | MSCEWI2021 | |
Teradata | MSCEWI2063 | |
Teradata | MSCEWI2084 | |
Teradata | MSCEWI2062 | |
Teradata | MSCEWI2030 | |
Teradata | MSCEWI2086 | |
Teradata | MSCEWI2054 | |
Teradata | SSC-EWI-TD0087 | |
Teradata | MSCEWI2061 | |
Teradata | MSCEWI2060 | |
Teradata | SSC-EWI-TD0055 | |
Teradata | SSC-EWI-TD0070 | |
Oracle | MSCINF0004 | |
Oracle | MSCEWI3068 | |
Oracle | MSCEWI3038 | |
Oracle | MSCEWI3022 | |
Oracle | MSCEWI3025 | |
Oracle | MSCEWI3041 | |
Oracle | MSCEWI3056 | |
Oracle | MSCEWI3071 | |
Oracle | MSCEWI3086 | |
Oracle | MSCEWI3093 | |
Oracle | MSCEWI3066 | |
Oracle | MSCEWI3131 | |
Oracle | MSCEWI3039 | |
Oracle | MSCEWI3002 | |
Oracle | MSCEWI3091 | |
Oracle | MSCEWI3132 | |
Oracle | MSCEWI3017 | |
Oracle | MSCEWI3134 | |
Oracle | MSCEWI3086 | |
Oracle | MSCEWI3051 | |
Oracle | MSCEWI3102 | |
Oracle | MSCEWI3100 | |
Oracle | MSCEWI3099 | |
Oracle | MSCEWI3114 | |
Oracle | MSCEWI3021 | |
Oracle | MSCEWI1065 | |
Oracle | MSCEWI3098 | |
Oracle | MSCEWI3031 | |
Oracle | MSCEWI3059 | |
Oracle | MSCEWI3094 | |
Oracle | MSCEWI3113 | |
Oracle | MSCEWI3004 | |
Oracle | SSC-EWI-OR0128 | |
Oracle | SSC-EWI-OR0062 | |
Oracle | SSC-EWI-OR0005 | |
Oracle | SSC-EWI-OR0089 | |
Oracle | SSC-FDM-OR0013 | |
Oracle | SSC-EWI-OR0006 | |
SQL Server | MSCEWI4005 | |
SQL Server | MSCEWI4004 | |
SQL Server | MSCEWI4064 | |
SQL Server | MSCEWI4022 | |
SQL Server | MSCEWI4074 | |
SQL Server | MSCEWI4066 | |
SQL Server | MSCEWI4066 | |
SQL Server | MSCEWI4065 | |
SQL Server | MSCEWI4003 | |
SQL Server | MSCEWI4069 | |
SQL Server | MSCEWI1088 | |
SQL Server | SSC-EWI-TS0071 | |
SQL Server | SSC-EWI-TS0055 |
Dialect | New code | Old code |
---|---|---|
General | MSCINF0001 | |
General | SSC-FDM-0002 | MSCINF0002 |
General | MSCINF0003 | |
General | MSC-GP0001 | |
General | MSCEWI1096 | |
General | MSCEWI1066 | |
General | MSCEWI1050 | |
General | MSCEWI1057 | |
General | MSCEWI1093 | |
General | MSCCP0002 | |
General | MSCEWI1044 | |
General | MSCEWI1045 | |
General | MSCEWI1097 | |
General | MSCEWI1008 | |
General | MSCEWI1035 | |
General | MSCEWI1064 | |
General | MSCEWI1076 | |
General | MSCEWI1072 | |
General | MSCEWI1058 | |
General | MSCEWI1028 | |
Teradata | MSCEWI2013 | |
Teradata | MSCEWI2014 | |
Teradata | MSCEWI2073 | |
Teradata | MSCEWI2074 | |
Teradata | MSCEWI2058 | |
Teradata | MSCEWI2045 | |
Teradata | MSCEWI2018 | |
Teradata | MSCEWI2080 | |
Teradata | MSCEWI2019 | |
Teradata | SSC-FDM-TD0010 | MSCEWI2042 |
Teradata | MSCEWI2064 | |
Teradata | MSCEWI2004 | |
Teradata | MSCEWI2075 | |
Teradata | MSCEWI2023 | |
Teradata | MSCEWI2020 | |
Teradata | MSCEWI2021 | |
Teradata | MSCEWI2063 | |
Teradata | MSCEWI2084 | |
Teradata | MSCEWI2062 | |
Teradata | MSCEWI2030 | |
Teradata | MSCEWI2086 | |
Teradata | MSCEWI2054 | |
Teradata | MSCEWI2061 | |
Teradata | MSCEWI2060 | |
Oracle | MSCINF0004 | |
Oracle | MSCEWI3068 | |
Oracle | MSCEWI3038 | |
Oracle | MSCEWI3022 | |
Oracle | MSCEWI3025 | |
Oracle | MSCEWI3041 | |
Oracle | MSCEWI3056 | |
Oracle | MSCEWI3071 | |
Oracle | MSCEWI3086 | |
Oracle | MSCEWI3093 | |
Oracle | MSCEWI3066 | |
Oracle | SSC-FDM-OR0012 | MSCEWI3131 |
Oracle | MSCEWI3039 | |
Oracle | MSCEWI3002 | |
Oracle | MSCEWI3091 | |
Oracle | MSCEWI3132 | |
Oracle | MSCEWI3017 | |
Oracle | MSCEWI3134 | |
Oracle | MSCEWI3086 | |
Oracle | MSCEWI3051 | |
Oracle | MSCEWI3102 | |
Oracle | MSCEWI3100 | |
Oracle | MSCEWI3099 | |
Oracle | MSCEWI3114 | |
Oracle | MSCEWI3021 | |
Oracle | MSCEWI1065 | |
Oracle | MSCEWI3098 | |
Oracle | MSCEWI3029 | |
Oracle | MSCEWI3031 | |
Oracle | MSCEWI3059 | |
Oracle | MSCEWI3094 | |
Oracle | MSCEWI3113 | |
Oracle | SSC-EWI-OR0128 | |
Oracle | MSCEWI307 | |
Oracle | SSC-EWI-OR0062 | |
SQL Server | MSCEWI4005 | |
SQL Server | MSCEWI4004 | |
SQL Server | SSC-FDM-TS0003 | MSCEWI4064 |
SQL Server | MSCEWI4022 | |
SQL Server | MSCEWI4074 | |
SQL Server | MSCEWI4066 | |
SQL Server | MSCEWI4066 | |
SQL Server | SSC-FDM-TS0008 | MSCEWI4065 |
SQL Server | MSCEWI4003 | |
SQL Server | MSCEWI4069 | |
SQL Server | SSC-FDM-TS0011 | MSCEWI1088 |
SQL Server | SSC-EWI-TS0071 | |
SQL Server | SSC-EWI-TS0055 |
Changed Category To PRF
Dialect | New code | Old code |
---|---|---|
General | MSCCP0005 | |
General | MSCCP0007 | |
General | MSCCP0006 | |
General | MSCCP0003 | |
General | MSCCP0010 | |
General | MSCCP0011 | |
Teradata | SSC-PRF-TD0001 | MSCEWI2008 |
SQL Server | MSCEWI4007 |
Deprecated EWIs
Dialect | Code |
---|---|
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 |
Dialect | New code | Old code |
---|---|---|
General | MSCINF0001 | |
General | SSC-FDM-0002 | MSCINF0002 |
General | MSCINF0003 | |
General | MSC-GP0001 | |
General | MSCEWI1096 | |
General | MSCEWI1066 | |
General | MSCEWI1050 | |
General | MSCEWI1057 | |
General | MSCEWI1093 | |
General | MSCCP0002 | |
General | MSCEWI1044 | |
General | MSCEWI1045 | |
General | MSCEWI1097 | |
General | MSCEWI1008 | |
General | MSCEWI1035 | |
General | MSCEWI1064 | |
General | MSCEWI1076 | |
General | MSCEWI1072 | |
General | SSC-EWI-0049 | |
General | MSCEWI1058 | |
General | MSCEWI1028 | |
General | SSC-EWI-0068 | |
Teradata | MSCEWI2013 | |
Teradata | MSCEWI2014 | |
Teradata | MSCEWI2073 | |
Teradata | MSCEWI2074 | |
Teradata | MSCEWI2058 | |
Teradata | MSCEWI2045 | |
Teradata | MSCEWI2018 | |
Teradata | MSCEWI2080 | |
Teradata | MSCEWI2019 | |
Teradata | MSCEWI2042 | |
Teradata | MSCEWI2064 | |
Teradata | MSCEWI2075 | |
Teradata | MSCEWI2023 | |
Teradata | MSCEWI2021 | |
Teradata | MSCEWI2084 | |
Teradata | MSCEWI2062 | |
Teradata | MSCEWI2030 | |
Teradata | MSCEWI2086 | |
Teradata | MSCEWI2054 | |
Oracle | MSCINF0004 | |
Oracle | MSCEWI3022 | |
Oracle | MSCEWI3025 | |
Oracle | MSCEWI3041 | |
Oracle | MSCEWI3056 | |
Oracle | MSCEWI3086 | |
Oracle | MSCEWI3093 | |
Oracle | MSCEWI3066 | |
Oracle | MSCEWI3131 | |
Oracle | MSCEWI3039 | |
Oracle | MSCEWI3002 | |
Oracle | MSCEWI3091 | |
Oracle | MSCEWI3132 | |
Oracle | MSCEWI3017 | |
Oracle | MSCEWI3134 | |
Oracle | MSCEWI3086 | |
Oracle | MSCEWI3051 | |
Oracle | MSCEWI3102 | |
Oracle | MSCEWI3100 | |
Oracle | MSCEWI3099 | |
Oracle | MSCEWI3114 | |
Oracle | MSCEWI3021 | |
Oracle | MSCEWI1065 | |
Oracle | MSCEWI3098 | |
Oracle | MSCEWI3029 | |
Oracle | MSCEWI3059 | |
Oracle | MSCEWI3094 | |
Oracle | MSCEWI3113 | |
Oracle | MSCEWI3004 | |
Oracle | MSCEWI307 | |
Oracle | SSC-EWI-OR0062 | |
SQL Server | MSCEWI4005 | |
SQL Server | MSCEWI4004 | |
SQL Server | MSCEWI4064 | |
SQL Server | MSCEWI4022 | |
SQL Server | MSCEWI4074 | |
SQL Server | MSCEWI4066 | |
SQL Server | MSCEWI4066 | |
SQL Server | MSCEWI4065 | |
SQL Server | MSCEWI4003 | |
SQL Server | MSCEWI4069 | |
SQL Server | MSCEWI1088 | |
SQL Server | SSC-EWI-TS0071 | |
SQL Server | SSC-EWI-TS0047 | |
SQL Server | SSC-EWI-TS0055 | |
SQL Server | SSC-EWI-TS0056 | |
SQL Server | SSC-EWI-TS0057 | |
SQL Server | SSC-EWI-TS0073 |
Last updated