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