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