001package gudusoft.gsqlparser.sqlcmds; 002 003import gudusoft.gsqlparser.*; 004import gudusoft.gsqlparser.stmt.*; 005import gudusoft.gsqlparser.stmt.teradata.*; 006import gudusoft.gsqlparser.stmt.mssql.*; 007 008/** 009 * Teradata SQL command resolver. 010 * Handles Teradata-specific statement detection and command resolution. 011 * 012 * @since 3.1.0.9 013 */ 014public class TSqlCmdsTeradata extends AbstractSqlCmds { 015 016 public TSqlCmdsTeradata() { 017 super(EDbVendor.dbvteradata); 018 } 019 020 @Override 021 protected void initializeCommands() { 022 // Teradata commands - sorted alphabetically by first token 023 // Note: Longer patterns should come before shorter ones with same prefix 024 025 addCmd(TBaseType.rrw_abort, " "," "," "," "," "," ", ESqlStatementType.sstteradataabort); 026 addCmd(TBaseType.rrw_alter,"constraint"," "," "," "," "," ", ESqlStatementType.sstteradataalterconstraint); 027 addCmd(TBaseType.rrw_alter,"function"," "," "," "," "," ", ESqlStatementType.sstteradataalterfunction); 028 addCmd(TBaseType.rrw_alter,"specific","function"," "," "," "," ", ESqlStatementType.sstteradataalterfunction); 029 addCmd(TBaseType.rrw_alter,"method"," "," "," "," "," ", ESqlStatementType.sstteradataaltermethod); 030 addCmd(TBaseType.rrw_alter,"constructor","method"," "," "," "," ", ESqlStatementType.sstteradataaltermethod); 031 addCmd(TBaseType.rrw_alter,"instance","method"," "," "," "," ", ESqlStatementType.sstteradataaltermethod); 032 addCmd(TBaseType.rrw_alter,"specific","method"," "," "," "," ", ESqlStatementType.sstteradataaltermethod); 033 addCmd(TBaseType.rrw_alter,"procedure"," "," "," "," "," ", ESqlStatementType.sstteradataalterprocedure); 034 addCmd(TBaseType.rrw_alter,"replication","group"," "," "," "," ", ESqlStatementType.sstteradataalterreplicationgroup); 035 addCmd(TBaseType.rrw_alter,"table"," "," "," "," "," ", ESqlStatementType.sstteradataaltertable); 036 addCmd(TBaseType.rrw_alter,"trigger"," "," "," "," "," ", ESqlStatementType.sstteradataaltertrigger); 037 addCmd(TBaseType.rrw_alter,"type"," "," "," "," "," ", ESqlStatementType.sstteradataaltertype); 038 addCmd(TBaseType.rrw_alter,"zone"," "," "," "," "," ", ESqlStatementType.sstteradataalterzone); 039 addCmd(TBaseType.rrw_begin,"delcare","section"," "," "," "," ", ESqlStatementType.sstteradatabegindeclaresection); 040 addCmd(TBaseType.rrw_begin,"logging"," "," "," "," "," ", ESqlStatementType.sstteradatabeginlogging); 041 addCmd(TBaseType.rrw_begin,"transaction"," "," "," "," "," ", ESqlStatementType.sstteradatabegintransaction); 042 addCmd(TBaseType.rrw_bt," "," "," "," "," "," ", ESqlStatementType.sstteradatabegintransaction); 043 addCmd(TBaseType.rrw_call," "," "," "," "," "," ", ESqlStatementType.sstteradatacall); 044 addCmd(TBaseType.rrw_check,"workload"," "," "," "," "," ", ESqlStatementType.sstteradatacheckworkload); 045 addCmd(TBaseType.rrw_checkpoint," "," "," "," "," "," ", ESqlStatementType.sstteradatacheckpoint); 046 addCmd(TBaseType.rrw_close," "," "," "," "," "," ", ESqlStatementType.sstteradataclose); 047 addCmd(TBaseType.rrw_teradata_cm," "," "," "," "," "," ", ESqlStatementType.sstteradatacreatemacro); 048 addCmd(TBaseType.rrw_teradata_collect,"demographics"," "," "," "," "," ", ESqlStatementType.sstteradatacollectdemographics); 049 addCmd(TBaseType.rrw_teradata_collect,"statistics"," "," "," "," "," ", ESqlStatementType.sstteradatacollectstatistics); 050 addCmd(TBaseType.rrw_teradata_collect,"stats"," "," "," "," "," ", ESqlStatementType.sstteradatacollectstatistics); 051 addCmd(TBaseType.rrw_teradata_collect,"stat"," "," "," "," "," ", ESqlStatementType.sstteradatacollectstatistics); 052 addCmd(TBaseType.rrw_teradata_collect,"summary","statistics"," "," "," "," ", ESqlStatementType.sstteradatacollectstatistics); 053 addCmd(TBaseType.rrw_teradata_collect,"summary","stats"," "," "," "," ", ESqlStatementType.sstteradatacollectstatistics); 054 addCmd(TBaseType.rrw_teradata_collect,"summary","stat"," "," "," "," ", ESqlStatementType.sstteradatacollectstatistics); 055 addCmd(TBaseType.rrw_comment," "," "," "," "," "," ", ESqlStatementType.sstteradatacomment); 056 addCmd(TBaseType.rrw_commit," "," "," "," "," "," ", ESqlStatementType.sstteradatacommit); 057 addCmd(TBaseType.rrw_connect," "," "," "," "," "," ", ESqlStatementType.sstteradataconnect); 058 addCmd(TBaseType.rrw_create,"authorization"," "," "," "," "," ", ESqlStatementType.sstteradatacreateauthorization); 059 addCmd(TBaseType.rrw_create,"cast"," "," "," "," "," ", ESqlStatementType.sstteradatacreatecast); 060 addCmd(TBaseType.rrw_create,"constructor","method"," "," "," "," ", ESqlStatementType.sstteradatacreatemethod); 061 addCmd(TBaseType.rrw_create,"database"," "," "," "," "," ", ESqlStatementType.sstteradatacreatedatabase); 062 addCmd(TBaseType.rrw_create,"error","table"," "," "," "," ", ESqlStatementType.sstcreatetable); 063 addCmd(TBaseType.rrw_create,"external","role"," "," "," "," ", ESqlStatementType.sstteradatacreaterole); 064 addCmd(TBaseType.rrw_create,"foreign","table"," "," "," "," ", ESqlStatementType.sstcreatetable); 065 addCmd(TBaseType.rrw_create,"function"," "," "," "," "," ", ESqlStatementType.sstteradatacreatefunction); 066 addCmd(TBaseType.rrw_create,"global","temporary","multiset","table"," "," ", ESqlStatementType.sstcreatetable); 067 addCmd(TBaseType.rrw_create,"global","temporary","set","table"," "," ", ESqlStatementType.sstcreatetable); 068 addCmd(TBaseType.rrw_create,"global","temporary","table"," "," "," ", ESqlStatementType.sstcreatetable); 069 addCmd(TBaseType.rrw_create,"hash","index"," "," "," "," ", ESqlStatementType.sstcreateindex); 070 addCmd(TBaseType.rrw_create,"index"," "," "," "," "," ", ESqlStatementType.sstcreateindex); 071 addCmd(TBaseType.rrw_create,"instance","method"," "," "," "," ", ESqlStatementType.sstteradatacreatemethod); 072 addCmd(TBaseType.rrw_create,"join","index"," "," "," "," ", ESqlStatementType.sstcreateindex); 073 addCmd(TBaseType.rrw_create,"macro"," "," "," "," "," ", ESqlStatementType.sstteradatacreatemacro); 074 addCmd(TBaseType.rrw_create,"method"," "," "," "," "," ", ESqlStatementType.sstteradatacreatemethod); 075 addCmd(TBaseType.rrw_create,"multiset","global","temporary","table"," "," ", ESqlStatementType.sstcreatetable); 076 addCmd(TBaseType.rrw_create,"multiset","foreign","table"," "," "," ", ESqlStatementType.sstcreatetable); 077 addCmd(TBaseType.rrw_create,"multiset","table"," "," "," "," ", ESqlStatementType.sstcreatetable); 078 addCmd(TBaseType.rrw_create,"multiset","volatile","table"," "," "," ", ESqlStatementType.sstcreatetable); 079 addCmd(TBaseType.rrw_create,"ordering"," "," "," "," "," ", ESqlStatementType.sstteradatacreateordering); 080 addCmd(TBaseType.rrw_create,"proc"," "," "," "," "," ", ESqlStatementType.sstcreateprocedure); 081 addCmd(TBaseType.rrw_create,"procedure"," "," "," "," "," ", ESqlStatementType.sstcreateprocedure); 082 addCmd(TBaseType.rrw_create,"profile"," "," "," "," "," ", ESqlStatementType.sstteradatacreateprofile); 083 addCmd(TBaseType.rrw_create,"recursive","view"," "," "," "," ", ESqlStatementType.sstcreateview); 084 addCmd(TBaseType.rrw_create,"replication","group"," "," "," "," ", ESqlStatementType.sstteradatacreatereplicationgroup); 085 addCmd(TBaseType.rrw_create,"role"," "," "," "," "," ", ESqlStatementType.sstteradatacreaterole); 086 addCmd(TBaseType.rrw_create,"set","global","temporary","table"," "," ", ESqlStatementType.sstcreatetable); 087 addCmd(TBaseType.rrw_create,"set","foreign","table"," "," "," ", ESqlStatementType.sstcreatetable); 088 addCmd(TBaseType.rrw_create,"set","table"," "," "," "," ", ESqlStatementType.sstcreatetable); 089 addCmd(TBaseType.rrw_create,"set","volatile","table"," "," "," ", ESqlStatementType.sstcreatetable); 090 addCmd(TBaseType.rrw_create,"table"," "," "," "," "," ", ESqlStatementType.sstcreatetable); 091 addCmd(TBaseType.rrw_create,"temporary","table"," "," "," "," ", ESqlStatementType.sstcreatetable); 092 addCmd(TBaseType.rrw_create,"transform"," "," "," "," "," ", ESqlStatementType.sstteradatacreatetransform); 093 addCmd(TBaseType.rrw_create,"trigger"," "," "," "," "," ", ESqlStatementType.sstteradatacreatetrigger); 094 addCmd(TBaseType.rrw_create,"type"," "," "," "," "," ", ESqlStatementType.sstteradatacreatetype); 095 addCmd(TBaseType.rrw_create,"unique","index"," "," "," "," ", ESqlStatementType.sstcreateindex); 096 addCmd(TBaseType.rrw_create,"user"," "," "," "," "," ", ESqlStatementType.sstteradatacreateuser); 097 addCmd(TBaseType.rrw_create,"view"," "," "," "," "," ", ESqlStatementType.sstcreateview); 098 addCmd(TBaseType.rrw_create,"volatile","multiset","table"," "," "," ", ESqlStatementType.sstcreatetable); 099 addCmd(TBaseType.rrw_create,"volatile","table"," "," "," "," ", ESqlStatementType.sstcreatetable); 100 addCmd(TBaseType.rrw_create,"volatile","set","table"," "," "," ", ESqlStatementType.sstcreatetable); 101 addCmd(TBaseType.rrw_create,"zone"," "," "," "," "," ", ESqlStatementType.sstcreatezone); 102 addCmd(TBaseType.rrw_ct," "," "," "," "," "," ", ESqlStatementType.sstcreatetable); 103 addCmd(TBaseType.rrw_teradata_cv," "," "," "," "," "," ", ESqlStatementType.sstcreateview); 104 addCmd(TBaseType.rrw_database," "," "," "," "," "," ", ESqlStatementType.sstteradatadatabase); 105 addCmd(TBaseType.rrw_declare,"cursor"," "," "," "," "," ", ESqlStatementType.sstteradatadeclarecursor); 106 addCmd(TBaseType.rrw_declare,"statement"," "," "," "," "," ", ESqlStatementType.sstteradatadeclarestatement); 107 addCmd(TBaseType.rrw_declare,"table"," "," "," "," "," ", ESqlStatementType.sstteradatadeclaretable); 108 addCmd(TBaseType.rrw_teradata_del," "," "," "," "," "," ", ESqlStatementType.sstdelete); 109 addCmd(TBaseType.rrw_delete," "," "," "," "," "," ", ESqlStatementType.sstdelete); 110 addCmd(TBaseType.rrw_delete,"database"," "," "," "," "," ", ESqlStatementType.sstteradatadeletedatabase); 111 addCmd(TBaseType.rrw_delete,"user"," "," "," "," "," ", ESqlStatementType.sstteradatadeleteuser); 112 addCmd(TBaseType.rrw_describe," "," "," "," "," "," ", ESqlStatementType.sstteradatadescribe); 113 addCmd(TBaseType.rrw_teradata_diagnostic," "," "," "," "," "," ", ESqlStatementType.sstteradatadiagnostic); 114 addCmd(TBaseType.rrw_drop,"authorization"," "," "," "," "," ", ESqlStatementType.sstteradatadropauthorization); 115 addCmd(TBaseType.rrw_drop,"cast"," "," "," "," "," ", ESqlStatementType.sstteradatadropcast); 116 addCmd(TBaseType.rrw_drop,"constraint"," "," "," "," "," ", ESqlStatementType.sstteradatadropconstraint); 117 addCmd(TBaseType.rrw_drop,"database"," "," "," "," "," ", ESqlStatementType.sstteradatadropdatabase); 118 addCmd(TBaseType.rrw_drop,"error","table"," "," "," "," ", ESqlStatementType.sstdroptable); 119 addCmd(TBaseType.rrw_drop,"external","role"," "," "," "," ", ESqlStatementType.sstteradatadroprole); 120 addCmd(TBaseType.rrw_drop,"function"," "," "," "," "," ", ESqlStatementType.sstteradatadropfunction); 121 addCmd(TBaseType.rrw_drop,"hash","index"," "," "," "," ", ESqlStatementType.sstdropindex); 122 addCmd(TBaseType.rrw_drop,"index"," "," "," "," "," ", ESqlStatementType.sstdropindex); 123 addCmd(TBaseType.rrw_drop,"join","index"," "," "," "," ", ESqlStatementType.sstdropindex); 124 addCmd(TBaseType.rrw_drop,"macro"," "," "," "," "," ", ESqlStatementType.sstteradatadropmacro); 125 addCmd(TBaseType.rrw_drop,"ordering"," "," "," "," "," ", ESqlStatementType.sstteradatadropordering); 126 addCmd(TBaseType.rrw_drop,"procedure"," "," "," "," "," ", ESqlStatementType.sstteradatadropprocedure); 127 addCmd(TBaseType.rrw_drop,"profile"," "," "," "," "," ", ESqlStatementType.sstteradatadropprofile); 128 addCmd(TBaseType.rrw_drop,"replication","group"," "," "," "," ", ESqlStatementType.sstteradatadropreplicationgroup); 129 addCmd(TBaseType.rrw_drop,"role"," "," "," "," "," ", ESqlStatementType.sstteradatadroprole); 130 addCmd(TBaseType.rrw_drop,"specific","function"," "," "," "," ", ESqlStatementType.sstteradatadropfunction); 131 addCmd(TBaseType.rrw_drop,"stat"," "," "," "," "," ", ESqlStatementType.sstteradatadropstatistics); 132 addCmd(TBaseType.rrw_drop,"statistics"," "," "," "," "," ", ESqlStatementType.sstteradatadropstatistics); 133 addCmd(TBaseType.rrw_drop,"stats"," "," "," "," "," ", ESqlStatementType.sstteradatadropstatistics); 134 addCmd(TBaseType.rrw_drop,"table"," "," "," "," "," ", ESqlStatementType.sstdroptable); 135 addCmd(TBaseType.rrw_drop,"temporary","table"," "," "," "," ", ESqlStatementType.sstdroptable); 136 addCmd(TBaseType.rrw_drop,"transform"," "," "," "," "," ", ESqlStatementType.sstteradatadroptransform); 137 addCmd(TBaseType.rrw_drop,"trigger"," "," "," "," "," ", ESqlStatementType.sstteradatadroptrigger); 138 addCmd(TBaseType.rrw_drop,"type"," "," "," "," "," ", ESqlStatementType.sstteradatadroptype); 139 addCmd(TBaseType.rrw_drop,"unique","index"," "," "," "," ", ESqlStatementType.sstdropindex); 140 addCmd(TBaseType.rrw_drop,"user"," "," "," "," "," ", ESqlStatementType.sstteradatadropuser); 141 addCmd(TBaseType.rrw_drop,"view"," "," "," "," "," ", ESqlStatementType.sstdropview); 142 addCmd(TBaseType.rrw_drop,"zone"," "," "," "," "," ", ESqlStatementType.sstteradatadropzone); 143 addCmd(TBaseType.rrw_teradata_dump,"explain"," "," "," "," "," ", ESqlStatementType.sstteradatadumpexplain); 144 addCmd(TBaseType.rrw_teradata_echo," "," "," "," "," "," ", ESqlStatementType.sstteradataecho); 145 addCmd(TBaseType.rrw_end,"declare","section"," "," "," "," ", ESqlStatementType.sstteradataenddeclaresection); 146 addCmd(TBaseType.rrw_end,"logging"," "," "," "," "," ", ESqlStatementType.sstteradataendlogging); 147 addCmd(TBaseType.rrw_end,"query","logging"," "," "," "," ", ESqlStatementType.sstteradataendquerylogging); 148 addCmd(TBaseType.rrw_end,"transaction"," "," "," "," "," ", ESqlStatementType.sstteradataendtransaction); 149 addCmd(TBaseType.rrw_et," "," "," "," "," "," ", ESqlStatementType.sstteradataendtransaction); 150 addCmd(TBaseType.rrw_execute," "," "," "," "," "," ", ESqlStatementType.sstteradataexecute); 151 addCmd(TBaseType.rrw_exec," "," "," "," "," "," ", ESqlStatementType.sstteradataexecute); 152 addCmd(TBaseType.rrw_execute,"immediate"," "," "," "," "," ", ESqlStatementType.sstteradataexecuteimmediate); 153 addCmd(TBaseType.rrw_teradata_exit," "," "," "," "," "," ", ESqlStatementType.sstteradataExit); 154 addCmd(TBaseType.rrw_explain, " ", " ", " ", " ", " ", " ", ESqlStatementType.sstExplain); 155 addCmd(TBaseType.rrw_fetch," "," "," "," "," "," ", ESqlStatementType.sstteradatafetch); 156 addCmd(TBaseType.rrw_get,"crash"," "," "," "," "," ", ESqlStatementType.sstteradatagetcrash); 157 addCmd(TBaseType.rrw_get,"diagnostics"," "," "," "," "," ", ESqlStatementType.sstgetdiagnostics); 158 addCmd(TBaseType.rrw_teradata_give," "," "," "," "," "," ", ESqlStatementType.sstteradatagive); 159 addCmd(TBaseType.rrw_grant," "," "," "," "," "," ", ESqlStatementType.sstteradatagrant); 160 addCmd(TBaseType.rrw_teradata_help," "," "," "," "," "," ", ESqlStatementType.sstteradatahelp); 161 addCmd(TBaseType.rrw_include," "," "," "," "," "," ", ESqlStatementType.sstteradatainclude); 162 addCmd(TBaseType.rrw_teradata_ins," "," "," "," "," "," ", ESqlStatementType.sstinsert); 163 addCmd(TBaseType.rrw_insert," "," "," "," "," "," ", ESqlStatementType.sstinsert); 164 addCmd(TBaseType.rrw_insert,"explain"," "," "," "," "," ", ESqlStatementType.sstteradatainsertexplain); 165 addCmd(TBaseType.rrw_teradata_label," "," "," "," "," "," ", ESqlStatementType.sstteradatalabel); 166 addCmd(TBaseType.rrw_lock," "," "," "," "," "," ", ESqlStatementType.sstteradatalock); 167 addCmd(TBaseType.rrw_teradata_locking," "," "," "," "," "," ", ESqlStatementType.sstteradatalock); 168 addCmd(TBaseType.rrw_teradata_logon," "," "," "," "," "," ", ESqlStatementType.sstteradatalogon); 169 addCmd(TBaseType.rrw_merge," "," "," "," "," "," ", ESqlStatementType.sstmerge); 170 addCmd(TBaseType.rrw_teradata_modify,"database"," "," "," "," "," ", ESqlStatementType.sstteradatamodifydatabase); 171 addCmd(TBaseType.rrw_teradata_modify,"profile"," "," "," "," "," ", ESqlStatementType.sstteradatamodifyprofile); 172 addCmd(TBaseType.rrw_teradata_modify,"user"," "," "," "," "," ", ESqlStatementType.sstteradatamodifyuser); 173 addCmd(TBaseType.rrw_open," "," "," "," "," "," ", ESqlStatementType.sstteradataopen); 174 addCmd(TBaseType.rrw_teradata_position," "," "," "," "," "," ", ESqlStatementType.sstteradataposition); 175 addCmd(TBaseType.rrw_prepare," "," "," "," "," "," ", ESqlStatementType.sstteradataprepare); 176 addCmd(TBaseType.rrw_release,"lock"," "," "," "," "," ", ESqlStatementType.sstteradatareleaseLock); 177 addCmd(TBaseType.rrw_rename,"function"," "," "," "," "," ", ESqlStatementType.sstteradatarenamefunction); 178 addCmd(TBaseType.rrw_rename,"macro"," "," "," "," "," ", ESqlStatementType.sstteradatarenamemacro); 179 addCmd(TBaseType.rrw_rename,"procedure"," "," "," "," "," ", ESqlStatementType.sstteradatarenameprocedure); 180 addCmd(TBaseType.rrw_rename,"table"," "," "," "," "," ", ESqlStatementType.sstteradatarenametable); 181 addCmd(TBaseType.rrw_rename,"trigger"," "," "," "," "," ", ESqlStatementType.sstteradatarenametrigger); 182 addCmd(TBaseType.rrw_rename,"view"," "," "," "," "," ", ESqlStatementType.sstteradatarenameview); 183 addCmd(TBaseType.rrw_replace,"cast"," "," "," "," "," ", ESqlStatementType.sstteradatareplacecast); 184 addCmd(TBaseType.rrw_replace,"constructor","method"," "," "," "," ", ESqlStatementType.sstteradatareplacemethod); 185 addCmd(TBaseType.rrw_replace,"function"," "," "," "," "," ", ESqlStatementType.sstteradatareplacefunction); 186 addCmd(TBaseType.rrw_replace,"instance","method"," "," "," "," ", ESqlStatementType.sstteradatareplacemethod); 187 addCmd(TBaseType.rrw_replace,"macro"," "," "," "," "," ", ESqlStatementType.sstteradatareplacemacro); 188 addCmd(TBaseType.rrw_replace,"method"," "," "," "," "," ", ESqlStatementType.sstteradatareplacemethod); 189 addCmd(TBaseType.rrw_replace,"ordering"," "," "," "," "," ", ESqlStatementType.sstteradatareplaceordering); 190 addCmd(TBaseType.rrw_replace,"procedure"," "," "," "," "," ", ESqlStatementType.sstteradatareplaceprocedure); 191 addCmd(TBaseType.rrw_replace,"specific","method"," "," "," "," ", ESqlStatementType.sstteradatareplacemethod); 192 addCmd(TBaseType.rrw_replace,"transform"," "," "," "," "," ", ESqlStatementType.sstteradatareplacetransform); 193 addCmd(TBaseType.rrw_replace,"trigger"," "," "," "," "," ", ESqlStatementType.sstteradatacreatetrigger); 194 addCmd(TBaseType.rrw_replace,"view"," "," "," "," "," ", ESqlStatementType.sstteradatareplaceview); 195 addCmd(TBaseType.rrw_replace,"recursive","view"," "," "," "," ", ESqlStatementType.sstteradatareplaceview); 196 addCmd(TBaseType.rrw_teradata_restart,"index","analysis"," "," "," "," ", ESqlStatementType.sstteradatarestartindexanalysis); 197 addCmd(TBaseType.rrw_revoke," "," "," "," "," "," ", ESqlStatementType.sstteradatarevoke); 198 addCmd(TBaseType.rrw_rollback," "," "," "," "," "," ", ESqlStatementType.sstteradatarollback); 199 addCmd(TBaseType.rrw_teradata_sel," "," "," "," "," "," ", ESqlStatementType.sstselect); 200 addCmd(TBaseType.rrw_select," "," "," "," "," "," ", ESqlStatementType.sstselect); 201 addCmd(TBaseType.rrw_set,"role"," "," "," "," "," ", ESqlStatementType.sstteradatasetrole); 202 addCmd(TBaseType.rrw_set,"session"," "," "," "," "," ", ESqlStatementType.sstteradatasetsession); 203 addCmd(TBaseType.rrw_ss," "," "," "," "," "," ", ESqlStatementType.sstteradatasetsession); 204 addCmd(TBaseType.rrw_set,"time","zone"," "," "," "," ", ESqlStatementType.sstteradatasettimezone); 205 addCmd(TBaseType.rrw_show," "," "," "," "," "," ", ESqlStatementType.sstteradatashow); 206 addCmd(TBaseType.rrw_show,"constructor","method"," "," "," "," ", ESqlStatementType.sstteradatashowmethod); 207 addCmd(TBaseType.rrw_show,"function"," "," "," "," "," ", ESqlStatementType.sstteradatashowfunction); 208 addCmd(TBaseType.rrw_show,"hash","index"," "," "," "," ", ESqlStatementType.sstteradatashowindex); 209 addCmd(TBaseType.rrw_show,"instance","method"," "," "," "," ", ESqlStatementType.sstteradatashowmethod); 210 addCmd(TBaseType.rrw_show,"join","index"," "," "," "," ", ESqlStatementType.sstteradatashowindex); 211 addCmd(TBaseType.rrw_show,"macro"," "," "," "," "," ", ESqlStatementType.sstteradatashowmacro); 212 addCmd(TBaseType.rrw_show,"method"," "," "," "," "," ", ESqlStatementType.sstteradatashowmethod); 213 addCmd(TBaseType.rrw_show,"procedure"," "," "," "," "," ", ESqlStatementType.sstteradatashowprocedure); 214 addCmd(TBaseType.rrw_show,"replication","group"," "," "," "," ", ESqlStatementType.sstteradatashowreplicationgroup); 215 addCmd(TBaseType.rrw_show,"specific","function"," "," "," "," ", ESqlStatementType.sstteradatashowfunction); 216 addCmd(TBaseType.rrw_show,"specific","method"," "," "," "," ", ESqlStatementType.sstteradatashowmethod); 217 addCmd(TBaseType.rrw_show,"table "," "," "," "," "," ", ESqlStatementType.sstteradatashowtable); 218 addCmd(TBaseType.rrw_show,"temporary","table"," "," "," "," ", ESqlStatementType.sstteradatashowtable); 219 addCmd(TBaseType.rrw_show,"trigger"," "," "," "," "," ", ESqlStatementType.sstteradatashowtrigger); 220 addCmd(TBaseType.rrw_show,"type"," "," "," "," "," ", ESqlStatementType.sstteradatashowtype); 221 addCmd(TBaseType.rrw_show,"view"," "," "," "," "," ", ESqlStatementType.sstteradatashowview); 222 addCmd(TBaseType.rrw_teradata_upd," "," "," "," "," "," ", ESqlStatementType.sstupdate); 223 addCmd(TBaseType.rrw_update," "," "," "," "," "," ", ESqlStatementType.sstupdate); 224 addCmd(TBaseType.rrw_teradata_using," "," "," "," "," "," ", ESqlStatementType.sstteradatausing); 225 addCmd(TBaseType.rrw_teradata_wait," "," "," "," "," "," ", ESqlStatementType.sstteradatawait); 226 } 227 228 @Override 229 protected String getToken1Str(int token1) { 230 // Handle Teradata vendor-specific reserved words 231 switch (token1) { 232 case TBaseType.rrw_teradata_wait: 233 return "wait"; 234 case TBaseType.rrw_teradata_using: 235 return "using"; 236 case TBaseType.rrw_teradata_upd: 237 return "update"; 238 case TBaseType.rrw_teradata_sel: 239 return "select"; 240 case TBaseType.rrw_teradata_restart: 241 return "restart"; 242 case TBaseType.rrw_teradata_position: 243 return "position"; 244 case TBaseType.rrw_teradata_modify: 245 return "modify"; 246 case TBaseType.rrw_teradata_logon: 247 return "logon"; 248 case TBaseType.rrw_teradata_locking: 249 return "locking"; 250 case TBaseType.rrw_teradata_ins: 251 return "insert"; 252 case TBaseType.rrw_teradata_help: 253 return "help"; 254 case TBaseType.rrw_teradata_give: 255 return "give"; 256 case TBaseType.rrw_teradata_exit: 257 return "exit"; 258 case TBaseType.rrw_teradata_echo: 259 return "echo"; 260 case TBaseType.rrw_teradata_dump: 261 return "dump"; 262 case TBaseType.rrw_teradata_diagnostic: 263 return "diagnostic"; 264 case TBaseType.rrw_teradata_del: 265 return "delete"; 266 case TBaseType.rrw_teradata_cv: 267 return "create view"; 268 case TBaseType.rrw_teradata_collect: 269 return "collect"; 270 case TBaseType.rrw_teradata_cm: 271 return "create macro"; 272 case TBaseType.rrw_teradata_label: 273 return "label"; 274 default: 275 return null; 276 } 277 } 278 279 @Override 280 public TCustomSqlStatement issql(TSourceToken token, EFindSqlStateType state, TCustomSqlStatement currentStatement) { 281 TCustomSqlStatement ret = null; 282 if (token == null) return null; 283 284 int k; 285 boolean lcisnewsql; 286 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 287 288 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 289 290 if ( (token.tokencode == TBaseType.cmtdoublehyphen) 291 || (token.tokencode == TBaseType.cmtslashstar) 292 || (token.tokencode == TBaseType.lexspace) 293 || (token.tokencode == TBaseType.lexnewline) 294 || (token.tokentype == ETokenType.ttsemicolon) ) 295 { 296 return ret; 297 } 298 299 int lcpos = token.posinlist; 300 TSourceTokenList lcsourcetokenlist = token.container; 301 302 //subquery after semicolon || at first line 303 if ( (state == EFindSqlStateType.stnormal) && (token.tokentype == ETokenType.ttleftparenthesis) ) 304 { 305 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 306 if ( k >0 ) 307 { 308 ret = new TSelectSqlStatement(vendor); 309 }else{ 310 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_teradata_sel,1,"("); 311 if ( k >0 ) 312 { 313 ret = new TSelectSqlStatement(vendor); 314 } 315 } 316 317 return ret; 318 } 319 320 //cte 321 if ( (state == EFindSqlStateType.stnormal) && (token.tokencode == TBaseType.rrw_with) ) 322 { 323 ret = findcte(token); 324 if ( (ret != null) ) return ret; 325 } 326 327 // using 328 if ( (state == EFindSqlStateType.stnormal) && (token.tokencode == TBaseType.rrw_teradata_using) ){ 329 //return mapTeradataUsing(token); 330 return new TTeradataUsing(vendor); 331 } 332 333 if ( (state == EFindSqlStateType.stnormal) && 334 ((token.tokencode == TBaseType.rrw_lock)||(token.tokencode == TBaseType.rrw_teradata_locking)) ){ 335 return new TTeradataLock(vendor); 336 } 337 338 gnewsqlstatementtype = getStatementTypeForToken(token); 339 340 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 341 switch(gnewsqlstatementtype ) { // 342 case sstinvalid: 343 { 344 ret = null; 345 break; 346 } 347 case sstselect: 348 { 349 lcisnewsql = true; 350 351 if ( state != EFindSqlStateType.stnormal ) 352 { 353 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 354 if ( (lcprevsolidtoken != null) ) 355 { 356 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 357 lcisnewsql = false; //subqery 358 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 359 lcisnewsql = false; 360 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 361 lcisnewsql = false; 362 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 363 lcisnewsql = false; 364 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 365 lcisnewsql = false; 366 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 367 lcisnewsql = false; 368 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 369 { 370 if ( currentStatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 371 lcisnewsql = false; 372 if ( currentStatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 373 lcisnewsql = false; 374 if ( currentStatement.sqlstatementtype == ESqlStatementType.sstteradatareplaceview ) 375 lcisnewsql = false; 376 } 377 378 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 379 { 380 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 381 if ( (lcpprevsolidtoken != null) ) 382 { 383 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 384 lcisnewsql = false; 385 } 386 } 387 388 } 389 390 if ( (currentStatement != null) ) 391 { 392 if ( currentStatement.sqlstatementtype == ESqlStatementType.sstinsert ) 393 { 394 } 395 else if ( currentStatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 396 lcisnewsql = false; 397 } 398 } 399 400 } 401 402 if ( lcisnewsql ) 403 ret = new TSelectSqlStatement(vendor); 404 405 break; 406 407 } 408 case sstinsert: 409 { 410 lcisnewsql = true; 411 if ( state != EFindSqlStateType.stnormal ) 412 { 413 if ( (currentStatement != null) ) 414 { 415 // merge 416 if (currentStatement.sqlstatementtype == ESqlStatementType.sstmerge) 417 { 418 if (lcprevsolidtoken != null) 419 { 420 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 421 {lcisnewsql = false;} 422 } 423 } 424 425 426 427 if ( currentStatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger ) 428 { 429 if ( (lcprevsolidtoken != null) ) 430 { 431 if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 432 lcisnewsql = false; 433 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 434 lcisnewsql = false; 435 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"before") == 0 ) 436 lcisnewsql = false; 437 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 438 lcisnewsql = false; 439 } 440 } 441 442 443 } 444 } 445 446 if ( lcisnewsql ) 447 { 448 ret = new TInsertSqlStatement(vendor); 449 ret.dummytag = 1; // select stmt in insert is permitted 450 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 451 { 452 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 453 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 454 // if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 455 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 456 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ) break; 457 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 458 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 459 } // for ( 460 if ( k > lcsourcetokenlist.size() - 1 ) 461 k = lcsourcetokenlist.size() - 1; 462 463 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 464 { 465 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 466 } // for ( 467 468 } 469 470 break; 471 } 472 case sstupdate: 473 { 474 lcisnewsql = true; 475 if ( state != EFindSqlStateType.stnormal ) 476 { 477 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 478 if ( (lcprevsolidtoken != null) ) 479 { // 480 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 481 lcisnewsql = false; 482 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 483 lcisnewsql = false; 484 } 485 486 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 487 if ( TBaseType.assigned(lcnextsolidtoken) ) 488 { 489 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 490 { 491 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 492 if ( k == 0 ) lcisnewsql = false; 493 } 494 } 495 496 497 if ( TBaseType.assigned(currentStatement) ) 498 { 499 // merge 500 if (currentStatement.sqlstatementtype == ESqlStatementType.sstmerge) 501 { 502 if (lcprevsolidtoken != null) 503 { 504 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 505 {lcisnewsql = false;} 506 } 507 } 508 509 510 if ( currentStatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger ) 511 { 512 if ( TBaseType.assigned(lcprevsolidtoken) ) 513 { 514 if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 515 lcisnewsql = false; 516 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 517 lcisnewsql = false; 518 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"before") == 0 ) 519 lcisnewsql = false; 520 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 521 lcisnewsql = false; 522 } 523 } 524 525 } 526 } 527 528 if ( lcisnewsql ) 529 { 530 ret = new TUpdateSqlStatement(vendor); 531 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 532 } 533 534 break; 535 } 536 case sstdelete: 537 { 538 lcisnewsql = true; 539 540 if ( state != EFindSqlStateType.stnormal ) 541 { 542 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 543 if ( TBaseType.assigned(lcprevsolidtoken) ) 544 { 545 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 546 lcisnewsql = false; 547 } 548 549 if ( TBaseType.assigned(currentStatement) ) 550 { 551 // merge 552 if (currentStatement.sqlstatementtype == ESqlStatementType.sstmerge) 553 { 554 if (lcprevsolidtoken != null) 555 { 556 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 557 {lcisnewsql = false;} 558 } 559 } 560 561 562 if ( currentStatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger ) 563 { 564 if ( TBaseType.assigned(lcprevsolidtoken) ) 565 { 566 if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 567 lcisnewsql = false; 568 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 569 lcisnewsql = false; 570 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"before") == 0 ) 571 lcisnewsql = false; 572 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 573 lcisnewsql = false; 574 } 575 } 576 577 } 578 } 579 580 if ( lcisnewsql ) 581 ret = new TDeleteSqlStatement(vendor); 582 583 break; 584 } 585 case sstcreatetable: 586 { 587 ret = new TCreateTableSqlStatement(vendor); 588 break; 589 } 590 case sstaltertable: 591 case sstteradataaltertable: 592 { 593 ret = new TAlterTableStatement(vendor); 594 break; 595 } 596 case sstteradatafetch: 597 { 598 ret = new TMssqlFetch(vendor); 599 break; 600 } 601 case sstcreateprocedure : 602 case sstteradatareplaceprocedure: 603 { 604 ret = new TCreateProcedureStmt(vendor); 605 break; 606 } 607 case sstteradataalterprocedure: 608 ret = new TAlterProcedureStmt(vendor); 609 break; 610 case sstteradatacreatefunction : 611 case sstteradatareplacefunction: 612 { 613 ret = new TTeradataCreateFunction(vendor); 614 break; 615 } 616 case sstteradataalterfunction: 617 ret = new TAlterFunctionStmt(vendor); 618 break; 619 case sstteradatacreatetrigger : 620 case sstteradataaltertrigger: 621 case sstteradatareplacetrigger: 622 { 623 ret = new TCreateTriggerStmt(vendor); 624 break; 625 } 626 case sstteradatagrant: 627 { 628 lcisnewsql = true; 629 // prev tokentext can't be with 630 if ( state != EFindSqlStateType.stnormal ) 631 { 632 if ( TBaseType.assigned(lcprevsolidtoken) ) 633 { 634 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 635 { 636 ret = null; 637 lcisnewsql = false; 638 } 639 } 640 } 641 if ( lcisnewsql ) 642 { 643 ret = new TTeradataGrant(vendor); 644 ret.sqlstatementtype = gnewsqlstatementtype; 645 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 646 { 647 lctoken = lcsourcetokenlist.get(k); 648 if (lctoken.isnonsolidtoken() ) continue; 649 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 650 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 651 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 652 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 653 } 654 } 655 break; 656 } 657 case sstdropindex: 658 { 659 ret = new TDropIndexSqlStatement(vendor); 660 break; 661 } 662 case sstdroptable: 663 { 664 ret = new TDropTableSqlStatement(vendor); 665 break; 666 } 667 case sstdropview: 668 { 669 ret = new TDropViewSqlStatement(vendor); 670 break; 671 } 672 case sstteradatadropprocedure: 673 ret = new TDropProcedureStmt(vendor); 674 break; 675 case sstteradatadropauthorization: 676 case sstteradatadropcast: 677 case sstteradatadropdatabase: 678 case sstteradatadropfunction: 679 case sstteradatadroptrigger: 680 case sstteradatadropordering: 681 case sstteradatadropprofile: 682 case sstteradatadropreplicationgroup: 683 case sstteradatadroprole: 684 case sstteradatadroptransform: 685 case sstteradatadroptype: 686 case sstteradatadropuser: 687 case sstteradatadropzone: 688 { 689 ret = new TTeradataDropDbObject(EDbVendor.dbvteradata); 690 ret.sqlstatementtype = gnewsqlstatementtype; 691 break; 692 } 693 case sstteradatadropmacro: 694 ret = new TDropMacro(EDbVendor.dbvteradata); 695 break; 696 case sstteradatadropconstraint: 697 ret = new TDropConstraintStmt(EDbVendor.dbvteradata); 698 break; 699 case sstteradatabegintransaction: 700 { 701 ret = new TBeginTran(vendor); 702 break; 703 } 704 case sstteradataendtransaction: 705 { 706 ret = new TEndTran(vendor); 707 break; 708 } 709 case sstteradatacommit: 710 { 711 ret = new TTeradataCommit(vendor); 712 break; 713 } 714 case sstteradatarollback: 715 { 716 ret = new TTeradataRollback(vendor); 717 break; 718 } 719 case sstcreateindex: 720 { 721 ret = new TCreateIndexSqlStatement(vendor); 722 break; 723 } 724 case sstmerge: 725 { 726 lcisnewsql = true; 727 728 if (state != EFindSqlStateType.stnormal) 729 { 730 731 if (currentStatement != null) 732 { 733 // merge union, merge join 734 if (currentStatement.sqlstatementtype == ESqlStatementType.sstselect) 735 { 736 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 737 if (lcnextsolidtoken != null) 738 { 739 if ((lcnextsolidtoken.tokencode == TBaseType.rrw_union) || (lcnextsolidtoken.tokencode == TBaseType.rrw_join)) 740 { 741 lcisnewsql = false; 742 } 743 } 744 } 745 746 } 747 } 748 749 if (lcisnewsql) 750 { 751 ret = new TMergeSqlStatement(vendor); 752 ret.sqlstatementtype = gnewsqlstatementtype; 753 } 754 755 break; 756 } 757 case sstteradataexecute: 758 { 759 lcisnewsql = true; 760 // prev tokentext can't be with 761 if ( state != EFindSqlStateType.stnormal ) 762 { 763 if ( TBaseType.assigned(currentStatement) ) 764 { 765 if ( currentStatement.sqlstatementtype == ESqlStatementType.sstinsert ) 766 { 767 if ( currentStatement.dummytag == 1 ) 768 { 769 lcisnewsql = false; 770 currentStatement.dummytag = 0; // no select is permited after it 771 } 772 } 773 774 if ( currentStatement.sqlstatementtype == ESqlStatementType.sstteradatagrant ) 775 { 776 if ( TBaseType.assigned(lcprevsolidtoken) ) 777 { 778 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 779 lcisnewsql = false; 780 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 781 lcisnewsql = false; 782 } 783 } 784 785 if ( 786 (currentStatement.sqlstatementtype == ESqlStatementType.sstcreateprocedure) 787 ||( currentStatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger) 788 ||( currentStatement.sqlstatementtype == ESqlStatementType.sstteradatacreatefunction) 789 ||(currentStatement.sqlstatementtype == ESqlStatementType.sstteradataalterprocedure) 790 ||( currentStatement.sqlstatementtype == ESqlStatementType.sstteradataaltertrigger) 791 ||( currentStatement.sqlstatementtype == ESqlStatementType.sstteradataalterfunction) 792 ) 793 { 794 if ( TBaseType.assigned(lcprevsolidtoken) ) 795 { 796 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 797 lcisnewsql = false; 798 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 799 lcisnewsql = false; 800 } 801 } 802 } 803 } 804 if ( lcisnewsql ) 805 { 806 ret = new TTeradataExecute(vendor); 807 } 808 break; 809 } 810 case sstteradatasetsession: 811 { 812 ret = new TTeradataSetSession(vendor); 813 break; 814 } 815 case sstteradatadatabase: 816 if (token.isFirstTokenOfLine()){ 817 ret = new TTeradataSetSession(vendor); 818 } 819 820 break; 821 case sstteradatasettimezone: 822 { 823 ret = new TTeradataSetTimezone(vendor); 824 break; 825 } 826 case sstteradatasetrole: 827 { 828 ret = new TTeradataSetRole(vendor); 829 break; 830 } 831 case sstteradataendlogging: 832 { 833 ret = new TTeradataEndLogging(vendor); 834 break; 835 } 836 case sstteradatabeginlogging: 837 { 838 ret = new TTeradataBeginLogging(vendor); 839 break; 840 } 841 case sstteradataabort: 842 { 843 ret = new TTeradataAbort(vendor); 844 break; 845 } 846 case sstteradatareplaceview: 847 case sstcreateview: 848 { 849 ret = new TCreateViewSqlStatement(vendor); 850 ret.sqlstatementtype = ESqlStatementType.sstcreateview; 851 break; 852 } 853 case sstteradatacollectstatistics: 854 { 855 ret = new TTeradataCollectStatistics(vendor); 856 break; 857 } 858 case sstteradatagive: 859 { 860 ret = new TTeradataGive(vendor); 861 break; 862 } 863 case sstteradatacall: 864 ret = new TCallStatement(vendor); 865 break; 866 case sstteradatacreatemacro: 867 case sstteradatareplacemacro: 868 ret = new TCreateMacro(vendor); 869 break; 870 case sstteradatarenametable: 871 ret = new TRenameStmt(vendor); 872 break; 873 case sstteradatacomment: 874 ret = new TCommentOnSqlStmt(vendor); 875 break; 876 case sstteradatacheckworkload: 877 ret = new TCheckWorkload(vendor); 878 break; 879 case sstgetdiagnostics: 880 ret = new TGetDiagStmt(vendor); 881 break; 882 case sstteradatacreaterole: 883 ret = new TCreateRoleStmt(vendor); 884 break; 885 case sstteradatarevoke: 886 ret = new TRevokeStmt(vendor); 887 break; 888 case sstteradataalterzone: 889 ret = new TAlterZoneStmt(vendor); 890 break; 891 case sstcreatezone: 892 ret = new TCreateZoneStmt(vendor); 893 break; 894 case sstteradataalterconstraint: 895 ret = new TAlterConstraintStmt(vendor); 896 break; 897 case sstExplain: 898 ret = new TExplainPlan(vendor); 899 break; 900 case sstteradatareleaseLock: 901 ret = new TTeradataReleaseLockStmt(vendor); 902 break; 903 default: 904 { 905 ret = new TTeradataNotImplement(vendor); 906 ret.sqlstatementtype = gnewsqlstatementtype; 907 break; 908 } 909 } // case 910 911 return ret; 912 } 913 914}