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