001package gudusoft.gsqlparser.sqlcmds; 002 003import gudusoft.gsqlparser.*; 004import gudusoft.gsqlparser.stmt.*; 005import gudusoft.gsqlparser.stmt.oracle.*; 006import gudusoft.gsqlparser.stmt.vertica.*; 007 008/** 009 * Vertica SQL command resolver. 010 * Contains all Vertica-specific SQL command recognition logic. 011 * 012 * @since 3.1.0.9 013 */ 014public class TSqlCmdsVertica extends AbstractSqlCmds { 015 016 // Temporary field for statement type during issql processing 017 private ESqlStatementType gnewsqlstatementtype = ESqlStatementType.sstinvalid; 018 019 public TSqlCmdsVertica() { 020 super(EDbVendor.dbvvertica); 021 } 022 023 @Override 024 protected void initializeCommands() { 025 // Vertica commands 026 addCmd(TBaseType.rrw_vertica_activate, "directed", "query", ESqlStatementType.sstActivateDirectedQuery); 027 028 addCmd(TBaseType.rrw_alter, "access", "policy", ESqlStatementType.sstAlterAccessPolicy); 029 addCmd(TBaseType.rrw_alter, "authentication", ESqlStatementType.sstAlterAuthentication); 030 addCmd(TBaseType.rrw_alter, "database", ESqlStatementType.sstalterdatabase); 031 addCmd(TBaseType.rrw_alter, "fault", "group", ESqlStatementType.sstAlterFaultGroup); 032 addCmd(TBaseType.rrw_alter, "function", ESqlStatementType.sstalterfunction); 033 addCmd(TBaseType.rrw_alter, "hcatalog", "schema", ESqlStatementType.sstAlterHCatalogSchema); 034 addCmd(TBaseType.rrw_alter, "library", ESqlStatementType.sstAlterLibrary); 035 addCmd(TBaseType.rrw_alter, "load", "balance", "group", ESqlStatementType.sstAlterLoadBalanceGroup); 036 addCmd(TBaseType.rrw_alter, "model", ESqlStatementType.sstAlterModel); 037 addCmd(TBaseType.rrw_alter, "node", ESqlStatementType.sstAlterNode); 038 addCmd(TBaseType.rrw_alter, "notifier", ESqlStatementType.sstAlterNotifier); 039 addCmd(TBaseType.rrw_alter, "network", "address", ESqlStatementType.sstAlterNetworkAddress); 040 addCmd(TBaseType.rrw_alter, "network", "interface", ESqlStatementType.sstAlterNetworkInterface); 041 addCmd(TBaseType.rrw_alter, "routing", "rule", ESqlStatementType.sstAlterRoutingRule); 042 addCmd(TBaseType.rrw_alter, "projection", ESqlStatementType.sstAlterProjection); 043 addCmd(TBaseType.rrw_alter, "profile", ESqlStatementType.sstAlterProfile); 044 addCmd(TBaseType.rrw_alter, "resource", "pool", ESqlStatementType.sstAlterResourcePool); 045 addCmd(TBaseType.rrw_alter, "role", ESqlStatementType.sstAlterRole); 046 addCmd(TBaseType.rrw_alter, "schema", ESqlStatementType.sstAlterSchema); 047 addCmd(TBaseType.rrw_alter, "sequence", ESqlStatementType.sstaltersequence); 048 addCmd(TBaseType.rrw_alter, "session", ESqlStatementType.sstaltersession); 049 addCmd(TBaseType.rrw_alter, "subnet", ESqlStatementType.sstAlterSubnet); 050 addCmd(TBaseType.rrw_alter, "table", ESqlStatementType.sstaltertable); 051 addCmd(TBaseType.rrw_alter, "user", ESqlStatementType.sstalteruser); 052 addCmd(TBaseType.rrw_alter, "view", ESqlStatementType.sstalterview); 053 054 addCmd(TBaseType.rrw_begin, ESqlStatementType.sstBegin); 055 addCmd(TBaseType.rrw_call, ESqlStatementType.sstcall); 056 057 addCmd(TBaseType.rrw_comment, "on", ESqlStatementType.sstCommentOn); 058 addCmd(TBaseType.rrw_commit, ESqlStatementType.sstcommit); 059 addCmd(TBaseType.rrw_connect, "to", ESqlStatementType.sstconnect); 060 addCmd(TBaseType.rrw_vertica_copy, ESqlStatementType.sstCopy); 061 062 addCmd(TBaseType.rrw_create, "access", "policy", ESqlStatementType.sstCreateAccessPolicy); 063 addCmd(TBaseType.rrw_create, "aggregate", "function", ESqlStatementType.sstcreatefunction); 064 addCmd(TBaseType.rrw_create, "analytic", "function", ESqlStatementType.sstcreatefunction); 065 addCmd(TBaseType.rrw_create, "authentication", ESqlStatementType.sstCreateAuthentication); 066 addCmd(TBaseType.rrw_create, "directed", "query", ESqlStatementType.sstCreateDirectedQuery); 067 addCmd(TBaseType.rrw_create, "external", "table", ESqlStatementType.sstcreatetable); 068 addCmd(TBaseType.rrw_create, "fault", "group", ESqlStatementType.sstCreateFaultGroup); 069 addCmd(TBaseType.rrw_create, "filter", ESqlStatementType.sstcreatefunction); 070 addCmd(TBaseType.rrw_create, "flex", "table", ESqlStatementType.sstcreatetable); 071 addCmd(TBaseType.rrw_create, "flex", "external", "table", ESqlStatementType.sstcreatetable); 072 addCmd(TBaseType.rrw_create, "flex", "local", "temp", "table", ESqlStatementType.sstcreatetable); 073 addCmd(TBaseType.rrw_create, "flex", "local", "temporary", "table", ESqlStatementType.sstcreatetable); 074 addCmd(TBaseType.rrw_create, "flexible", "table", ESqlStatementType.sstcreatetable); 075 addCmd(TBaseType.rrw_create, "flexible", "external", "table", ESqlStatementType.sstcreatetable); 076 addCmd(TBaseType.rrw_create, "flexible", "local", "temp", "table", ESqlStatementType.sstcreatetable); 077 addCmd(TBaseType.rrw_create, "flexible", "local", "temporary", "table", ESqlStatementType.sstcreatetable); 078 079 addCmd(TBaseType.rrw_create, "function", ESqlStatementType.sstcreatefunction); 080 addCmd(TBaseType.rrw_create, "global", "temp", "table", ESqlStatementType.sstcreatetable); 081 addCmd(TBaseType.rrw_create, "global", "temporary", "table", ESqlStatementType.sstcreatetable); 082 addCmd(TBaseType.rrw_create, "hcatalog", "schema", ESqlStatementType.sstCreateHCatalogSchema); 083 addCmd(TBaseType.rrw_create, "library", ESqlStatementType.sstCreateLibrary); 084 addCmd(TBaseType.rrw_create, "load", "balance", "group", ESqlStatementType.sstCreateLoadBalanceGroup); 085 addCmd(TBaseType.rrw_create, "local", "temp", "table", ESqlStatementType.sstcreatetable); 086 addCmd(TBaseType.rrw_create, "local", "temp", "view", ESqlStatementType.sstcreateview); 087 addCmd(TBaseType.rrw_create, "local", "temporary", "table", ESqlStatementType.sstcreatetable); 088 addCmd(TBaseType.rrw_create, "local", "temporary", "view", ESqlStatementType.sstcreateview); 089 addCmd(TBaseType.rrw_create, "location", ESqlStatementType.sstCreateLocation); 090 addCmd(TBaseType.rrw_create, "managed", "external", "table", ESqlStatementType.sstcreatetable); 091 addCmd(TBaseType.rrw_create, "network", "address", ESqlStatementType.sstCreateNetworkAddress); 092 addCmd(TBaseType.rrw_create, "network", "interface", ESqlStatementType.sstCreateNetworkInterface); 093 addCmd(TBaseType.rrw_create, "notifier", ESqlStatementType.sstCreateNotifier); 094 addCmd(TBaseType.rrw_create, "routing", "rule", ESqlStatementType.sstCreateRoutingRule); 095 addCmd(TBaseType.rrw_create, "or", "replace", "aggregate", "function", ESqlStatementType.sstcreatefunction); 096 addCmd(TBaseType.rrw_create, "or", "replace", "function", ESqlStatementType.sstcreatefunction); 097 addCmd(TBaseType.rrw_create, "or", "replace", "library", ESqlStatementType.sstCreateLibrary); 098 addCmd(TBaseType.rrw_create, "or", "replace", "local", "temp", "view", ESqlStatementType.sstcreateview); 099 addCmd(TBaseType.rrw_create, "or", "replace", "local", "temporary", "view", ESqlStatementType.sstcreateview); 100 addCmd(TBaseType.rrw_create, "or", "replace", "view", ESqlStatementType.sstcreateview); 101 addCmd(TBaseType.rrw_create, "or", "replace", "procedure", ESqlStatementType.sstcreateprocedure); 102 103 addCmd(TBaseType.rrw_create, "parser", ESqlStatementType.sstcreatefunction); 104 addCmd(TBaseType.rrw_create, "procedure", ESqlStatementType.sstcreateprocedure); 105 addCmd(TBaseType.rrw_create, "profile", ESqlStatementType.sstCreateProfile); 106 addCmd(TBaseType.rrw_create, "projection", ESqlStatementType.sstCreateProjection); 107 addCmd(TBaseType.rrw_create, "resource", "pool", ESqlStatementType.sstCreateResourcePool); 108 addCmd(TBaseType.rrw_create, "role", ESqlStatementType.sstcreaterole); 109 addCmd(TBaseType.rrw_create, "schema", ESqlStatementType.sstcreateschema); 110 addCmd(TBaseType.rrw_create, "sequence", ESqlStatementType.sstcreatesequence); 111 addCmd(TBaseType.rrw_create, "source", ESqlStatementType.sstcreatefunction); 112 addCmd(TBaseType.rrw_create, "subnet", ESqlStatementType.sstCreateSubnet); 113 114 addCmd(TBaseType.rrw_create, "table", ESqlStatementType.sstcreatetable); 115 addCmd(TBaseType.rrw_create, "temp", "table", ESqlStatementType.sstcreatetable); 116 addCmd(TBaseType.rrw_create, "temporary", "table", ESqlStatementType.sstcreatetable); 117 addCmd(TBaseType.rrw_create, "text", "index", ESqlStatementType.sstcreateindex); 118 addCmd(TBaseType.rrw_create, "transform", "function", ESqlStatementType.sstcreatefunction); 119 addCmd(TBaseType.rrw_create, "user", ESqlStatementType.sstcreateuser); 120 addCmd(TBaseType.rrw_create, "view", ESqlStatementType.sstcreateview); 121 122 addCmd(TBaseType.rrw_vertica_deactivate, "directed", "query", ESqlStatementType.sstDeActivateDirectedQuery); 123 124 addCmd(TBaseType.rrw_delete, ESqlStatementType.sstdelete); 125 addCmd(TBaseType.rrw_disconnect, ESqlStatementType.sstDisconnect); 126 127 addCmd(TBaseType.rrw_drop, "directed", "query", ESqlStatementType.sstDeActivateDirectedQuery); 128 addCmd(TBaseType.rrw_drop, "access", "policy", ESqlStatementType.sstDropAccessPolicy); 129 addCmd(TBaseType.rrw_drop, "aggregate", "function", ESqlStatementType.sstDropAggregateFunction); 130 addCmd(TBaseType.rrw_drop, "analytic", "function", ESqlStatementType.sstDropAnalyticFunction); 131 addCmd(TBaseType.rrw_drop, "authentication", ESqlStatementType.sstDropAuthentication); 132 133 addCmd(TBaseType.rrw_drop, "fault", "group", ESqlStatementType.sstDropFaultGroup); 134 addCmd(TBaseType.rrw_drop, "filter", ESqlStatementType.sstDropFilter); 135 136 addCmd(TBaseType.rrw_drop, "function", ESqlStatementType.sstdropfunction); 137 addCmd(TBaseType.rrw_drop, "library", ESqlStatementType.sstDropLibrary); 138 addCmd(TBaseType.rrw_drop, "load", "balance", "group", ESqlStatementType.sstDropLoadBalanceGroup); 139 addCmd(TBaseType.rrw_drop, "model", ESqlStatementType.sstDropModel); 140 addCmd(TBaseType.rrw_drop, "network", "address", ESqlStatementType.sstDropNetworkAddress); 141 addCmd(TBaseType.rrw_drop, "network", "interface", ESqlStatementType.sstDropNetworkInterface); 142 addCmd(TBaseType.rrw_drop, "notifier", ESqlStatementType.sstDropNotifier); 143 addCmd(TBaseType.rrw_drop, "parser", ESqlStatementType.sstDropParser); 144 addCmd(TBaseType.rrw_drop, "routing", "rule", ESqlStatementType.sstDropRoutingRule); 145 addCmd(TBaseType.rrw_drop, "source", ESqlStatementType.sstDropSource); 146 addCmd(TBaseType.rrw_drop, "procedure", ESqlStatementType.sstdropprocedure); 147 addCmd(TBaseType.rrw_drop, "profile", ESqlStatementType.sstDropProfile); 148 addCmd(TBaseType.rrw_drop, "projection", ESqlStatementType.sstDropProjection); 149 addCmd(TBaseType.rrw_drop, "resource", "pool", ESqlStatementType.sstDropResourcePool); 150 addCmd(TBaseType.rrw_drop, "role", ESqlStatementType.sstdroprole); 151 addCmd(TBaseType.rrw_drop, "schema", ESqlStatementType.sstdropschema); 152 addCmd(TBaseType.rrw_drop, "sequence", ESqlStatementType.sstdropsequence); 153 addCmd(TBaseType.rrw_drop, "subnet", ESqlStatementType.sstDropSubnet); 154 addCmd(TBaseType.rrw_drop, "table", ESqlStatementType.sstdroptable); 155 addCmd(TBaseType.rrw_drop, "text", "index", ESqlStatementType.sstDropTextIndex); 156 addCmd(TBaseType.rrw_drop, "transform", "function", ESqlStatementType.sstDropTransformFunction); 157 addCmd(TBaseType.rrw_drop, "user", ESqlStatementType.sstdropuser); 158 addCmd(TBaseType.rrw_drop, "view", ESqlStatementType.sstdropview); 159 160 addCmd(TBaseType.rrw_end, ESqlStatementType.sstEnd); 161 addCmd(TBaseType.rrw_explain, ESqlStatementType.sstExplain); 162 addCmd(TBaseType.rrw_vertica_export, "to", "vertica", ESqlStatementType.sstExportToVertica); 163 addCmd(TBaseType.rrw_vertica_export, "to", "parquet", ESqlStatementType.sstExportToParquet); 164 addCmd(TBaseType.rrw_save, "query", ESqlStatementType.sstSaveQuery); 165 addCmd(TBaseType.rrw_grant, ESqlStatementType.sstGrant); 166 addCmd(TBaseType.rrw_insert, ESqlStatementType.sstinsert); 167 addCmd(TBaseType.rrw_merge, ESqlStatementType.sstmerge); 168 addCmd(TBaseType.rrw_vertica_profile, ESqlStatementType.sstProfile); 169 addCmd(TBaseType.rrw_release, ESqlStatementType.sstReleaseSavepoint); 170 addCmd(TBaseType.rrw_revoke, ESqlStatementType.sstRevoke); 171 addCmd(TBaseType.rrw_rollback, ESqlStatementType.sstrollback); 172 addCmd(TBaseType.rrw_savepoint, ESqlStatementType.sstsavepoint); 173 addCmd(TBaseType.rrw_select, ESqlStatementType.sstselect); 174 addCmd(TBaseType.rrw_set, "datestyle", "to", ESqlStatementType.sstset); 175 addCmd(TBaseType.rrw_set, "escape_string_warning", "to", ESqlStatementType.sstset); 176 addCmd(TBaseType.rrw_set, "intervalstyle", "to", ESqlStatementType.sstset); 177 addCmd(TBaseType.rrw_set, "locale", ESqlStatementType.sstset); 178 addCmd(TBaseType.rrw_set, "role", ESqlStatementType.sstset); 179 addCmd(TBaseType.rrw_set, "search_path", ESqlStatementType.sstset); 180 addCmd(TBaseType.rrw_set, "session", ESqlStatementType.sstset); 181 addCmd(TBaseType.rrw_set, "standard_conforming_strings", ESqlStatementType.sstset); 182 addCmd(TBaseType.rrw_set, "time", "zone", ESqlStatementType.sstset); 183 addCmd(TBaseType.rrw_show, ESqlStatementType.sstShow); 184 addCmd(TBaseType.rrw_start, ESqlStatementType.sstStartTransaction); 185 addCmd(TBaseType.rrw_truncate, "table", ESqlStatementType.sstTruncate); 186 addCmd(TBaseType.rrw_update, ESqlStatementType.sstupdate); 187 } 188 189 @Override 190 public TCustomSqlStatement issql(TSourceToken token, EFindSqlStateType state, TCustomSqlStatement currentStatement) { 191 TCustomSqlStatement ret = null; 192 193 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 194 195 if ((token.tokencode == TBaseType.cmtdoublehyphen) 196 || (token.tokencode == TBaseType.cmtslashstar) 197 || (token.tokencode == TBaseType.lexspace) 198 || (token.tokencode == TBaseType.lexnewline) 199 || (token.tokentype == ETokenType.ttsemicolon)) { 200 return null; 201 } 202 203 int lcpos = token.posinlist; 204 TSourceTokenList lcsourcetokenlist = token.container; 205 TCustomSqlStatement lccurrentsqlstatement = currentStatement; 206 207 //subquery after semicolon or at first line 208 if ((state == EFindSqlStateType.stnormal) && (token.tokentype == ETokenType.ttleftparenthesis)) { 209 int k = lcsourcetokenlist.solidtokenafterpos(lcpos, TBaseType.rrw_select, 1, "("); 210 if (k > 0) { 211 ret = new TSelectSqlStatement(this.vendor); 212 } 213 214 return ret; 215 } 216 217 //cte 218 if ((state == EFindSqlStateType.stnormal) && (token.tokencode == TBaseType.rrw_with)) { 219 ret = findcte(token); 220 if ((ret != null)) return ret; 221 } 222 223 // GET DIRECTED QUERY: GET lexes as an identifier-type keyword, so the 224 // keyword-first command match in finddbcmd cannot recognize it. 225 if ((state == EFindSqlStateType.stnormal) && (token.tokencode == TBaseType.rrw_get)) { 226 TSourceToken t2 = token.nextSolidToken(); 227 if ((t2 != null) && t2.toString().equalsIgnoreCase("directed")) { 228 TSourceToken t3 = t2.nextSolidToken(); 229 if ((t3 != null) && t3.toString().equalsIgnoreCase("query")) { 230 ret = new TUnknownSqlStatement(this.vendor); 231 ret.sqlstatementtype = ESqlStatementType.sstGetDirectedQuery; 232 gnewsqlstatementtype = ESqlStatementType.sstGetDirectedQuery; 233 return ret; 234 } 235 } 236 } 237 238 gnewsqlstatementtype = getStatementTypeForToken(token); 239 240 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 241 switch (gnewsqlstatementtype) { 242 case sstinvalid: { 243 ret = null; 244 245 if (state == EFindSqlStateType.stnormal) { 246 if (token.tokencode == TBaseType.label_begin) { 247 ret = new TCommonBlock(this.vendor); 248 gnewsqlstatementtype = ret.sqlstatementtype; 249 } else if (token.tokencode == TBaseType.rrw_declare) { 250 ret = new TCommonBlock(this.vendor); 251 gnewsqlstatementtype = ret.sqlstatementtype; 252 } else if (token.tokencode == TBaseType.rrw_begin) { 253 ret = new TCommonBlock(this.vendor); 254 gnewsqlstatementtype = ret.sqlstatementtype; 255 } else if (token.tokencode == TBaseType.rrw_procedure) { 256 ret = new TPlsqlCreateProcedure(this.vendor); 257 gnewsqlstatementtype = ret.sqlstatementtype; 258 } else if (token.tokencode == TBaseType.rrw_function) { 259 ret = new TPlsqlCreateFunction(this.vendor); 260 gnewsqlstatementtype = ret.sqlstatementtype; 261 } else if (token.tokencode == TBaseType.rrw_package) { 262 ret = new TPlsqlCreatePackage(this.vendor); 263 gnewsqlstatementtype = ret.sqlstatementtype; 264 } 265 } 266 break; 267 } 268 case sstselect: { 269 boolean lcisnewsql = true; 270 271 if (state != EFindSqlStateType.stnormal) { 272 if ((lcprevsolidtoken != null)) { 273 if (lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 274 lcisnewsql = false; //subquery 275 else if (lcprevsolidtoken.tokencode == TBaseType.rrw_union) 276 lcisnewsql = false; 277 else if (lcprevsolidtoken.tokencode == TBaseType.rrw_intersect) 278 lcisnewsql = false; 279 else if (lcprevsolidtoken.tokencode == TBaseType.rrw_minus) 280 lcisnewsql = false; 281 else if (lcprevsolidtoken.tokencode == TBaseType.rrw_except) 282 lcisnewsql = false; 283 else if (lcprevsolidtoken.tokencode == TBaseType.rrw_return) 284 lcisnewsql = false; 285 else if (lcprevsolidtoken.tokencode == TBaseType.rrw_as) { 286 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable) 287 lcisnewsql = false; 288 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview) 289 lcisnewsql = false; 290 } 291 292 if (lcisnewsql && (lcprevsolidtoken.tokencode == TBaseType.rrw_all)) { 293 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 294 if ((lcpprevsolidtoken != null)) { 295 if (lcpprevsolidtoken.tokencode == TBaseType.rrw_union) 296 lcisnewsql = false; 297 } 298 } 299 300 } 301 302 303 if ((lccurrentsqlstatement != null)) { 304 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert) 305 lcisnewsql = false; 306 } 307 308 } 309 310 if (lcisnewsql) 311 ret = new TSelectSqlStatement(this.vendor); 312 313 break; 314 } 315 case sstinsert: { 316 boolean lcisnewsql = true; 317 if (state != EFindSqlStateType.stnormal) { 318 if ((lccurrentsqlstatement != null)) { 319 320 } 321 } 322 323 if (lcisnewsql) 324 ret = new TInsertSqlStatement(this.vendor); 325 326 break; 327 } 328 case sstupdate: { 329 boolean lcisnewsql = true; 330 if (state != EFindSqlStateType.stnormal) { 331 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 332 if ((lcprevsolidtoken != null)) { 333 if (lcprevsolidtoken.tokencode == TBaseType.rrw_on) 334 lcisnewsql = false; 335 else if (lcprevsolidtoken.tokencode == TBaseType.rrw_for) 336 lcisnewsql = false; 337 } 338 339 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos, 1, false); 340 if ((lcnextsolidtoken != null)) { 341 if (lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) { 342 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist, TBaseType.rrw_select, 1, "("); 343 if (k == 0) lcisnewsql = false; 344 } 345 } 346 347 348 if ((lccurrentsqlstatement != null)) { 349 } 350 } 351 352 if (lcisnewsql) { 353 ret = new TUpdateSqlStatement(this.vendor); 354 ret.dummytag = 1; // means set clause in update is not found yet, used to separate set clause from set statement 355 } 356 break; 357 } 358 case sstdelete: { 359 boolean lcisnewsql = true; 360 361 if (state != EFindSqlStateType.stnormal) { 362 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 363 if ((lcprevsolidtoken != null)) { 364 if (lcprevsolidtoken.tokencode == TBaseType.rrw_on) 365 lcisnewsql = false; 366 } 367 368 if ((lccurrentsqlstatement != null)) { 369 } 370 } 371 372 if (lcisnewsql) 373 ret = new TDeleteSqlStatement(this.vendor); 374 375 break; 376 } 377 case sstmerge: { 378 ret = new TMergeSqlStatement(this.vendor); 379 ret.sqlstatementtype = gnewsqlstatementtype; 380 break; 381 } 382 case sstcommit: 383 case sstEnd: { 384 ret = new TCommitStmt(this.vendor); 385 ret.sqlstatementtype = gnewsqlstatementtype; 386 break; 387 } 388 case sstrollback: { 389 ret = new TRollbackStmt(this.vendor); 390 ret.sqlstatementtype = gnewsqlstatementtype; 391 break; 392 } 393 case sstsavepoint: { 394 ret = new TSavepointStmt(this.vendor); 395 ret.sqlstatementtype = gnewsqlstatementtype; 396 break; 397 } 398 case sstRevoke: { 399 ret = new TRevokeStmt(this.vendor); 400 ret.sqlstatementtype = gnewsqlstatementtype; 401 break; 402 } 403 case sstGrant: { 404 ret = new TGrantStmt(this.vendor); 405 ret.sqlstatementtype = gnewsqlstatementtype; 406 break; 407 } 408 case sstTruncate: { 409 ret = new TTruncateStatement(this.vendor); 410 ret.sqlstatementtype = gnewsqlstatementtype; 411 break; 412 } 413 case sstcreatetable: { 414 ret = new TCreateTableSqlStatement(this.vendor); 415 break; 416 } 417 case sstcreateview: { 418 ret = new TCreateViewSqlStatement(this.vendor); 419 break; 420 } 421 case sstcreateindex: { 422 ret = new TCreateIndexSqlStatement(this.vendor); 423 break; 424 } 425 case sstcreatedatabase: { 426 ret = new TCreateDatabaseSqlStatement(this.vendor); 427 break; 428 } 429 case sstdroptable: { 430 ret = new TDropTableSqlStatement(this.vendor); 431 break; 432 } 433 case sstdropview: { 434 ret = new TDropViewSqlStatement(this.vendor); 435 break; 436 } 437 case sstdropindex: { 438 ret = new TDropIndexSqlStatement(this.vendor); 439 break; 440 } 441 case sstaltertable: { 442 ret = new TAlterTableStatement(this.vendor); 443 break; 444 } 445 case sstaltersession: { 446 ret = new TAlterSessionStatement(this.vendor); 447 break; 448 } 449 case sstcreateprocedure: { 450 ret = new TCreateProcedureStmt(this.vendor); 451 break; 452 } 453 case sstCommentOn: { 454 ret = new TCommentOnSqlStmt(this.vendor); 455 break; 456 } 457 case sstcreatesequence: { 458 ret = new TCreateSequenceStmt(this.vendor); 459 break; 460 } 461 case sstcreatefunction: 462 ret = new TVerticaCreateFunction(this.vendor); 463 break; 464 case sstaltersequence: 465 ret = new TAlterSequenceStatement(this.vendor); 466 break; 467 case sstAlterAccessPolicy: 468 ret = new TAlterAccessPolicy(this.vendor); 469 break; 470 case sstAlterAuthentication: 471 ret = new TAlterAuthentication(this.vendor); 472 break; 473 case sstalterdatabase: 474 ret = new TAlterDatabaseStmt(this.vendor); 475 break; 476 case sstAlterFaultGroup: 477 ret = new TAlterFaultGroup(this.vendor); 478 break; 479 case sstalterfunction: 480 ret = new TAlterFunctionStmt(this.vendor); 481 break; 482 case sstAlterLibrary: 483 ret = new TAlterLibraryStmt(this.vendor); 484 break; 485 case sstAlterNode: 486 ret = new TAlterNode(this.vendor); 487 break; 488 case sstAlterNetworkInterface: 489 ret = new TAlterNetworkInterface(this.vendor); 490 break; 491 case sstAlterProjection: 492 ret = new TAlterProjectionRename(this.vendor); 493 break; 494 case sstAlterProfile: 495 ret = new TAlterProfile(this.vendor); 496 break; 497 case sstAlterResourcePool: 498 ret = new TAlterResourcePool(this.vendor); 499 break; 500 case sstAlterRole: 501 ret = new TAlterRoleStmt(this.vendor); 502 break; 503 case sstAlterSchema: 504 ret = new TAlterSchemaStmt(this.vendor); 505 break; 506 case sstAlterSubnet: 507 ret = new TAlterSubnet(this.vendor); 508 break; 509 case sstBegin: 510 case sstStartTransaction: 511 ret = new TBeginTran(this.vendor); 512 break; 513 case sstReleaseSavepoint: 514 ret = new TReleaseSavepointStmt(this.vendor); 515 break; 516 case sstconnect: 517 ret = new TConnectStmt(this.vendor); 518 break; 519 case sstCreateAccessPolicy: 520 ret = new TCreateAccessPolicy(this.vendor); 521 break; 522 case sstCreateAuthentication: 523 ret = new TCreateAuthentication(this.vendor); 524 break; 525 case sstCreateFaultGroup: 526 ret = new TCreateFaultGroup(this.vendor); 527 break; 528 case sstCreateHCatalogSchema: 529 ret = new TCreateHCatalogSchema(this.vendor); 530 break; 531 case sstcreateschema: 532 ret = new TCreateSchemaSqlStatement(this.vendor); 533 break; 534 case sstCreateSubnet: 535 ret = new TCreateSubnet(this.vendor); 536 break; 537 case sstcreateuser: 538 ret = new TCreateUserStmt(this.vendor); 539 break; 540 case sstDisconnect: 541 ret = new TDisconnectStmt(this.vendor); 542 break; 543 case sstDropAccessPolicy: 544 ret = new TDropAccessPolicy(this.vendor); 545 break; 546 case sstDropAggregateFunction: 547 ret = new TDropAggregateFunction(this.vendor); 548 break; 549 case sstDropAuthentication: 550 ret = new TDropAuthentication(this.vendor); 551 break; 552 case sstDropFaultGroup: 553 ret = new TDropFaultGroup(this.vendor); 554 break; 555 case sstdropfunction: 556 ret = new TDropFunctionStmt(this.vendor); 557 break; 558 case sstDropLibrary: 559 ret = new TDropLibraryStmt(this.vendor); 560 break; 561 case sstDropNetworkInterface: 562 ret = new TDropNetworkInterface(this.vendor); 563 break; 564 case sstdropprocedure: 565 ret = new TDropProcedureStmt(this.vendor); 566 break; 567 case sstDropProjection: 568 ret = new TDropProjectionStmt(this.vendor); 569 break; 570 case sstDropResourcePool: 571 ret = new TDropResourcePool(this.vendor); 572 break; 573 case sstdroprole: 574 ret = new TDropRoleStmt(this.vendor); 575 break; 576 case sstdropschema: 577 ret = new TDropSchemaSqlStatement(this.vendor); 578 break; 579 case sstdropsequence: 580 ret = new TDropSequenceStmt(this.vendor); 581 break; 582 case sstDropSubnet: 583 ret = new TDropSubnet(this.vendor); 584 break; 585 case sstDropTextIndex: 586 ret = new TDropTextIndex(this.vendor); 587 break; 588 case sstDropTransformFunction: 589 ret = new TDropTransformFunction(this.vendor); 590 break; 591 case sstdropuser: 592 ret = new TDropUserStmt(this.vendor); 593 break; 594 case sstCreateProjection: 595 ret = new TCreateProjectionStmt(this.vendor); 596 break; 597 case sstExplain: { 598 ret = new TExplainPlan(this.vendor); 599 break; 600 } 601 case sstExportToVertica: 602 ret = new TExportToVertica(this.vendor); 603 break; 604 case sstProfile: 605 ret = new TProfileStmt(this.vendor); 606 break; 607 case sstset: 608 ret = new TVerticaSetStmt(this.vendor); 609 break; 610 case sstShow: 611 ret = new TVerticaShow(this.vendor); 612 break; 613 case sstcall: 614 ret = new TCallStatement(this.vendor); 615 break; 616 default: { 617 ret = new TUnknownSqlStatement(this.vendor); 618 ret.sqlstatementtype = gnewsqlstatementtype; 619 break; 620 } 621 } 622 623 return ret; 624 } 625}