001package gudusoft.gsqlparser.sqlcmds; 002 003//import gudusoft.gsqlparser.*; 004import gudusoft.gsqlparser.*; 005import gudusoft.gsqlparser.stmt.*; 006import gudusoft.gsqlparser.stmt.bigquery.TExportDataStmt; 007import gudusoft.gsqlparser.stmt.couchbase.TInferKeyspaceStmt; 008import gudusoft.gsqlparser.stmt.couchbase.TTBuildIndexesStmt; 009import gudusoft.gsqlparser.stmt.databricks.*; 010import gudusoft.gsqlparser.stmt.hana.*; 011import gudusoft.gsqlparser.stmt.hive.*; 012import gudusoft.gsqlparser.stmt.informix.*; 013import gudusoft.gsqlparser.stmt.netezza.TNetezzaGenerateStatistics; 014import gudusoft.gsqlparser.stmt.netezza.TNetezzaGroomTable; 015import gudusoft.gsqlparser.stmt.postgresql.*; 016import gudusoft.gsqlparser.stmt.presto.TResetSessionStmt; 017import gudusoft.gsqlparser.stmt.redshift.*; 018import gudusoft.gsqlparser.stmt.snowflake.*; 019import gudusoft.gsqlparser.stmt.sparksql.*; 020import gudusoft.gsqlparser.stmt.sybase.TInsertBulk; 021import gudusoft.gsqlparser.stmt.sybase.TSybaseDeleteStatistics; 022import gudusoft.gsqlparser.stmt.sybase.TSybaseWritetext; 023import gudusoft.gsqlparser.stmt.teradata.*; 024import gudusoft.gsqlparser.stmt.mysql.*; 025import gudusoft.gsqlparser.stmt.db2.*; 026import gudusoft.gsqlparser.stmt.mssql.*; 027import gudusoft.gsqlparser.stmt.oracle.*; 028import gudusoft.gsqlparser.stmt.mdx.*; 029import gudusoft.gsqlparser.stmt.vertica.*; 030 031 032public class TSqlCmds { 033 034 /** 035 * @deprecated Use standalone TSqlCmd class directly 036 */ 037 @Deprecated 038 public class TSqlCmd extends gudusoft.gsqlparser.sqlcmds.TSqlCmd { 039 public TSqlCmd() { 040 super(); 041 } 042 } 043 044 /** 045 * @deprecated Use standalone TSqlCmdList class directly 046 */ 047 @Deprecated 048 public class TSqlCmdList extends gudusoft.gsqlparser.sqlcmds.TSqlCmdList { 049 public TSqlCmdList() { 050 super(); 051 } 052 } 053 054 TSqlCmdList mssqlcmds,oraclecmds,db2cmds,mysqlcmds,accesscmds,mdxcmds,teradatacmds, 055 postgresqlcmds,netezzacmds,sybasecmds,informixcmds,hivecmds,greenplumcmds, 056 redshiftcmds,hanacmds,verticacmds,couchbasecmds,snowflakecmds,bigquerycmds, 057 sparksqlcmds,prestocmds,athenacmds,databrickscmds,gaussdbcmds; 058 059 public TSqlCmdList getSqlCmdList(EDbVendor dbVendor){ 060 TSqlCmdList sqlCmdList = null; 061 switch(dbVendor){ 062 case dbvmssql: 063 if (mssqlcmds.size() == 0) {initmssqlcmds();} 064 sqlCmdList = mssqlcmds; 065 break; 066 case dbvoracle: 067 if (oraclecmds.size() == 0) {initoraclecmds();} 068 sqlCmdList = oraclecmds; 069 break; 070 case dbvdameng: 071 if (oraclecmds.size() == 0) {initoraclecmds();} 072 sqlCmdList = oraclecmds; 073 break; 074 case dbvmysql: 075 if (mysqlcmds.size() == 0) {initmysqlcmds();} 076 sqlCmdList = mysqlcmds; 077 break; 078 case dbvoceanbase: 079 // Phase 1: route to MySQL command list since OceanBase MYSQL 080 // mode shares the MySQL command surface. ORACLE-mode OB 081 // statements use OracleSqlParser's internal command resolver 082 // when delegated through OceanBaseSqlParser. 083 if (mysqlcmds.size() == 0) {initmysqlcmds();} 084 sqlCmdList = mysqlcmds; 085 break; 086 case dbvdb2: 087 if (db2cmds.size() == 0) {initdb2cmds();} 088 sqlCmdList = db2cmds; 089 break; 090 case dbvmdx: 091 if (mdxcmds.size() == 0) {initmdxcmds();} 092 sqlCmdList = mdxcmds; 093 break; 094 case dbvteradata: 095 if (teradatacmds.size() == 0) {initteradatacmds();} 096 sqlCmdList = teradatacmds; 097 break; 098 case dbvpostgresql: 099 if (postgresqlcmds.size() == 0) {initpostgresqlcmds();} 100 sqlCmdList = postgresqlcmds; 101 break; 102 case dbvredshift: 103 if (redshiftcmds.size() == 0) {initredshiftcmds();} 104 sqlCmdList = redshiftcmds; 105 break; 106 case dbvnetezza: 107 if (netezzacmds.size() == 0) {initnetezzacmds();} 108 sqlCmdList = netezzacmds; 109 break; 110 case dbvsybase: 111 if (sybasecmds.size() == 0) {initsybasecmds();} 112 sqlCmdList = sybasecmds; 113 break; 114 case dbvinformix: 115 if (informixcmds.size() == 0) {initinformixcmds();} 116 sqlCmdList = informixcmds; 117 break; 118 case dbvhive: 119 if (hivecmds.size() == 0) {inithivecmds();} 120 sqlCmdList = hivecmds; 121 break; 122 case dbvimpala: 123 if (hivecmds.size() == 0) {inithivecmds(); 124 } 125 sqlCmdList = hivecmds; 126 break; 127 case dbvgreenplum: 128 if (greenplumcmds.size() == 0) {initgreenplumcmds(); 129 } 130 sqlCmdList = greenplumcmds; 131 break; 132 case dbvhana: 133 if (hanacmds.size() == 0) {inithanacmds(); 134 } 135 sqlCmdList = hanacmds; 136 break; 137 case dbvvertica: 138 if (verticacmds.size() == 0) {initverticacmds(); 139 } 140 sqlCmdList = verticacmds; 141 break; 142 case dbvcouchbase: 143 if (couchbasecmds.size() == 0) {initcouchbasecmds(); 144 } 145 sqlCmdList = couchbasecmds; 146 break; 147 case dbvsnowflake: 148 if (snowflakecmds.size() == 0) {initsnowflakecmds(); 149 } 150 sqlCmdList = snowflakecmds; 151 break; 152 case dbvbigquery: 153 if (bigquerycmds.size() == 0) {initbigquerycmds(); 154 } 155 sqlCmdList = bigquerycmds; 156 break; 157 case dbvsparksql: 158 if (sparksqlcmds.size() == 0) {initsparksqlcmds(); 159 } 160 sqlCmdList = sparksqlcmds; 161 break; 162 case dbvpresto: 163 if (prestocmds.size() == 0) {initprestocmds(); 164 } 165 sqlCmdList = prestocmds; 166 break; 167 case dbvathena: 168 if (athenacmds.size() == 0) {initathenacmds(); 169 } 170 sqlCmdList = athenacmds; 171 break; 172 case dbvdatabricks: 173 if (databrickscmds.size() == 0) {initdatabrickscmds(); 174 } 175 sqlCmdList = databrickscmds; 176 break; 177 case dbvgaussdb: 178 if (gaussdbcmds.size() == 0) {initgaussdbcmds(); 179 } 180 sqlCmdList = gaussdbcmds; 181 break; 182 } 183 return sqlCmdList; 184 } 185 186 ESqlStatementType gnewsqlstatementtype; 187 188 // int mssqlcmdscurrentcount,oraclecmdscurrentcount,db2cmdscurrentcount,mysqlcmdscurrentcount,mdxcmdscurrentcount ; 189 190 public TSqlCmds(){ 191// mssqlcmdscurrentcount = 0; 192// oraclecmdscurrentcount = 0; 193// db2cmdscurrentcount = 0; 194// mysqlcmdscurrentcount = 0; 195// mdxcmdscurrentcount = 0; 196 mssqlcmds = new TSqlCmdList(); 197 sybasecmds = new TSqlCmdList(); 198 oraclecmds = new TSqlCmdList(); 199 db2cmds = new TSqlCmdList(); 200 mysqlcmds = new TSqlCmdList(); 201 accesscmds = new TSqlCmdList(); 202 mdxcmds = new TSqlCmdList(); 203 teradatacmds = new TSqlCmdList(); 204 postgresqlcmds = new TSqlCmdList(); 205 netezzacmds = new TSqlCmdList(); 206 informixcmds = new TSqlCmdList(); 207 hivecmds = new TSqlCmdList(); 208 greenplumcmds = new TSqlCmdList(); 209 redshiftcmds = new TSqlCmdList(); 210 hanacmds = new TSqlCmdList(); 211 verticacmds = new TSqlCmdList(); 212 couchbasecmds = new TSqlCmdList(); 213 snowflakecmds = new TSqlCmdList(); 214 bigquerycmds = new TSqlCmdList(); 215 sparksqlcmds = new TSqlCmdList(); 216 prestocmds = new TSqlCmdList(); 217 athenacmds = new TSqlCmdList(); 218 databrickscmds = new TSqlCmdList(); 219 gaussdbcmds = new TSqlCmdList(); 220 } 221 222 void addcmds(EDbVendor dbVendor, ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5,String ptoken6,String ptoken7){ 223 TSqlCmd sc = new TSqlCmd(); 224 sc.sqlstatementtype = psqlstatementtype; 225 sc.token1 = ptoken1; 226 sc.token2 = ptoken2; 227 sc.token3 = ptoken3; 228 sc.token4 = ptoken4; 229 sc.token5 = ptoken5; 230 sc.token6 = ptoken6; 231 sc.token7 = ptoken7; 232 switch(dbVendor){ 233 case dbvmssql: 234 if (sc.token1 > TBaseType.rrw_abort){ 235 switch (sc.token1){ 236 case TBaseType.rrw_sqlserver_throw: 237 sc.token1Str = "throw"; 238 break; 239 default: 240 break; 241 } 242 } 243 mssqlcmds.add(sc); 244 break; 245 case dbvoracle: 246 oraclecmds.add(sc); 247 break; 248 case dbvdameng: 249 oraclecmds.add(sc); 250 break; 251 case dbvmysql: 252 if (sc.token1 > TBaseType.rrw_abort){ 253 switch (sc.token1){ 254 case TBaseType.rrw_mysql_delimiter: 255 sc.token1Str = "delimiter"; 256 break; 257 case TBaseType.rrw_mysql_desc: 258 sc.token1Str = "desc"; 259 break; 260 default: 261 break; 262 } 263 } 264 mysqlcmds.add(sc); 265 break; 266 case dbvoceanbase: 267 // Phase 1: route to MySQL command list — see getSqlCmdList() 268 // case dbvoceanbase for rationale. 269 if (sc.token1 > TBaseType.rrw_abort){ 270 switch (sc.token1){ 271 case TBaseType.rrw_mysql_delimiter: 272 sc.token1Str = "delimiter"; 273 break; 274 case TBaseType.rrw_mysql_desc: 275 sc.token1Str = "desc"; 276 break; 277 default: 278 break; 279 } 280 } 281 mysqlcmds.add(sc); 282 break; 283 case dbvdb2: 284 db2cmds.add(sc); 285 break; 286 case dbvmdx: 287 mdxcmds.add(sc); 288 break; 289 case dbvteradata: 290 if (sc.token1 > TBaseType.rrw_abort){ 291 switch (sc.token1){ 292 case TBaseType.rrw_teradata_wait: 293 sc.token1Str = "wait"; 294 break; 295 case TBaseType.rrw_teradata_using: 296 sc.token1Str = "using"; 297 break; 298 case TBaseType.rrw_teradata_upd: 299 sc.token1Str = "update"; 300 break; 301 case TBaseType.rrw_teradata_sel: 302 sc.token1Str = "select"; 303 break; 304 case TBaseType.rrw_teradata_restart: 305 sc.token1Str = "restart"; 306 break; 307 case TBaseType.rrw_teradata_position: 308 sc.token1Str = "position"; 309 break; 310 case TBaseType.rrw_teradata_modify: 311 sc.token1Str = "modify"; 312 break; 313 case TBaseType.rrw_teradata_logon: 314 sc.token1Str = "logon"; 315 break; 316 case TBaseType.rrw_teradata_locking: 317 sc.token1Str = "locking"; 318 break; 319 case TBaseType.rrw_teradata_ins: 320 sc.token1Str = "insert"; 321 break; 322 case TBaseType.rrw_teradata_help: 323 sc.token1Str = "help"; 324 break; 325 case TBaseType.rrw_teradata_give: 326 sc.token1Str = "give"; 327 break; 328 case TBaseType.rrw_teradata_echo: 329 sc.token1Str = "echo"; 330 break; 331 case TBaseType.rrw_teradata_dump: 332 sc.token1Str = "dump"; 333 break; 334 case TBaseType.rrw_teradata_diagnostic: 335 sc.token1Str = "diagnostic"; 336 break; 337 case TBaseType.rrw_teradata_del: 338 sc.token1Str = "delete"; 339 break; 340 case TBaseType.rrw_teradata_cv: 341 sc.token1Str = "create view"; 342 break; 343 case TBaseType.rrw_teradata_collect: 344 sc.token1Str = "collect"; 345 break; 346 case TBaseType.rrw_teradata_cm: 347 sc.token1Str = "create macro"; 348 break; 349 default: 350 break; 351 } 352 } 353 teradatacmds.add(sc); 354 break; 355 case dbvpostgresql: 356 if (sc.token1 > TBaseType.rrw_abort){ 357 switch (sc.token1){ 358 case TBaseType.rrw_postgresql_cluster: 359 sc.token1Str = "cluster"; 360 break; 361 case TBaseType.rrw_postgresql_copy: 362 sc.token1Str = "copy"; 363 break; 364 case TBaseType.rrw_postgresql_discard: 365 sc.token1Str = "discard"; 366 break; 367 case TBaseType.rrw_postgresql_listen: 368 sc.token1Str = "listen"; 369 break; 370 case TBaseType.rrw_postgresql_notify: 371 sc.token1Str = "notify"; 372 break; 373 case TBaseType.rrw_postgresql_reassign: 374 sc.token1Str = "reassign"; 375 break; 376 case TBaseType.rrw_postgresql_reindex: 377 sc.token1Str = "reindex"; 378 break; 379 case TBaseType.rrw_postgresql_security: 380 sc.token1Str = "security"; 381 break; 382 case TBaseType.rrw_postgresql_unlisten: 383 sc.token1Str = "unlisten"; 384 break; 385 default: 386 break; 387 } 388 } 389 postgresqlcmds.add(sc); 390 break; 391 case dbvredshift: 392 if (sc.token1 > TBaseType.rrw_abort){ 393 switch (sc.token1){ 394 case TBaseType.rrw_redshift_cancel: 395 sc.token1Str = "cancel"; 396 break; 397 case TBaseType.rrw_redshift_copy: 398 sc.token1Str = "copy"; 399 break; 400 case TBaseType.rrw_redshift_unload: 401 sc.token1Str = "unload"; 402 break; 403 case TBaseType.rrw_redshift_vacuum: 404 sc.token1Str = "vacuum"; 405 break; 406 default: 407 break; 408 } 409 } 410 redshiftcmds.add(sc); 411 break; 412 case dbvnetezza: 413 if (sc.token1 > TBaseType.rrw_abort){ 414 switch (sc.token1){ 415 case TBaseType.rrw_netezza_copy: 416 sc.token1Str = "copy"; 417 break; 418 case TBaseType.rrw_netezza_generate: 419 sc.token1Str = "generate"; 420 break; 421 case TBaseType.rrw_netezza_groom: 422 sc.token1Str = "groom"; 423 break; 424 default: 425 break; 426 } 427 } 428 netezzacmds.add(sc); 429 break; 430 case dbvsybase: 431 432 if (sc.token1 > TBaseType.rrw_abort){ 433 switch (sc.token1){ 434 case TBaseType.rrw_sybase_dump: 435 sc.token1Str = "dump"; 436 break; 437 default: 438 break; 439 } 440 } 441 sybasecmds.add(sc); 442 break; 443 case dbvinformix: 444 if (sc.token1 > TBaseType.rrw_abort){ 445 switch (sc.token1){ 446 case TBaseType.rrw_informix_connect_to: 447 sc.token1Str = "connect to"; 448 break; 449 case TBaseType.rrw_informix_info: 450 sc.token1Str = "info"; 451 break; 452 case TBaseType.rrw_informix_output: 453 sc.token1Str = "output"; 454 break; 455 case TBaseType.rrw_informix_put: 456 sc.token1Str = "put"; 457 break; 458 case TBaseType.rrw_informix_unload: 459 sc.token1Str = "unload"; 460 break; 461 case TBaseType.rrw_informix_whenever: 462 sc.token1Str = "whenever"; 463 break; 464 default: 465 break; 466 } 467 } 468 informixcmds.add(sc); 469 break; 470 case dbvhive: 471 if (sc.token1 > TBaseType.rrw_abort){ 472 switch (sc.token1){ 473 case TBaseType.rrw_hive_desc: 474 sc.token1Str = "desc"; 475 break; 476 case TBaseType.rrw_hive_export: 477 sc.token1Str = "export"; 478 break; 479 case TBaseType.rrw_hive_import: 480 sc.token1Str = "import"; 481 break; 482 case TBaseType.rrw_hive_msck: 483 sc.token1Str = "msck"; 484 break; 485 default: 486 break; 487 } 488 } 489 hivecmds.add(sc); 490 break; 491 case dbvimpala: 492 hivecmds.add(sc); 493 break; 494 case dbvgreenplum: 495 if (sc.token1 > TBaseType.rrw_abort){ 496 switch (sc.token1){ 497 case TBaseType.rrw_greenplum_cluster: 498 sc.token1Str = "cluster"; 499 break; 500 case TBaseType.rrw_greenplum_copy: 501 sc.token1Str = "copy"; 502 break; 503 case TBaseType.rrw_greenplum_reassign: 504 sc.token1Str = "reassign"; 505 break; 506 case TBaseType.rrw_greenplum_reindex: 507 sc.token1Str = "reindex"; 508 break; 509 case TBaseType.rrw_greenplum_vacuum: 510 sc.token1Str = "vacuum"; 511 break; 512 case TBaseType.rrw_greenplum_analyse: 513 sc.token1Str = "analyse"; 514 break; 515 default: 516 break; 517 } 518 } 519 greenplumcmds.add(sc); 520 break; 521 case dbvhana: 522 if (sc.token1 > TBaseType.rrw_abort){ 523 switch (sc.token1){ 524 case TBaseType.rrw_hana_unset: 525 sc.token1Str = "unset"; 526 break; 527 case TBaseType.rrw_hana_upsert: 528 sc.token1Str = "upsert"; 529 break; 530 case TBaseType.rrw_hana_import: 531 sc.token1Str = "import"; 532 break; 533 case TBaseType.rrw_hana_export: 534 sc.token1Str = "export"; 535 break; 536 case TBaseType.rrw_hana_recover: 537 sc.token1Str = "recover"; 538 break; 539 case TBaseType.rrw_hana_unload: 540 sc.token1Str = "unload"; 541 break; 542 default: 543 break; 544 } 545 } 546 hanacmds.add(sc); 547 break; 548 case dbvvertica: 549 verticacmds.add(sc); 550 break; 551 case dbvcouchbase: 552 couchbasecmds.add(sc); 553 break; 554 case dbvsnowflake: 555 snowflakecmds.add(sc); 556 break; 557 case dbvbigquery: 558 bigquerycmds.add(sc); 559 break; 560 case dbvsparksql: 561 sparksqlcmds.add(sc); 562 break; 563 case dbvpresto: 564 prestocmds.add(sc); 565 break; 566 case dbvathena: 567 athenacmds.add(sc); 568 break; 569 case dbvdatabricks: 570 databrickscmds.add(sc); 571 break; 572 case dbvgaussdb: 573 gaussdbcmds.add(sc); 574 break; 575 } 576 } 577 578 void addmssqlcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 579 addcmds(EDbVendor.dbvmssql,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 580 } 581 582void addsybasecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 583 addcmds(EDbVendor.dbvsybase,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 584} 585 586void addpostgresqlcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 587 addcmds(EDbVendor.dbvpostgresql,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 588} 589 590 void addgaussdbcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 591 addcmds(EDbVendor.dbvgaussdb,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 592 } 593 594void addredshiftcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 595 addcmds(EDbVendor.dbvredshift,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 596} 597 598 void addnetezzacmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 599 addcmds(EDbVendor.dbvnetezza,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 600} 601 602 603void addoraclecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 604 addcmds(EDbVendor.dbvoracle,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 605} 606 607void addhivecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 608 addcmds(EDbVendor.dbvhive,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 609} 610 611void addmysqlcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 612 addcmds(EDbVendor.dbvmysql,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 613} 614 615void addsparksqlcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 616 addcmds(EDbVendor.dbvsparksql,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 617} 618 619void addprestocmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 620 addcmds(EDbVendor.dbvpresto,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 621} 622 623void addathenacmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 624 addcmds(EDbVendor.dbvathena,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 625} 626 627void adddatabrickscmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 628 addcmds(EDbVendor.dbvdatabricks,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 629} 630 631 632void adddb2cmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 633 addcmds(EDbVendor.dbvdb2,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 634} 635 636void addmdxcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 637 addcmds(EDbVendor.dbvmdx,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 638} 639 640void addteradatacmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 641 addcmds(EDbVendor.dbvteradata,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 642} 643 644void addinformixcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 645 addcmds(EDbVendor.dbvinformix,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 646} 647 648void addgreenplumcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 649 addcmds(EDbVendor.dbvgreenplum,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 650} 651 652void addhanacmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 653 addcmds(EDbVendor.dbvhana,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 654} 655 656void addverticacmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 657 addcmds(EDbVendor.dbvvertica,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 658} 659 660void addcouchbasecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 661 addcmds(EDbVendor.dbvcouchbase,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 662} 663 664void addsnowflakecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 665 addcmds(EDbVendor.dbvsnowflake,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 666 } 667 668void addbigquerycmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 669 addcmds(EDbVendor.dbvbigquery,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 670} 671 672ESqlStatementType finddbcmd(TSourceToken ptoken, TSqlCmdList pdbcmds ){ 673 ESqlStatementType ret = ESqlStatementType.sstinvalid; 674 if (ptoken.tokentype != ETokenType.ttkeyword){return ret;} 675 int lcchecktokens = 0; 676 677 // Look up initial command array index in hash using first token code 678 679 int startIndex = pdbcmds.getStartIndex(ptoken.tokencode); 680 if (startIndex == -1) 681 return ret; 682 683 for(int i=startIndex; i<pdbcmds.size();i++){ 684 if ( ((TSqlCmd)pdbcmds.get(i)).token1 != ptoken.tokencode) 685 { 686 if (lcchecktokens > 0 ) {break;} 687 else 688 continue; 689 } 690 else 691 { 692 if (lcchecktokens < 1) 693 {lcchecktokens = 1;} 694 } 695 696 // first cmd tokentext is same, then check second 697 if ((((TSqlCmd)pdbcmds.get(i)).token2 == "") || (((TSqlCmd)pdbcmds.get(i)).token2 == " ") ) 698 { 699 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 700 if (((TSqlCmd)pdbcmds.get(i)).token2 == "") 701 break; 702 } 703 704 int k; 705 TSourceToken lcnextsolidtoken = nextsolidtoken(ptoken); 706 if (lcnextsolidtoken == null) break; 707 if ((((TSqlCmd)pdbcmds.get(i)).token2 == "*"))// && (lcchecktokens < 2) ) // can match any string 708 { 709 k = 0; 710 } 711 else { 712 k = TBaseType.mycomparetext(lcnextsolidtoken.toString() ,((TSqlCmd)pdbcmds.get(i)).token2); 713 } 714 if (k != 0) 715 { 716 if (lcchecktokens > 1) break; 717 else 718 continue; 719 } 720 else if (k == 0) 721 { 722 if (lcchecktokens < 2) 723 lcchecktokens = 2; 724 } 725 726 // second cmd tokentext is same, then check third 727 if ((((TSqlCmd)pdbcmds.get(i)).token3 == "") || (((TSqlCmd)pdbcmds.get(i)).token3 == " ")) 728 { 729 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 730 if (((TSqlCmd)pdbcmds.get(i)).token3 == "") 731 break; 732 } 733 734 TSourceToken lcnnextsolidtoken = nextsolidtoken(lcnextsolidtoken); 735 if (lcnnextsolidtoken == null) break; 736 if ((((TSqlCmd)pdbcmds.get(i)).token3 == "*"))// && (lcchecktokens < 3)) // can match any string 737 k = 0; 738 else 739 { 740 k = TBaseType.mycomparetext(lcnnextsolidtoken.toString(), ((TSqlCmd)pdbcmds.get(i)).token3); 741 } 742 if (k != 0) 743 { 744 if (lcchecktokens > 2) {break;} 745 else 746 continue; 747 } 748 else 749 { 750 if (lcchecktokens < 3) 751 {lcchecktokens = 3;} 752 } 753 754 // third cmd tokentext is same, then check fourth 755 if ((((TSqlCmd)pdbcmds.get(i)).token4 == "") || (((TSqlCmd)pdbcmds.get(i)).token4 == " ")) 756 { 757 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 758 if (((TSqlCmd)pdbcmds.get(i)).token4 == "") 759 break; 760 } 761 762 TSourceToken lcnnnextsolidtoken = nextsolidtoken(lcnnextsolidtoken); 763 if (lcnnnextsolidtoken == null) { break;} 764 if ((((TSqlCmd)(pdbcmds.get(i))).token4 == "*"))// && (lcchecktokens < 4)) // can match any string 765 {k = 0;} 766 else 767 {k = TBaseType.mycomparetext(lcnnnextsolidtoken.getAstext(),((TSqlCmd)pdbcmds.get(i)).token4);} 768 769 if (k != 0 ) 770 { 771 if (lcchecktokens > 3) break; 772 else 773 continue; 774 } 775 else 776 { 777 if (lcchecktokens < 4) 778 lcchecktokens = 4; 779 } 780 781 // fourth cmd tokentext is same, then check fiveth 782 if ((((TSqlCmd)pdbcmds.get(i)).token5 == "") || (((TSqlCmd)pdbcmds.get(i)).token5 == " ") ) 783 { 784 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 785 if (((TSqlCmd)pdbcmds.get(i)).token5 == "") 786 break; 787 } 788 789 TSourceToken lcnnnnextsolidtoken = nextsolidtoken(lcnnnextsolidtoken); 790 if (lcnnnnextsolidtoken == null) break; 791 if ((((TSqlCmd)pdbcmds.get(i)).token5 == "*") )//&& (lcchecktokens < 5) ) // can match any string 792 { k = 0;} 793 else 794 { k = TBaseType.mycomparetext(lcnnnnextsolidtoken.getAstext(), ((TSqlCmd)pdbcmds.get(i)).token5);} 795 if ( k != 0) 796 { 797 if (lcchecktokens > 4) break; 798 else 799 continue; 800 } 801 else 802 { 803 if (lcchecktokens < 5) 804 lcchecktokens = 5; 805 } 806 807 // fiveth cmd tokentext is same, then check sixth 808 if ((((TSqlCmd)pdbcmds.get(i)).token6 == "") || (((TSqlCmd)pdbcmds.get(i)).token6 == " ")) 809 { 810 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 811 if (((TSqlCmd)pdbcmds.get(i)).token6 == "") 812 break; 813 } 814 815 TSourceToken lcnnnnnextsolidtoken = nextsolidtoken(lcnnnnextsolidtoken); 816 if (lcnnnnnextsolidtoken == null) break; 817 if ((((TSqlCmd)pdbcmds.get(i)).token6 == "*"))// && (lcchecktokens < 6)) // can match any string 818 {k = 0;} 819 else 820 { k = TBaseType.mycomparetext(lcnnnnnextsolidtoken.getAstext(),((TSqlCmd)pdbcmds.get(i)).token6);} 821 if (k != 0) 822 { 823 if (lcchecktokens > 5) break; 824 else 825 continue; 826 } 827 else 828 { 829 if (lcchecktokens < 6) 830 lcchecktokens = 6; 831 } 832 833 // sixth cmd tokentext is same, then check seventh 834 if ((((TSqlCmd)pdbcmds.get(i)).token7 == "") || (((TSqlCmd)pdbcmds.get(i)).token7 == " ")) 835 { 836 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 837 if(((TSqlCmd)pdbcmds.get(i)).token7 == "") 838 break; 839 } 840 841 TSourceToken lcnnnnnnextsolidtoken = nextsolidtoken(lcnnnnnextsolidtoken); 842 if (lcnnnnnnextsolidtoken == null) break; 843 if ((((TSqlCmd)pdbcmds.get(i)).token7 == "*"))// && (lcchecktokens < 7)) // can match any string 844 {k = 0;} 845 else 846 { k = TBaseType.mycomparetext(lcnnnnnnextsolidtoken.getAstext(),((TSqlCmd)pdbcmds.get(i)).token7);} 847 if (k != 0) 848 { 849 if (lcchecktokens > 6 ) break; 850 else 851 continue; 852 } 853 else 854 { 855 if (lcchecktokens < 7) 856 {lcchecktokens = 7;} 857 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 858 break; 859 } 860 861 862 } //for 863 return ret; 864} 865 866TSourceToken nextsolidtoken(TSourceToken ptoken){ 867 TSourceToken ret = null; 868 if (ptoken.container == null) {return ret;} 869 ret = ptoken.container.nextsolidtoken(ptoken,1,false); 870 871 return ret; 872} 873 874void initteradatacmds(){ 875 876 addteradatacmds(ESqlStatementType.sstteradataabort, TBaseType.rrw_abort, " "," "," "," "," "," "); 877 addteradatacmds(ESqlStatementType.sstteradataalterconstraint, TBaseType.rrw_alter,"constraint"," "," "," "," "," "); 878 addteradatacmds(ESqlStatementType.sstteradataalterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 879 addteradatacmds(ESqlStatementType.sstteradataalterfunction, TBaseType.rrw_alter,"specific","function"," "," "," "," "); 880 addteradatacmds(ESqlStatementType.sstteradataaltermethod, TBaseType.rrw_alter,"method"," "," "," "," "," "); 881 addteradatacmds(ESqlStatementType.sstteradataaltermethod, TBaseType.rrw_alter,"constructor","method"," "," "," "," "); 882 addteradatacmds(ESqlStatementType.sstteradataaltermethod, TBaseType.rrw_alter,"instance","method"," "," "," "," "); 883 addteradatacmds(ESqlStatementType.sstteradataaltermethod, TBaseType.rrw_alter,"specific","method"," "," "," "," "); 884 addteradatacmds(ESqlStatementType.sstteradataalterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 885 addteradatacmds(ESqlStatementType.sstteradataalterreplicationgroup, TBaseType.rrw_alter,"replication","group"," "," "," "," "); 886 addteradatacmds(ESqlStatementType.sstteradataaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 887 addteradatacmds(ESqlStatementType.sstteradataaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 888 addteradatacmds(ESqlStatementType.sstteradataaltertype, TBaseType.rrw_alter,"type"," "," "," "," "," "); 889 addteradatacmds(ESqlStatementType.sstteradataalterzone, TBaseType.rrw_alter,"zone"," "," "," "," "," "); 890 891 addteradatacmds(ESqlStatementType.sstteradatabegindeclaresection, TBaseType.rrw_begin,"delcare","section"," "," "," "," "); 892 addteradatacmds(ESqlStatementType.sstteradatabeginlogging, TBaseType.rrw_begin,"logging"," "," "," "," "," "); 893 addteradatacmds(ESqlStatementType.sstteradatabeginquerylogging, TBaseType.rrw_begin,"query","logging"," "," "," "," "); 894 addteradatacmds(ESqlStatementType.sstteradatabegintransaction, TBaseType.rrw_begin,"transaction"," "," "," "," "," "); 895 addteradatacmds(ESqlStatementType.sstteradatabegintransaction, TBaseType.rrw_bt," "," "," "," "," "," "); 896 addteradatacmds(ESqlStatementType.sstteradatabeginrequest, TBaseType.rrw_begin,"request"," "," "," "," "," "); 897 898 addteradatacmds(ESqlStatementType.sstteradatacall, TBaseType.rrw_call," "," "," "," "," "," "); 899 addteradatacmds(ESqlStatementType.sstteradatacheckworkload, TBaseType.rrw_check,"workload"," "," "," "," "," "); 900 addteradatacmds(ESqlStatementType.sstteradatacheckpoint, TBaseType.rrw_checkpoint," "," "," "," "," "," "); 901 addteradatacmds(ESqlStatementType.sstteradataclose, TBaseType.rrw_close," "," "," "," "," "," "); 902 903 addteradatacmds(ESqlStatementType.sstteradatacreatemacro, TBaseType.rrw_teradata_cm," "," "," "," "," "," "); 904 905 addteradatacmds(ESqlStatementType.sstteradatacollectdemographics, TBaseType.rrw_teradata_collect,"demographics"," "," "," "," "," "); 906 907 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"statistics"," "," "," "," "," "); 908 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"stats"," "," "," "," "," "); 909 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"stat"," "," "," "," "," "); 910 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"summary","statistics"," "," "," "," "); 911 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"summary","stats"," "," "," "," "); 912 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"summary","stat"," "," "," "," "); 913 914 915 addteradatacmds(ESqlStatementType.sstteradatacomment, TBaseType.rrw_comment," "," "," "," "," "," "); 916 addteradatacmds(ESqlStatementType.sstteradatacommit, TBaseType.rrw_commit," "," "," "," "," "," "); 917 addteradatacmds(ESqlStatementType.sstteradataconnect, TBaseType.rrw_connect," "," "," "," "," "," "); 918 addteradatacmds(ESqlStatementType.sstteradatacreateauthorization, TBaseType.rrw_create,"authorization"," "," "," "," "," "); 919 addteradatacmds(ESqlStatementType.sstteradatacreatecast, TBaseType.rrw_create,"cast"," "," "," "," "," "); 920 921 addteradatacmds(ESqlStatementType.sstteradatacreatemethod, TBaseType.rrw_create,"constructor","method"," "," "," "," "); 922 923 addteradatacmds(ESqlStatementType.sstteradatacreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 924 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"error","table"," "," "," "," "); 925 addteradatacmds(ESqlStatementType.sstteradatacreaterole, TBaseType.rrw_create,"external","role"," "," "," "," "); 926 927 addteradatacmds(ESqlStatementType.sstteradatacreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 928 929 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","multiset","table"," "," "); 930 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","set","table"," "," "); 931 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","table"," "," "," "); 932 933 addteradatacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"hash","index"," "," "," "," "); 934 addteradatacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 935 936 addteradatacmds(ESqlStatementType.sstteradatacreatemethod, TBaseType.rrw_create,"instance","method"," "," "," "," "); 937 938 addteradatacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"join","index"," "," "," "," "); 939 940 addteradatacmds(ESqlStatementType.sstteradatacreatemacro, TBaseType.rrw_create,"macro"," "," "," "," "," "); 941 942 addteradatacmds(ESqlStatementType.sstteradatacreatemethod, TBaseType.rrw_create,"method"," "," "," "," "," "); 943 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"multiset","global","temporary","table"," "," "); 944 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"multiset","table"," "," "," "," "); 945 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"multiset","volatile","table"," "," "," "); 946 947 addteradatacmds(ESqlStatementType.sstteradatacreateordering, TBaseType.rrw_create,"ordering"," "," "," "," "," "); 948 949 addteradatacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create,"proc"," "," "," "," "," "); 950 addteradatacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 951 952 addteradatacmds(ESqlStatementType.sstteradatacreateprofile, TBaseType.rrw_create,"profile"," "," "," "," "," "); 953 954 addteradatacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"recursive","view"," "," "," "," "); 955 956 addteradatacmds(ESqlStatementType.sstteradatacreatereplicationgroup, TBaseType.rrw_create,"replication","group"," "," "," "," "); 957 addteradatacmds(ESqlStatementType.sstteradatacreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 958 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"set","global","temporary","table"," "," "); 959 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"set","table"," "," "," "," "); 960 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"set","volatile","table"," "," "," "); 961 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 962 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"temporary","table"," "," "," "," "); 963 964 addteradatacmds(ESqlStatementType.sstteradatacreatetransform, TBaseType.rrw_create,"transform"," "," "," "," "," "); 965 966 addteradatacmds(ESqlStatementType.sstteradatacreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 967 968 addteradatacmds(ESqlStatementType.sstteradatacreatetype, TBaseType.rrw_create,"type"," "," "," "," "," "); 969 970 addteradatacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 971 972 addteradatacmds(ESqlStatementType.sstteradatacreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 973 974 addteradatacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 975 976 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"volatile","multiset","table"," "," "," "); 977 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"volatile","table"," "," "," "," "); 978 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"volatile","set","table"," "," "," "); 979 980 addteradatacmds(ESqlStatementType.sstcreatezone, TBaseType.rrw_create,"zone"," "," "," "," "," "); 981 982 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_ct," "," "," "," "," "," "); 983 984 addteradatacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_teradata_cv," "," "," "," "," "," "); 985 986 addteradatacmds(ESqlStatementType.sstteradatadatabase, TBaseType.rrw_database," "," "," "," "," "," "); 987 988 addteradatacmds(ESqlStatementType.sstteradatadeclarecursor, TBaseType.rrw_declare,"cursor"," "," "," "," "," "); 989 990 addteradatacmds(ESqlStatementType.sstteradatadeclarestatement, TBaseType.rrw_declare,"statement"," "," "," "," "," "); 991 992 addteradatacmds(ESqlStatementType.sstteradatadeclaretable, TBaseType.rrw_declare,"table"," "," "," "," "," "); 993 994 addteradatacmds(ESqlStatementType.sstdelete, TBaseType.rrw_teradata_del," "," "," "," "," "," "); 995 996 addteradatacmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 997 998 addteradatacmds(ESqlStatementType.sstteradatadeletedatabase, TBaseType.rrw_delete,"database"," "," "," "," "," "); 999 1000 addteradatacmds(ESqlStatementType.sstteradatadeleteuser, TBaseType.rrw_delete,"user"," "," "," "," "," "); 1001 1002 addteradatacmds(ESqlStatementType.sstteradatadescribe, TBaseType.rrw_describe," "," "," "," "," "," "); 1003 1004 addteradatacmds(ESqlStatementType.sstteradatadiagnostic, TBaseType.rrw_teradata_diagnostic," "," "," "," "," "," "); 1005 1006 addteradatacmds(ESqlStatementType.sstteradatadropauthorization, TBaseType.rrw_drop,"authorization"," "," "," "," "," "); 1007 1008 addteradatacmds(ESqlStatementType.sstteradatadropcast, TBaseType.rrw_drop,"cast"," "," "," "," "," "); 1009 addteradatacmds(ESqlStatementType.sstteradatadropconstraint, TBaseType.rrw_drop,"constraint"," "," "," "," "," "); 1010 addteradatacmds(ESqlStatementType.sstteradatadropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 1011 addteradatacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop,"error","table"," "," "," "," "); 1012 addteradatacmds(ESqlStatementType.sstteradatadroprole, TBaseType.rrw_drop,"external","role"," "," "," "," "); 1013 1014 addteradatacmds(ESqlStatementType.sstteradatadropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 1015 1016 addteradatacmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop,"hash","index"," "," "," "," "); 1017 addteradatacmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 1018 addteradatacmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop,"join","index"," "," "," "," "); 1019 1020 addteradatacmds(ESqlStatementType.sstteradatadropmacro, TBaseType.rrw_drop,"macro"," "," "," "," "," "); 1021 1022 addteradatacmds(ESqlStatementType.sstteradatadropordering, TBaseType.rrw_drop,"ordering"," "," "," "," "," "); 1023 1024 addteradatacmds(ESqlStatementType.sstteradatadropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 1025 1026 addteradatacmds(ESqlStatementType.sstteradatadropprofile, TBaseType.rrw_drop,"profile"," "," "," "," "," "); 1027 1028 addteradatacmds(ESqlStatementType.sstteradatadropreplicationgroup, TBaseType.rrw_drop,"replication","group"," "," "," "," "); 1029 1030 addteradatacmds(ESqlStatementType.sstteradatadroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 1031 1032 addteradatacmds(ESqlStatementType.sstteradatadropfunction, TBaseType.rrw_drop,"specific","function"," "," "," "," "); 1033 1034 addteradatacmds(ESqlStatementType.sstteradatadropstatistics, TBaseType.rrw_drop,"stat"," "," "," "," "," "); 1035 addteradatacmds(ESqlStatementType.sstteradatadropstatistics, TBaseType.rrw_drop,"statistics"," "," "," "," "," "); 1036 addteradatacmds(ESqlStatementType.sstteradatadropstatistics, TBaseType.rrw_drop,"stats"," "," "," "," "," "); 1037 1038 addteradatacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 1039 addteradatacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop,"temporary","table"," "," "," "," "); 1040 1041 addteradatacmds(ESqlStatementType.sstteradatadroptransform, TBaseType.rrw_drop,"transform"," "," "," "," "," "); 1042 1043 addteradatacmds(ESqlStatementType.sstteradatadroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 1044 1045 addteradatacmds(ESqlStatementType.sstteradatadroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 1046 addteradatacmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop,"unique","index"," "," "," "," "); 1047 1048 addteradatacmds(ESqlStatementType.sstteradatadropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 1049 1050 addteradatacmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 1051 1052 addteradatacmds(ESqlStatementType.sstteradatadropzone, TBaseType.rrw_drop,"zone"," "," "," "," "," "); 1053 1054 addteradatacmds(ESqlStatementType.sstteradatadumpexplain, TBaseType.rrw_teradata_dump,"explain"," "," "," "," "," "); 1055 1056 addteradatacmds(ESqlStatementType.sstteradataecho, TBaseType.rrw_teradata_echo," "," "," "," "," "," "); 1057 1058 addteradatacmds(ESqlStatementType.sstteradataenddeclaresection, TBaseType.rrw_end,"declare","section"," "," "," "," "); 1059 1060 addteradatacmds(ESqlStatementType.sstteradataendlogging, TBaseType.rrw_end,"logging"," "," "," "," "," "); 1061 1062 addteradatacmds(ESqlStatementType.sstteradataendquerylogging, TBaseType.rrw_end,"query","logging"," "," "," "," "); 1063 1064 addteradatacmds(ESqlStatementType.sstteradataendtransaction, TBaseType.rrw_end,"transaction"," "," "," "," "," "); 1065 1066 addteradatacmds(ESqlStatementType.sstteradataendtransaction, TBaseType.rrw_et," "," "," "," "," "," "); 1067 addteradatacmds(ESqlStatementType.sstteradataendrequest, TBaseType.rrw_end,"request"," "," "," "," "," "); 1068 1069 addteradatacmds(ESqlStatementType.sstteradataexecute, TBaseType.rrw_execute," "," "," "," "," "," "); 1070 1071 addteradatacmds(ESqlStatementType.sstteradataexecute, TBaseType.rrw_exec," "," "," "," "," "," "); 1072 1073 addteradatacmds(ESqlStatementType.sstteradataexecuteimmediate, TBaseType.rrw_execute,"immediate"," "," "," "," "," "); 1074 1075 addteradatacmds(ESqlStatementType.sstteradataExit, TBaseType.rrw_teradata_exit," "," "," "," "," "," "); 1076 1077 addteradatacmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 1078 1079 1080 addteradatacmds(ESqlStatementType.sstteradatafetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 1081 1082 addteradatacmds(ESqlStatementType.sstteradatagetcrash, TBaseType.rrw_get,"crash"," "," "," "," "," "); 1083 1084 addteradatacmds(ESqlStatementType.sstgetdiagnostics, TBaseType.rrw_get,"diagnostics"," "," "," "," "," "); 1085 1086 addteradatacmds(ESqlStatementType.sstteradatagive, TBaseType.rrw_teradata_give," "," "," "," "," "," "); 1087 1088 addteradatacmds(ESqlStatementType.sstteradatagrant, TBaseType.rrw_grant," "," "," "," "," "," "); 1089 1090 addteradatacmds(ESqlStatementType.sstteradatahelp, TBaseType.rrw_teradata_help," "," "," "," "," "," "); 1091 1092 addteradatacmds(ESqlStatementType.sstteradatainclude, TBaseType.rrw_include," "," "," "," "," "," "); 1093 1094 addteradatacmds(ESqlStatementType.sstinsert, TBaseType.rrw_teradata_ins," "," "," "," "," "," "); 1095 1096 addteradatacmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 1097 1098 addteradatacmds(ESqlStatementType.sstteradatainsertexplain, TBaseType.rrw_insert,"explain"," "," "," "," "," "); 1099 1100 addteradatacmds(ESqlStatementType.sstteradatalabel, TBaseType.rrw_teradata_label," "," "," "," "," "," "); 1101 addteradatacmds(ESqlStatementType.sstteradatalock, TBaseType.rrw_lock," "," "," "," "," "," "); 1102 addteradatacmds(ESqlStatementType.sstteradatalock, TBaseType.rrw_teradata_locking," "," "," "," "," "," "); 1103 addteradatacmds(ESqlStatementType.sstteradatalogon, TBaseType.rrw_teradata_logon," "," "," "," "," "," "); 1104 1105 addteradatacmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 1106 1107 addteradatacmds(ESqlStatementType.sstteradatamodifydatabase, TBaseType.rrw_teradata_modify,"database"," "," "," "," "," "); 1108 1109 addteradatacmds(ESqlStatementType.sstteradatamodifyprofile, TBaseType.rrw_teradata_modify,"profile"," "," "," "," "," "); 1110 1111 addteradatacmds(ESqlStatementType.sstteradatamodifyuser, TBaseType.rrw_teradata_modify,"user"," "," "," "," "," "); 1112 1113 addteradatacmds(ESqlStatementType.sstteradataopen, TBaseType.rrw_open," "," "," "," "," "," "); 1114 1115 addteradatacmds(ESqlStatementType.sstteradataposition, TBaseType.rrw_teradata_position," "," "," "," "," "," "); 1116 1117 addteradatacmds(ESqlStatementType.sstteradataprepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 1118 1119 addteradatacmds(ESqlStatementType.sstteradatareleaseLock, TBaseType.rrw_release,"lock"," "," "," "," "," "); 1120 1121 addteradatacmds(ESqlStatementType.sstteradatarenamefunction, TBaseType.rrw_rename,"function"," "," "," "," "," "); 1122 addteradatacmds(ESqlStatementType.sstteradatarenamemacro, TBaseType.rrw_rename,"macro"," "," "," "," "," "); 1123 addteradatacmds(ESqlStatementType.sstteradatarenameprocedure, TBaseType.rrw_rename,"procedure"," "," "," "," "," "); 1124 addteradatacmds(ESqlStatementType.sstteradatarenametable, TBaseType.rrw_rename,"table"," "," "," "," "," "); 1125 addteradatacmds(ESqlStatementType.sstteradatarenametrigger, TBaseType.rrw_rename,"trigger"," "," "," "," "," "); 1126 addteradatacmds(ESqlStatementType.sstteradatarenameview, TBaseType.rrw_rename,"view"," "," "," "," "," "); 1127 1128 addteradatacmds(ESqlStatementType.sstteradatareplacecast, TBaseType.rrw_replace,"cast"," "," "," "," "," "); 1129 1130 addteradatacmds(ESqlStatementType.sstteradatareplacemethod, TBaseType.rrw_replace,"constructor","method"," "," "," "," "); 1131 1132 addteradatacmds(ESqlStatementType.sstteradatareplacefunction, TBaseType.rrw_replace,"function"," "," "," "," "," "); 1133 1134 addteradatacmds(ESqlStatementType.sstteradatareplacemethod, TBaseType.rrw_replace,"instance","method"," "," "," "," "); 1135 1136 addteradatacmds(ESqlStatementType.sstteradatareplacemacro, TBaseType.rrw_replace,"macro"," "," "," "," "," "); 1137 1138 addteradatacmds(ESqlStatementType.sstteradatareplacemethod, TBaseType.rrw_replace,"method"," "," "," "," "," "); 1139 1140 addteradatacmds(ESqlStatementType.sstteradatareplaceordering, TBaseType.rrw_replace,"ordering"," "," "," "," "," "); 1141 1142 addteradatacmds(ESqlStatementType.sstteradatareplaceprocedure, TBaseType.rrw_replace,"procedure"," "," "," "," "," "); 1143 1144 addteradatacmds(ESqlStatementType.sstteradatareplacemethod, TBaseType.rrw_replace,"specific","method"," "," "," "," "); 1145 1146 addteradatacmds(ESqlStatementType.sstteradatareplacetransform, TBaseType.rrw_replace,"transform"," "," "," "," "," "); 1147 1148 addteradatacmds(ESqlStatementType.sstteradatacreatetrigger, TBaseType.rrw_replace,"trigger"," "," "," "," "," "); 1149 1150 addteradatacmds(ESqlStatementType.sstteradatareplaceview, TBaseType.rrw_replace,"view"," "," "," "," "," "); 1151 addteradatacmds(ESqlStatementType.sstteradatareplaceview, TBaseType.rrw_replace,"recursive","view"," "," "," "," "); 1152 1153 addteradatacmds(ESqlStatementType.sstteradatarestartindexanalysis, TBaseType.rrw_teradata_restart,"index","analysis"," "," "," "," "); 1154 1155 addteradatacmds(ESqlStatementType.sstteradatarevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 1156 1157 // addteradatacmds(ESqlStatementType.sstteradatarewind, TBaseType.rrw_rewind," "," "," "," "," "," "); 1158 1159 addteradatacmds(ESqlStatementType.sstteradatarollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 1160 1161 addteradatacmds(ESqlStatementType.sstselect, TBaseType.rrw_teradata_sel," "," "," "," "," "," "); 1162 addteradatacmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 1163 1164 //addteradatacmds(ESqlStatementType.sstsetbuffersize, TBaseType.rrw_set,"buffersize"," "," "," "," "," "); 1165 addteradatacmds(ESqlStatementType.sstteradatasetrole, TBaseType.rrw_set,"role"," "," "," "," "," "); 1166 1167 addteradatacmds(ESqlStatementType.sstteradatasetsession, TBaseType.rrw_set,"session"," "," "," "," "," "); 1168 addteradatacmds(ESqlStatementType.sstteradatasetsession, TBaseType.rrw_ss," "," "," "," "," "," "); 1169// addteradatacmds(ESqlStatementType.sstteradatasetsessionaccount, TBaseType.rrw_set,"session","account"," "," "," "," "); 1170 1171 addteradatacmds(ESqlStatementType.sstteradatasettimezone, TBaseType.rrw_set,"time","zone"," "," "," "," "); 1172 1173 addteradatacmds(ESqlStatementType.sstteradatashow, TBaseType.rrw_show," "," "," "," "," "," "); 1174 1175 addteradatacmds(ESqlStatementType.sstteradatashowmethod, TBaseType.rrw_show,"constructor","method"," "," "," "," "); 1176 1177 addteradatacmds(ESqlStatementType.sstteradatashowfunction, TBaseType.rrw_show,"function"," "," "," "," "," "); 1178 1179 addteradatacmds(ESqlStatementType.sstteradatashowindex, TBaseType.rrw_show,"hash","index"," "," "," "," "); 1180 1181 addteradatacmds(ESqlStatementType.sstteradatashowmethod, TBaseType.rrw_show,"instance","method"," "," "," "," "); 1182 1183 addteradatacmds(ESqlStatementType.sstteradatashowindex, TBaseType.rrw_show,"join","index"," "," "," "," "); 1184 1185 addteradatacmds(ESqlStatementType.sstteradatashowmacro, TBaseType.rrw_show,"macro"," "," "," "," "," "); 1186 1187 addteradatacmds(ESqlStatementType.sstteradatashowmethod, TBaseType.rrw_show,"method"," "," "," "," "," "); 1188 1189 addteradatacmds(ESqlStatementType.sstteradatashowprocedure, TBaseType.rrw_show,"procedure"," "," "," "," "," "); 1190 1191 addteradatacmds(ESqlStatementType.sstteradatashowreplicationgroup, TBaseType.rrw_show,"replication","group"," "," "," "," "); 1192 1193 addteradatacmds(ESqlStatementType.sstteradatashowfunction, TBaseType.rrw_show,"specific","function"," "," "," "," "); 1194 addteradatacmds(ESqlStatementType.sstteradatashowmethod, TBaseType.rrw_show,"specific","method"," "," "," "," "); 1195 1196 addteradatacmds(ESqlStatementType.sstteradatashowtable, TBaseType.rrw_show,"table "," "," "," "," "," "); 1197 addteradatacmds(ESqlStatementType.sstteradatashowtable, TBaseType.rrw_show,"temporary","table"," "," "," "," "); 1198 1199 addteradatacmds(ESqlStatementType.sstteradatashowtrigger, TBaseType.rrw_show,"trigger"," "," "," "," "," "); 1200 addteradatacmds(ESqlStatementType.sstteradatashowtype, TBaseType.rrw_show,"type"," "," "," "," "," "); 1201 addteradatacmds(ESqlStatementType.sstteradatashowview, TBaseType.rrw_show,"view"," "," "," "," "," "); 1202 1203 //addteradatacmds(ESqlStatementType.sstteradatatest, TBaseType.rrw_test," "," "," "," "," "," "); 1204 addteradatacmds(ESqlStatementType.sstupdate, TBaseType.rrw_teradata_upd," "," "," "," "," "," "); 1205 addteradatacmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 1206 1207 addteradatacmds(ESqlStatementType.sstteradatausing, TBaseType.rrw_teradata_using," "," "," "," "," "," "); 1208 1209 addteradatacmds(ESqlStatementType.sstteradatawait, TBaseType.rrw_teradata_wait," "," "," "," "," "," "); 1210 //addteradatacmds(ESqlStatementType.sstteradatawhenever, TBaseType.rrw_whenever," "," "," "," "," "," "); 1211 1212} 1213 1214 void inithivecmds(){ 1215 addhivecmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database"," "," "," "," "," "); 1216 addhivecmds(ESqlStatementType.sstalterindex, TBaseType.rrw_alter, "index"," "," "," "," "," "); 1217 addhivecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1218 addhivecmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view"," "," "," "," "," "); 1219 addhivecmds(ESqlStatementType.sstanalyzeTable, TBaseType.rrw_analyze, "table"," "," "," "," "," "); 1220 1221 1222 addhivecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database"," "," "," "," "," "); 1223 addhivecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external","table"," "," "," "," "); 1224 addhivecmds(ESqlStatementType.ssthiveCreateFunction, TBaseType.rrw_create, "function"," "," "," "," "," "); 1225 addhivecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "index"," "," "," "," "," "); 1226 addhivecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"materialized","view"," "," "," "," "); 1227 1228 addhivecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","view"," "," "," "); 1229 addhivecmds(ESqlStatementType.ssthiveCreateRole, TBaseType.rrw_create, "role"," "," "," "," "," "); 1230 addhivecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "schema"," "," "," "," "," "); 1231 addhivecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table"," "," "," "," "," "); 1232 addhivecmds(ESqlStatementType.ssthiveCreateFunction, TBaseType.rrw_create, "temporary","function"," "," "," "," "); 1233 addhivecmds(ESqlStatementType.sstCreateMacro, TBaseType.rrw_create, "temporary","macro"," "," "," "," "); 1234 addhivecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary","table"," "," "," "," "); 1235 addhivecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "transactional","table"," "," "," "," "); 1236 addhivecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view"," "," "," "," "," "); 1237 1238 addhivecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 1239 addhivecmds(ESqlStatementType.ssthiveDesc, TBaseType.rrw_hive_desc, " "," "," "," "," "," "); 1240 1241 addhivecmds(ESqlStatementType.ssthiveDesc, TBaseType.rrw_describe, " "," "," "," "," "," "); 1242 1243 addhivecmds(ESqlStatementType.ssthiveDropDatabase, TBaseType.rrw_drop, "database"," "," "," "," "," "); 1244 addhivecmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index"," "," "," "," "," "); 1245 addhivecmds(ESqlStatementType.ssthiveDropRole, TBaseType.rrw_drop, "role"," "," "," "," "," "); 1246 addhivecmds(ESqlStatementType.ssthiveDropDatabase, TBaseType.rrw_drop, "schema"," "," "," "," "," "); 1247 addhivecmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," "," "," "," "," "); 1248 addhivecmds(ESqlStatementType.ssthiveDropFunciton, TBaseType.rrw_drop, "temporary","function"," "," "," "," "); 1249 addhivecmds(ESqlStatementType.sstDropMacro, TBaseType.rrw_drop, "temporary","macro"," "," "," "," "); 1250 addhivecmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," "," "," "," "," "); 1251 1252 addhivecmds(ESqlStatementType.ssthiveExplain, TBaseType.rrw_explain, " "," "," "," "," "," "); 1253 1254 addhivecmds(ESqlStatementType.ssthiveExportTable, TBaseType.rrw_hive_export, "table"," "," "," "," "," "); 1255 1256 addhivecmds(ESqlStatementType.ssthiveGrant, TBaseType.rrw_grant, " "," "," "," "," "," "); 1257 addhivecmds(ESqlStatementType.ssthiveGrantRole, TBaseType.rrw_grant, "role"," "," "," "," "," "); 1258 1259 addhivecmds(ESqlStatementType.ssthiveImportTable, TBaseType.rrw_hive_import, "external","table"," "," "," "," "); 1260 addhivecmds(ESqlStatementType.ssthiveImportTable, TBaseType.rrw_hive_import, "from"," "," "," "," "," "); 1261 addhivecmds(ESqlStatementType.ssthiveImportTable, TBaseType.rrw_hive_import, "table"," "," "," "," "," "); 1262 1263 addhivecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1264 1265 1266 addhivecmds(ESqlStatementType.ssthiveLoad, TBaseType.rrw_load, "data"," "," "," "," "," "); 1267 1268 addhivecmds(ESqlStatementType.ssthiveLockTable, TBaseType.rrw_lock, "table"," "," "," "," "," "); 1269 1270 //merge 1271 addhivecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 1272 1273 addhivecmds(ESqlStatementType.sstmsck, TBaseType.rrw_hive_msck, " "," "," "," "," "," "); 1274 1275 addhivecmds(ESqlStatementType.ssthiveRevoke, TBaseType.rrw_revoke, " "," "," "," "," "," "); 1276 addhivecmds(ESqlStatementType.ssthiveRevokeRole, TBaseType.rrw_revoke, "role"," "," "," "," "," "); 1277 1278 addhivecmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " "," "," "," "," "," "); 1279 addhivecmds(ESqlStatementType.ssthiveSet, TBaseType.rrw_set, " "," "," "," "," "," "); 1280 addhivecmds(ESqlStatementType.ssthiveShow, TBaseType.rrw_show, " "," "," "," "," "," "); 1281 addhivecmds(ESqlStatementType.ssthiveShowGrants, TBaseType.rrw_show, "grant"," "," "," "," "," "); 1282 addhivecmds(ESqlStatementType.ssthiveShowRoleGrants, TBaseType.rrw_show, "role","grant"," "," "," "," "); 1283 1284 addhivecmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate, "table"," "," "," "," "," "); 1285 1286 addhivecmds(ESqlStatementType.ssthiveUnlockTable, TBaseType.rrw_unlock, "table"," "," "," "," "," "); 1287 addhivecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 1288 addhivecmds(ESqlStatementType.sstupsert, TBaseType.rrw_hive_upsert, " ", " ", " ", " ", " ", " "); 1289 addhivecmds(ESqlStatementType.ssthiveSwitchDatabase, TBaseType.rrw_use, " "," "," "," "," "," "); 1290 } 1291 1292 void initdatabrickscmds(){ 1293 adddatabrickscmds(ESqlStatementType.sstaddAchieve, TBaseType.rrw_add, "archive"," "," "," "," "," "); 1294 adddatabrickscmds(ESqlStatementType.sstaddAchieve, TBaseType.rrw_add, "archives"," "," "," "," "," "); 1295 adddatabrickscmds(ESqlStatementType.sstaltercatalog, TBaseType.rrw_alter, "catalog"," "," "," "," "," "); 1296 adddatabrickscmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database"," "," "," "," "," "); 1297 adddatabrickscmds(ESqlStatementType.sstalterlocation, TBaseType.rrw_alter, "external","location"," "," "," "," "); 1298 adddatabrickscmds(ESqlStatementType.sstAlterGroup, TBaseType.rrw_alter, "group"," "," "," "," "," "); 1299 adddatabrickscmds(ESqlStatementType.sstalterprovider, TBaseType.rrw_alter, "provider"," "," "," "," "," "); 1300 adddatabrickscmds(ESqlStatementType.sstalterrecipient, TBaseType.rrw_alter, "recipient"," "," "," "," "," "); 1301 adddatabrickscmds(ESqlStatementType.sstAlterSchema, TBaseType.rrw_alter, "schema"," "," "," "," "," "); 1302 adddatabrickscmds(ESqlStatementType.sstAltershare, TBaseType.rrw_alter, "share"," "," "," "," "," "); 1303 adddatabrickscmds(ESqlStatementType.sstaltercredental, TBaseType.rrw_alter, "storage","credential"," "," "," "," "); 1304 adddatabrickscmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1305 adddatabrickscmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view"," "," "," "," "," "); 1306 adddatabrickscmds(ESqlStatementType.sstAnalyzeTable, TBaseType.rrw_analyze, "table"," "," "," "," "," "); 1307 adddatabrickscmds(ESqlStatementType.sstAnalyzeTable, TBaseType.rrw_analyze, "tables"," "," "," "," "," "); 1308 adddatabrickscmds(ESqlStatementType.sstCacheSelect, TBaseType.rrw_cache, "select"," "," "," "," "," "); 1309 adddatabrickscmds(ESqlStatementType.sstClearCache, TBaseType.rrw_clear, "cache"," "," "," "," "," "); 1310 adddatabrickscmds(ESqlStatementType.sstCommentOn, TBaseType.rrw_comment, "on"," "," "," "," "," "); 1311 adddatabrickscmds(ESqlStatementType.sstConvertToDelta, TBaseType.rrw_databricks_convert, "to","delta"," "," "," "," "); 1312 adddatabrickscmds(ESqlStatementType.sstCopyInto, TBaseType.rrw_databricks_copy, "into"," "," "," "," "," "); 1313 adddatabrickscmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "bloomfilter","index"," "," "," "," "); 1314 adddatabrickscmds(ESqlStatementType.sstcreatecatalog, TBaseType.rrw_create, "catalog"," "," "," "," "," "); 1315 adddatabrickscmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database"," "," "," "," "," "); 1316 adddatabrickscmds(ESqlStatementType.sstCreateExternallocation, TBaseType.rrw_create, "external","location"," "," "," "," "); 1317 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function"," "," "," "," "," "); 1318 adddatabrickscmds(ESqlStatementType.sstCreategroup, TBaseType.rrw_create, "group"," "," "," "," "," "); 1319 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","function"," "," "," "); 1320 adddatabrickscmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or","replace","table"," "," "," "); 1321 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","temp","function"," "," "); 1322 adddatabrickscmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","temp","view"," "," "); 1323 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","temporary","function"," "," "); 1324 adddatabrickscmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","temporary","view"," "," "); 1325 adddatabrickscmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","view"," "," ", " "); 1326 adddatabrickscmds(ESqlStatementType.sstcreaterecipient, TBaseType.rrw_create, "recipient"," "," "," "," "," "); 1327 adddatabrickscmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "schema"," "," "," "," "," "); 1328 adddatabrickscmds(ESqlStatementType.sstcreateshare, TBaseType.rrw_create, "share"," "," "," "," "," "); 1329 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temp","function"," "," "," "," "); 1330 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temporary","function"," "," "," "," "); 1331 adddatabrickscmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "role"," "," "," "," "," "); 1332 adddatabrickscmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "schema"," "," "," "," "," "); 1333 adddatabrickscmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table"," "," "," "," "," "); 1334 adddatabrickscmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view"," "," "," "," "," "); 1335 adddatabrickscmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, "from"," "," "," "," "," "); 1336 adddatabrickscmds(ESqlStatementType.sstDeny, TBaseType.rrw_deny, " "," "," "," "," "," "); 1337 adddatabrickscmds(ESqlStatementType.sstdescribe, TBaseType.rrw_databricks_desc, " "," "," "," "," "," "); 1338 adddatabrickscmds(ESqlStatementType.sstdescribeCatalog, TBaseType.rrw_databricks_desc, "catalog"," "," "," "," "," "); 1339 adddatabrickscmds(ESqlStatementType.sstdescribeFunction, TBaseType.rrw_databricks_desc, "function"," "," "," "," "," "); 1340 adddatabrickscmds(ESqlStatementType.sstdescribeProvider, TBaseType.rrw_databricks_desc, "provider"," "," "," "," "," "); 1341 adddatabrickscmds(ESqlStatementType.sstdescribeQuery, TBaseType.rrw_databricks_desc, "query"," "," "," "," "," "); 1342 adddatabrickscmds(ESqlStatementType.sstdescribeRecipient, TBaseType.rrw_databricks_desc, "recipient"," "," "," "," "," "); 1343 adddatabrickscmds(ESqlStatementType.sstdescribeSchema, TBaseType.rrw_databricks_desc, "schema"," "," "," "," "," "); 1344 adddatabrickscmds(ESqlStatementType.sstdescribeShare, TBaseType.rrw_databricks_desc, "share"," "," "," "," "," "); 1345 adddatabrickscmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_databricks_desc, "table"," "," "," "," "," "); 1346 adddatabrickscmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe, " "," "," "," "," "," "); 1347 adddatabrickscmds(ESqlStatementType.sstdescribeCatalog, TBaseType.rrw_describe, "catalog"," "," "," "," "," "); 1348 adddatabrickscmds(ESqlStatementType.sstdescribeDatabase, TBaseType.rrw_describe, "database"," "," "," "," "," "); 1349 adddatabrickscmds(ESqlStatementType.sstdescribeLocation, TBaseType.rrw_describe, "external","location"," "," "," "," "); 1350 adddatabrickscmds(ESqlStatementType.sstdescribeFunction, TBaseType.rrw_describe, "function"," "," "," "," "," "); 1351 adddatabrickscmds(ESqlStatementType.sstdescribeProvider, TBaseType.rrw_describe, "provider"," "," "," "," "," "); 1352 adddatabrickscmds(ESqlStatementType.sstdescribeQuery, TBaseType.rrw_describe, "query"," "," "," "," "," "); 1353 adddatabrickscmds(ESqlStatementType.sstdescribeRecipient, TBaseType.rrw_describe, "recipient"," "," "," "," "," "); 1354 adddatabrickscmds(ESqlStatementType.sstdescribeSchema, TBaseType.rrw_describe, "schema"," "," "," "," "," "); 1355 adddatabrickscmds(ESqlStatementType.sstdescribeShare, TBaseType.rrw_describe, "share"," "," "," "," "," "); 1356 adddatabrickscmds(ESqlStatementType.sstdescribeCredential, TBaseType.rrw_describe, "storage","credential"," "," "," "," "); 1357 adddatabrickscmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_describe, "table"," "," "," "," "," "); 1358 adddatabrickscmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "bloomfilter","index"," "," "," "," "); 1359 adddatabrickscmds(ESqlStatementType.sstdropcatalog, TBaseType.rrw_drop, "catalog"," "," "," "," "," "); 1360 adddatabrickscmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database"," "," "," "," "," "); 1361 adddatabrickscmds(ESqlStatementType.sstdroplocation, TBaseType.rrw_drop, "external","location"," "," "," "," "); 1362 adddatabrickscmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function"," "," "," "," "," "); 1363 adddatabrickscmds(ESqlStatementType.sstDropGroup, TBaseType.rrw_drop, "group"," "," "," "," "," "); 1364 adddatabrickscmds(ESqlStatementType.sstdropprovider, TBaseType.rrw_drop, "provider"," "," "," "," "," "); 1365 adddatabrickscmds(ESqlStatementType.sstdroprecipient, TBaseType.rrw_drop, "recipient"," "," "," "," "," "); 1366 adddatabrickscmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema"," "," "," "," "," "); 1367 adddatabrickscmds(ESqlStatementType.sstdropshare, TBaseType.rrw_drop, "share"," "," "," "," "," "); 1368 adddatabrickscmds(ESqlStatementType.sstdropcredential, TBaseType.rrw_drop, "storage","credential"," "," "," "," "); 1369 adddatabrickscmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "temp","function"," "," "," "," "); 1370 adddatabrickscmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "temporary","function"," "," "," "," "); 1371 adddatabrickscmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," "," "," "," "," "); 1372 adddatabrickscmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," "," "," "," "," "); 1373 adddatabrickscmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " "," "," "," "," "," "); 1374 adddatabrickscmds(ESqlStatementType.sstmsckrepairtable, TBaseType.rrw_databricks_fsck, "repair"," "," "," "," "," "); 1375 adddatabrickscmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " "," "," "," "," "," "); 1376 adddatabrickscmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, "select","on","share"," "," "," "); 1377 adddatabrickscmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1378 adddatabrickscmds(ESqlStatementType.sstList, TBaseType.rrw_databricks_list, " "," "," "," "," "," "); 1379 adddatabrickscmds(ESqlStatementType.sstLoadData, TBaseType.rrw_load, "data"," "," "," "," "," "); 1380 adddatabrickscmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, "into"," "," "," "," "," "); 1381 adddatabrickscmds(ESqlStatementType.sstmsckrepairtable, TBaseType.rrw_databricks_msck, "repair"," "," "," "," "," "); 1382 adddatabrickscmds(ESqlStatementType.sstmsckrepairtable, TBaseType.rrw_databricks_msck, "repair","table"," "," "," "," "); 1383 adddatabrickscmds(ESqlStatementType.sstOptimize, TBaseType.rrw_optimize, " "," "," "," "," "," "); 1384 adddatabrickscmds(ESqlStatementType.sstRefresh, TBaseType.rrw_refresh, " "," "," "," "," "," "); 1385 adddatabrickscmds(ESqlStatementType.sstRefreshFunction, TBaseType.rrw_refresh, "function"," "," "," "," "," "); 1386 adddatabrickscmds(ESqlStatementType.sstRefreshTable, TBaseType.rrw_refresh, "table"," "," "," "," "," "); 1387 adddatabrickscmds(ESqlStatementType.sstReorgTable, TBaseType.rrw_databricks_reorg, "table"," "," "," "," "," "); 1388 adddatabrickscmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_replace, "table"," "," "," "," "," "); 1389 adddatabrickscmds(ESqlStatementType.sstReset, TBaseType.rrw_reset, " "," "," "," "," "," "); 1390 adddatabrickscmds(ESqlStatementType.sstRestoreTable, TBaseType.rrw_restore, " "," "," "," "," "," "); 1391 adddatabrickscmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " "," "," "," "," "," "); 1392 adddatabrickscmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, "select","on","share"," "," "," "); 1393 adddatabrickscmds(ESqlStatementType.sstset, TBaseType.rrw_set, " "," "," "," "," "," "); 1394 adddatabrickscmds(ESqlStatementType.sstUseCatalog, TBaseType.rrw_set, "catalog"," "," "," "," "," "); 1395 adddatabrickscmds(ESqlStatementType.sstset, TBaseType.rrw_set, "time","zone"," "," "," "," "); 1396 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "all","functions"," "," "," "," "); 1397 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "all","in","share"," "," "," "); 1398 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "catalogs"," "," "," "," "," "); 1399 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "columns"," "," "," "," "," "); 1400 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","table"," "," "," "," "); 1401 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "external","locations"," "," "," "," "); 1402 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "functions"," "," "," "," "," "); 1403 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "grants"," "," "," "," "," "); 1404 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "grants","on","share"," "," "," "); 1405 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "grants","to","recipient"," "," "," "); 1406 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "groups"," "," "," "," "," "); 1407 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "partitions"," "," "," "," "," "); 1408 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "providers"," "," "," "," "," "); 1409 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "recipients"," "," "," "," "," "); 1410 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "schemas"," "," "," "," "," "); 1411 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "shares"," "," "," "," "," "); 1412 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "storage","credentials"," "," "," "," "); 1413 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "system","functions"," "," "," "," "); 1414 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "table","extended"," "," "," "," "); 1415 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "tables"," "," "," "," "," "); 1416 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "tblproperties"," "," "," "," "," "); 1417 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "user","functions"," "," "," "," "); 1418 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "users"," "," "," "," "," "); 1419 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "views"," "," "," "," "," "); 1420 adddatabrickscmds(ESqlStatementType.sstsync, TBaseType.rrw_databricks_sync, "schema"," "," "," "," "," "); 1421 adddatabrickscmds(ESqlStatementType.sstsync, TBaseType.rrw_databricks_sync, "table"," "," "," "," "," "); 1422 adddatabrickscmds(ESqlStatementType.ssttruncatetable, TBaseType.rrw_truncate, "table"," "," "," "," "," "); 1423 adddatabrickscmds(ESqlStatementType.sstUnCacheTable, TBaseType.rrw_databricks_uncache, "table"," "," "," "," "," "); 1424 adddatabrickscmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " "," "," "," "," "," "); 1425 adddatabrickscmds(ESqlStatementType.sstUseSchema, TBaseType.rrw_use, " "," "," "," "," "," "); 1426 adddatabrickscmds(ESqlStatementType.sstUseCatalog, TBaseType.rrw_use, "catalog"," "," "," "," "," "); 1427 adddatabrickscmds(ESqlStatementType.sstUseSchema, TBaseType.rrw_use, "database"," "," "," "," "," "); 1428 adddatabrickscmds(ESqlStatementType.sstUseSchema, TBaseType.rrw_use, "schema"," "," "," "," "," "); 1429 adddatabrickscmds(ESqlStatementType.sstVacuum, TBaseType.rrw_databricks_vacuum, " "," "," "," "," "," "); 1430 1431 adddatabrickscmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " "," "," "," "," "," "); 1432 1433 adddatabrickscmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " "," "," "," "," "," "); 1434 adddatabrickscmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1435 adddatabrickscmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare, " "," "," "," "," "," "); 1436 adddatabrickscmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_replace, "table"," "," "," "," "," "); 1437 adddatabrickscmds(ESqlStatementType.sstResetSession, TBaseType.rrw_reset, "session"," "," "," "," "," "); 1438 adddatabrickscmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " "," "," "," "," "," "); 1439 adddatabrickscmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " "," "," "," "," "," "); 1440 adddatabrickscmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " "," "," "," "," "," "); 1441 adddatabrickscmds(ESqlStatementType.sstset, TBaseType.rrw_set, "role"," "," "," "," "," "); 1442 adddatabrickscmds(ESqlStatementType.sstset, TBaseType.rrw_set, "session"," "," "," "," "," "); 1443 1444 adddatabrickscmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction"," "," "," "," "," "); 1445 1446 } 1447 void initprestocmds(){ 1448 addprestocmds(ESqlStatementType.sstalterfunction, TBaseType.rrw_alter, "function"," "," "," "," "," "); 1449 addprestocmds(ESqlStatementType.sstAlterSchema, TBaseType.rrw_alter, "schema"," "," "," "," "," "); 1450 addprestocmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1451 addprestocmds(ESqlStatementType.sstAnalyzeTable, TBaseType.rrw_analyze, " "," "," "," "," "," "); 1452 addprestocmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " "," "," "," "," "," "); 1453 addprestocmds(ESqlStatementType.sstcommit, TBaseType.rrw_commit, " "," "," "," "," "," "); 1454 addprestocmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function"," "," "," "," "," "); 1455 addprestocmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","function"," "," "," "); 1456 addprestocmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temporary","function"," "," "," "," "); 1457 addprestocmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "role"," "," "," "," "," "); 1458 addprestocmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "schema"," "," "," "," "," "); 1459 addprestocmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table"," "," "," "," "," "); 1460 addprestocmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view"," "," "," "," "," "); 1461 addprestocmds(ESqlStatementType.sstpostgresqlDeallocate, TBaseType.rrw_deallocate, "prepare"," "," "," "," "," "); 1462 addprestocmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " "," "," "," "," "," "); 1463 addprestocmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe, " "," "," "," "," "," "); 1464 addprestocmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function"," "," "," "," "," "); 1465 addprestocmds(ESqlStatementType.sstdroprole, TBaseType.rrw_drop, "role"," "," "," "," "," "); 1466 addprestocmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema"," "," "," "," "," "); 1467 addprestocmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," "," "," "," "," "); 1468 addprestocmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," "," "," "," "," "); 1469 addprestocmds(ESqlStatementType.sstExecute, TBaseType.rrw_execute, " "," "," "," "," "," "); 1470 addprestocmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " "," "," "," "," "," "); 1471 addprestocmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " "," "," "," "," "," "); 1472 addprestocmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1473 addprestocmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare, " "," "," "," "," "," "); 1474 addprestocmds(ESqlStatementType.sstResetSession, TBaseType.rrw_reset, "session"," "," "," "," "," "); 1475 addprestocmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " "," "," "," "," "," "); 1476 addprestocmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " "," "," "," "," "," "); 1477 addprestocmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " "," "," "," "," "," "); 1478 addprestocmds(ESqlStatementType.sstset, TBaseType.rrw_set, "role"," "," "," "," "," "); 1479 addprestocmds(ESqlStatementType.sstset, TBaseType.rrw_set, "session"," "," "," "," "," "); 1480 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "catalogs"," "," "," "," "," "); 1481 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "columns"," "," "," "," "," "); 1482 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","function"," "," "," "," "); 1483 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","table"," "," "," "," "); 1484 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","view"," "," "," "," "); 1485 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "current","roles"," "," "," "," "); 1486 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "functions"," "," "," "," "," "); 1487 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "grants"," "," "," "," "," "); 1488 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "role","grants"," "," "," "," "); 1489 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "roles"," "," "," "," "," "); 1490 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "schemas"," "," "," "," "," "); 1491 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "session"," "," "," "," "," "); 1492 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "stats"," "," "," "," "," "); 1493 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "tables"," "," "," "," "," "); 1494 addprestocmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction"," "," "," "," "," "); 1495 addprestocmds(ESqlStatementType.sstUse, TBaseType.rrw_use, " "," "," "," "," "," "); 1496 addprestocmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " "," "," "," "," "," "); 1497 } 1498 1499 void initathenacmds(){ 1500 addathenacmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database"," "," "," "," "," "); 1501 addathenacmds(ESqlStatementType.sstalterfunction, TBaseType.rrw_alter, "function"," "," "," "," "," "); 1502 addathenacmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "schema"," "," "," "," "," "); 1503 addathenacmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1504 addathenacmds(ESqlStatementType.sstAnalyzeTable, TBaseType.rrw_analyze, " "," "," "," "," "," "); 1505 addathenacmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " "," "," "," "," "," "); 1506 addathenacmds(ESqlStatementType.sstcommit, TBaseType.rrw_commit, " "," "," "," "," "," "); 1507 addathenacmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database"," "," "," "," "," "); 1508 addathenacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function"," "," "," "," "," "); 1509 addathenacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","function"," "," "," "); 1510 addathenacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temporary","function"," "," "," "," "); 1511 addathenacmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "role"," "," "," "," "," "); 1512 addathenacmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "schema"," "," "," "," "," "); 1513 addathenacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table"," "," "," "," "," "); 1514 addathenacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external","table"," "," "," "," "); 1515 addathenacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view"," "," "," "," "," "); 1516 addathenacmds(ESqlStatementType.sstpostgresqlDeallocate, TBaseType.rrw_deallocate, "prepare"," "," "," "," "," "); 1517 addathenacmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " "," "," "," "," "," "); 1518 addathenacmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe, " "," "," "," "," "," "); 1519 addathenacmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database"," "," "," "," "," "); 1520 addathenacmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function"," "," "," "," "," "); 1521 addathenacmds(ESqlStatementType.sstdroprole, TBaseType.rrw_drop, "role"," "," "," "," "," "); 1522 addathenacmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "schema"," "," "," "," "," "); 1523 addathenacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," "," "," "," "," "); 1524 addathenacmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," "," "," "," "," "); 1525 addathenacmds(ESqlStatementType.sstExecute, TBaseType.rrw_execute, " "," "," "," "," "," "); 1526 addathenacmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " "," "," "," "," "," "); 1527 addathenacmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " "," "," "," "," "," "); 1528 addathenacmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1529 addathenacmds(ESqlStatementType.sstmsck, TBaseType.rrw_athena_msck, " "," "," "," "," "," "); 1530 addathenacmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare, " "," "," "," "," "," "); 1531 addathenacmds(ESqlStatementType.sstResetSession, TBaseType.rrw_reset, "session"," "," "," "," "," "); 1532 addathenacmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " "," "," "," "," "," "); 1533 addathenacmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " "," "," "," "," "," "); 1534 addathenacmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " "," "," "," "," "," "); 1535 addathenacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "role"," "," "," "," "," "); 1536 addathenacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "session"," "," "," "," "," "); 1537 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "catalogs"," "," "," "," "," "); 1538 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "columns"," "," "," "," "," "); 1539 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","function"," "," "," "," "); 1540 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","table"," "," "," "," "); 1541 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","view"," "," "," "," "); 1542 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "current","roles"," "," "," "," "); 1543 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "databases"," "," "," "," "," "); 1544 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "functions"," "," "," "," "," "); 1545 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "grants"," "," "," "," "," "); 1546 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "partitions"," "," "," "," "," "); 1547 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "role","grants"," "," "," "," "); 1548 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "roles"," "," "," "," "," "); 1549 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "schemas"," "," "," "," "," "); 1550 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "session"," "," "," "," "," "); 1551 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "stats"," "," "," "," "," "); 1552 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "tables"," "," "," "," "," "); 1553 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "tblproperties"," "," "," "," "," "); 1554 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "views"," "," "," "," "," "); 1555 addathenacmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction"," "," "," "," "," "); 1556 addathenacmds(ESqlStatementType.sstunload, TBaseType.rrw_athena_unload, " ", " ", " ", " ", " ", " "); 1557 addathenacmds(ESqlStatementType.sstUse, TBaseType.rrw_use, " "," "," "," "," "," "); 1558 addathenacmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " "," "," "," "," "," "); 1559 } 1560 1561 void initsparksqlcmds(){ 1562 addsparksqlcmds(ESqlStatementType.sstAddFile, TBaseType.rrw_add, "file"," "," "," "," "," "); 1563 addsparksqlcmds(ESqlStatementType.sstAddJar, TBaseType.rrw_add, "jar"," "," "," "," "," "); 1564 addsparksqlcmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database"," "," "," "," "," "); 1565 addsparksqlcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1566 addsparksqlcmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view"," "," "," "," "," "); 1567 addsparksqlcmds(ESqlStatementType.sstanalyzeTable, TBaseType.rrw_analyze, "table"," "," "," "," "," "); 1568 addsparksqlcmds(ESqlStatementType.sstCacheTable, TBaseType.rrw_cache, "table"," "," "," "," "," "); 1569 addsparksqlcmds(ESqlStatementType.sstCacheTable, TBaseType.rrw_cache, "lazy","table"," "," "," "," "); 1570 addsparksqlcmds(ESqlStatementType.sstClearCache, TBaseType.rrw_clear, "cache"," "," "," "," "," "); 1571 addsparksqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external","table"," "," "," "," "); 1572 addsparksqlcmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database"," "," "," "," "," "); 1573 addsparksqlcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function"," "," "," "," "," "); 1574 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "global","temporary","view"," "," "," "); 1575 addsparksqlcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","function"," "," "," "); 1576 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","global","temporary","view"," "); 1577 addsparksqlcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","temporary","function"," "," "); 1578 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","temporary","view"," "," "); 1579 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","view"," "," "," "); 1580 addsparksqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table"," "," "," "," "," "); 1581 addsparksqlcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temporary","function"," "," "," "," "); 1582 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "temporary","view"," "," "," "," "); 1583 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view"," "," "," "," "," "); 1584 addsparksqlcmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_spark_desc, " "," "," "," "," "," "); 1585 addsparksqlcmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_describe, " "," "," "," "," "," "); 1586 addsparksqlcmds(ESqlStatementType.sstdescribeDatabase, TBaseType.rrw_spark_desc, "database"," "," "," "," "," "); 1587 addsparksqlcmds(ESqlStatementType.sstdescribeFunction, TBaseType.rrw_spark_desc, "function"," "," "," "," "," "); 1588 addsparksqlcmds(ESqlStatementType.sstdescribeQuery, TBaseType.rrw_spark_desc, "query"," "," "," "," "," "); 1589 addsparksqlcmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_spark_desc, "table"," "," "," "," "," "); 1590 addsparksqlcmds(ESqlStatementType.sstdescribeFunction, TBaseType.rrw_describe, "function"," "," "," "," "," "); 1591 addsparksqlcmds(ESqlStatementType.sstdescribeDatabase, TBaseType.rrw_describe, "database"," "," "," "," "," "); 1592 addsparksqlcmds(ESqlStatementType.sstdescribeQuery, TBaseType.rrw_describe, "query"," "," "," "," "," "); 1593 addsparksqlcmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_describe, "table"," "," "," "," "," "); 1594 addsparksqlcmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "schema"," "," "," "," "," "); 1595 addsparksqlcmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database"," "," "," "," "," "); 1596 addsparksqlcmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function"," "," "," "," "," "); 1597 addsparksqlcmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "temporary","function"," "," "," "," "); 1598 addsparksqlcmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," "," "," "," "," "); 1599 addsparksqlcmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," "," "," "," "," "); 1600 addsparksqlcmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " "," "," "," "," "," "); 1601 addsparksqlcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1602 addsparksqlcmds(ESqlStatementType.sstListFile, TBaseType.rrw_spark_list, "file"," "," "," "," "," "); 1603 addsparksqlcmds(ESqlStatementType.sstListJar, TBaseType.rrw_spark_list, "jar"," "," "," "," "," "); 1604 addsparksqlcmds(ESqlStatementType.sstLoadData, TBaseType.rrw_load, "data"," "," "," "," "," "); 1605 addsparksqlcmds(ESqlStatementType.sstmsck, TBaseType.rrw_spark_msck, "repair","table"," "," "," "," "); 1606 addsparksqlcmds(ESqlStatementType.sstRefresh, TBaseType.rrw_refresh, " "," "," "," "," "," "); 1607 addsparksqlcmds(ESqlStatementType.sstRefreshFunction, TBaseType.rrw_refresh, "function"," "," "," "," "," "); 1608 addsparksqlcmds(ESqlStatementType.sstRefreshTable, TBaseType.rrw_refresh, "table"," "," "," "," "," "); 1609 addsparksqlcmds(ESqlStatementType.sstReset, TBaseType.rrw_reset, " "," "," "," "," "," "); 1610 addsparksqlcmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " "," "," "," "," "," "); 1611 addsparksqlcmds(ESqlStatementType.sstset, TBaseType.rrw_set, " "," "," "," "," "," "); 1612 addsparksqlcmds(ESqlStatementType.sstSetTimeZone, TBaseType.rrw_set, "time","zone"," "," "," "," "); 1613 addsparksqlcmds(ESqlStatementType.sstShowColumns, TBaseType.rrw_show, "columns"," "," "," "," "," "); 1614 addsparksqlcmds(ESqlStatementType.sstShowCreateTable, TBaseType.rrw_show, "create","table"," "," "," "," "); 1615 addsparksqlcmds(ESqlStatementType.sstShowDatabases, TBaseType.rrw_show, "databases"," "," "," "," "," "); 1616 addsparksqlcmds(ESqlStatementType.sstShowFunctions, TBaseType.rrw_show, "functions"," "," "," "," "," "); 1617 addsparksqlcmds(ESqlStatementType.sstShowPartitions, TBaseType.rrw_show, "partitions"," "," "," "," "," "); 1618 addsparksqlcmds(ESqlStatementType.sstShowTableExtended, TBaseType.rrw_show, "table","extended"," "," "," "," "); 1619 addsparksqlcmds(ESqlStatementType.sstShowTables, TBaseType.rrw_show, "tables"," "," "," "," "," "); 1620 addsparksqlcmds(ESqlStatementType.sstShowTblProperties, TBaseType.rrw_show, "tblproperties"," "," "," "," "," "); 1621 addsparksqlcmds(ESqlStatementType.sstShowUser, TBaseType.rrw_show, "user"," "," "," "," "," "); 1622 addsparksqlcmds(ESqlStatementType.sstShowViews, TBaseType.rrw_show, "views"," "," "," "," "," "); 1623 addsparksqlcmds(ESqlStatementType.ssttruncatetable, TBaseType.rrw_truncate, "table"," "," "," "," "," "); 1624 addsparksqlcmds(ESqlStatementType.sstrepairtable, TBaseType.rrw_repair, "table"," "," "," "," "," "); 1625 addsparksqlcmds(ESqlStatementType.sstUnCacheTable, TBaseType.rrw_spark_uncache, "table"," "," "," "," "," "); 1626 addsparksqlcmds(ESqlStatementType.sstUse, TBaseType.rrw_use, " "," "," "," "," "," "); 1627 1628 } 1629 1630 void initmysqlcmds(){ 1631// cmd must be sort alphabetically 1632 addmysqlcmds(ESqlStatementType.sstmysqlalterview, TBaseType.rrw_alter, "algorithm"," "," "," "," "," "); 1633 addmysqlcmds(ESqlStatementType.sstmysqlalterdatabase, TBaseType.rrw_alter, "database"," "," "," "," "," "); 1634 addmysqlcmds(ESqlStatementType.sstmysqlalterfunction, TBaseType.rrw_alter, "function"," "," "," "," "," "); 1635 addmysqlcmds(ESqlStatementType.sstmysqlalterprocedure, TBaseType.rrw_alter, "procedure"," "," "," "," "," "); 1636 addmysqlcmds(ESqlStatementType.sstmysqlalterview, TBaseType.rrw_alter, "sql","security","definer","view"," "," "); 1637 addmysqlcmds(ESqlStatementType.sstmysqlalterview, TBaseType.rrw_alter, "sql","security","invoker","view"," "," "); 1638 addmysqlcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1639 addmysqlcmds(ESqlStatementType.sstmysqlalterview, TBaseType.rrw_alter, "view"," "," "," "," "," "); 1640 addmysqlcmds(ESqlStatementType.sstmysqlanalyzetable, TBaseType.rrw_analyze, "table"," "," "," "," "," "); 1641 addmysqlcmds(ESqlStatementType.sstmysqlbackuptable, TBaseType.rrw_backup, "table"," "," "," "," "," "); 1642 addmysqlcmds(ESqlStatementType.sstmysqlstarttransaction, TBaseType.rrw_begin, " "," "," "," "," "," "); 1643 addmysqlcmds(ESqlStatementType.sstmysqlcacheindex, TBaseType.rrw_cache, "index"," "," "," "," "," "); 1644 addmysqlcmds(ESqlStatementType.sstmysqlcall, TBaseType.rrw_call," "," "," "," "," "," "); 1645 addmysqlcmds(ESqlStatementType.sstmysqlcase, TBaseType.rrw_case," "," "," "," "," "," "); 1646 addmysqlcmds(ESqlStatementType.sstmysqlchangemasterto, TBaseType.rrw_change,"master", "to"," "," "," "," "); 1647 addmysqlcmds(ESqlStatementType.sstmysqlchecktable, TBaseType.rrw_check,"table"," "," "," "," "," "); 1648 addmysqlcmds(ESqlStatementType.sstmysqlchecktable, TBaseType.rrw_check,"tables"," "," "," "," "," "); 1649 addmysqlcmds(ESqlStatementType.sstmysqlchecksumtable, TBaseType.rrw_checksum,"table"," "," "," "," "," "); 1650 addmysqlcmds(ESqlStatementType.sstmysqlclose, TBaseType.rrw_close," "," "," "," "," "," "); 1651 addmysqlcmds(ESqlStatementType.sstmysqlcommit, TBaseType.rrw_commit," "," "," "," "," "," "); 1652 addmysqlcmds(ESqlStatementType.sstmysqlcreatefunction, TBaseType.rrw_create,"aggregate","function"," "," "," "," "); 1653 addmysqlcmds(ESqlStatementType.sstmysqlcreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 1654 addmysqlcmds(ESqlStatementType.sstmysqlcreatefunction, TBaseType.rrw_create,"definer", "=", "current_user", "function"," "," "); 1655 addmysqlcmds(ESqlStatementType.sstmysqlcreateprocedure, TBaseType.rrw_create,"definer", "=", "current_user", "procedure"," "," "); 1656 addmysqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"definer", "=", "current_user", "trigger"," "," "); 1657 addmysqlcmds(ESqlStatementType.sstmysqlcreateprocedure, TBaseType.rrw_create,"definer", "=","*","procedure"," "," "); 1658 addmysqlcmds(ESqlStatementType.sstmysqlcreatefunction, TBaseType.rrw_create,"definer", "=","*","function"," "," "); 1659 addmysqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"definer", "=","*","trigger"," "," "); 1660 addmysqlcmds(ESqlStatementType.sstmysqlcreatefunction, TBaseType.rrw_create,"definer", "=","*","*","*","function"); 1661 addmysqlcmds(ESqlStatementType.sstmysqlcreateprocedure, TBaseType.rrw_create,"definer", "=","*","*","*","procedure"); 1662 addmysqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"definer", "=","*","*","*","trigger"); 1663 addmysqlcmds(ESqlStatementType.sstmysqlcreateindex, TBaseType.rrw_create,"fulltext","index"," "," "," "," "); 1664 addmysqlcmds(ESqlStatementType.sstmysqlcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 1665 addmysqlcmds(ESqlStatementType.sstmysqlcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 1666 addmysqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"or","replace","table"," "," "," "); 1667 addmysqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"or","replace","view"," "," "," "); 1668 addmysqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"or","replace","*","*","*","view"); 1669 addmysqlcmds(ESqlStatementType.sstmysqlcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 1670 addmysqlcmds(ESqlStatementType.sstmysqlcreateindex, TBaseType.rrw_create,"spatial","index"," "," "," "," "); 1671 addmysqlcmds(ESqlStatementType.sstmysqlcreatedatabase, TBaseType.rrw_create,"schema"," "," "," "," "," "); 1672 addmysqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 1673 addmysqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"temp","table"," "," "," "," "); 1674 addmysqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"temporary","table"," "," "," "," "); 1675 addmysqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 1676 addmysqlcmds(ESqlStatementType.sstmysqlcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 1677 addmysqlcmds(ESqlStatementType.sstmysqlcreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 1678 addmysqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 1679 addmysqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"*","*","*","*","*","view"); 1680 addmysqlcmds(ESqlStatementType.sstmysqldeallocateprepare, TBaseType.rrw_deallocate,"prepare"," "," "," "," "," "); 1681 addmysqlcmds(ESqlStatementType.sstmysqldeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 1682 addmysqlcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 1683 addmysqlcmds(ESqlStatementType.sstmysqldelimiter, TBaseType.rrw_mysql_delimiter," "," "," "," "," "," "); 1684 addmysqlcmds(ESqlStatementType.sstdescribe, TBaseType.rrw_mysql_desc," "," "," "," "," "," "); 1685 addmysqlcmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe," "," "," "," "," "," "); 1686 addmysqlcmds(ESqlStatementType.sstmysqldo, TBaseType.rrw_do," "," "," "," "," "," "); 1687 addmysqlcmds(ESqlStatementType.sstmysqldropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 1688 addmysqlcmds(ESqlStatementType.sstmysqldropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 1689 addmysqlcmds(ESqlStatementType.sstmysqldropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 1690 addmysqlcmds(ESqlStatementType.sstmysqldropprepare, TBaseType.rrw_drop,"prepare"," "," "," "," "," "); 1691 addmysqlcmds(ESqlStatementType.sstmysqldropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 1692 addmysqlcmds(ESqlStatementType.sstmysqldropdatabase, TBaseType.rrw_drop,"schema"," "," "," "," "," "); 1693 addmysqlcmds(ESqlStatementType.sstmysqldroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 1694 addmysqlcmds(ESqlStatementType.sstmysqldroptable, TBaseType.rrw_drop,"tables"," "," "," "," "," "); 1695 addmysqlcmds(ESqlStatementType.sstmysqldroptable, TBaseType.rrw_drop,"temporary","table"," "," "," "," "); 1696 addmysqlcmds(ESqlStatementType.sstmysqldroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 1697 addmysqlcmds(ESqlStatementType.sstmysqldropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 1698 addmysqlcmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 1699 addmysqlcmds(ESqlStatementType.sstmysqlexecute, TBaseType.rrw_execute," "," "," "," "," "," "); 1700 addmysqlcmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain," "," "," "," "," "," "); 1701 addmysqlcmds(ESqlStatementType.sstmysqlfetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 1702 addmysqlcmds(ESqlStatementType.sstmysqlflush, TBaseType.rrw_flush," "," "," "," "," "," "); 1703 addmysqlcmds(ESqlStatementType.sstmysqlgrant, TBaseType.rrw_grant," "," "," "," "," "," "); 1704 addmysqlcmds(ESqlStatementType.sstmysqlhandler, TBaseType.rrw_handler," "," "," "," "," "," "); 1705 addmysqlcmds(ESqlStatementType.sstmysqlifstmt, TBaseType.rrw_if," "," "," "," "," "," "); 1706 addmysqlcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 1707 addmysqlcmds(ESqlStatementType.sstmysqliterate, TBaseType.rrw_iterate," "," "," "," "," "," "); 1708 addmysqlcmds(ESqlStatementType.sstmysqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 1709 addmysqlcmds(ESqlStatementType.sstmysqlleave, TBaseType.rrw_leave," "," "," "," "," "," "); 1710 addmysqlcmds(ESqlStatementType.sstmysqlloaddatafrommaster, TBaseType.rrw_load,"data", "from", "master"," "," "," "); 1711 addmysqlcmds(ESqlStatementType.sstmysqlloaddatainfile, TBaseType.rrw_load,"data", "infile"," "," "," "," "); 1712 addmysqlcmds(ESqlStatementType.sstmysqlloaddatainfile, TBaseType.rrw_load,"data", "local","infile"," "," "," "); 1713 addmysqlcmds(ESqlStatementType.sstmysqlloadindexintocache, TBaseType.rrw_load,"index", "into", "cache"," "," "," "); 1714 addmysqlcmds(ESqlStatementType.sstmysqlloadtable, TBaseType.rrw_load,"table"," "," "," "," "," "); 1715 addmysqlcmds(ESqlStatementType.sstmysqllocktable, TBaseType.rrw_lock,"table"," "," "," "," "," "); 1716 addmysqlcmds(ESqlStatementType.sstmysqllocktable, TBaseType.rrw_lock,"tables"," "," "," "," "," "); 1717 addmysqlcmds(ESqlStatementType.sstmysqlloop, TBaseType.rrw_loop," "," "," "," "," "," "); 1718 addmysqlcmds(ESqlStatementType.sstmysqlopen, TBaseType.rrw_open," "," "," "," "," "," "); 1719 addmysqlcmds(ESqlStatementType.sstmysqloptimizetable, TBaseType.rrw_optimize,"local","table"," "," "," "," "); 1720 addmysqlcmds(ESqlStatementType.sstmysqloptimizetable, TBaseType.rrw_optimize,"no_write_to_binlog","table"," "," "," "," "); 1721 addmysqlcmds(ESqlStatementType.sstmysqloptimizetable, TBaseType.rrw_optimize,"table"," "," "," "," "," "); 1722 addmysqlcmds(ESqlStatementType.sstmysqlprepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 1723 addmysqlcmds(ESqlStatementType.sstmysqlpurgelogs, TBaseType.rrw_purge,"binary","logs"," "," "," "," "); 1724 addmysqlcmds(ESqlStatementType.sstmysqlpurgelogs, TBaseType.rrw_purge,"logs"," "," "," "," "," "); 1725 addmysqlcmds(ESqlStatementType.sstmysqlpurgelogs, TBaseType.rrw_purge,"master","logs"," "," "," "," "); 1726 addmysqlcmds(ESqlStatementType.sstmysqlreleasesavepoint,TBaseType. rrw_release,"savepoint"," "," "," "," "," "); 1727 addmysqlcmds(ESqlStatementType.sstmysqlrenametable, TBaseType.rrw_rename,"table"," "," "," "," "," "); 1728 addmysqlcmds(ESqlStatementType.sstmysqlrenameuser, TBaseType.rrw_rename,"user"," "," "," "," "," "); 1729 addmysqlcmds(ESqlStatementType.sstmysqlrepairtable,TBaseType.rrw_repair,"local","table"," "," "," "," "); 1730 addmysqlcmds(ESqlStatementType.sstmysqlrepairtable, TBaseType.rrw_repair,"no_write_to_binlog","table"," "," "," "," "); 1731 addmysqlcmds(ESqlStatementType.sstmysqlrepairtable, TBaseType.rrw_repair,"table"," "," "," "," "," "); 1732 addmysqlcmds(ESqlStatementType.sstmysqlrepeat, TBaseType.rrw_repeat," "," "," "," "," "," "); 1733 addmysqlcmds(ESqlStatementType.sstmysqlreplace, TBaseType.rrw_replace," "," "," "," "," "," "); 1734 addmysqlcmds(ESqlStatementType.sstmysqlreset, TBaseType.rrw_reset," "," "," "," "," "," "); 1735 addmysqlcmds(ESqlStatementType.sstmysqlresetmaster, TBaseType.rrw_reset,"master"," "," "," "," "," "); 1736 addmysqlcmds(ESqlStatementType.sstmysqlresetslave, TBaseType.rrw_reset,"slave"," "," "," "," "," "); 1737 addmysqlcmds(ESqlStatementType.sstmysqlrestoretable, TBaseType.rrw_restore,"table"," "," "," "," "," "); 1738 addmysqlcmds(ESqlStatementType.sstmysqlrevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 1739 addmysqlcmds(ESqlStatementType.sstmysqlrollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 1740 addmysqlcmds(ESqlStatementType.sstmysqlsavepoint, TBaseType.rrw_savepoint," "," "," "," "," "," "); 1741 addmysqlcmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 1742 addmysqlcmds(ESqlStatementType.sstmysqlset, TBaseType.rrw_set," "," "," "," "," "," "); 1743 addmysqlcmds(ESqlStatementType.sstmysqlsetautocommit, TBaseType.rrw_set,"autocommit"," "," "," "," "," "); 1744 addmysqlcmds(ESqlStatementType.sstmysqldelimiter, TBaseType.rrw_set,"delimiter"," "," "," "," "," "); 1745 addmysqlcmds(ESqlStatementType.sstmysqlsetglobalsql_slave_skip_counter, TBaseType.rrw_set,"global", "sql_slave_skip_counter"," "," "," "," "); 1746 addmysqlcmds(ESqlStatementType.sstmysqlsettransaction, TBaseType.rrw_set,"global","transaction"," "," "," "," "); 1747 addmysqlcmds(ESqlStatementType.sstmysqlset, TBaseType.rrw_set,"PASSWORD"," "," "," "," "," "); 1748 addmysqlcmds(ESqlStatementType.sstmysqlsettransaction, TBaseType.rrw_set,"session","transaction"," "," "," "," "); 1749 addmysqlcmds(ESqlStatementType.sstmysqlsetsql_log_bin, TBaseType.rrw_set,"sql_log_bin"," "," "," "," "," "); 1750 addmysqlcmds(ESqlStatementType.sstmysqlsettransaction, TBaseType.rrw_set,"transaction"," "," "," "," "," "); 1751 addmysqlcmds(ESqlStatementType.sstmysqlshowlogs, TBaseType.rrw_show,"bdb","logs"," "," "," "," "); 1752 addmysqlcmds(ESqlStatementType.sstmysqlshowbinlogevents, TBaseType.rrw_show,"binlog", "events"," "," "," "," "); 1753 addmysqlcmds(ESqlStatementType.sstmysqlshowcharacterset, TBaseType.rrw_show,"character", "set"," "," "," "," "); 1754 addmysqlcmds(ESqlStatementType.sstmysqlshowcharacterset, TBaseType.rrw_show,"charset", " "," "," "," "," "); 1755 addmysqlcmds(ESqlStatementType.sstmysqlshowcollation, TBaseType.rrw_show,"collation"," "," "," "," "," "); 1756 addmysqlcmds(ESqlStatementType.sstmysqlshowcolumns, TBaseType.rrw_show,"columns"," "," "," "," "," "); 1757 addmysqlcmds(ESqlStatementType.sstmysqlshowwarnings, TBaseType.rrw_show,"count"," "," "," "," "," "); 1758 addmysqlcmds(ESqlStatementType.sstmysqlshowcreateschema, TBaseType.rrw_show,"create", "schema"," "," "," "," "); 1759 addmysqlcmds(ESqlStatementType.sstmysqlshowcreatedatabase, TBaseType.rrw_show,"create", "database"," "," "," "," "); 1760 addmysqlcmds(ESqlStatementType.sstmysqlshowcreatefunction, TBaseType.rrw_show,"create","function"," "," "," "," "); 1761 addmysqlcmds(ESqlStatementType.sstmysqlshowcreateprocedure, TBaseType.rrw_show,"create","procedure"," "," "," "," "); 1762 addmysqlcmds(ESqlStatementType.sstmysqlshowcreatetable, TBaseType.rrw_show,"create","table"," "," "," "," "); 1763 addmysqlcmds(ESqlStatementType.sstmysqlshowcreateview, TBaseType.rrw_show,"create","view"," "," "," "," "); 1764 addmysqlcmds(ESqlStatementType.sstmysqlshowdatabases, TBaseType.rrw_show,"databases"," "," "," "," "," "); 1765 addmysqlcmds(ESqlStatementType.sstmysqlshowengine, TBaseType.rrw_show,"engine"," "," "," "," "," "); 1766 addmysqlcmds(ESqlStatementType.sstmysqlshowengines, TBaseType.rrw_show,"engines"," "," "," "," "," "); 1767 addmysqlcmds(ESqlStatementType.sstmysqlshowerrors, TBaseType.rrw_show,"errors"," "," "," "," "," "); 1768 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"extend","index"," "," "," "," "); 1769 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"extend","indexes"," "," "," "," "); 1770 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"extend","keys"," "," "," "," "); 1771 addmysqlcmds(ESqlStatementType.sstmysqlshowfields, TBaseType.rrw_show,"fields"," "," "," "," "," "); 1772 addmysqlcmds(ESqlStatementType.sstmysqlshowcolumns, TBaseType.rrw_show,"full","columns"," "," "," "," "); 1773 addmysqlcmds(ESqlStatementType.sstmysqlshowfields, TBaseType.rrw_show,"full","fields"," "," "," "," "); 1774 addmysqlcmds(ESqlStatementType.sstmysqlshowprocesslist, TBaseType.rrw_show,"full","processlist"," "," "," "," "); 1775 addmysqlcmds(ESqlStatementType.sstmysqlshowtables, TBaseType.rrw_show,"full","tables"," "," "," "," "); 1776 addmysqlcmds(ESqlStatementType.sstmysqlshowfunctionstatus, TBaseType.rrw_show,"function", "status"," "," "," "," "); 1777 addmysqlcmds(ESqlStatementType.sstmysqlshowstatus, TBaseType.rrw_show,"global","status"," "," "," "," "); 1778 addmysqlcmds(ESqlStatementType.sstmysqlshowvariables, TBaseType.rrw_show,"global","variables"," "," "," "," "); 1779 addmysqlcmds(ESqlStatementType.sstmysqlshowgrants, TBaseType.rrw_show,"grants"," "," "," "," "," "); 1780 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"index"," "," "," "," "," "); 1781 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"indexes"," "," "," "," "," "); 1782 addmysqlcmds(ESqlStatementType.sstmysqlshowinnodbstatus, TBaseType.rrw_show,"innodb", "status"," "," "," "," "); 1783 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"keys"," "," "," "," "," "); 1784 addmysqlcmds(ESqlStatementType.sstmysqlshowlogs, TBaseType.rrw_show,"logs"," "," "," "," "," "); 1785 addmysqlcmds(ESqlStatementType.sstmysqlshowmasterlogs, TBaseType.rrw_show,"master", "logs"," "," "," "," "); 1786 addmysqlcmds(ESqlStatementType.sstmysqlshowmasterstatus, TBaseType.rrw_show,"master", "status"," "," "," "," "); 1787 addmysqlcmds(ESqlStatementType.sstmysqlshowtables, TBaseType.rrw_show,"open","tables"," "," "," "," "); 1788 addmysqlcmds(ESqlStatementType.sstmysqlshowplugins, TBaseType.rrw_show,"plugins"," "," "," "," "," "); 1789 addmysqlcmds(ESqlStatementType.sstmysqlshowprivileges, TBaseType.rrw_show,"privileges"," "," "," "," "," "); 1790 addmysqlcmds(ESqlStatementType.sstmysqlshowfunctionstatus, TBaseType.rrw_show,"procedure", "status"," "," "," "," "); 1791 addmysqlcmds(ESqlStatementType.sstmysqlshowprocesslist, TBaseType.rrw_show,"processlist"," "," "," "," "," "); 1792 addmysqlcmds(ESqlStatementType.sstmysqlshowprofile, TBaseType.rrw_show,"profile"," "," "," "," "," "); 1793 addmysqlcmds(ESqlStatementType.sstmysqlshowprofiles, TBaseType.rrw_show,"profiles"," "," "," "," "," "); 1794 addmysqlcmds(ESqlStatementType.sstmysqlshowreplicaStatus, TBaseType.rrw_show,"replica","status"," "," "," "," "); 1795 addmysqlcmds(ESqlStatementType.sstmysqlshowstatus, TBaseType.rrw_show,"session","status"," "," "," "," "); 1796 addmysqlcmds(ESqlStatementType.sstmysqlshowvariables, TBaseType.rrw_show,"session","variables"," "," "," "," "); 1797 addmysqlcmds(ESqlStatementType.sstmysqlshowslavehosts, TBaseType.rrw_show,"slave", "hosts"," "," "," "," "); 1798 addmysqlcmds(ESqlStatementType.sstmysqlshowslavestatus, TBaseType.rrw_show,"slave", "status"," "," "," "," "); 1799 addmysqlcmds(ESqlStatementType.sstmysqlshowstatus, TBaseType.rrw_show,"status"," "," "," "," "," "); 1800 addmysqlcmds(ESqlStatementType.sstmysqlshowengines, TBaseType.rrw_show,"storage","engines"," "," "," "," "); 1801 addmysqlcmds(ESqlStatementType.sstmysqlshowtablestatus, TBaseType.rrw_show,"table", "status"," "," "," "," "); 1802 addmysqlcmds(ESqlStatementType.sstmysqlshowtables, TBaseType.rrw_show,"tables"," "," "," "," "," "); 1803 addmysqlcmds(ESqlStatementType.sstmysqlshowtriggers, TBaseType.rrw_show,"triggers"," "," "," "," "," "); 1804 addmysqlcmds(ESqlStatementType.sstmysqlshowvariables, TBaseType.rrw_show,"variables"," "," "," "," "," "); 1805 addmysqlcmds(ESqlStatementType.sstmysqlshowwarnings, TBaseType.rrw_show,"warnings"," "," "," "," "," "); 1806 addmysqlcmds(ESqlStatementType.sstmysqlsignal, TBaseType.rrw_signal," "," "," "," "," "," "); 1807 addmysqlcmds(ESqlStatementType.sstmysqlstartslave, TBaseType.rrw_start,"slave"," "," "," "," "," "); 1808 addmysqlcmds(ESqlStatementType.sstmysqlstarttransaction, TBaseType.rrw_start,"transaction"," "," "," "," "," "); 1809 addmysqlcmds(ESqlStatementType.sstmysqlstopslave, TBaseType.rrw_stop,"slave"," "," "," "," "," "); 1810 addmysqlcmds(ESqlStatementType.sstmysqltruncate, TBaseType.rrw_truncate," "," "," "," "," "," "); 1811 addmysqlcmds(ESqlStatementType.sstmysqlunlocktable, TBaseType.rrw_unlock,"tables"," "," "," "," "," "); 1812 addmysqlcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 1813 addmysqlcmds(ESqlStatementType.sstmysqluse, TBaseType.rrw_use," "," "," "," "," "," "); 1814 addmysqlcmds(ESqlStatementType.sstmysqlwhile, TBaseType.rrw_while," "," "," "," "," "," "); 1815 1816} 1817 1818void initmdxcmds(){ 1819// cmd must be sort alphabetically 1820 addmdxcmds(ESqlStatementType.sstmdxaltercube, TBaseType.rrw_alter,"cube"," "," "," "," "," "); 1821 addmdxcmds(ESqlStatementType.sstmdxalterdimension, TBaseType.rrw_alter,"dimension"," "," "," "," "," "); 1822 addmdxcmds(ESqlStatementType.sstmdxcalculate, TBaseType.rrw_calculate," "," "," "," "," "," "); 1823 addmdxcmds(ESqlStatementType.sstmdxcall, TBaseType.rrw_call," "," "," "," "," "," "); 1824 addmdxcmds(ESqlStatementType.sstmdxcase, TBaseType.rrw_case," "," "," "," "," "," "); 1825 addmdxcmds(ESqlStatementType.sstmdxclearcalculations, TBaseType.rrw_clear,"calculations"," "," "," "," "," "); 1826 addmdxcmds(ESqlStatementType.sstmdxcreateaction, TBaseType.rrw_create,"action"," "," "," "," "," "); 1827 addmdxcmds(ESqlStatementType.sstmdxcreatemember, TBaseType.rrw_create,"calculated","member"," "," "," "," "); 1828 addmdxcmds(ESqlStatementType.sstmdxcreatecellcalculation, TBaseType.rrw_create,"cell","calculation"," "," "," "," "); 1829 addmdxcmds(ESqlStatementType.sstmdxcreatedimensionmember, TBaseType.rrw_create,"dimension","member"," "," "," "," "); 1830 addmdxcmds(ESqlStatementType.sstmdxcreateglobalcube, TBaseType.rrw_create,"global","cube"," "," "," "," "); 1831 addmdxcmds(ESqlStatementType.sstmdxcreateset, TBaseType.rrw_create,"hidden","set"," "," "," "," "); 1832 addmdxcmds(ESqlStatementType.sstmdxcreatemeasure, TBaseType.rrw_create,"measure"," "," "," "," "," "); 1833 addmdxcmds(ESqlStatementType.sstmdxcreatemember, TBaseType.rrw_create,"member"," "," "," "," "," "); 1834 addmdxcmds(ESqlStatementType.sstmdxcreatemember, TBaseType.rrw_create,"session","calculated","memeber"," "," "," "); 1835 addmdxcmds(ESqlStatementType.sstmdxcreatesessioncube, TBaseType.rrw_create,"session","cube"," "," "," "," "); 1836 addmdxcmds(ESqlStatementType.sstmdxcreatedimensionmember, TBaseType.rrw_create,"session","dimension","member"," "," "," "); 1837 addmdxcmds(ESqlStatementType.sstmdxcreateset, TBaseType.rrw_create,"session","hidden","set"," "," "," "); 1838 addmdxcmds(ESqlStatementType.sstmdxcreatemember, TBaseType.rrw_create,"session","memeber"," "," "," "," "); 1839 addmdxcmds(ESqlStatementType.sstmdxcreateset, TBaseType.rrw_create,"session","set"," "," "," "," "); 1840 addmdxcmds(ESqlStatementType.sstmdxcreateset, TBaseType.rrw_create,"set"," "," "," "," "," "); 1841 addmdxcmds(ESqlStatementType.sstmdxcreatesubcube, TBaseType.rrw_create,"subcube"," "," "," "," "," "); 1842 addmdxcmds(ESqlStatementType.sstmdxdrillthrough, TBaseType.rrw_drillthrough," "," "," "," "," "," "); 1843 addmdxcmds(ESqlStatementType.sstmdxdropaction, TBaseType.rrw_drop,"action"," "," "," "," "," "); 1844 addmdxcmds(ESqlStatementType.sstmdxdropmember, TBaseType.rrw_drop,"calculated","member"," "," "," "," "); 1845 addmdxcmds(ESqlStatementType.sstmdxdropcellcalculation, TBaseType.rrw_drop,"cell","calcution"," "," "," "," "); 1846 addmdxcmds(ESqlStatementType.sstmdxdropdimensionmember, TBaseType.rrw_drop,"dimension","member"," "," "," "," "); 1847 addmdxcmds(ESqlStatementType.sstmdxdropmember, TBaseType.rrw_drop,"member"," "," "," "," "," "); 1848 addmdxcmds(ESqlStatementType.sstmdxdropmember, TBaseType.rrw_drop,"session","member"," "," "," "," "); 1849 addmdxcmds(ESqlStatementType.sstmdxdropmember, TBaseType.rrw_drop,"session","calculated","member"," "," "," "); 1850 addmdxcmds(ESqlStatementType.sstmdxdropcellcalculation, TBaseType.rrw_drop,"session","cell","calcution"," "," "," "); 1851 addmdxcmds(ESqlStatementType.sstmdxdropset, TBaseType.rrw_drop,"set"," "," "," "," "," "); 1852 addmdxcmds(ESqlStatementType.sstmdxdropsubcube, TBaseType.rrw_drop,"subcube"," "," "," "," "," "); 1853 addmdxcmds(ESqlStatementType.sstmdxexisting, TBaseType.rrw_existing," "," "," "," "," "," "); 1854 addmdxcmds(ESqlStatementType.sstmdxfreeze, TBaseType.rrw_freeze," "," "," "," "," "," "); 1855 addmdxcmds(ESqlStatementType.sstmdxif, TBaseType.rrw_if," "," "," "," "," "," "); 1856 addmdxcmds(ESqlStatementType.sstmdxrefreshcube, TBaseType.rrw_refresh,"cube"," "," "," "," "," "); 1857 addmdxcmds(ESqlStatementType.sstmdxscope, TBaseType.rrw_scope," "," "," "," "," "," "); 1858 addmdxcmds(ESqlStatementType.sstmdxselect, TBaseType.rrw_select," "," "," "," "," "," "); 1859 addmdxcmds(ESqlStatementType.sstmdxupdate, TBaseType.rrw_update," "," "," "," "," "," "); 1860 1861} 1862 1863void initsybasecmds(){ 1864// cmd must be sort alphabetically 1865 addsybasecmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"counter","signature"," "," "," "," "); 1866 addsybasecmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"signature"," "," "," "," "," "); 1867//alter 1868 addsybasecmds(ESqlStatementType.sstmssqlalterapplicationrole, TBaseType.rrw_alter,"application","role"," "," "," "," "); 1869 addsybasecmds(ESqlStatementType.sstmssqlalterassembly, TBaseType.rrw_alter,"assembly"," "," "," "," "," "); 1870 addsybasecmds(ESqlStatementType.sstmssqlalterasymmetrickey, TBaseType.rrw_alter,"asymmetric","key"," "," "," "," "); 1871 addsybasecmds(ESqlStatementType.sstmssqlalterauthorization, TBaseType.rrw_alter,"authorization"," "," "," "," "," "); 1872 addsybasecmds(ESqlStatementType.sstmssqlaltercertificate, TBaseType.rrw_alter,"certificate"," "," "," "," "," "); 1873 addsybasecmds(ESqlStatementType.sstmssqlaltercredential, TBaseType.rrw_alter,"credential"," "," "," "," "," "); 1874 addsybasecmds(ESqlStatementType.sstmssqlalterdatabase, TBaseType.rrw_alter,"database"," "," "," "," "," "); 1875 addsybasecmds(ESqlStatementType.sstmssqlalterendpoint, TBaseType.rrw_alter,"endpoint"," "," "," "," "," "); 1876 addsybasecmds(ESqlStatementType.sstmssqlalterfulltextcatalog, TBaseType.rrw_alter,"fulltext","catalog"," "," "," "," "); 1877 addsybasecmds(ESqlStatementType.sstmssqlalterfulltextindex, TBaseType.rrw_alter,"fulltext","index"," "," "," "," "); 1878 addsybasecmds(ESqlStatementType.sstmssqlalterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 1879 addsybasecmds(ESqlStatementType.sstmssqlalterindex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 1880 addsybasecmds(ESqlStatementType.sstmssqlalterlogin, TBaseType.rrw_alter,"login"," "," "," "," "," "); 1881 addsybasecmds(ESqlStatementType.sstmssqlaltermasterkey, TBaseType.rrw_alter,"master","key"," "," "," "," "); 1882 addsybasecmds(ESqlStatementType.sstmssqlaltermessagetype, TBaseType.rrw_alter,"message","type"," "," "," "," "); 1883 addsybasecmds(ESqlStatementType.sstmssqlalterpartitionfunction, TBaseType.rrw_alter,"partition","function"," "," "," "," "); 1884 addsybasecmds(ESqlStatementType.sstmssqlalterpartitionscheme, TBaseType.rrw_alter,"partition","scheme"," "," "," "," "); 1885 addsybasecmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"proc"," "," "," "," "," "); 1886 addsybasecmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 1887 addsybasecmds(ESqlStatementType.sstmssqlalterqueue, TBaseType.rrw_alter,"queue"," "," "," "," "," "); 1888 addsybasecmds(ESqlStatementType.sstmssqlalterremoteservicebinding, TBaseType.rrw_alter,"remote","service","binding"," "," "," "); 1889 addsybasecmds(ESqlStatementType.sstmssqlalterrole, TBaseType.rrw_alter,"role"," "," "," "," "," "); 1890 addsybasecmds(ESqlStatementType.sstmssqlalterroute, TBaseType.rrw_alter,"route"," "," "," "," "," "); 1891 addsybasecmds(ESqlStatementType.sstmssqlalterschema, TBaseType.rrw_alter,"schema"," "," "," "," "," "); 1892 addsybasecmds(ESqlStatementType.sstmssqlalterservice, TBaseType.rrw_alter,"service"," "," "," "," "," "); 1893 addsybasecmds(ESqlStatementType.sstmssqlalterservicemasterkey, TBaseType.rrw_alter,"service","master","key"," "," "," "); 1894 addsybasecmds(ESqlStatementType.sstmssqlaltersymmetrickey, TBaseType.rrw_alter,"symmetric","key"," "," "," "," "); 1895 addsybasecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 1896 addsybasecmds(ESqlStatementType.sstmssqlaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 1897 addsybasecmds(ESqlStatementType.sstmssqlalteruser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 1898 addsybasecmds(ESqlStatementType.sstmssqlalterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 1899 addsybasecmds(ESqlStatementType.sstmssqlalterxmlschemacollection, TBaseType.rrw_alter,"xml","schema","collection"," "," "," "); 1900//backup 1901 addsybasecmds(ESqlStatementType.sstmssqlbackupdatabase, TBaseType.rrw_backup,"database"," "," "," "," "," "); 1902 addsybasecmds(ESqlStatementType.sstmssqlbackupcertificate, TBaseType.rrw_backup,"certificate"," "," "," "," "," "); 1903 addsybasecmds(ESqlStatementType.sstmssqlbackuplog, TBaseType.rrw_backup,"log"," "," "," "," "," "); 1904 addsybasecmds(ESqlStatementType.sstmssqlbackupmasterkey, TBaseType.rrw_backup,"master","key"," "," "," "," "); 1905 addsybasecmds(ESqlStatementType.sstmssqlbackupservicemasterkey, TBaseType.rrw_backup,"service","master","key"," "," "," "); 1906//begin 1907 addsybasecmds(ESqlStatementType.sstmssqlbegincatch, TBaseType.rrw_begin,"catch"," "," "," "," "," "); 1908 addsybasecmds(ESqlStatementType.sstmssqlbeginconversationtimer, TBaseType.rrw_begin,"conversation","timer"," "," "," "," "); 1909 addsybasecmds(ESqlStatementType.sstmssqlbegindialog, TBaseType.rrw_begin,"dialog"," "," "," "," "," "); 1910 addsybasecmds(ESqlStatementType.sstmssqlbegindistributed, TBaseType.rrw_begin,"distributed"," "," "," "," "," "); 1911 addsybasecmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"tran"," "," "," "," "," "); 1912 addsybasecmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"transaction"," "," "," "," "," "); 1913 addsybasecmds(ESqlStatementType.sstmssqlbegintry, TBaseType.rrw_begin,"try"," "," "," "," "," "); 1914//break 1915 addsybasecmds(ESqlStatementType.sstbreak, TBaseType.rrw_break," "," "," "," "," "," "); 1916//bulk insert 1917 addsybasecmds(ESqlStatementType.sstmssqlbulkinsert, TBaseType.rrw_bulk,"insert"," "," "," "," "," "); 1918 1919 addsybasecmds(ESqlStatementType.sstcall, TBaseType.rrw_call," "," "," "," "," "," "); 1920 1921//checkpoint 1922 addsybasecmds(ESqlStatementType.sstmssqlcheckpoint, TBaseType.rrw_checkpoint," "," "," "," "," "," "); 1923//close 1924 addsybasecmds(ESqlStatementType.sstmssqlclose, TBaseType.rrw_close," "," "," "," "," "," "); 1925 addsybasecmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"all", "symmetric", "keys"," "," "," "); 1926 addsybasecmds(ESqlStatementType.sstmssqlclosemasterkey, TBaseType.rrw_close,"master", "key"," "," "," "," "); 1927 addsybasecmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"symmetric", "key"," "," "," "," "); 1928//commit 1929 addsybasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit," "," "," "," "," "," "); 1930 addsybasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"work"," "," "," "," "," "); 1931 addsybasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"tran"," "," "," "," "," "); 1932 addsybasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"transaction"," "," "," "," "," "); 1933//continue 1934 addsybasecmds(ESqlStatementType.sstmssqlcontinue, TBaseType.rrw_continue," "," "," "," "," "," "); 1935//create 1936 addsybasecmds(ESqlStatementType.sstmssqlcreateaggregate, TBaseType.rrw_create,"aggregate"," "," "," "," "," "); 1937 addsybasecmds(ESqlStatementType.sstmssqlcreateapplicationrole, TBaseType.rrw_create,"application", "role"," "," "," "," "); 1938 addsybasecmds(ESqlStatementType.sstmssqlcreateassembly, TBaseType.rrw_create,"assembly"," "," "," "," "," "); 1939 addsybasecmds(ESqlStatementType.sstmssqlcreateasymmetrickey, TBaseType.rrw_create,"asymmetric", "key"," "," "," "," "); 1940 addsybasecmds(ESqlStatementType.sstmssqlcreatecertificate, TBaseType.rrw_create,"certificate"," "," "," "," "," "); 1941 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"clustered","index"," "," "," "," "); 1942 addsybasecmds(ESqlStatementType.sstmssqlcreatecontract, TBaseType.rrw_create,"contract"," "," "," "," "," "); 1943 addsybasecmds(ESqlStatementType.sstmssqlcreatecredential, TBaseType.rrw_create,"credential"," "," "," "," "," "); 1944 addsybasecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 1945 addsybasecmds(ESqlStatementType.sstmssqlcreatedefault, TBaseType.rrw_create,"default"," "," "," "," "," "); 1946 addsybasecmds(ESqlStatementType.sstmssqlcreateendpoint, TBaseType.rrw_create,"endpoint"," "," "," "," "," "); 1947 addsybasecmds(ESqlStatementType.sstmssqlcreateeventnotification, TBaseType.rrw_create,"event", "notification"," "," "," "," "); 1948 addsybasecmds(ESqlStatementType.sstmssqlcreatefulltextcatalog, TBaseType.rrw_create,"fulltext", "catalog"," "," "," "," "); 1949 addsybasecmds(ESqlStatementType.sstmssqlcreatefulltextindex, TBaseType.rrw_create,"fulltext", "index"," "," "," "," "); 1950 addsybasecmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 1951 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 1952 addsybasecmds(ESqlStatementType.sstmssqlcreatelogin, TBaseType.rrw_create,"login"," "," "," "," "," "); 1953 addsybasecmds(ESqlStatementType.sstmssqlcreatemasterkey, TBaseType.rrw_create,"master","key"," "," "," "," "); 1954 addsybasecmds(ESqlStatementType.sstmssqlcreatemessagetype, TBaseType.rrw_create,"message","type"," "," "," "," "); 1955 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"nonclustered","index"," "," "," "," "); 1956 addsybasecmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"or","replace","function"," "," "," "); 1957 addsybasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","replace","proc"," "," "," "); 1958 addsybasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","replace","procedure"," "," "," "); 1959 addsybasecmds(ESqlStatementType.sstmssqlcreatepartitionfunction, TBaseType.rrw_create,"partition","function"," "," "," "," "); 1960 addsybasecmds(ESqlStatementType.sstmssqlcreatepartitionscheme, TBaseType.rrw_create,"partition","scheme"," "," "," "," "); 1961 addsybasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"proc"," "," "," "," "," "); 1962 addsybasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 1963 addsybasecmds(ESqlStatementType.sstmssqlcreatequeue, TBaseType.rrw_create,"queue"," "," "," "," "," "); 1964 addsybasecmds(ESqlStatementType.sstmssqlcreateremoteservicebinding, TBaseType.rrw_create,"remote", "service", "binding"," "," "," "); 1965 addsybasecmds(ESqlStatementType.sstmssqlcreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 1966 addsybasecmds(ESqlStatementType.sstmssqlcreateroute, TBaseType.rrw_create,"route"," "," "," "," "," "); 1967 addsybasecmds(ESqlStatementType.sstmssqlcreaterule, TBaseType.rrw_create,"rule"," "," "," "," "," "); 1968 addsybasecmds(ESqlStatementType.sstmssqlcreateschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 1969 addsybasecmds(ESqlStatementType.sstmssqlcreateservice, TBaseType.rrw_create,"service"," "," "," "," "," "); 1970 addsybasecmds(ESqlStatementType.sstmssqlcreatestatistics, TBaseType.rrw_create,"statistics"," "," "," "," "," "); 1971 addsybasecmds(ESqlStatementType.sstmssqlcreatesymmetrickey, TBaseType.rrw_create,"symmetric", "key"," "," "," "," "); 1972 addsybasecmds(ESqlStatementType.sstmssqlcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 1973 addsybasecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 1974 addsybasecmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 1975 addsybasecmds(ESqlStatementType.sstmssqlcreatetype, TBaseType.rrw_create,"type"," "," "," "," "," "); 1976 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","clustered","index"," "," "," "); 1977 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 1978 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","nonclustered","index"," "," "," "); 1979 addsybasecmds(ESqlStatementType.sstmssqlcreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 1980 addsybasecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 1981 addsybasecmds(ESqlStatementType.sstmssqlcreatexmlschemacollection, TBaseType.rrw_create,"xml", "schema", "collection"," "," "," "); 1982// DBCC 1983 addsybasecmds(ESqlStatementType.sstmssqldbcc, TBaseType.rrw_dbcc," "," "," "," "," "," "); 1984//DEALLOCATE 1985 addsybasecmds(ESqlStatementType.sstmssqldeallocate, TBaseType.rrw_deallocate," "," "," "," "," "," "); 1986//DECLARE 1987 addsybasecmds(ESqlStatementType.sstmssqldeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 1988//DELETE 1989 addsybasecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 1990 1991//DELETE statistics 1992 addsybasecmds(ESqlStatementType.sstsybaseDeleteStatistics, TBaseType.rrw_delete,"shared","statistics"," "," "," "," "); 1993 addsybasecmds(ESqlStatementType.sstsybaseDeleteStatistics, TBaseType.rrw_delete,"statistics"," "," "," "," "," "); 1994 1995//DENY 1996 addsybasecmds(ESqlStatementType.sstmssqldeny, TBaseType.rrw_deny," "," "," "," "," "," "); 1997//DISABLE TRIGGER 1998 addsybasecmds(ESqlStatementType.sstmssqldisabletrigger, TBaseType.rrw_disable,"trigger"," "," "," "," "," "); 1999//drop 2000 addsybasecmds(ESqlStatementType.sstmssqldropaggregate, TBaseType.rrw_drop,"aggregate"," "," "," "," "," "); 2001 addsybasecmds(ESqlStatementType.sstmssqldropapplicationrole, TBaseType.rrw_drop,"application", "role"," "," "," "," "); 2002 addsybasecmds(ESqlStatementType.sstmssqldropassembly, TBaseType.rrw_drop,"assembly"," "," "," "," "," "); 2003 addsybasecmds(ESqlStatementType.sstmssqldropasymmetrickey, TBaseType.rrw_drop,"asymmetric", "key"," "," "," "," "); 2004 addsybasecmds(ESqlStatementType.sstmssqldropcertificate, TBaseType.rrw_drop,"certificate"," "," "," "," "," "); 2005 addsybasecmds(ESqlStatementType.sstmssqldropcontract, TBaseType.rrw_drop,"contract"," "," "," "," "," "); 2006 addsybasecmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"counter", "signature"," "," "," "," "); 2007 addsybasecmds(ESqlStatementType.sstmssqldropcredential, TBaseType.rrw_drop,"credential"," "," "," "," "," "); 2008 addsybasecmds(ESqlStatementType.sstmssqldropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 2009 addsybasecmds(ESqlStatementType.sstmssqldropdefault, TBaseType.rrw_drop,"default"," "," "," "," "," "); 2010 addsybasecmds(ESqlStatementType.sstmssqldropendpoint, TBaseType.rrw_drop,"endpoint"," "," "," "," "," "); 2011 addsybasecmds(ESqlStatementType.sstmssqldropeventnotification, TBaseType.rrw_drop,"event", "notification"," "," "," "," "); 2012 addsybasecmds(ESqlStatementType.sstmssqldropfulltextcatalog, TBaseType.rrw_drop,"fulltext", "catalog"," "," "," "," "); 2013 addsybasecmds(ESqlStatementType.sstmssqldropfulltextindex, TBaseType.rrw_drop,"fulltext", "index"," "," "," "," "); 2014 addsybasecmds(ESqlStatementType.sstmssqldropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 2015 addsybasecmds(ESqlStatementType.sstmssqldropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 2016 addsybasecmds(ESqlStatementType.sstmssqldroplogin, TBaseType.rrw_drop,"login"," "," "," "," "," "); 2017 addsybasecmds(ESqlStatementType.sstmssqldropmasterkey, TBaseType.rrw_drop,"master", "key"," "," "," "," "); 2018 addsybasecmds(ESqlStatementType.sstmssqldropmessagetype, TBaseType.rrw_drop,"message", "type"," "," "," "," "); 2019 addsybasecmds(ESqlStatementType.sstmssqldroppartitionfunction, TBaseType.rrw_drop,"partition", "function"," "," "," "," "); 2020 addsybasecmds(ESqlStatementType.sstmssqldroppartitionscheme, TBaseType.rrw_drop,"partition", "scheme"," "," "," "," "); 2021 addsybasecmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"proc"," "," "," "," "," "); 2022 addsybasecmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 2023 addsybasecmds(ESqlStatementType.sstmssqldropqueue, TBaseType.rrw_drop,"queue"," "," "," "," "," "); 2024 addsybasecmds(ESqlStatementType.sstmssqldropremoteservicebinding, TBaseType.rrw_drop,"remote", "service", "binding"," "," "," "); 2025 addsybasecmds(ESqlStatementType.sstmssqldroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 2026 addsybasecmds(ESqlStatementType.sstmssqldroproute, TBaseType.rrw_drop,"route"," "," "," "," "," "); 2027 addsybasecmds(ESqlStatementType.sstmssqldroprule, TBaseType.rrw_drop,"rule"," "," "," "," "," "); 2028 addsybasecmds(ESqlStatementType.sstmssqldropschema, TBaseType.rrw_drop,"schema"," "," "," "," "," "); 2029 addsybasecmds(ESqlStatementType.sstmssqldropservice, TBaseType.rrw_drop,"service"," "," "," "," "," "); 2030 addsybasecmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"signature"," "," "," "," "," "); 2031 addsybasecmds(ESqlStatementType.sstmssqldropstatistics, TBaseType.rrw_drop,"statistics"," "," "," "," "," "); 2032 addsybasecmds(ESqlStatementType.sstmssqldropsymmetrickey, TBaseType.rrw_drop,"symmetric", "key"," "," "," "," "); 2033 addsybasecmds(ESqlStatementType.sstmssqldropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 2034 addsybasecmds(ESqlStatementType.sstmssqldroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 2035 addsybasecmds(ESqlStatementType.sstmssqldroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 2036 addsybasecmds(ESqlStatementType.sstmssqldroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 2037 addsybasecmds(ESqlStatementType.sstmssqldropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 2038 addsybasecmds(ESqlStatementType.sstmssqldropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 2039 addsybasecmds(ESqlStatementType.sstmssqldropxmlschemacollection, TBaseType.rrw_drop,"xml", "schema", "collection"," "," "," "); 2040 2041 addsybasecmds(ESqlStatementType.sstsybasedumpTran, TBaseType.rrw_sybase_dump,"tran"," "," "," "," "," "); 2042 addsybasecmds(ESqlStatementType.sstsybasedumpTran, TBaseType.rrw_sybase_dump,"transaction"," "," "," "," "," "); 2043//if 2044 addsybasecmds(ESqlStatementType.sstmssqlif, TBaseType.rrw_if," "," "," "," "," "," "); 2045//enable trigger 2046 addsybasecmds(ESqlStatementType.sstmssqlenabletrigger, TBaseType.rrw_enable,"trigger"," "," "," "," "," "); 2047//END CONVERSATION 2048// addsybasecmds(ESqlStatementType.sstMssqlEndCatch,TBaseType.rrw_end,'catch'); 2049 addsybasecmds(ESqlStatementType.sstmssqlendconversation, TBaseType.rrw_end,"conversation"," "," "," "," "," "); 2050// addsybasecmds(ESqlStatementType.sstMssqlEndTry,TBaseType.rrw_end,'try'); 2051//exec 2052//exec as 2053 addsybasecmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_exec," "," "," "," "," "," "); 2054 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","caller"," "," "," "," "); 2055 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","login"," "," "," "," "); 2056 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","user"," "," "," "," "); 2057 addsybasecmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_execute, " "," "," "," "," "," "); 2058 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","caller"," "," "," "," "); 2059 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","login"," "," "," "," "); 2060 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","user"," "," "," "," "); 2061//fetch 2062 addsybasecmds(ESqlStatementType.sstmssqlfetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 2063//go 2064 addsybasecmds(ESqlStatementType.sstmssqlgo, TBaseType.rrw_go," "," "," "," "," "," "); 2065//goto 2066 addsybasecmds(ESqlStatementType.sstmssqlgoto, TBaseType.rrw_goto," "," "," "," "," "," "); 2067//GRANT 2068 addsybasecmds(ESqlStatementType.sstmssqlgrant, TBaseType.rrw_grant," "," "," "," "," "," "); 2069//GRANT 2070 addsybasecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 2071 2072 addsybasecmds(ESqlStatementType.sstsybaseInsertBulk, TBaseType.rrw_insert,"bulk"," "," "," "," "," "); 2073//KILL 2074 addsybasecmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 2075//KILL 2076 addsybasecmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 2077 addsybasecmds(ESqlStatementType.sstmssqlkillquerynotificationsubscription, TBaseType.rrw_kill,"kill", "query", "notification", "subscription"," "," "); 2078 addsybasecmds(ESqlStatementType.sstmssqlkillstats, TBaseType.rrw_kill,"stats"," "," "," "," "," "); 2079 2080 addsybasecmds(ESqlStatementType.sstload,TBaseType.rrw_load,"table"," "," "," "," "," "); 2081// 2082 addsybasecmds(ESqlStatementType.sstsybaselocktable,TBaseType.rw_locktable,"table"," "," "," "," "," "); 2083//MOVE CONVERSATION 2084 addsybasecmds(ESqlStatementType.sstmssqlmoveconversation, TBaseType.rrw_move,"conversation"," "," "," "," "," "); 2085//merge 2086 addsybasecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 2087//open 2088 addsybasecmds(ESqlStatementType.sstmssqlopen, TBaseType.rrw_open," "," "," "," "," "," "); 2089 addsybasecmds(ESqlStatementType.sstmssqlopenmasterkey, TBaseType.rrw_open,"master", "key"," "," "," "," "); 2090 addsybasecmds(ESqlStatementType.sstmssqlopensymmetrickey, TBaseType.rrw_open,"symmetric", "key"," "," "," "," "); 2091//PRINT 2092 addsybasecmds(ESqlStatementType.sstmssqlprint, TBaseType.rrw_print," "," "," "," "," "," "); 2093//RAISERROR 2094 addsybasecmds(ESqlStatementType.sstmssqlraiserror, TBaseType.rrw_raiserror," "," "," "," "," "," "); 2095//READTEXT 2096 addsybasecmds(ESqlStatementType.sstmssqlreadtext, TBaseType.rrw_readtext," "," "," "," "," "," "); 2097//RECEIVE 2098 addsybasecmds(ESqlStatementType.sstmssqlreceive, TBaseType.rrw_receive," "," "," "," "," "," "); 2099//RECONFIGURE 2100 addsybasecmds(ESqlStatementType.sstmssqlreconfigure, TBaseType.rrw_reconfigure," "," "," "," "," "," "); 2101//RESTORE 2102 addsybasecmds(ESqlStatementType.sstmssqlrestoredatabase, TBaseType.rrw_restore,"database"," "," "," "," "," "); 2103 addsybasecmds(ESqlStatementType.sstmssqlrestorefilelistonly, TBaseType.rrw_restore,"filelistonly"," "," "," "," "," "); 2104 addsybasecmds(ESqlStatementType.sstmssqlrestoreheaderonly, TBaseType.rrw_restore,"headeronly"," "," "," "," "," "); 2105 addsybasecmds(ESqlStatementType.sstmssqlrestorelabelonly, TBaseType.rrw_restore,"labelonly"," "," "," "," "," "); 2106 addsybasecmds(ESqlStatementType.sstmssqlrestorelog, TBaseType.rrw_restore,"log"," "," "," "," "," "); 2107 addsybasecmds(ESqlStatementType.sstmssqlrestoremasterkey, TBaseType.rrw_restore,"master","key"," "," "," "," "); 2108 addsybasecmds(ESqlStatementType.sstmssqlrestorerewindonly, TBaseType.rrw_restore,"rewindonly"," "," "," "," "," "); 2109 addsybasecmds(ESqlStatementType.sstmssqlrestoreservicemasterkey, TBaseType.rrw_restore,"service","master","key"," "," "," "); 2110 addsybasecmds(ESqlStatementType.sstmssqlrestoreverifyonly, TBaseType.rrw_restore,"verifyonly"," "," "," "," "," "); 2111//RETURN 2112 addsybasecmds(ESqlStatementType.sstmssqlreturn, TBaseType.rrw_return," "," "," "," "," "," "); 2113//REVERT 2114 addsybasecmds(ESqlStatementType.sstmssqlrevert, TBaseType.rrw_revert," "," "," "," "," "," "); 2115//REVOKE 2116 addsybasecmds(ESqlStatementType.sstmssqlrevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 2117//ROLLBACK 2118 addsybasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 2119 addsybasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"tran"," "," "," "," "," "); 2120 addsybasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"transaction"," "," "," "," "," "); 2121 addsybasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"work"," "," "," "," "," "); 2122//SAVE 2123 addsybasecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save," "," "," "," "," "," "); 2124 addsybasecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"tran"," "," "," "," "," "); 2125 addsybasecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"transaction"," "," "," "," "," "); 2126//SELECT 2127 addsybasecmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 2128//SEND ON CONVERSATION 2129 addsybasecmds(ESqlStatementType.sstmssqlsendonconversation, TBaseType.rrw_send,"on","conversation"," "," "," "," "); 2130//SET 2131 addsybasecmds(ESqlStatementType.sstmssqlset, TBaseType.rrw_set," "," "," "," "," "," "); 2132//SET 2133 addsybasecmds(ESqlStatementType.sstmssqlsetuser,TBaseType.rrw_setuser," "," "," "," "," "," "); 2134//SHUTDOWN 2135 addsybasecmds(ESqlStatementType.sstmssqlshutdown, TBaseType.rrw_shutdown," "," "," "," "," "," "); 2136//SIGN 2137// addsybasecmds(ESqlStatementType.sstmssqlsign, rrw_sign," "," "," "," "," "," "); 2138//TRUNCATE TABLE 2139 addsybasecmds(ESqlStatementType.sstmssqltruncatetable, TBaseType.rrw_truncate,"table"," "," "," "," "," "); 2140//UPDATE 2141 addsybasecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 2142//UPDATE all STATISTICS 2143 addsybasecmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"all","statistics"," "," "," "," "); 2144//UPDATE index STATISTICS 2145 addsybasecmds(ESqlStatementType.sstsybaseupdateindexstatistics, TBaseType.rrw_update,"index","statistics"," "," "," "," "); 2146//UPDATE STATISTICS 2147 addsybasecmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"statistics"," "," "," "," "," "); 2148//UPDATETEXT 2149 addsybasecmds(ESqlStatementType.sstmssqlupdatetext, TBaseType.rrw_updatetext," "," "," "," "," "," "); 2150//USE 2151 addsybasecmds(ESqlStatementType.sstmssqluse, TBaseType.rrw_use," "," "," "," "," "," "); 2152//WAITFOR 2153 addsybasecmds(ESqlStatementType.sstmssqlwaitfor, TBaseType.rrw_waitfor," "," "," "," "," "," "); 2154//WHILE 2155 addsybasecmds(ESqlStatementType.sstmssqlwhile, TBaseType.rrw_while," "," "," "," "," "," "); 2156//WITH, don't recongize here, let isMssqlSql do it 2157// addsybasecmds(ESqlStatementType.sstMssqlCTE,rrw_WITH,' '); 2158//WITH XMLNAMESPACES 2159 addsybasecmds(ESqlStatementType.sstmssqlwithxmlnamespaces, TBaseType.rrw_with,"xmlnamespaces"," "," "," "," "," "); 2160//WRITETEXT 2161 addsybasecmds(ESqlStatementType.sstsybaseWritetext, TBaseType.rrw_writetext," "," "," "," "," "," "); 2162 2163} 2164 2165void initmssqlcmds(){ 2166// cmd must be sort alphabetically 2167 addmssqlcmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"counter","signature"," "," "," "," "); 2168 addmssqlcmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"signature"," "," "," "," "," "); 2169//alter 2170 addmssqlcmds(ESqlStatementType.sstmssqlalterapplicationrole, TBaseType.rrw_alter,"application","role"," "," "," "," "); 2171 addmssqlcmds(ESqlStatementType.sstmssqlalterassembly, TBaseType.rrw_alter,"assembly"," "," "," "," "," "); 2172 addmssqlcmds(ESqlStatementType.sstmssqlalterasymmetrickey, TBaseType.rrw_alter,"asymmetric","key"," "," "," "," "); 2173 addmssqlcmds(ESqlStatementType.sstmssqlalterauthorization, TBaseType.rrw_alter,"authorization"," "," "," "," "," "); 2174 addmssqlcmds(ESqlStatementType.sstmssqlaltercertificate, TBaseType.rrw_alter,"certificate"," "," "," "," "," "); 2175 addmssqlcmds(ESqlStatementType.sstmssqlaltercredential, TBaseType.rrw_alter,"credential"," "," "," "," "," "); 2176 addmssqlcmds(ESqlStatementType.sstmssqlalterdatabase, TBaseType.rrw_alter,"database"," "," "," "," "," "); 2177 addmssqlcmds(ESqlStatementType.sstmssqlalterendpoint, TBaseType.rrw_alter,"endpoint"," "," "," "," "," "); 2178 addmssqlcmds(ESqlStatementType.sstmssqlalterfulltextcatalog, TBaseType.rrw_alter,"fulltext","catalog"," "," "," "," "); 2179 addmssqlcmds(ESqlStatementType.sstmssqlalterfulltextindex, TBaseType.rrw_alter,"fulltext","index"," "," "," "," "); 2180 addmssqlcmds(ESqlStatementType.sstmssqlalterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 2181 addmssqlcmds(ESqlStatementType.sstmssqlalterindex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 2182 addmssqlcmds(ESqlStatementType.sstmssqlalterlogin, TBaseType.rrw_alter,"login"," "," "," "," "," "); 2183 addmssqlcmds(ESqlStatementType.sstmssqlaltermasterkey, TBaseType.rrw_alter,"master","key"," "," "," "," "); 2184 addmssqlcmds(ESqlStatementType.sstmssqlaltermessagetype, TBaseType.rrw_alter,"message","type"," "," "," "," "); 2185 addmssqlcmds(ESqlStatementType.sstmssqlalterpartitionfunction, TBaseType.rrw_alter,"partition","function"," "," "," "," "); 2186 addmssqlcmds(ESqlStatementType.sstmssqlalterpartitionscheme, TBaseType.rrw_alter,"partition","scheme"," "," "," "," "); 2187 addmssqlcmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"proc"," "," "," "," "," "); 2188 addmssqlcmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 2189 addmssqlcmds(ESqlStatementType.sstmssqlalterqueue, TBaseType.rrw_alter,"queue"," "," "," "," "," "); 2190 addmssqlcmds(ESqlStatementType.sstmssqlalterremoteservicebinding, TBaseType.rrw_alter,"remote","service","binding"," "," "," "); 2191 addmssqlcmds(ESqlStatementType.sstmssqlalterrole, TBaseType.rrw_alter,"role"," "," "," "," "," "); 2192 addmssqlcmds(ESqlStatementType.sstmssqlalterroute, TBaseType.rrw_alter,"route"," "," "," "," "," "); 2193 addmssqlcmds(ESqlStatementType.sstmssqlalterschema, TBaseType.rrw_alter,"schema"," "," "," "," "," "); 2194 addmssqlcmds(ESqlStatementType.sstmssqlAlterSecurityPolicy, TBaseType.rrw_alter, "security", "policy", " ", " ", " ", " "); 2195 addmssqlcmds(ESqlStatementType.sstaltersequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 2196 addmssqlcmds(ESqlStatementType.sstmssqlalterservice, TBaseType.rrw_alter,"service"," "," "," "," "," "); 2197 addmssqlcmds(ESqlStatementType.sstmssqlalterservicemasterkey, TBaseType.rrw_alter,"service","master","key"," "," "," "); 2198 addmssqlcmds(ESqlStatementType.sstmssqlaltersymmetrickey, TBaseType.rrw_alter,"symmetric","key"," "," "," "," "); 2199 addmssqlcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 2200 addmssqlcmds(ESqlStatementType.sstmssqlaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 2201 addmssqlcmds(ESqlStatementType.sstmssqlalteruser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 2202 addmssqlcmds(ESqlStatementType.sstmssqlalterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 2203 addmssqlcmds(ESqlStatementType.sstmssqlalterxmlschemacollection, TBaseType.rrw_alter,"xml","schema","collection"," "," "," "); 2204//backup 2205 addmssqlcmds(ESqlStatementType.sstmssqlbackupcertificate, TBaseType.rrw_backup,"certificate"," "," "," "," "," "); 2206 addmssqlcmds(ESqlStatementType.sstmssqlbackupdatabase, TBaseType.rrw_backup,"database"," "," "," "," "," "); 2207 addmssqlcmds(ESqlStatementType.sstmssqlbackuplog, TBaseType.rrw_backup,"log"," "," "," "," "," "); 2208 addmssqlcmds(ESqlStatementType.sstmssqlbackupmasterkey, TBaseType.rrw_backup,"master","key"," "," "," "," "); 2209 addmssqlcmds(ESqlStatementType.sstmssqlbackupservicemasterkey, TBaseType.rrw_backup,"service","master","key"," "," "," "); 2210//begin 2211 addmssqlcmds(ESqlStatementType.sstmssqlbegincatch, TBaseType.rrw_begin,"catch"," "," "," "," "," "); 2212 addmssqlcmds(ESqlStatementType.sstmssqlbeginconversationtimer, TBaseType.rrw_begin,"conversation","timer"," "," "," "," "); 2213 addmssqlcmds(ESqlStatementType.sstmssqlbegindialog, TBaseType.rrw_begin,"dialog"," "," "," "," "," "); 2214 addmssqlcmds(ESqlStatementType.sstmssqlbegindistributed, TBaseType.rrw_begin,"distributed"," "," "," "," "," "); 2215 addmssqlcmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"tran"," "," "," "," "," "); 2216 addmssqlcmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"transaction"," "," "," "," "," "); 2217 addmssqlcmds(ESqlStatementType.sstmssqlbegintry, TBaseType.rrw_begin,"try"," "," "," "," "," "); 2218//break 2219 addmssqlcmds(ESqlStatementType.sstbreak, TBaseType.rrw_break," "," "," "," "," "," "); 2220//bulk insert 2221 addmssqlcmds(ESqlStatementType.sstmssqlbulkinsert, TBaseType.rrw_bulk,"insert"," "," "," "," "," "); 2222//checkpoint 2223 addmssqlcmds(ESqlStatementType.sstmssqlcheckpoint, TBaseType.rrw_checkpoint," "," "," "," "," "," "); 2224//close 2225 addmssqlcmds(ESqlStatementType.sstmssqlclose, TBaseType.rrw_close," "," "," "," "," "," "); 2226 addmssqlcmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"all", "symmetric", "keys"," "," "," "); 2227 addmssqlcmds(ESqlStatementType.sstmssqlclosemasterkey, TBaseType.rrw_close,"master", "key"," "," "," "," "); 2228 addmssqlcmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"symmetric", "key"," "," "," "," "); 2229//commit 2230 addmssqlcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit," "," "," "," "," "," "); 2231 addmssqlcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"work"," "," "," "," "," "); 2232 addmssqlcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"tran"," "," "," "," "," "); 2233 addmssqlcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"transaction"," "," "," "," "," "); 2234//continue 2235 addmssqlcmds(ESqlStatementType.sstmssqlcontinue, TBaseType.rrw_continue," "," "," "," "," "," "); 2236// copy into 2237 addmssqlcmds(ESqlStatementType.sstCopyInto, TBaseType.rrw_sqlserver_copyinto,"into"," "," "," "," "," "); 2238//create 2239 addmssqlcmds(ESqlStatementType.sstmssqlcreateaggregate, TBaseType.rrw_create,"aggregate"," "," "," "," "," "); 2240 addmssqlcmds(ESqlStatementType.sstmssqlcreateapplicationrole, TBaseType.rrw_create,"application", "role"," "," "," "," "); 2241 addmssqlcmds(ESqlStatementType.sstmssqlcreateassembly, TBaseType.rrw_create,"assembly"," "," "," "," "," "); 2242 addmssqlcmds(ESqlStatementType.sstmssqlcreateasymmetrickey, TBaseType.rrw_create,"asymmetric", "key"," "," "," "," "); 2243 addmssqlcmds(ESqlStatementType.sstmssqlcreatecertificate, TBaseType.rrw_create,"certificate"," "," "," "," "," "); 2244 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"clustered","columnstore","index"," "," "," "); 2245 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"clustered","index"," "," "," "," "); 2246 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"columnstore","index"," "," "," "," "); 2247 addmssqlcmds(ESqlStatementType.sstmssqlcreatecontract, TBaseType.rrw_create,"contract"," "," "," "," "," "); 2248 addmssqlcmds(ESqlStatementType.sstcreatecredential, TBaseType.rrw_create,"credential"," "," "," "," "," "); 2249 addmssqlcmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 2250 addmssqlcmds(ESqlStatementType.sstmssqlcreatedatabaseencryptionkey, TBaseType.rrw_create,"database","encryption","key"," "," "," "); 2251 addmssqlcmds(ESqlStatementType.sstmssqlcreateselectivexmlindex, TBaseType.rrw_create,"selective","xml","index"," "," "," "); 2252 addmssqlcmds(ESqlStatementType.sstmssqlcreatejsonindex, TBaseType.rrw_create,"json","index"," "," "," "," "); 2253 addmssqlcmds(ESqlStatementType.sstmssqlcreatevectorindex, TBaseType.rrw_create,"vector","index"," "," "," "," "); 2254 addmssqlcmds(ESqlStatementType.sstmssqlrenameobject, TBaseType.rrw_rename,"object"," "," "," "," "," "); 2255 addmssqlcmds(ESqlStatementType.sstmssqlcreateremotetableasselect, TBaseType.rrw_create,"remote","table"," "," "," "," "); 2256 addmssqlcmds(ESqlStatementType.sstcreatecredential, TBaseType.rrw_create,"database","scoped","credential"," "," "," "); 2257 addmssqlcmds(ESqlStatementType.sstmssqlcreatedefault, TBaseType.rrw_create,"default"," "," "," "," "," "); 2258 addmssqlcmds(ESqlStatementType.sstmssqlcreateendpoint, TBaseType.rrw_create,"endpoint"," "," "," "," "," "); 2259 addmssqlcmds(ESqlStatementType.sstmssqlcreateeventnotification, TBaseType.rrw_create,"event", "notification"," "," "," "," "); 2260 addmssqlcmds(ESqlStatementType.sstmssqlcreateeventsession, TBaseType.rrw_create,"event", "session"," "," "," "," "); 2261 addmssqlcmds(ESqlStatementType.sstmssqlcreateevexternalDataSource, TBaseType.rrw_create,"external", "data","source"," "," "," "); 2262 addmssqlcmds(ESqlStatementType.sstCreateFileFormat, TBaseType.rrw_create,"external","file","format"," "," "," "); 2263 addmssqlcmds(ESqlStatementType.sstmssqlcreateevexternalLanguage, TBaseType.rrw_create,"external", "language"," "," "," "," "); 2264 addmssqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"external","table"," "," "," "," "); 2265 addmssqlcmds(ESqlStatementType.sstmssqlcreatefulltextcatalog, TBaseType.rrw_create,"fulltext", "catalog"," "," "," "," "); 2266 addmssqlcmds(ESqlStatementType.sstmssqlcreatefulltextindex, TBaseType.rrw_create,"fulltext", "index"," "," "," "," "); 2267 addmssqlcmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 2268 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 2269 addmssqlcmds(ESqlStatementType.sstmssqlcreatelogin, TBaseType.rrw_create,"login"," "," "," "," "," "); 2270 addmssqlcmds(ESqlStatementType.sstmssqlcreatemasterkey, TBaseType.rrw_create,"master","key"," "," "," "," "); 2271 addmssqlcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"materialized","view"," "," "," "," "); 2272 2273 addmssqlcmds(ESqlStatementType.sstmssqlcreatemessagetype, TBaseType.rrw_create,"message","type"," "," "," "," "); 2274 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"nonclustered","columnstore","index"," "," "," "); 2275 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"nonclustered","index"," "," "," "," "); 2276 2277 addmssqlcmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"or","alter","function"," "," "," "); 2278 2279 addmssqlcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","alter","proc"," "," "," "); 2280 addmssqlcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","alter","procedure"," "," "," "); 2281 2282 addmssqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"or","alter","view"," "," "," "); 2283 addmssqlcmds(ESqlStatementType.sstmssqlcreatepartitionfunction, TBaseType.rrw_create,"partition","function"," "," "," "," "); 2284 addmssqlcmds(ESqlStatementType.sstmssqlcreatepartitionscheme, TBaseType.rrw_create,"partition","scheme"," "," "," "," "); 2285 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"primary","xml","index"," "," "," "); 2286 addmssqlcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"proc"," "," "," "," "," "); 2287 addmssqlcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 2288 addmssqlcmds(ESqlStatementType.sstmssqlcreatequeue, TBaseType.rrw_create,"queue"," "," "," "," "," "); 2289 addmssqlcmds(ESqlStatementType.sstmssqlcreateremoteservicebinding, TBaseType.rrw_create,"remote", "service", "binding"," "," "," "); 2290 addmssqlcmds(ESqlStatementType.sstmssqlcreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 2291 addmssqlcmds(ESqlStatementType.sstmssqlcreateroute, TBaseType.rrw_create,"route"," "," "," "," "," "); 2292 addmssqlcmds(ESqlStatementType.sstmssqlcreaterule, TBaseType.rrw_create,"rule"," "," "," "," "," "); 2293 addmssqlcmds(ESqlStatementType.sstmssqlcreateschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 2294 addmssqlcmds(ESqlStatementType.sstmssqlCreateSecurityPolicy, TBaseType.rrw_create, "security", "policy", " ", " ", " ", " "); 2295 addmssqlcmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 2296 addmssqlcmds(ESqlStatementType.sstmssqlcreateservice, TBaseType.rrw_create,"service"," "," "," "," "," "); 2297 addmssqlcmds(ESqlStatementType.sstmssqlcreatestatistics, TBaseType.rrw_create,"statistics"," "," "," "," "," "); 2298 addmssqlcmds(ESqlStatementType.sstmssqlcreatesymmetrickey, TBaseType.rrw_create,"symmetric", "key"," "," "," "," "); 2299 addmssqlcmds(ESqlStatementType.sstmssqlcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 2300 addmssqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 2301 addmssqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 2302 addmssqlcmds(ESqlStatementType.sstmssqlcreatetype, TBaseType.rrw_create,"type"," "," "," "," "," "); 2303 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","clustered","index"," "," "," "); 2304 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 2305 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","nonclustered","index"," "," "," "); 2306 addmssqlcmds(ESqlStatementType.sstmssqlcreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 2307 addmssqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 2308 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"xml","index"," "," "," "," "); 2309 addmssqlcmds(ESqlStatementType.sstmssqlcreatexmlschemacollection, TBaseType.rrw_create,"xml", "schema", "collection"," "," "," "); 2310// DBCC 2311 addmssqlcmds(ESqlStatementType.sstmssqldbcc, TBaseType.rrw_dbcc," "," "," "," "," "," "); 2312//DEALLOCATE 2313 addmssqlcmds(ESqlStatementType.sstmssqldeallocate, TBaseType.rrw_deallocate," "," "," "," "," "," "); 2314//DECLARE 2315 addmssqlcmds(ESqlStatementType.sstmssqldeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 2316//DELETE 2317 addmssqlcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 2318//DENY 2319 addmssqlcmds(ESqlStatementType.sstmssqldeny, TBaseType.rrw_deny," "," "," "," "," "," "); 2320//DISABLE TRIGGER 2321 addmssqlcmds(ESqlStatementType.sstmssqldisabletrigger, TBaseType.rrw_disable,"trigger"," "," "," "," "," "); 2322//drop 2323 addmssqlcmds(ESqlStatementType.sstmssqldropaggregate, TBaseType.rrw_drop,"aggregate"," "," "," "," "," "); 2324 addmssqlcmds(ESqlStatementType.sstmssqldropapplicationrole, TBaseType.rrw_drop,"application", "role"," "," "," "," "); 2325 addmssqlcmds(ESqlStatementType.sstmssqldropassembly, TBaseType.rrw_drop,"assembly"," "," "," "," "," "); 2326 addmssqlcmds(ESqlStatementType.sstmssqldropasymmetrickey, TBaseType.rrw_drop,"asymmetric", "key"," "," "," "," "); 2327 addmssqlcmds(ESqlStatementType.sstmssqldropcertificate, TBaseType.rrw_drop,"certificate"," "," "," "," "," "); 2328 addmssqlcmds(ESqlStatementType.sstmssqldropcontract, TBaseType.rrw_drop,"contract"," "," "," "," "," "); 2329 addmssqlcmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"counter", "signature"," "," "," "," "); 2330 addmssqlcmds(ESqlStatementType.sstmssqldropcredential, TBaseType.rrw_drop,"credential"," "," "," "," "," "); 2331 addmssqlcmds(ESqlStatementType.sstmssqldropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 2332 addmssqlcmds(ESqlStatementType.sstmssqldropdefault, TBaseType.rrw_drop,"default"," "," "," "," "," "); 2333 addmssqlcmds(ESqlStatementType.sstmssqldropendpoint, TBaseType.rrw_drop,"endpoint"," "," "," "," "," "); 2334 addmssqlcmds(ESqlStatementType.sstmssqldropeventnotification, TBaseType.rrw_drop,"event", "notification"," "," "," "," "); 2335 addmssqlcmds(ESqlStatementType.sstmssqldropeventsession, TBaseType.rrw_drop,"event", "session"," "," "," "," "); 2336 addmssqlcmds(ESqlStatementType.sstmssqldropfulltextcatalog, TBaseType.rrw_drop,"fulltext", "catalog"," "," "," "," "); 2337 addmssqlcmds(ESqlStatementType.sstmssqldropfulltextindex, TBaseType.rrw_drop,"fulltext", "index"," "," "," "," "); 2338 addmssqlcmds(ESqlStatementType.sstmssqldropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 2339 addmssqlcmds(ESqlStatementType.sstmssqldropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 2340 addmssqlcmds(ESqlStatementType.sstmssqldroplogin, TBaseType.rrw_drop,"login"," "," "," "," "," "); 2341 addmssqlcmds(ESqlStatementType.sstmssqldropmasterkey, TBaseType.rrw_drop,"master", "key"," "," "," "," "); 2342 addmssqlcmds(ESqlStatementType.sstmssqldropmessagetype, TBaseType.rrw_drop,"message", "type"," "," "," "," "); 2343 addmssqlcmds(ESqlStatementType.sstmssqldroppartitionfunction, TBaseType.rrw_drop,"partition", "function"," "," "," "," "); 2344 addmssqlcmds(ESqlStatementType.sstmssqldroppartitionscheme, TBaseType.rrw_drop,"partition", "scheme"," "," "," "," "); 2345 addmssqlcmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"proc"," "," "," "," "," "); 2346 addmssqlcmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 2347 addmssqlcmds(ESqlStatementType.sstmssqldropqueue, TBaseType.rrw_drop,"queue"," "," "," "," "," "); 2348 addmssqlcmds(ESqlStatementType.sstmssqldropremoteservicebinding, TBaseType.rrw_drop,"remote", "service", "binding"," "," "," "); 2349 addmssqlcmds(ESqlStatementType.sstmssqldroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 2350 addmssqlcmds(ESqlStatementType.sstmssqldroproute, TBaseType.rrw_drop,"route"," "," "," "," "," "); 2351 addmssqlcmds(ESqlStatementType.sstmssqldroprule, TBaseType.rrw_drop,"rule"," "," "," "," "," "); 2352 addmssqlcmds(ESqlStatementType.sstmssqldropschema, TBaseType.rrw_drop,"schema"," "," "," "," "," "); 2353 addmssqlcmds(ESqlStatementType.sstmssqlDropSecurityPolicy, TBaseType.rrw_drop, "security", "policy", " ", " ", " ", " "); 2354 addmssqlcmds(ESqlStatementType.sstdropsequence, TBaseType.rrw_drop,"sequence"," "," "," "," "," "); 2355 addmssqlcmds(ESqlStatementType.sstmssqldropservice, TBaseType.rrw_drop,"service"," "," "," "," "," "); 2356 addmssqlcmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"signature"," "," "," "," "," "); 2357 addmssqlcmds(ESqlStatementType.sstmssqldropstatistics, TBaseType.rrw_drop,"statistics"," "," "," "," "," "); 2358 addmssqlcmds(ESqlStatementType.sstmssqldropsymmetrickey, TBaseType.rrw_drop,"symmetric", "key"," "," "," "," "); 2359 addmssqlcmds(ESqlStatementType.sstmssqldropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 2360 addmssqlcmds(ESqlStatementType.sstmssqldroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 2361 addmssqlcmds(ESqlStatementType.sstmssqldroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 2362 addmssqlcmds(ESqlStatementType.sstmssqldroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 2363 addmssqlcmds(ESqlStatementType.sstmssqldropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 2364 addmssqlcmds(ESqlStatementType.sstmssqldropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 2365 addmssqlcmds(ESqlStatementType.sstmssqldropxmlschemacollection, TBaseType.rrw_drop,"xml", "schema", "collection"," "," "," "); 2366//enable trigger 2367 addmssqlcmds(ESqlStatementType.sstmssqlenabletrigger, TBaseType.rrw_enable,"trigger"," "," "," "," "," "); 2368//END CONVERSATION 2369// AddMssqlCmds(ESqlStatementType.sstMssqlEndCatch,TBaseType.rrw_end,'catch'); 2370 addmssqlcmds(ESqlStatementType.sstmssqlendconversation, TBaseType.rrw_end,"conversation"," "," "," "," "," "); 2371// AddMssqlCmds(ESqlStatementType.sstMssqlEndTry,TBaseType.rrw_end,'try'); 2372//exec 2373//exec as 2374 addmssqlcmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_exec," "," "," "," "," "," "); 2375 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","caller"," "," "," "," "); 2376 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","login"," "," "," "," "); 2377 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","user"," "," "," "," "); 2378 addmssqlcmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_execute, " "," "," "," "," "," "); 2379 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","caller"," "," "," "," "); 2380 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","login"," "," "," "," "); 2381 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","user"," "," "," "," "); 2382//fetch 2383 addmssqlcmds(ESqlStatementType.sstmssqlfetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 2384//go 2385 addmssqlcmds(ESqlStatementType.sstmssqlgo, TBaseType.rrw_go," "," "," "," "," "," "); 2386//goto 2387 addmssqlcmds(ESqlStatementType.sstmssqlgoto, TBaseType.rrw_goto," "," "," "," "," "," "); 2388//GRANT 2389 addmssqlcmds(ESqlStatementType.sstmssqlgrant, TBaseType.rrw_grant," "," "," "," "," "," "); 2390 2391//if 2392 addmssqlcmds(ESqlStatementType.sstmssqlif, TBaseType.rrw_if," "," "," "," "," "," "); 2393 2394//GRANT 2395 addmssqlcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 2396 addmssqlcmds(ESqlStatementType.sstmssqlinsertbulk, TBaseType.rrw_insert,"bulk"," "," "," "," "," "); 2397//KILL 2398 addmssqlcmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 2399//KILL 2400 addmssqlcmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 2401 addmssqlcmds(ESqlStatementType.sstmssqlkillquerynotificationsubscription, TBaseType.rrw_kill,"kill", "query", "notification", "subscription"," "," "); 2402 addmssqlcmds(ESqlStatementType.sstmssqlkillstats, TBaseType.rrw_kill,"stats"," "," "," "," "," "); 2403 2404// 2405 addmssqlcmds(ESqlStatementType.sstsybaselocktable,TBaseType.rw_locktable,"table"," "," "," "," "," "); 2406//MOVE CONVERSATION 2407 addmssqlcmds(ESqlStatementType.sstmssqlmoveconversation, TBaseType.rrw_move,"conversation"," "," "," "," "," "); 2408//merge 2409 addmssqlcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 2410//open 2411 addmssqlcmds(ESqlStatementType.sstmssqlopen, TBaseType.rrw_open," "," "," "," "," "," "); 2412 addmssqlcmds(ESqlStatementType.sstmssqlopenmasterkey, TBaseType.rrw_open,"master", "key"," "," "," "," "); 2413 addmssqlcmds(ESqlStatementType.sstmssqlopensymmetrickey, TBaseType.rrw_open,"symmetric", "key"," "," "," "," "); 2414//PRINT 2415 addmssqlcmds(ESqlStatementType.sstmssqlprint, TBaseType.rrw_print," "," "," "," "," "," "); 2416//RAISERROR 2417 addmssqlcmds(ESqlStatementType.sstmssqlraiserror, TBaseType.rrw_raiserror," "," "," "," "," "," "); 2418//READTEXT 2419 addmssqlcmds(ESqlStatementType.sstmssqlreadtext, TBaseType.rrw_readtext," "," "," "," "," "," "); 2420//RECEIVE 2421 addmssqlcmds(ESqlStatementType.sstmssqlreceive, TBaseType.rrw_receive," "," "," "," "," "," "); 2422//RECONFIGURE 2423 addmssqlcmds(ESqlStatementType.sstmssqlreconfigure, TBaseType.rrw_reconfigure," "," "," "," "," "," "); 2424//RESTORE 2425 addmssqlcmds(ESqlStatementType.sstmssqlrestoredatabase, TBaseType.rrw_restore,"database"," "," "," "," "," "); 2426 addmssqlcmds(ESqlStatementType.sstmssqlrestorefilelistonly, TBaseType.rrw_restore,"filelistonly"," "," "," "," "," "); 2427 addmssqlcmds(ESqlStatementType.sstmssqlrestoreheaderonly, TBaseType.rrw_restore,"headeronly"," "," "," "," "," "); 2428 addmssqlcmds(ESqlStatementType.sstmssqlrestorelabelonly, TBaseType.rrw_restore,"labelonly"," "," "," "," "," "); 2429 addmssqlcmds(ESqlStatementType.sstmssqlrestorelog, TBaseType.rrw_restore,"log"," "," "," "," "," "); 2430 addmssqlcmds(ESqlStatementType.sstmssqlrestoremasterkey, TBaseType.rrw_restore,"master","key"," "," "," "," "); 2431 addmssqlcmds(ESqlStatementType.sstmssqlrestorerewindonly, TBaseType.rrw_restore,"rewindonly"," "," "," "," "," "); 2432 addmssqlcmds(ESqlStatementType.sstmssqlrestoreservicemasterkey, TBaseType.rrw_restore,"service","master","key"," "," "," "); 2433 addmssqlcmds(ESqlStatementType.sstmssqlrestoreverifyonly, TBaseType.rrw_restore,"verifyonly"," "," "," "," "," "); 2434//RETURN 2435 addmssqlcmds(ESqlStatementType.sstmssqlreturn, TBaseType.rrw_return," "," "," "," "," "," "); 2436//REVERT 2437 addmssqlcmds(ESqlStatementType.sstmssqlrevert, TBaseType.rrw_revert," "," "," "," "," "," "); 2438//REVOKE 2439 addmssqlcmds(ESqlStatementType.sstmssqlrevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 2440//ROLLBACK 2441 addmssqlcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 2442 addmssqlcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"tran"," "," "," "," "," "); 2443 addmssqlcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"transaction"," "," "," "," "," "); 2444 addmssqlcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"work"," "," "," "," "," "); 2445//SAVE 2446 addmssqlcmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save," "," "," "," "," "," "); 2447 addmssqlcmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"tran"," "," "," "," "," "); 2448 addmssqlcmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"transaction"," "," "," "," "," "); 2449//SELECT 2450 addmssqlcmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 2451//SEND ON CONVERSATION 2452 addmssqlcmds(ESqlStatementType.sstmssqlsendonconversation, TBaseType.rrw_send,"on","conversation"," "," "," "," "); 2453//SET 2454 addmssqlcmds(ESqlStatementType.sstmssqlset, TBaseType.rrw_set," "," "," "," "," "," "); 2455//SET rowcount 2456 addmssqlcmds(ESqlStatementType.sstmssqlsetrowcount, TBaseType.rrw_set,"rowcount"," "," "," "," "," "); 2457//SET 2458 addmssqlcmds(ESqlStatementType.sstmssqlsetuser,TBaseType.rrw_setuser," "," "," "," "," "," "); 2459//SHUTDOWN 2460 addmssqlcmds(ESqlStatementType.sstmssqlshutdown, TBaseType.rrw_shutdown," "," "," "," "," "," "); 2461//SIGN 2462// addmssqlcmds(ESqlStatementType.sstmssqlsign, rrw_sign," "," "," "," "," "," "); 2463 2464//throw 2465 addmssqlcmds(ESqlStatementType.sstmssqlthrow, TBaseType.rrw_sqlserver_throw," "," "," "," "," "," "); 2466 2467//TRUNCATE TABLE 2468 addmssqlcmds(ESqlStatementType.sstmssqltruncatetable, TBaseType.rrw_truncate,"table"," "," "," "," "," "); 2469//UPDATE 2470 addmssqlcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 2471//UPDATE STATISTICS 2472 addmssqlcmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"statistics"," "," "," "," "," "); 2473//UPDATETEXT 2474 addmssqlcmds(ESqlStatementType.sstmssqlupdatetext, TBaseType.rrw_updatetext," "," "," "," "," "," "); 2475//USE 2476 addmssqlcmds(ESqlStatementType.sstmssqluse, TBaseType.rrw_use," "," "," "," "," "," "); 2477//WAITFOR 2478 addmssqlcmds(ESqlStatementType.sstmssqlwaitfor, TBaseType.rrw_waitfor," "," "," "," "," "," "); 2479//WHILE 2480 addmssqlcmds(ESqlStatementType.sstmssqlwhile, TBaseType.rrw_while," "," "," "," "," "," "); 2481//WITH, don't recongize here, let isMssqlSql do it 2482// AddMssqlCmds(ESqlStatementType.sstMssqlCTE,rrw_WITH,' '); 2483//WITH XMLNAMESPACES 2484 // addmssqlcmds(ESqlStatementType.sstmssqlwithxmlnamespaces, TBaseType.rrw_with,"xmlnamespaces"," "," "," "," "," "); 2485//WRITETEXT 2486 addmssqlcmds(ESqlStatementType.sstmssqlwritetext, TBaseType.rrw_writetext," "," "," "," "," "," "); 2487 2488} 2489 2490void initdb2cmds(){ 2491// cmd must be sort alphabetically 2492 adddb2cmds(ESqlStatementType.sstdb2allocatecursor, TBaseType.rrw_allocate,"cursor"," "," "," "," "," "); 2493 adddb2cmds(ESqlStatementType.sstdb2alterbufferpool, TBaseType.rrw_alter,"bufferpool"," "," "," "," "," "); 2494 adddb2cmds(ESqlStatementType.sstdb2alterdatabasepartitiongroup, TBaseType.rrw_alter,"database", "partition", "group"," "," "," "); 2495 adddb2cmds(ESqlStatementType.sstdb2alterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 2496 adddb2cmds(ESqlStatementType.sstdb2altermethod, TBaseType.rrw_alter,"method"," "," "," "," "," "); 2497 adddb2cmds(ESqlStatementType.sstdb2alternickname, TBaseType.rrw_alter,"nickname"," "," "," "," "," "); 2498 adddb2cmds(ESqlStatementType.sstdb2alterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 2499 adddb2cmds(ESqlStatementType.sstdb2altersequence, TBaseType.rrw_alter,"sequence"," "," "," "," "," "); 2500 adddb2cmds(ESqlStatementType.sstdb2alterserver, TBaseType.rrw_alter,"server"," "," "," "," "," "); 2501 adddb2cmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 2502 adddb2cmds(ESqlStatementType.sstdb2altertablespace, TBaseType.rrw_alter,"tablespace"," "," "," "," "," "); 2503 adddb2cmds(ESqlStatementType.sstdb2altertype, TBaseType.rrw_alter,"type"," "," "," "," "," "); 2504 adddb2cmds(ESqlStatementType.sstdb2alterusermapping, TBaseType.rrw_alter,"user","mapping"," "," "," "," "); 2505 adddb2cmds(ESqlStatementType.sstdb2alterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 2506 adddb2cmds(ESqlStatementType.sstdb2alterwrapper, TBaseType.rrw_alter,"wrapper"," "," "," "," "," "); 2507 adddb2cmds(ESqlStatementType.sstdb2associatelocators, TBaseType.rrw_associate,"locators"," "," "," "," "," "); 2508 adddb2cmds(ESqlStatementType.sstdb2begindeclaresection, TBaseType.rrw_begin,"declare", "section"," "," "," "," "); 2509 adddb2cmds(ESqlStatementType.sstdb2call, TBaseType.rrw_call," "," "," "," "," "," "); 2510 adddb2cmds(ESqlStatementType.sstdb2case, TBaseType.rrw_case," "," "," "," "," "," "); 2511 adddb2cmds(ESqlStatementType.sstdb2close, TBaseType.rrw_close," "," "," "," "," "," "); 2512 adddb2cmds(ESqlStatementType.sstdb2comment, TBaseType.rrw_comment," "," "," "," "," "," "); 2513 adddb2cmds(ESqlStatementType.sstdb2commit, TBaseType.rrw_commit," "," "," "," "," "," "); 2514 adddb2cmds(ESqlStatementType.sstdb2connect, TBaseType.rrw_connect," "," "," "," "," "," "); 2515 adddb2cmds(ESqlStatementType.sstdb2createalias, TBaseType.rrw_create,"alias"," "," "," "," "," "); 2516 adddb2cmds(ESqlStatementType.sstcreateauditpolicy, TBaseType.rrw_create,"audit","policy"," "," "," "," "); 2517 adddb2cmds(ESqlStatementType.sstdb2createbufferpool, TBaseType.rrw_create,"bufferpool"," "," "," "," "," "); 2518 adddb2cmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create,"database", " ", " "," "," "," "); 2519 adddb2cmds(ESqlStatementType.sstdb2createdatabasepartitiongroup, TBaseType.rrw_create,"database", "partition", "group"," "," "," "); 2520 adddb2cmds(ESqlStatementType.sstdb2createdistincttype, TBaseType.rrw_create,"distinct", "type"," "," "," "," "); 2521 adddb2cmds(ESqlStatementType.sstdb2createeventmonitor, TBaseType.rrw_create,"eventmonitor"," "," "," "," "," "); 2522 adddb2cmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 2523 adddb2cmds(ESqlStatementType.sstdb2createfunctionmapping, TBaseType.rrw_create,"function", "mapping"," "," "," "," "); 2524 adddb2cmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","table"," "," "," "); 2525 adddb2cmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 2526 adddb2cmds(ESqlStatementType.sstdb2createindexextension, TBaseType.rrw_create,"index", "extension"," "," "," "," "); 2527 adddb2cmds(ESqlStatementType.sstcreateTablespace, TBaseType.rrw_create,"large","tablespace"," "," "," "," "); 2528 adddb2cmds(ESqlStatementType.sstdb2createmethod, TBaseType.rrw_create,"method"," "," "," "," "," "); 2529 adddb2cmds(ESqlStatementType.sstdb2createnickname, TBaseType.rrw_create,"nickname"," "," "," "," "," "); 2530 adddb2cmds(ESqlStatementType.sstdb2createalias, TBaseType.rrw_create,"or","replace","alias"," "," "," "); 2531 adddb2cmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create,"or","replace","function"," "," "," "); 2532 adddb2cmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create,"or","replace","procedure"," "," "," "); 2533 adddb2cmds(ESqlStatementType.sstdb2createalias, TBaseType.rrw_create,"or","replace","public","alias"," "," "); 2534 adddb2cmds(ESqlStatementType.sstdb2createtrigger, TBaseType.rrw_create,"or","replace","trigger"," "," "," "); 2535 adddb2cmds(ESqlStatementType.sstdb2createvariable, TBaseType.rrw_create,"or","replace","variable"," "," "," "); 2536 adddb2cmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"or","replace","view"," "," "," "); 2537 adddb2cmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 2538 adddb2cmds(ESqlStatementType.sstdb2createalias, TBaseType.rrw_create,"public","alias"," "," "," "," "); 2539 adddb2cmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create,"public","synonym"," "," "," "," "); 2540 adddb2cmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 2541 adddb2cmds(ESqlStatementType.sstdb2createschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 2542 adddb2cmds(ESqlStatementType.sstdb2createsequence, TBaseType.rrw_create,"sequence"," "," "," "," "," "); 2543 adddb2cmds(ESqlStatementType.sstdb2createserver, TBaseType.rrw_create,"server"," "," "," "," "," "); 2544 adddb2cmds(ESqlStatementType.sstdb2createstogroup, TBaseType.rrw_create,"stogroup"," "," "," "," "," "); 2545 adddb2cmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"summary","table"," "," "," "," "); 2546 adddb2cmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 2547 adddb2cmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 2548 adddb2cmds(ESqlStatementType.sstcreateTablespace, TBaseType.rrw_create,"tablespace"," "," "," "," "," "); 2549 adddb2cmds(ESqlStatementType.sstdb2createtransform, TBaseType.rrw_create,"transform"," "," "," "," "," "); 2550 adddb2cmds(ESqlStatementType.sstdb2createtrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 2551 adddb2cmds(ESqlStatementType.sstdb2createtype, TBaseType.rrw_create,"type"," "," "," "," "," "); 2552 adddb2cmds(ESqlStatementType.sstdb2createtypemapping, TBaseType.rrw_create,"type", "mapping"," "," "," "," "); 2553 adddb2cmds(ESqlStatementType.sstdb2createusermapping, TBaseType.rrw_create,"user", "mapping"," "," "," "," "); 2554 adddb2cmds(ESqlStatementType.sstdb2createvariable, TBaseType.rrw_create,"variable"," "," "," "," "," "); 2555 adddb2cmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 2556 adddb2cmds(ESqlStatementType.sstdb2createwrapper, TBaseType.rrw_create,"wrapper"," "," "," "," "," "); 2557 adddb2cmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"*","index"," "," "," "," "); 2558 adddb2cmds(ESqlStatementType.sstdb2declareglobaltemporarytable, TBaseType.rrw_declare, "global", "temporary", "table"," "," "," "); 2559 adddb2cmds(ESqlStatementType.sstdb2declarecursor, TBaseType.rrw_declare,"*","cursor"," "," "," "," "); 2560 adddb2cmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 2561 adddb2cmds(ESqlStatementType.sstdb2describe, TBaseType.rrw_describe," "," "," "," "," "," "); 2562 adddb2cmds(ESqlStatementType.sstdb2disconnect, TBaseType.rrw_disconnect," "," "," "," "," "," "); 2563 adddb2cmds(ESqlStatementType.sstdb2drop, TBaseType.rrw_drop," "," "," "," "," "," "); 2564 adddb2cmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 2565 adddb2cmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 2566 adddb2cmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 2567 adddb2cmds(ESqlStatementType.sstdb2enddeclaresection, TBaseType.rrw_end,"declare","section"," "," "," "," "); 2568 adddb2cmds(ESqlStatementType.sstdb2execute, TBaseType.rrw_execute," "," "," "," "," "," "); 2569 adddb2cmds(ESqlStatementType.sstdb2executeimmediate, TBaseType.rrw_execute,"immediate"," "," "," "," "," "); 2570 adddb2cmds(ESqlStatementType.sstdb2explain, TBaseType.rrw_explain," "," "," "," "," "," "); 2571 adddb2cmds(ESqlStatementType.sstdb2fetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 2572 adddb2cmds(ESqlStatementType.sstdb2flusheventmonitor, TBaseType.rrw_flush, "event", "monitor"," "," "," "," "); 2573 adddb2cmds(ESqlStatementType.sstdb2flushpackagecache, TBaseType.rrw_flush,"package", "cache"," "," "," "," "); 2574 adddb2cmds(ESqlStatementType.sstdb2for, TBaseType.rrw_for," "," "," "," "," "," "); 2575 adddb2cmds(ESqlStatementType.sstdb2freelocator, TBaseType.rrw_free,"locator"," "," "," "," "," "); 2576 adddb2cmds(ESqlStatementType.sstgetdiagnostics, TBaseType.rrw_get,"diagnostics"," "," "," "," "," "); 2577 adddb2cmds(ESqlStatementType.sstdb2goto, TBaseType.rrw_goto," "," "," "," "," "," "); 2578 adddb2cmds(ESqlStatementType.sstdb2grant, TBaseType.rrw_grant," "," "," "," "," "," "); 2579 adddb2cmds(ESqlStatementType.sstdb2if, TBaseType.rrw_if," "," "," "," "," "," "); 2580 adddb2cmds(ESqlStatementType.sstdb2include, TBaseType.rrw_include," "," "," "," "," "," "); 2581 adddb2cmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 2582 adddb2cmds(ESqlStatementType.sstdb2iterate, TBaseType.rrw_iterate," "," "," "," "," "," "); 2583 adddb2cmds(ESqlStatementType.sstdb2labelOn, TBaseType.rrw_db2_label,"on"," "," "," "," "," "); 2584 adddb2cmds(ESqlStatementType.sstdb2leave, TBaseType.rrw_leave," "," "," "," "," "," "); 2585 adddb2cmds(ESqlStatementType.sstdb2locktable, TBaseType.rrw_lock,"table"," "," "," "," "," "); 2586 adddb2cmds(ESqlStatementType.sstdb2loop, TBaseType.rrw_loop," "," "," "," "," "," "); 2587 adddb2cmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 2588 adddb2cmds(ESqlStatementType.sstdb2open, TBaseType.rrw_open," "," "," "," "," "," "); 2589 adddb2cmds(ESqlStatementType.sstdb2prepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 2590 adddb2cmds(ESqlStatementType.sstdb2refreshtable, TBaseType.rrw_refresh,"table"," "," "," "," "," "); 2591 adddb2cmds(ESqlStatementType.sstdb2release, TBaseType.rrw_release," "," "," "," "," "," "); 2592 adddb2cmds(ESqlStatementType.sstdb2releasesavepoint, TBaseType.rrw_release,"savepoint"," "," "," "," "," "); 2593 adddb2cmds(ESqlStatementType.sstdb2rename, TBaseType.rrw_rename," "," "," "," "," "," "); 2594 adddb2cmds(ESqlStatementType.sstdb2renametablespace, TBaseType.rrw_rename,"tablespace"," "," "," "," "," "); 2595 adddb2cmds(ESqlStatementType.sstdb2repeat, TBaseType.rrw_repeat," "," "," "," "," "," "); 2596 adddb2cmds(ESqlStatementType.sstdb2resignal, TBaseType.rrw_resignal," "," "," "," "," "," "); 2597 adddb2cmds(ESqlStatementType.sstdb2return, TBaseType.rrw_return," "," "," "," "," "," "); 2598 adddb2cmds(ESqlStatementType.sstdb2revoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 2599 adddb2cmds(ESqlStatementType.sstdb2rollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 2600 adddb2cmds(ESqlStatementType.sstRunStats, TBaseType.rrw_db2_runstats," "," "," "," "," "," "); 2601 adddb2cmds(ESqlStatementType.sstdb2savepoint, TBaseType.rrw_savepoint," "," "," "," "," "," "); 2602 adddb2cmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 2603 adddb2cmds(ESqlStatementType.sstdb2setconnection, TBaseType.rrw_set,"connection"," "," "," "," "," "); 2604 adddb2cmds(ESqlStatementType.sstdb2set, TBaseType.rrw_set," "," "," "," "," "," "); 2605 adddb2cmds(ESqlStatementType.sstdb2setconnection, TBaseType.rrw_set,"connection"," "," "," "," "," "); 2606 adddb2cmds(ESqlStatementType.sstdb2setcurrentdefaulttransformgroup, TBaseType.rrw_set,"current default transform group"," "," "," "," "," "); 2607 adddb2cmds(ESqlStatementType.sstdb2setcurrentdegree, TBaseType.rrw_set,"current", "degree"," "," "," "," "); 2608 adddb2cmds(ESqlStatementType.sstdb2setcurrentexplainmode, TBaseType.rrw_set,"current", "explain", "mode"," "," "," "); 2609 adddb2cmds(ESqlStatementType.sstdb2setcurrentexplainsnapshot, TBaseType.rrw_set,"current", "explain", "snapshot"," "," "," "); 2610 adddb2cmds(ESqlStatementType.sstdb2setcurrentisolation, TBaseType.rrw_set,"current", "isolation"," "," "," "," "); 2611 adddb2cmds(ESqlStatementType.sstdb2setcurrentlocktimeout, TBaseType.rrw_set,"current", "lock", "timeout"," "," "," "); 2612 adddb2cmds(ESqlStatementType.sstdb2setcurrentmaintainedtabletypesforoptimization, TBaseType.rrw_set,"current", "maintained", "table", "types"," "," "); 2613 adddb2cmds(ESqlStatementType.sstdb2setcurrentpackagepath, TBaseType.rrw_set,"current", "package", "path"," "," "," "); 2614 adddb2cmds(ESqlStatementType.sstdb2setcurrentpackageset, TBaseType.rrw_set,"current", "packageset"," "," "," "," "); 2615 adddb2cmds(ESqlStatementType.sstdb2setcurrentqueryoptimization, TBaseType.rrw_set,"current", "query", "optimization"," "," "," "); 2616 adddb2cmds(ESqlStatementType.sstdb2setcurrentrefreshage, TBaseType.rrw_set,"current", "refresh", "age"," "," "," "); 2617 adddb2cmds(ESqlStatementType.sstdb2setschema, TBaseType.rrw_set,"current","schema"," "," "," "," "); 2618 adddb2cmds(ESqlStatementType.sstdb2setencryptionpassword, TBaseType.rrw_set,"encryption", "password"," "," "," "," "); 2619 adddb2cmds(ESqlStatementType.sstdb2seteventmonitorstate, TBaseType.rrw_set,"event", "monitor", "state"," "," "," "); 2620 adddb2cmds(ESqlStatementType.sstdb2setintegrity, TBaseType.rrw_set,"integrity"," "," "," "," "," "); 2621 adddb2cmds(ESqlStatementType.sstdb2setpassthru, TBaseType.rrw_set,"passthru"," "," "," "," "," "); 2622 adddb2cmds(ESqlStatementType.sstdb2setpath, TBaseType.rrw_set,"path"," "," "," "," "," "); 2623 adddb2cmds(ESqlStatementType.sstdb2setschema, TBaseType.rrw_set,"schema"," "," "," "," "," "); 2624 adddb2cmds(ESqlStatementType.sstdb2setserveroption, TBaseType.rrw_set,"server", "option"," "," "," "," "); 2625 adddb2cmds(ESqlStatementType.sstdb2setsessionauthorization, TBaseType.rrw_set,"session", "authorization"," "," "," "," "); 2626 adddb2cmds(ESqlStatementType.sstdb2signal, TBaseType.rrw_signal," "," "," "," "," "," "); 2627 adddb2cmds(ESqlStatementType.sstdb2terminate, TBaseType.rrw_terminate," "," "," "," "," "," "); 2628//TRUNCATE TABLE 2629 adddb2cmds(ESqlStatementType.ssttruncatetable, TBaseType.rrw_truncate," "," "," "," "," "," "); 2630 2631 adddb2cmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 2632 adddb2cmds(ESqlStatementType.sstdb2updateCommand, TBaseType.rrw_update,"command"," "," "," "," "," "); 2633// AddDB2Cmds(sstDB2VALUES,rrw_VALUES); 2634// AddDB2Cmds(sstDB2WHENEVER,rrw_WHENEVER); 2635 adddb2cmds(ESqlStatementType.sstdb2while, TBaseType.rrw_while," "," "," "," "," "," "); 2636 2637} 2638 2639void initnetezzacmds(){ 2640 addnetezzacmds(ESqlStatementType.sstAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 2641 addnetezzacmds(ESqlStatementType.sstnetezzaAlterDatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 2642 addnetezzacmds(ESqlStatementType.sstnetezzaAlterGroup, TBaseType.rrw_alter, "group", " ", " ", " ", " ", " "); 2643 addnetezzacmds(ESqlStatementType.sstnetezzaAlterHistoryConfiguration, TBaseType.rrw_alter, "history", " ", " ", " ", " ", " "); 2644 addnetezzacmds(ESqlStatementType.sstnetezzaAlterSequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 2645 addnetezzacmds(ESqlStatementType.sstaltersession, TBaseType.rrw_alter, "session", " ", " ", " ", " ", " "); 2646 addnetezzacmds(ESqlStatementType.sstAlterSynonym, TBaseType.rrw_alter, "synonym", " ", " ", " ", " ", " "); 2647 addnetezzacmds(ESqlStatementType.sstnetezzaAlterTable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 2648 addnetezzacmds(ESqlStatementType.sstnetezzaAlterUser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 2649 addnetezzacmds(ESqlStatementType.sstnetezzaAlterView, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 2650 addnetezzacmds(ESqlStatementType.sstnetezzaAlterView, TBaseType.rrw_alter, "views", " ", " ", " ", " ", " "); 2651 addnetezzacmds(ESqlStatementType.sstnetezzaBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 2652 addnetezzacmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 2653 addnetezzacmds(ESqlStatementType.sstnetezzaComment, TBaseType.rrw_comment, " ", " ", " ", " ", " ", " "); 2654 addnetezzacmds(ESqlStatementType.sstnetezzaCommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 2655 addnetezzacmds(ESqlStatementType.sstnetezzaCopy, TBaseType.rrw_netezza_copy, " ", " ", " ", " ", " ", " "); 2656 addnetezzacmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 2657 addnetezzacmds(ESqlStatementType.sstnetezzaCreateExternalTable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 2658 addnetezzacmds(ESqlStatementType.sstnetezzaCreateGruop, TBaseType.rrw_create, "group", " ", " ", " ", " ", " "); 2659 addnetezzacmds(ESqlStatementType.sstnetezzaCreateHistoryConfiguration, TBaseType.rrw_create, "history", "configuration", " ", " ", " ", " "); 2660 addnetezzacmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "materialized", "view", " ", " ", " ", " "); 2661 addnetezzacmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "or", "replace", "materialized", "view", " ", " "); 2662 addnetezzacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "or", "replace", "procedure", " ", " ", " "); 2663 addnetezzacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 2664 addnetezzacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 2665 addnetezzacmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 2666 addnetezzacmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create, "synonym", " ", " ", " ", " ", " "); 2667 addnetezzacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 2668 addnetezzacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 2669 addnetezzacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 2670 addnetezzacmds(ESqlStatementType.sstnetezzaCreateUser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 2671 addnetezzacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 2672// addnetezzacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "volatile", "table", " ", " ", " ", " "); 2673 addnetezzacmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete , " ", " ", " ", " ", " ", " "); 2674 addnetezzacmds(ESqlStatementType.sstnetezzaDropConnection, TBaseType.rrw_drop, "connection", " ", " ", " ", " ", " "); 2675 addnetezzacmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 2676 addnetezzacmds(ESqlStatementType.sstnetezzaDropGroup, TBaseType.rrw_drop, "group", " ", " ", " ", " ", " "); 2677 addnetezzacmds(ESqlStatementType.sstnetezzaDropHistoryConfiguration, TBaseType.rrw_drop, "history", "configuration", " ", " ", " ", " "); 2678 addnetezzacmds(ESqlStatementType.sstdropprocedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 2679 addnetezzacmds(ESqlStatementType.sstnetezzaDropSchema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 2680 addnetezzacmds(ESqlStatementType.sstnetezzaDropSequence, TBaseType.rrw_drop, "sequence", " ", " ", " ", " ", " "); 2681 addnetezzacmds(ESqlStatementType.sstnetezzaDropSession, TBaseType.rrw_drop, "session", " ", " ", " ", " ", " "); 2682 addnetezzacmds(ESqlStatementType.sstdropsynonym, TBaseType.rrw_drop, "synonym", " ", " ", " ", " ", " "); 2683 addnetezzacmds(ESqlStatementType.sstnetezzaDropTable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 2684 addnetezzacmds(ESqlStatementType.sstnetezzaDropUser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 2685 addnetezzacmds(ESqlStatementType.sstnetezzaDropView, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 2686 addnetezzacmds(ESqlStatementType.sstexecutestmt, TBaseType.rrw_exec, " ", " ", " ", " ", " ", " "); 2687 addnetezzacmds(ESqlStatementType.sstexecutestmt, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 2688 addnetezzacmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 2689 addnetezzacmds(ESqlStatementType.sstnetezzaGenerateStatistics, TBaseType.rrw_netezza_generate, "express", "statistics", " ", " ", " ", " "); 2690 addnetezzacmds(ESqlStatementType.sstnetezzaGenerateStatistics, TBaseType.rrw_netezza_generate, "statistics", " ", " ", " ", " ", " "); 2691 addnetezzacmds(ESqlStatementType.sstnetezzaGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 2692 addnetezzacmds(ESqlStatementType.sstnetezzaGroomTable, TBaseType.rrw_netezza_groom, "table", " ", " ", " ", " ", " "); 2693 addnetezzacmds(ESqlStatementType.sstlocktable, TBaseType.rrw_lock, "table", " ", " ", " ", " ", " "); 2694 addnetezzacmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 2695 addnetezzacmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, " ", " ", " ", " ", " ", " "); 2696 addnetezzacmds(ESqlStatementType.sstnetezzaReset, TBaseType.rrw_reset, " ", " ", " ", " ", " ", " "); 2697 addnetezzacmds(ESqlStatementType.sstnetezzaRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 2698 addnetezzacmds(ESqlStatementType.sstnetezzaRollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 2699 addnetezzacmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 2700 addnetezzacmds(ESqlStatementType.sstnetezzaSet, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 2701 addnetezzacmds(ESqlStatementType.sstSetCatalog, TBaseType.rrw_set, "catalog", " ", " ", " ", " ", " "); 2702 addnetezzacmds(ESqlStatementType.sstSetSchema, TBaseType.rrw_set, "schema", " ", " ", " ", " ", " "); 2703 addnetezzacmds(ESqlStatementType.sstnetezzaShow, TBaseType.rrw_show, " ", " ", " ", " ", " ", " "); 2704 addnetezzacmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 2705 addnetezzacmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 2706} 2707 void initgaussdbcmds(){ 2708// cmd must be sorted alphabetically 2709 addgaussdbcmds(ESqlStatementType.sstpostgresqlabort, TBaseType.rrw_abort, " ", " ", " ", " ", " ", " "); 2710 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterAggregate, TBaseType.rrw_alter, "aggregate", " ", " ", " ", " ", " "); 2711 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterCollation, TBaseType.rrw_alter, "collation", " ", " ", " ", " ", " "); 2712 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterConversion, TBaseType.rrw_alter, "conversion", " ", " ", " ", " ", " "); 2713 addgaussdbcmds(ESqlStatementType.sstpostgresqlalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 2714 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterDefaultPrivileges, TBaseType.rrw_alter, "default", "privileges", " ", " ", " ", " "); 2715 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterDomain, TBaseType.rrw_alter, "domain", " ", " ", " ", " ", " "); 2716 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterEventTrigger, TBaseType.rrw_alter, "event", "trigger", " ", " ", " ", " "); 2717 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterExtension, TBaseType.rrw_alter, "extension", " ", " ", " ", " ", " "); 2718 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterForeignDataWrapper, TBaseType.rrw_alter, "foreign", "data", "wrapper", " ", " ", " "); 2719 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterForeignTable, TBaseType.rrw_alter, "foreign", "Table", " ", " ", " ", " "); 2720 2721 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 2722 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterGroup, TBaseType.rrw_alter, "group", " ", " ", " ", " ", " "); 2723 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterIndex, TBaseType.rrw_alter, "index", " ", " ", " ", " ", " "); 2724 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "language", " ", " ", " ", " ", " "); 2725 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterLargeObject, TBaseType.rrw_alter, "large", "object", " ", " ", " ", " "); 2726 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterMaterializedView, TBaseType.rrw_alter, "materialized", "view", " ", " ", " ", " "); 2727 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterOperator, TBaseType.rrw_alter, "operator", " ", " ", " ", " ", " "); 2728 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterOperatorClass, TBaseType.rrw_alter, "operator", "class", " ", " ", " ", " "); 2729 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterOperatorFamily, TBaseType.rrw_alter, "operator", "family", " ", " ", " ", " "); 2730 addgaussdbcmds(ESqlStatementType.sstAlterPackage, TBaseType.rrw_alter, "package", " ", " ", " ", " ", " "); 2731 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterPolicy, TBaseType.rrw_alter, "policy", " ", " ", " ", " ", " "); 2732 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "procedural", "language", " ", " ", " ", " "); 2733 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterProcedure, TBaseType.rrw_alter, "procedure", " ", " ", " ", " ", " "); 2734 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterPublication, TBaseType.rrw_alter, "publication", " ", " ", " ", " ", " "); 2735 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 2736 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterRoutine, TBaseType.rrw_alter, "routine", " ", " ", " ", " ", " "); 2737 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterRule, TBaseType.rrw_alter, "rule", " ", " ", " ", " ", " "); 2738 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 2739 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterSequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 2740 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterServer, TBaseType.rrw_alter, "server", " ", " ", " ", " ", " "); 2741 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterStatistics, TBaseType.rrw_alter, "statistics", " ", " ", " ", " ", " "); 2742 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterSubscription, TBaseType.rrw_alter, "subscription", " ", " ", " ", " ", " "); 2743 addgaussdbcmds(ESqlStatementType.sstAlterSynonym, TBaseType.rrw_alter, "synonym", " ", " ", " ", " ", " "); 2744 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterSystem, TBaseType.rrw_alter, "system", " ", " ", " ", " ", " "); 2745 2746 addgaussdbcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 2747 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTablespace, TBaseType.rrw_alter, "tablespace", " ", " ", " ", " ", " "); 2748 2749 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTextSearchConfiguration, TBaseType.rrw_alter, "text", "search", "configuration", " ", " ", " "); 2750 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTextSearchDictionary, TBaseType.rrw_alter, "text", "search", "dictionary", " ", " ", " "); 2751 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTextSearchParser, TBaseType.rrw_alter, "text", "search", "parser", " ", " ", " "); 2752 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTextSearchTemplate, TBaseType.rrw_alter, "text", "search", "template", " ", " ", " "); 2753 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTrigger, TBaseType.rrw_alter, "trigger", " ", " ", " ", " ", " "); 2754 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterType, TBaseType.rrw_alter, "type", " ", " ", " ", " ", " "); 2755 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterUser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 2756 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterUserMapping, TBaseType.rrw_alter, "user", "mapping", " ", " ", " ", " "); 2757 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterView, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 2758 addgaussdbcmds(ESqlStatementType.sstpostgresqlAnalyze, TBaseType.rrw_analyze, " ", " ", " ", " ", " ", " "); 2759 2760 // begin is recognized in isgaussdb() method. 2761 // addgaussdbcmds(ESqlStatementType.sstpostgresqlBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 2762 2763 addgaussdbcmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 2764 2765 addgaussdbcmds(ESqlStatementType.sstpostgresqlCheckpoint, TBaseType.rrw_checkpoint, " ", " ", " ", " ", " ", " "); 2766 addgaussdbcmds(ESqlStatementType.sstpostgresqlClose, TBaseType.rrw_close, " ", " ", " ", " ", " ", " "); 2767 2768 addgaussdbcmds(ESqlStatementType.sstpostgresqlCluster, TBaseType.rrw_postgresql_cluster, " ", " ", " ", " ", " ", " "); 2769 2770 addgaussdbcmds(ESqlStatementType.sstpostgresqlComment, TBaseType.rrw_comment, " ", " ", " ", " ", " ", " "); 2771 2772 addgaussdbcmds(ESqlStatementType.sstpostgresqlCommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 2773 addgaussdbcmds(ESqlStatementType.sstpostgresqlCommitPrepared, TBaseType.rrw_commit, "prepared", " ", " ", " ", " ", " "); 2774 addgaussdbcmds(ESqlStatementType.sstpostgresqlCopy, TBaseType.rrw_postgresql_copy, " ", " ", " ", " ", " ", " "); 2775 2776 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateAccessMethod, TBaseType.rrw_create, "access", "method", " ", " ", " ", " "); 2777 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateAggregate, TBaseType.rrw_create, "aggregate", " ", " ", " ", " ", " "); 2778 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateAssertion, TBaseType.rrw_create, "assertion", " ", " ", " ", " ", " "); 2779 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateCast, TBaseType.rrw_create, "cast", " ", " ", " ", " ", " "); 2780 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateCollation, TBaseType.rrw_create, "collation", " ", " ", " ", " ", " "); 2781 2782 addgaussdbcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "constraint", "trigger", " ", " ", " ", " "); 2783 2784 addgaussdbcmds(ESqlStatementType.sstpostgresqlConversion, TBaseType.rrw_create, "conversion", " ", " ", " ", " ", " "); 2785 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateDatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 2786 addgaussdbcmds(ESqlStatementType.sstpostgresqlConversion, TBaseType.rrw_create, "default", "conversion", " ", " ", " ", " "); 2787 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateDomain, TBaseType.rrw_create, "domain", " ", " ", " ", " ", " "); 2788 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateEventTrigger, TBaseType.rrw_create, "event", "trigger", " ", " ", " ", " "); 2789 addgaussdbcmds(ESqlStatementType.sstcreateExtension, TBaseType.rrw_create, "extension", " ", " ", " ", " ", " "); 2790 2791 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateForeignDataWrapper, TBaseType.rrw_create, "foreign", "data", "wrapper", " ", " ", " "); 2792 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateForeignTable, TBaseType.rrw_create, "foreign", "table", " ", " ", " ", " "); 2793 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 2794 2795 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "global", "index", " ", " ", " ", " "); 2796 2797 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temp", "table", " ", " ", " "); 2798 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temporary", "table", " ", " ", " "); 2799 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "unlocked", "table", " ", " ", " "); 2800 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "global", "unique", "index", " ", " ", " "); 2801 2802 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateGroup, TBaseType.rrw_create, "group", " ", " ", " ", " ", " "); 2803 2804 addgaussdbcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "incremental", "materialized", "view", " ", " ", " "); 2805 2806 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "index", " ", " ", " ", " ", " "); 2807 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "language", " ", " ", " ", " ", " "); 2808 2809 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temp", "table", " ", " ", " "); 2810 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temporary", "table", " ", " ", " "); 2811 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "unlocked", "table", " ", " ", " "); 2812 2813 addgaussdbcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "materialized", "view", " ", " ", " ", " "); 2814 2815 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateOperator, TBaseType.rrw_create, "operator", " ", " ", " ", " ", " "); 2816 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateOperatorClass, TBaseType.rrw_create, "operator", "class", " ", " ", " ", " "); 2817 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateOperatorFimaly, TBaseType.rrw_create, "operator", "family", " ", " ", " ", " "); 2818 2819 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "or", "replace", "function", " ", " ", " "); 2820 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "language", " ", " ", " "); 2821 2822 addgaussdbcmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"or","replace","package"," "," "," "); 2823 addgaussdbcmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"or","replace","package","body"," "," "); 2824 2825 2826 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "procedural", "language", " ", " "); 2827 addgaussdbcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "or", "replace", "procedure", " ", " ", " "); 2828 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "or", "replace", "role ", " ", " ", " "); 2829 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateRule, TBaseType.rrw_create, "or", "replace", "rule ", " ", " ", " "); 2830 addgaussdbcmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create,"or","replace","synonym"," "," "," "); 2831 2832 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temp", "view", " ", " "); 2833 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temporary", "view", " ", " "); 2834 addgaussdbcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "or", "replace", "trigger", " ", " ", " "); 2835 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "trusted", "language", " ", " "); 2836 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "trusted", "procedural", "language", " "); 2837 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 2838 2839 addgaussdbcmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"package"," "," "," "," "," "); 2840 addgaussdbcmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"package","body"," "," "," "," "); 2841 2842 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreatePolicy, TBaseType.rrw_create, "policy", " ", " ", " ", " ", " "); 2843 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "procedural", "language", " ", " ", " ", " "); 2844 addgaussdbcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 2845 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreatePublication, TBaseType.rrw_create, "publication", " ", " ", " ", " ", " "); 2846 2847 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "role", " ", " ", " ", " ", " "); 2848 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateRule, TBaseType.rrw_create, "rule", " ", " ", " ", " ", " "); 2849 2850 2851 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSchema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 2852 2853 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 2854 2855 2856 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateServer, TBaseType.rrw_create, "server", " ", " ", " ", " ", " "); 2857 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateStatistics, TBaseType.rrw_create, "statistics", " ", " ", " ", " ", " "); 2858 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSubscription, TBaseType.rrw_create, "subscription", " ", " ", " ", " ", " "); 2859 addgaussdbcmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 2860 2861 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 2862 2863 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTablespace, TBaseType.rrw_create, "tablespace", " ", " ", " ", " ", " "); 2864 2865 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temp", "sequence", " ", " ", " ", " "); 2866 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 2867 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temp", "view", " ", " ", " ", " "); 2868 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temporary", "sequence", " ", " ", " ", " "); 2869 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 2870 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temporary", "view", " ", " ", " ", " "); 2871 2872 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTextSearchConfiguration, TBaseType.rrw_create, "text", "search", "configuration", " ", " ", " "); 2873 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTextSearchDictionary, TBaseType.rrw_create, "text", "search", "dictionary", " ", " ", " "); 2874 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTextSearchParser, TBaseType.rrw_create, "text", "search", "parser", " ", " ", " "); 2875 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTextSearchTemplate, TBaseType.rrw_create, "text", "search", "template", " ", " ", " "); 2876 2877 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTransform, TBaseType.rrw_create, "transform", " ", " ", " ", " ", " "); 2878 addgaussdbcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "trigger", " ", " ", " ", " ", " "); 2879 2880 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "trusted", "language", " ", " ", " ", " "); 2881 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "trusted", "procedural", "language", " ", " ", " "); 2882 2883 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateType, TBaseType.rrw_create, "type", " ", " ", " ", " ", " "); 2884 2885 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "unlocked", "table", " ", " ", " ", " "); 2886 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "unlogged", "sequence", " ", " ", " ", " "); 2887 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "unlogged", "table", " ", " ", " ", " "); 2888 2889 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateUser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 2890 2891 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateUserMapping, TBaseType.rrw_create, "user", "mapping", " ", " ", " ", " "); 2892 2893 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 2894 2895 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "unique", "index", " ", " ", " ", " "); 2896 2897 2898 addgaussdbcmds(ESqlStatementType.sstpostgresqlDeallocate, TBaseType.rrw_deallocate, " ", " ", " ", " ", " ", " "); 2899 2900 addgaussdbcmds(ESqlStatementType.sstpostgresqlDeclare, TBaseType.rrw_declare, " ", " ", " ", " ", " ", " "); 2901 2902 addgaussdbcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 2903 2904 addgaussdbcmds(ESqlStatementType.sstpostgresqlDiscard, TBaseType.rrw_postgresql_discard, " ", " ", " ", " ", " ", " "); 2905 2906 addgaussdbcmds(ESqlStatementType.sstpostgresqlDo, TBaseType.rrw_do, " ", " ", " ", " ", " ", " "); 2907 2908 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropAccessMethod, TBaseType.rrw_drop, "access", "method", " ", " ", " ", " "); 2909 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropAggregate, TBaseType.rrw_drop, "aggregate", " ", " ", " ", " ", " "); 2910 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropAssertion, TBaseType.rrw_drop, "assertion", " ", " ", " ", " ", " "); 2911 2912 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropCast, TBaseType.rrw_drop, "cast", " ", " ", " ", " ", " "); 2913 2914 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropCollation, TBaseType.rrw_drop, "collation", " ", " ", " ", " ", " "); 2915 2916 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropConversion, TBaseType.rrw_drop, "conversion", " ", " ", " ", " ", " "); 2917 2918 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropDatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 2919 2920 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropDomain, TBaseType.rrw_drop, "domain", " ", " ", " ", " ", " "); 2921 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropEventTrigger, TBaseType.rrw_drop, "event", "trigger", " ", " ", " ", " "); 2922 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropExtension, TBaseType.rrw_drop, "extension", " ", " ", " ", " ", " "); 2923 2924 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropForeignDataWrapper, TBaseType.rrw_drop, "foreign", "data", "wrapper", " ", " ", " "); 2925 2926 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropForeignTable, TBaseType.rrw_drop, "foreign", "table", " ", " ", " ", " "); 2927 2928 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropFunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 2929 2930 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropGroup, TBaseType.rrw_drop, "group", " ", " ", " ", " ", " "); 2931 2932 addgaussdbcmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index", " ", " ", " ", " ", " "); 2933 2934 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "language", " ", " ", " ", " ", " "); 2935 2936 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropMaterializedView, TBaseType.rrw_drop, "materialized", "view", " ", " ", " ", " "); 2937 2938 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropOperator, TBaseType.rrw_drop, "operator", " ", " ", " ", " ", " "); 2939 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropOperatorClass, TBaseType.rrw_drop, "operator", "class", " ", " ", " ", " "); 2940 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropOperatorFamily, TBaseType.rrw_drop, "operator", "family ", " ", " ", " ", " "); 2941 2942 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropOwned, TBaseType.rrw_drop, "owned", " ", " ", " ", " ", " "); 2943 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropPolicy, TBaseType.rrw_drop, "policy", " ", " ", " ", " ", " "); 2944 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "procedural", "language", " ", " ", " ", " "); 2945 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropProcedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 2946 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropPublication, TBaseType.rrw_drop, "publication", " ", " ", " ", " ", " "); 2947 2948 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropRole, TBaseType.rrw_drop, "role", " ", " ", " ", " ", " "); 2949 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropRoutine, TBaseType.rrw_drop, "routine", " ", " ", " ", " ", " "); 2950 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropRule, TBaseType.rrw_drop, "rule", " ", " ", " ", " ", " "); 2951 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropSchema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 2952 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropSequence, TBaseType.rrw_drop, "sequence", " ", " ", " ", " ", " "); 2953 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropServer, TBaseType.rrw_drop, "server", " ", " ", " ", " ", " "); 2954 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropStatistics, TBaseType.rrw_drop, "statistics", " ", " ", " ", " ", " "); 2955 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropSubscription, TBaseType.rrw_drop, "subscription", " ", " ", " ", " ", " "); 2956 addgaussdbcmds(ESqlStatementType.sstdropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 2957 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 2958 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTablespace, TBaseType.rrw_drop, "tablespace", " ", " ", " ", " ", " "); 2959 2960 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTextSearchConfiguration, TBaseType.rrw_drop, "text", "search", "configuration", " ", " ", " "); 2961 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTextSearchDictionary, TBaseType.rrw_drop, "text", "search", "dictionary", " ", " ", " "); 2962 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTextSearchParser, TBaseType.rrw_drop, "text", "search", "parser", " ", " ", " "); 2963 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTextSearchTemplate, TBaseType.rrw_drop, "text", "search", "template", " ", " ", " "); 2964 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTransform, TBaseType.rrw_drop, "transform", " ", " ", " ", " ", " "); 2965 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTrigger, TBaseType.rrw_drop, "trigger", " ", " ", " ", " ", " "); 2966 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropType, TBaseType.rrw_drop, "type", " ", " ", " ", " ", " "); 2967 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropUser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 2968 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropUserMapping, TBaseType.rrw_drop, "user", "mapping", " ", " ", " ", " "); 2969 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropView, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 2970 2971 addgaussdbcmds(ESqlStatementType.sstpostgresqlEnd, TBaseType.rrw_end, " ", " ", " ", " ", " ", " "); 2972 2973 addgaussdbcmds(ESqlStatementType.sstpostgresqlExecute, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 2974 2975 addgaussdbcmds(ESqlStatementType.sstpostgresqlExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 2976 2977 addgaussdbcmds(ESqlStatementType.sstFetchFrom, TBaseType.rrw_fetch, " ", " ", " ", " ", " ", " "); 2978 2979 addgaussdbcmds(ESqlStatementType.sstpostgresqlGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 2980 addgaussdbcmds(ESqlStatementType.sstPostgresqlImport, TBaseType.rrw_postgresql_import, "foreign", "schema", " ", " ", " ", " "); 2981 addgaussdbcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 2982 2983 addgaussdbcmds(ESqlStatementType.sstpostgresqlListen, TBaseType.rrw_postgresql_listen, " ", " ", " ", " ", " ", " "); 2984 2985 addgaussdbcmds(ESqlStatementType.sstpostgresqlLoad, TBaseType.rrw_load, " ", " ", " ", " ", " ", " "); 2986 2987 addgaussdbcmds(ESqlStatementType.sstpostgresqlLock, TBaseType.rrw_lock, " ", " ", " ", " ", " ", " "); 2988 addgaussdbcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 2989 2990 addgaussdbcmds(ESqlStatementType.sstpostgresqlMove, TBaseType.rrw_move, " ", " ", " ", " ", " ", " "); 2991 2992 addgaussdbcmds(ESqlStatementType.sstpostgresqlNotify, TBaseType.rrw_postgresql_notify, " ", " ", " ", " ", " ", " "); 2993 2994 addgaussdbcmds(ESqlStatementType.sstPostgresqlBlock, TBaseType.rrw_plpgsql_function_delimiter, " ", " ", " ", " ", " ", " "); 2995 2996 2997 addgaussdbcmds(ESqlStatementType.sstpostgresqlPrepare, TBaseType.rrw_prepare, " ", " ", " ", " ", " ", " "); 2998 2999 addgaussdbcmds(ESqlStatementType.sstpostgresqlPrepareTransaction, TBaseType.rrw_prepare, "transaction", " ", " ", " ", " ", " "); 3000 3001 addgaussdbcmds(ESqlStatementType.sstpostgresqlReassignOwned, TBaseType.rrw_postgresql_reassign, "owned", " ", " ", " ", " ", " "); 3002 3003 addgaussdbcmds(ESqlStatementType.sstpostgresqlRefreshMaterializedView, TBaseType.rrw_refresh, "incremental","materialized", "view", " ", " ", " "); 3004 addgaussdbcmds(ESqlStatementType.sstpostgresqlRefreshMaterializedView, TBaseType.rrw_refresh, "materialized", "view", " ", " ", " ", " "); 3005 3006 addgaussdbcmds(ESqlStatementType.sstReindex, TBaseType.rrw_postgresql_reindex, " ", " ", " ", " ", " ", " "); 3007 3008 addgaussdbcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, " ", " ", " ", " ", " ", " "); 3009 addgaussdbcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, "savepoint", " ", " ", " ", " ", " "); 3010 3011 addgaussdbcmds(ESqlStatementType.sstpostgresqlReset, TBaseType.rrw_reset, " ", " ", " ", " ", " ", " "); 3012 3013 addgaussdbcmds(ESqlStatementType.sstpostgresqlRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 3014 3015 addgaussdbcmds(ESqlStatementType.sstpostgresqlRollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 3016 addgaussdbcmds(ESqlStatementType.sstpostgresqlRollbackPrepared, TBaseType.rrw_rollback, "prepared", " ", " ", " ", " ", " "); 3017 addgaussdbcmds(ESqlStatementType.sstpostgresqlRollbackToSavepoint, TBaseType.rrw_rollback, "to", "savepoint", " ", " ", " ", " "); 3018 addgaussdbcmds(ESqlStatementType.sstsavepoint, TBaseType.rrw_savepoint, " ", " ", " ", " ", " ", " "); 3019 3020 addgaussdbcmds(ESqlStatementType.sstpostgresqlSecurityLabel, TBaseType.rrw_postgresql_security, "label", " ", " ", " ", " ", " "); 3021 3022 3023 addgaussdbcmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 3024 3025 addgaussdbcmds(ESqlStatementType.sstpostgresqlSet, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 3026 3027 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetConstraints, TBaseType.rrw_set, "constraints", " ", " ", " ", " ", " "); 3028 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "local", "role", " ", " ", " ", " "); 3029 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "local", "session", "authorization", " ", " ", " "); 3030 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "role", " ", " ", " ", " ", " "); 3031 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetSearchPath, TBaseType.rrw_set, "search_path", " ", " ", " ", " ", " "); 3032 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "authorization", " ", " ", " ", " "); 3033 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "session", "characteristics", "as", "transaction", " ", " "); 3034 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "session", "role", " ", " ", " ", " "); 3035 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "session", "authorization", " ", " ", " "); 3036 3037 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "transaction", " ", " ", " ", " ", " "); 3038 addgaussdbcmds(ESqlStatementType.sstpostgresqlShow, TBaseType.rrw_show, " ", " ", " ", " ", " ", " "); 3039 addgaussdbcmds(ESqlStatementType.sstpostgresqlShowSearchPath, TBaseType.rrw_show, "search_path", " ", " ", " ", " ", " "); 3040 // addgaussdbcmds(ESqlStatementType.sstpostgresqlStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 3041 addgaussdbcmds(ESqlStatementType.sstPostgresqlTable, TBaseType.rrw_table, " ", " ", " ", " ", " ", " "); 3042 addgaussdbcmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 3043 addgaussdbcmds(ESqlStatementType.sstpostgresqlTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 3044 3045 addgaussdbcmds(ESqlStatementType.sstpostgresqlUnlisten, TBaseType.rrw_postgresql_unlisten, " ", " ", " ", " ", " ", " "); 3046 3047 addgaussdbcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 3048 addgaussdbcmds(ESqlStatementType.sstVacuum, TBaseType.rrw_postgresql_vacuum, " ", " ", " ", " ", " ", " "); 3049 addgaussdbcmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " ", " ", " ", " ", " ", " "); 3050 3051 } 3052 3053 void initpostgresqlcmds(){ 3054// cmd must be sorted alphabetically 3055 addpostgresqlcmds(ESqlStatementType.sstpostgresqlabort, TBaseType.rrw_abort, " ", " ", " ", " ", " ", " "); 3056 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterAggregate, TBaseType.rrw_alter, "aggregate", " ", " ", " ", " ", " "); 3057 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterCollation, TBaseType.rrw_alter, "collation", " ", " ", " ", " ", " "); 3058 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterConversion, TBaseType.rrw_alter, "conversion", " ", " ", " ", " ", " "); 3059 addpostgresqlcmds(ESqlStatementType.sstpostgresqlalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 3060 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterDefaultPrivileges, TBaseType.rrw_alter, "default", "privileges", " ", " ", " ", " "); 3061 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterDomain, TBaseType.rrw_alter, "domain", " ", " ", " ", " ", " "); 3062 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterEventTrigger, TBaseType.rrw_alter, "event", "trigger", " ", " ", " ", " "); 3063 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterExtension, TBaseType.rrw_alter, "extension", " ", " ", " ", " ", " "); 3064 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterForeignDataWrapper, TBaseType.rrw_alter, "foreign", "data", "wrapper", " ", " ", " "); 3065 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterForeignTable, TBaseType.rrw_alter, "foreign", "Table", " ", " ", " ", " "); 3066 3067 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 3068 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterGroup, TBaseType.rrw_alter, "group", " ", " ", " ", " ", " "); 3069 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterIndex, TBaseType.rrw_alter, "index", " ", " ", " ", " ", " "); 3070 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "language", " ", " ", " ", " ", " "); 3071 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterLargeObject, TBaseType.rrw_alter, "large", "object", " ", " ", " ", " "); 3072 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterMaterializedView, TBaseType.rrw_alter, "materialized", "view", " ", " ", " ", " "); 3073 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterOperator, TBaseType.rrw_alter, "operator", " ", " ", " ", " ", " "); 3074 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterOperatorClass, TBaseType.rrw_alter, "operator", "class", " ", " ", " ", " "); 3075 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterOperatorFamily, TBaseType.rrw_alter, "operator", "family", " ", " ", " ", " "); 3076 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterPolicy, TBaseType.rrw_alter, "policy", " ", " ", " ", " ", " "); 3077 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "procedural", "language", " ", " ", " ", " "); 3078 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterProcedure, TBaseType.rrw_alter, "procedure", " ", " ", " ", " ", " "); 3079 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterPublication, TBaseType.rrw_alter, "publication", " ", " ", " ", " ", " "); 3080 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 3081 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterRoutine, TBaseType.rrw_alter, "routine", " ", " ", " ", " ", " "); 3082 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterRule, TBaseType.rrw_alter, "rule", " ", " ", " ", " ", " "); 3083 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 3084 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterSequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 3085 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterServer, TBaseType.rrw_alter, "server", " ", " ", " ", " ", " "); 3086 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterStatistics, TBaseType.rrw_alter, "statistics", " ", " ", " ", " ", " "); 3087 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterSubscription, TBaseType.rrw_alter, "subscription", " ", " ", " ", " ", " "); 3088 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterSystem, TBaseType.rrw_alter, "system", " ", " ", " ", " ", " "); 3089 3090 addpostgresqlcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 3091 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTablespace, TBaseType.rrw_alter, "tablespace", " ", " ", " ", " ", " "); 3092 3093 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTextSearchConfiguration, TBaseType.rrw_alter, "text", "search", "configuration", " ", " ", " "); 3094 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTextSearchDictionary, TBaseType.rrw_alter, "text", "search", "dictionary", " ", " ", " "); 3095 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTextSearchParser, TBaseType.rrw_alter, "text", "search", "parser", " ", " ", " "); 3096 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTextSearchTemplate, TBaseType.rrw_alter, "text", "search", "template", " ", " ", " "); 3097 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTrigger, TBaseType.rrw_alter, "trigger", " ", " ", " ", " ", " "); 3098 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterType, TBaseType.rrw_alter, "type", " ", " ", " ", " ", " "); 3099 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterUser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 3100 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterUserMapping, TBaseType.rrw_alter, "user", "mapping", " ", " ", " ", " "); 3101 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterView, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 3102 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAnalyze, TBaseType.rrw_analyze, " ", " ", " ", " ", " ", " "); 3103 3104 addpostgresqlcmds(ESqlStatementType.sstpostgresqlBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 3105 3106 addpostgresqlcmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 3107 3108 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCheckpoint, TBaseType.rrw_checkpoint, " ", " ", " ", " ", " ", " "); 3109 addpostgresqlcmds(ESqlStatementType.sstpostgresqlClose, TBaseType.rrw_close, " ", " ", " ", " ", " ", " "); 3110 3111 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCluster, TBaseType.rrw_postgresql_cluster, " ", " ", " ", " ", " ", " "); 3112 3113 addpostgresqlcmds(ESqlStatementType.sstpostgresqlComment, TBaseType.rrw_comment, " ", " ", " ", " ", " ", " "); 3114 3115 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 3116 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCommitPrepared, TBaseType.rrw_commit, "prepared", " ", " ", " ", " ", " "); 3117 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCopy, TBaseType.rrw_postgresql_copy, " ", " ", " ", " ", " ", " "); 3118 3119 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateAccessMethod, TBaseType.rrw_create, "access", "method", " ", " ", " ", " "); 3120 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateAggregate, TBaseType.rrw_create, "aggregate", " ", " ", " ", " ", " "); 3121 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateAssertion, TBaseType.rrw_create, "assertion", " ", " ", " ", " ", " "); 3122 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateCast, TBaseType.rrw_create, "cast", " ", " ", " ", " ", " "); 3123 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateCollation, TBaseType.rrw_create, "collation", " ", " ", " ", " ", " "); 3124 3125 addpostgresqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "constraint", "trigger", " ", " ", " ", " "); 3126 3127 addpostgresqlcmds(ESqlStatementType.sstpostgresqlConversion, TBaseType.rrw_create, "conversion", " ", " ", " ", " ", " "); 3128 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateDatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 3129 addpostgresqlcmds(ESqlStatementType.sstpostgresqlConversion, TBaseType.rrw_create, "default", "conversion", " ", " ", " ", " "); 3130 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateDomain, TBaseType.rrw_create, "domain", " ", " ", " ", " ", " "); 3131 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateEventTrigger, TBaseType.rrw_create, "event", "trigger", " ", " ", " ", " "); 3132 addpostgresqlcmds(ESqlStatementType.sstcreateExtension, TBaseType.rrw_create, "extension", " ", " ", " ", " ", " "); 3133 3134 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateForeignDataWrapper, TBaseType.rrw_create, "foreign", "data", "wrapper", " ", " ", " "); 3135 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateForeignTable, TBaseType.rrw_create, "foreign", "table", " ", " ", " ", " "); 3136 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 3137 3138 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temp", "table", " ", " ", " "); 3139 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temporary", "table", " ", " ", " "); 3140 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "unlocked", "table", " ", " ", " "); 3141 3142 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateGroup, TBaseType.rrw_create, "group", " ", " ", " ", " ", " "); 3143 3144 3145 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "index", " ", " ", " ", " ", " "); 3146 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "language", " ", " ", " ", " ", " "); 3147 3148 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temp", "table", " ", " ", " "); 3149 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temporary", "table", " ", " ", " "); 3150 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "unlocked", "table", " ", " ", " "); 3151 3152 addpostgresqlcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "materialized", "view", " ", " ", " ", " "); 3153 3154 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateOperator, TBaseType.rrw_create, "operator", " ", " ", " ", " ", " "); 3155 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateOperatorClass, TBaseType.rrw_create, "operator", "class", " ", " ", " ", " "); 3156 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateOperatorFimaly, TBaseType.rrw_create, "operator", "family", " ", " ", " ", " "); 3157 3158 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "or", "replace", "function", " ", " ", " "); 3159 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "language", " ", " ", " "); 3160 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "procedural", "language", " ", " "); 3161 addpostgresqlcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "or", "replace", "procedure", " ", " ", " "); 3162 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "or", "replace", "role ", " ", " ", " "); 3163 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateRule, TBaseType.rrw_create, "or", "replace", "rule ", " ", " ", " "); 3164 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temp", "view", " ", " "); 3165 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temporary", "view", " ", " "); 3166 addpostgresqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "or", "replace", "trigger", " ", " ", " "); 3167 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "trusted", "language", " ", " "); 3168 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "trusted", "procedural", "language", " "); 3169 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 3170 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreatePolicy, TBaseType.rrw_create, "policy", " ", " ", " ", " ", " "); 3171 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "procedural", "language", " ", " ", " ", " "); 3172 addpostgresqlcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 3173 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreatePublication, TBaseType.rrw_create, "publication", " ", " ", " ", " ", " "); 3174 3175 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "recursive", "view", " ", " ", " ", " "); 3176 3177 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "role", " ", " ", " ", " ", " "); 3178 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateRule, TBaseType.rrw_create, "rule", " ", " ", " ", " ", " "); 3179 3180 3181 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSchema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 3182 3183 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 3184 3185 3186 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateServer, TBaseType.rrw_create, "server", " ", " ", " ", " ", " "); 3187 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateStatistics, TBaseType.rrw_create, "statistics", " ", " ", " ", " ", " "); 3188 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSubscription, TBaseType.rrw_create, "subscription", " ", " ", " ", " ", " "); 3189 3190 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 3191 3192 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTablespace, TBaseType.rrw_create, "tablespace", " ", " ", " ", " ", " "); 3193 3194 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temp", "sequence", " ", " ", " ", " "); 3195 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 3196 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temp", "view", " ", " ", " ", " "); 3197 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temporary", "sequence", " ", " ", " ", " "); 3198 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 3199 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temporary", "view", " ", " ", " ", " "); 3200 3201 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTextSearchConfiguration, TBaseType.rrw_create, "text", "search", "configuration", " ", " ", " "); 3202 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTextSearchDictionary, TBaseType.rrw_create, "text", "search", "dictionary", " ", " ", " "); 3203 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTextSearchParser, TBaseType.rrw_create, "text", "search", "parser", " ", " ", " "); 3204 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTextSearchTemplate, TBaseType.rrw_create, "text", "search", "template", " ", " ", " "); 3205 3206 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTransform, TBaseType.rrw_create, "transform", " ", " ", " ", " ", " "); 3207 addpostgresqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "trigger", " ", " ", " ", " ", " "); 3208 3209 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "trusted", "language", " ", " ", " ", " "); 3210 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "trusted", "procedural", "language", " ", " ", " "); 3211 3212 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateType, TBaseType.rrw_create, "type", " ", " ", " ", " ", " "); 3213 3214 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "unlocked", "table", " ", " ", " ", " "); 3215 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "unlogged", "sequence", " ", " ", " ", " "); 3216 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "unlogged", "table", " ", " ", " ", " "); 3217 3218 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateUser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 3219 3220 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateUserMapping, TBaseType.rrw_create, "user", "mapping", " ", " ", " ", " "); 3221 3222 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 3223 3224 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "unique", "index", " ", " ", " ", " "); 3225 3226 3227 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDeallocate, TBaseType.rrw_deallocate, " ", " ", " ", " ", " ", " "); 3228 3229 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDeclare, TBaseType.rrw_declare, " ", " ", " ", " ", " ", " "); 3230 3231 addpostgresqlcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 3232 3233 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDiscard, TBaseType.rrw_postgresql_discard, " ", " ", " ", " ", " ", " "); 3234 3235 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDo, TBaseType.rrw_do, " ", " ", " ", " ", " ", " "); 3236 3237 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropAccessMethod, TBaseType.rrw_drop, "access", "method", " ", " ", " ", " "); 3238 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropAggregate, TBaseType.rrw_drop, "aggregate", " ", " ", " ", " ", " "); 3239 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropAssertion, TBaseType.rrw_drop, "assertion", " ", " ", " ", " ", " "); 3240 3241 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropCast, TBaseType.rrw_drop, "cast", " ", " ", " ", " ", " "); 3242 3243 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropCollation, TBaseType.rrw_drop, "collation", " ", " ", " ", " ", " "); 3244 3245 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropConversion, TBaseType.rrw_drop, "conversion", " ", " ", " ", " ", " "); 3246 3247 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropDatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 3248 3249 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropDomain, TBaseType.rrw_drop, "domain", " ", " ", " ", " ", " "); 3250 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropEventTrigger, TBaseType.rrw_drop, "event", "trigger", " ", " ", " ", " "); 3251 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropExtension, TBaseType.rrw_drop, "extension", " ", " ", " ", " ", " "); 3252 3253 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTable, TBaseType.rrw_drop, "external", "table", " ", " ", " ", " "); 3254 3255 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropForeignDataWrapper, TBaseType.rrw_drop, "foreign", "data", "wrapper", " ", " ", " "); 3256 3257 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropForeignTable, TBaseType.rrw_drop, "foreign", "table", " ", " ", " ", " "); 3258 3259 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropFunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 3260 3261 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropGroup, TBaseType.rrw_drop, "group", " ", " ", " ", " ", " "); 3262 3263 addpostgresqlcmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index", " ", " ", " ", " ", " "); 3264 3265 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "language", " ", " ", " ", " ", " "); 3266 3267 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropMaterializedView, TBaseType.rrw_drop, "materialized", "view", " ", " ", " ", " "); 3268 3269 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropOperator, TBaseType.rrw_drop, "operator", " ", " ", " ", " ", " "); 3270 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropOperatorClass, TBaseType.rrw_drop, "operator", "class", " ", " ", " ", " "); 3271 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropOperatorFamily, TBaseType.rrw_drop, "operator", "family ", " ", " ", " ", " "); 3272 3273 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropOwned, TBaseType.rrw_drop, "owned", " ", " ", " ", " ", " "); 3274 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropPolicy, TBaseType.rrw_drop, "policy", " ", " ", " ", " ", " "); 3275 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "procedural", "language", " ", " ", " ", " "); 3276 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropProcedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 3277 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropPublication, TBaseType.rrw_drop, "publication", " ", " ", " ", " ", " "); 3278 3279 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropRole, TBaseType.rrw_drop, "role", " ", " ", " ", " ", " "); 3280 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropRoutine, TBaseType.rrw_drop, "routine", " ", " ", " ", " ", " "); 3281 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropRule, TBaseType.rrw_drop, "rule", " ", " ", " ", " ", " "); 3282 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropSchema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 3283 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropSequence, TBaseType.rrw_drop, "sequence", " ", " ", " ", " ", " "); 3284 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropServer, TBaseType.rrw_drop, "server", " ", " ", " ", " ", " "); 3285 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropStatistics, TBaseType.rrw_drop, "statistics", " ", " ", " ", " ", " "); 3286 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropSubscription, TBaseType.rrw_drop, "subscription", " ", " ", " ", " ", " "); 3287 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 3288 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTablespace, TBaseType.rrw_drop, "tablespace", " ", " ", " ", " ", " "); 3289 3290 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTextSearchConfiguration, TBaseType.rrw_drop, "text", "search", "configuration", " ", " ", " "); 3291 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTextSearchDictionary, TBaseType.rrw_drop, "text", "search", "dictionary", " ", " ", " "); 3292 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTextSearchParser, TBaseType.rrw_drop, "text", "search", "parser", " ", " ", " "); 3293 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTextSearchTemplate, TBaseType.rrw_drop, "text", "search", "template", " ", " ", " "); 3294 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTransform, TBaseType.rrw_drop, "transform", " ", " ", " ", " ", " "); 3295 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTrigger, TBaseType.rrw_drop, "trigger", " ", " ", " ", " ", " "); 3296 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropType, TBaseType.rrw_drop, "type", " ", " ", " ", " ", " "); 3297 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropUser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 3298 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropUserMapping, TBaseType.rrw_drop, "user", "mapping", " ", " ", " ", " "); 3299 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropView, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 3300 3301 addpostgresqlcmds(ESqlStatementType.sstpostgresqlEnd, TBaseType.rrw_end, " ", " ", " ", " ", " ", " "); 3302 3303 addpostgresqlcmds(ESqlStatementType.sstpostgresqlExecute, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 3304 3305 addpostgresqlcmds(ESqlStatementType.sstpostgresqlExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 3306 3307 addpostgresqlcmds(ESqlStatementType.sstFetchFrom, TBaseType.rrw_fetch, " ", " ", " ", " ", " ", " "); 3308 3309 addpostgresqlcmds(ESqlStatementType.sstpostgresqlGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 3310 addpostgresqlcmds(ESqlStatementType.sstPostgresqlImport, TBaseType.rrw_postgresql_import, "foreign", "schema", " ", " ", " ", " "); 3311 addpostgresqlcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 3312 3313 addpostgresqlcmds(ESqlStatementType.sstpostgresqlListen, TBaseType.rrw_postgresql_listen, " ", " ", " ", " ", " ", " "); 3314 3315 addpostgresqlcmds(ESqlStatementType.sstpostgresqlLoad, TBaseType.rrw_load, " ", " ", " ", " ", " ", " "); 3316 3317 addpostgresqlcmds(ESqlStatementType.sstpostgresqlLock, TBaseType.rrw_lock, " ", " ", " ", " ", " ", " "); 3318 3319 addpostgresqlcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 3320 3321 addpostgresqlcmds(ESqlStatementType.sstpostgresqlMove, TBaseType.rrw_move, " ", " ", " ", " ", " ", " "); 3322 3323 addpostgresqlcmds(ESqlStatementType.sstpostgresqlNotify, TBaseType.rrw_postgresql_notify, " ", " ", " ", " ", " ", " "); 3324 3325 addpostgresqlcmds(ESqlStatementType.sstPostgresqlBlock, TBaseType.rrw_plpgsql_function_delimiter, " ", " ", " ", " ", " ", " "); 3326 3327 3328 addpostgresqlcmds(ESqlStatementType.sstpostgresqlPrepare, TBaseType.rrw_prepare, " ", " ", " ", " ", " ", " "); 3329 3330 addpostgresqlcmds(ESqlStatementType.sstpostgresqlPrepareTransaction, TBaseType.rrw_prepare, "transaction", " ", " ", " ", " ", " "); 3331 3332 addpostgresqlcmds(ESqlStatementType.sstpostgresqlReassignOwned, TBaseType.rrw_postgresql_reassign, "owned", " ", " ", " ", " ", " "); 3333 3334 addpostgresqlcmds(ESqlStatementType.sstpostgresqlRefreshMaterializedView, TBaseType.rrw_refresh, "materialized", "view", " ", " ", " ", " "); 3335 3336 addpostgresqlcmds(ESqlStatementType.sstReindex, TBaseType.rrw_postgresql_reindex, " ", " ", " ", " ", " ", " "); 3337 3338 addpostgresqlcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, " ", " ", " ", " ", " ", " "); 3339 addpostgresqlcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, "savepoint", " ", " ", " ", " ", " "); 3340 3341 addpostgresqlcmds(ESqlStatementType.sstpostgresqlReset, TBaseType.rrw_reset, " ", " ", " ", " ", " ", " "); 3342 3343 addpostgresqlcmds(ESqlStatementType.sstpostgresqlRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 3344 3345 addpostgresqlcmds(ESqlStatementType.sstpostgresqlRollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 3346 addpostgresqlcmds(ESqlStatementType.sstpostgresqlRollbackPrepared, TBaseType.rrw_rollback, "prepared", " ", " ", " ", " ", " "); 3347 addpostgresqlcmds(ESqlStatementType.sstpostgresqlRollbackToSavepoint, TBaseType.rrw_rollback, "to", "savepoint", " ", " ", " ", " "); 3348 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSavepoint, TBaseType.rrw_savepoint, " ", " ", " ", " ", " ", " "); 3349 3350 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSecurityLabel, TBaseType.rrw_postgresql_security, "label", " ", " ", " ", " ", " "); 3351 3352 3353 addpostgresqlcmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 3354 3355 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSet, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 3356 3357 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetConstraints, TBaseType.rrw_set, "constraints", " ", " ", " ", " ", " "); 3358 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "local", "role", " ", " ", " ", " "); 3359 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "local", "session", "authorization", " ", " ", " "); 3360 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "role", " ", " ", " ", " ", " "); 3361 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetSearchPath, TBaseType.rrw_set, "search_path", " ", " ", " ", " ", " "); 3362 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "authorization", " ", " ", " ", " "); 3363 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "session", "characteristics", "as", "transaction", " ", " "); 3364 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "session", "role", " ", " ", " ", " "); 3365 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "session", "authorization", " ", " ", " "); 3366 3367 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "transaction", " ", " ", " ", " ", " "); 3368 addpostgresqlcmds(ESqlStatementType.sstpostgresqlShow, TBaseType.rrw_show, " ", " ", " ", " ", " ", " "); 3369 addpostgresqlcmds(ESqlStatementType.sstpostgresqlShowSearchPath, TBaseType.rrw_show, "search_path", " ", " ", " ", " ", " "); 3370 // addpostgresqlcmds(ESqlStatementType.sstpostgresqlStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 3371 addpostgresqlcmds(ESqlStatementType.sstPostgresqlTable, TBaseType.rrw_table, " ", " ", " ", " ", " ", " "); 3372 addpostgresqlcmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 3373 addpostgresqlcmds(ESqlStatementType.sstpostgresqlTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 3374 3375 addpostgresqlcmds(ESqlStatementType.sstpostgresqlUnlisten, TBaseType.rrw_postgresql_unlisten, " ", " ", " ", " ", " ", " "); 3376 3377 addpostgresqlcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 3378 addpostgresqlcmds(ESqlStatementType.sstVacuum, TBaseType.rrw_postgresql_vacuum, " ", " ", " ", " ", " ", " "); 3379 addpostgresqlcmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " ", " ", " ", " ", " ", " "); 3380 3381 } 3382 3383 void initbigquerycmds() { 3384// cmd must be sorted alphabetically 3385 addbigquerycmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 3386 addbigquerycmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 3387 3388 addbigquerycmds(ESqlStatementType.sstBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 3389 addbigquerycmds(ESqlStatementType.sstbegintran, TBaseType.rrw_begin, "transaction", " ", " ", " ", " ", " "); 3390 3391 addbigquerycmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 3392 addbigquerycmds(ESqlStatementType.sst_casestmt, TBaseType.rrw_case, " ", " ", " ", " ", " ", " "); 3393 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 3394 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 3395 addbigquerycmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "materialized", "view", " ", " ", " ", " "); 3396 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "external", "table", " ", " "); 3397 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "temporary", "table", " ", " "); 3398 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace", "function", " ", " ", " "); 3399 addbigquerycmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "or", "replace", "materialized", "view", " ", " "); 3400 addbigquerycmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "or", "replace", "procedure", " ", " ", " "); 3401 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "table", " ", " ", " "); 3402 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace", "table", "function", " ", " "); 3403 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace", "temp", "function", " ", " "); 3404 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "temp", "table", " ", " "); 3405 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace", "temporary", "function", " ", " "); 3406 addbigquerycmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 3407 addbigquerycmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 3408 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 3409 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "table", "function", " ", " ", " ", " "); 3410 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temp", "function", " ", " ", " ", " "); 3411 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 3412 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temporary", "function", " ", " ", " ", " "); 3413 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 3414 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "snapshot", "table", " ", " ", " ", " "); 3415 addbigquerycmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 3416 addbigquerycmds(ESqlStatementType.sstBigQueryDeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 3417 addbigquerycmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 3418 addbigquerycmds(ESqlStatementType.sstDropRowAccessPolicy, TBaseType.rrw_drop, "all","row", "access", "policies", " ", " "); 3419 addbigquerycmds(ESqlStatementType.sstDropAssignment, TBaseType.rrw_drop, "assignment", " ", " ", " ", " ", " "); 3420 addbigquerycmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "external", "table", " ", " ", " ", " "); 3421 addbigquerycmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 3422 addbigquerycmds(ESqlStatementType.sstDropMaterializedView, TBaseType.rrw_drop, "materialized", "view", " ", " ", " ", " "); 3423 addbigquerycmds(ESqlStatementType.sstdropprocedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 3424 addbigquerycmds(ESqlStatementType.sstDropReservation, TBaseType.rrw_drop, "reservation", " ", " ", " ", " ", " "); 3425 addbigquerycmds(ESqlStatementType.sstDropRowAccessPolicy, TBaseType.rrw_drop, "row", "access", "policy", " ", " ", " "); 3426 addbigquerycmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 3427 addbigquerycmds(ESqlStatementType.sstDropTableFunction, TBaseType.rrw_drop, "table", "function", " ", " ", " ", " "); 3428 addbigquerycmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 3429 addbigquerycmds(ESqlStatementType.sstDropSnapshotTable, TBaseType.rrw_drop, "snapshot", "table", " ", " ", " ", " "); 3430 addbigquerycmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 3431 3432 addbigquerycmds(ESqlStatementType.sstExecute, TBaseType.rrw_execute, "immediate"," "," "," "," "," "); 3433 3434 addbigquerycmds(ESqlStatementType.sstBigQueryExportData, TBaseType.rrw_bigquery_export, "data", " ", " ", " ", " ", " "); 3435 addbigquerycmds(ESqlStatementType.sstForStmt, TBaseType.rrw_for, " ", " ", " ", " ", " ", " "); 3436 addbigquerycmds(ESqlStatementType.sst_ifstmt, TBaseType.rrw_if, " ", " ", " ", " ", " ", " "); 3437 addbigquerycmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 3438 addbigquerycmds(ESqlStatementType.sst_loopstmt, TBaseType.rrw_loop, " ", " ", " ", " ", " ", " "); 3439 addbigquerycmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, " ", " ", " ", " ", " ", " "); 3440 addbigquerycmds(ESqlStatementType.sstRepeat, TBaseType.rrw_repeat, " ", " ", " ", " ", " ", " "); 3441 addbigquerycmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 3442 addbigquerycmds(ESqlStatementType.sstset, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 3443 addbigquerycmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 3444 addbigquerycmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 3445 addbigquerycmds(ESqlStatementType.sstWhilestmt, TBaseType.rrw_while, " ", " ", " ", " ", " ", " "); 3446 } 3447 3448void initsnowflakecmds(){ 3449// cmd must be sorted alphabetically 3450 addsnowflakecmds(ESqlStatementType.sstAlterAccount, TBaseType.rrw_alter, "account", " ", " ", " ", " ", " "); 3451 addsnowflakecmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 3452 addsnowflakecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "external", "table", " ", " ", " ", " "); 3453 addsnowflakecmds(ESqlStatementType.sstAlterFileFormat, TBaseType.rrw_alter, "file", "format", " ", " ", " ", " "); 3454 addsnowflakecmds(ESqlStatementType.sstalterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 3455 addsnowflakecmds(ESqlStatementType.sstAlterMaterializedView, TBaseType.rrw_alter,"materialized","view"," "," "," "," "); 3456 addsnowflakecmds(ESqlStatementType.sstAlterNetworkPolicy, TBaseType.rrw_alter, "network", "policy", " ", " ", " ", " "); 3457 addsnowflakecmds(ESqlStatementType.sstAlterPipe, TBaseType.rrw_alter, "pipe", " ", " ", " ", " ", " "); 3458 addsnowflakecmds(ESqlStatementType.sstAlterResourceMonitor, TBaseType.rrw_alter, "resource", "monitor", " ", " ", " ", " "); 3459 addsnowflakecmds(ESqlStatementType.sstAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 3460 addsnowflakecmds(ESqlStatementType.sstAlterTask, TBaseType.rrw_alter, "task", " ", " ", " ", " ", " "); 3461 addsnowflakecmds(ESqlStatementType.sstAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 3462 addsnowflakecmds(ESqlStatementType.sstaltersession, TBaseType.rrw_alter, "session", " ", " ", " ", " ", " "); 3463 addsnowflakecmds(ESqlStatementType.sstaltersequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 3464 addsnowflakecmds(ESqlStatementType.sstAlterShare, TBaseType.rrw_alter, "share", " ", " ", " ", " ", " "); 3465 addsnowflakecmds(ESqlStatementType.sstAlterStage, TBaseType.rrw_alter, "stage", " ", " ", " ", " ", " "); 3466 addsnowflakecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 3467 addsnowflakecmds(ESqlStatementType.sstalteruser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 3468 addsnowflakecmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 3469 addsnowflakecmds(ESqlStatementType.sstAlterWarehouse, TBaseType.rrw_alter, "warehouse", " ", " ", " ", " ", " "); 3470 3471 addsnowflakecmds(ESqlStatementType.sstBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 3472 addsnowflakecmds(ESqlStatementType.sstbegintran, TBaseType.rrw_snowflake_begin_transaction, " ", " ", " ", " ", " ", " "); 3473 3474 addsnowflakecmds(ESqlStatementType.sstbegintran, TBaseType.rrw_begin, "work", " ", " ", " ", " ", " "); 3475 addsnowflakecmds(ESqlStatementType.sstbegintran, TBaseType.rrw_begin, "transaction", " ", " ", " ", " ", " "); 3476 3477 addsnowflakecmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 3478 addsnowflakecmds(ESqlStatementType.sstcomment, TBaseType.rrw_comment, " ", " ", " ", " ", " ", " "); 3479 3480 addsnowflakecmds(ESqlStatementType.sstcommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 3481 addsnowflakecmds(ESqlStatementType.sstCopyInto, TBaseType.rrw_snowflake_copy, "into", " ", " ", " ", " ", " "); 3482 3483 addsnowflakecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 3484 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "dynamic", "table", " ", " ", " ", " "); 3485 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 3486 addsnowflakecmds(ESqlStatementType.sstCreateFileFormat, TBaseType.rrw_create, "file", "format", " ", " ", " ", " "); 3487 addsnowflakecmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 3488 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "table", " ", " ", " ", " "); 3489 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temp", "table", " ", " ", " "); 3490 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temporary", "table", " ", " ", " "); 3491 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "hybrid", "table", " ", " ", " ", " "); 3492 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "table", " ", " ", " ", " "); 3493 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temp", "table", " ", " ", " "); 3494 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temporary", "table", " ", " ", " "); 3495 addsnowflakecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"materialized","view"," "," "," "," "); 3496 addsnowflakecmds(ESqlStatementType.sstCreateNetworkPolicy, TBaseType.rrw_create, "network", "policy", " ", " ", " ", " "); 3497 addsnowflakecmds(ESqlStatementType.sstCreatePipe, TBaseType.rrw_create, "or", "replace", "pipe", " ", " ", " "); 3498 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "external", "table", " ", " "); 3499 addsnowflakecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "or", "replace", "database", " ", " ", " "); 3500 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "dynamic", "table", " ", " "); 3501 addsnowflakecmds(ESqlStatementType.sstCreateFileFormat, TBaseType.rrw_create, "or", "replace", "file", "format", " ", " "); 3502 addsnowflakecmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace", "function", " ", " ", " "); 3503 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "force", "view", " ", " "); 3504 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "global","temporary", "table", " "); 3505 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "hybrid", "table", " ", " "); 3506 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "local","temporary", "table", " "); 3507 addsnowflakecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"or", "replace","materialized","view"," "," "); 3508 addsnowflakecmds(ESqlStatementType.sstCreateNetworkPolicy, TBaseType.rrw_create, "or", "replace", "network", "policy", " ", " "); 3509 addsnowflakecmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create,"or", "replace", "procedure", " ", " ", " "); 3510 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "recursive", "view", " ", " "); 3511 3512 addsnowflakecmds(ESqlStatementType.sstCreateResourceMonitor, TBaseType.rrw_create, "or", "replace","resource", "monitor", " ", " "); 3513 addsnowflakecmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "or", "replace","role", " ", " ", " "); 3514 addsnowflakecmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "or", "replace","schema", " ", " ", " "); 3515 addsnowflakecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"or", "replace","secure","materialized","view"," "); 3516 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "secure", "view", " ", " "); 3517 addsnowflakecmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create, "or", "replace","sequence", " ", " ", " "); 3518 addsnowflakecmds(ESqlStatementType.sstCreateShare, TBaseType.rrw_create, "or", "replace","share", " ", " ", " "); 3519 addsnowflakecmds(ESqlStatementType.sstCreateStage, TBaseType.rrw_create, "or", "replace","stage", " ", " ", " "); 3520 addsnowflakecmds(ESqlStatementType.sstCreateStream, TBaseType.rrw_create, "or", "replace","stream", " ", " ", " "); 3521 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "table", " ", " ", " "); 3522 addsnowflakecmds(ESqlStatementType.sstCreateTask, TBaseType.rrw_create, "or", "replace", "task", " ", " ", " "); 3523 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "temp", "table", " ", " "); 3524 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "temp", "view", " ", " "); 3525 addsnowflakecmds(ESqlStatementType.sstCreateStage, TBaseType.rrw_create, "or", "replace","temporary", "stage", " ", " "); 3526 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "temporary", "table", " ", " "); 3527 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "temporary", "view", " ", " "); 3528 addsnowflakecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "or", "replace", "transient", "database", " ", " "); 3529 addsnowflakecmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "or", "replace", "transient", "schema", " ", " "); 3530 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "transient", "table", " ", " "); 3531 addsnowflakecmds(ESqlStatementType.sstcreateuser, TBaseType.rrw_create, "or", "replace","user", " ", " ", " "); 3532 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 3533 addsnowflakecmds(ESqlStatementType.sstCreateWarehouse, TBaseType.rrw_create, "or", "replace", "warehouse", " ", " ", " "); 3534 addsnowflakecmds(ESqlStatementType.sstCreatePipe, TBaseType.rrw_create, "pipe", " ", " ", " ", " ", " "); 3535 addsnowflakecmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 3536 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "recursive", "view", " ", " ", " ", " "); 3537 addsnowflakecmds(ESqlStatementType.sstCreateResourceMonitor, TBaseType.rrw_create, "resource", "monitor", " ", " ", " ", " "); 3538 addsnowflakecmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "role", " ", " ", " ", " ", " "); 3539 addsnowflakecmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 3540 addsnowflakecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"secure","materialized","view"," "," "," "); 3541 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "secure", "view", " ", " ", " ", " "); 3542 addsnowflakecmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 3543 addsnowflakecmds(ESqlStatementType.sstCreateShare, TBaseType.rrw_create, "share", " ", " ", " ", " ", " "); 3544 addsnowflakecmds(ESqlStatementType.sstCreateStage, TBaseType.rrw_create, "stage", " ", " ", " ", " ", " "); 3545 addsnowflakecmds(ESqlStatementType.sstCreateStream, TBaseType.rrw_create, "stream", " ", " ", " ", " ", " "); 3546 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 3547 addsnowflakecmds(ESqlStatementType.sstCreateTask, TBaseType.rrw_create, "task", " ", " ", " ", " ", " "); 3548 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 3549 addsnowflakecmds(ESqlStatementType.sstCreateStage, TBaseType.rrw_create,"temporary", "stage", " ", " ", " ", " "); 3550 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 3551 addsnowflakecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "transient", "database", " ", " ", " ", " "); 3552 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "transient", "dynamic", "table", " ", " ", " "); 3553 addsnowflakecmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "transient","schema", " ", " ", " ", " "); 3554 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "transient", "table", " ", " "," "," "); 3555 addsnowflakecmds(ESqlStatementType.sstcreateuser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 3556 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 3557 addsnowflakecmds(ESqlStatementType.sstCreateWarehouse, TBaseType.rrw_create, "warehouse", " ", " ", " ", " ", " "); 3558 3559 addsnowflakecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 3560 3561 addsnowflakecmds(ESqlStatementType.sstDescFileFormat, TBaseType.rrw_snowflake_desc, "file", "format", " ", " ", " ", " "); 3562 addsnowflakecmds(ESqlStatementType.sstDescFunction, TBaseType.rrw_snowflake_desc, "function", " ", " ", " ", " ", " "); 3563 addsnowflakecmds(ESqlStatementType.sstDescNetworkPolicy, TBaseType.rrw_snowflake_desc, "network", "policy", " ", " ", " ", " "); 3564 addsnowflakecmds(ESqlStatementType.sstDescPipe, TBaseType.rrw_snowflake_desc, "pipe", " ", " ", " ", " ", " "); 3565 addsnowflakecmds(ESqlStatementType.sstDescResult, TBaseType.rrw_snowflake_desc, "result", " ", " ", " ", " ", " "); 3566 addsnowflakecmds(ESqlStatementType.sstDescShare, TBaseType.rrw_snowflake_desc, "share", " ", " ", " ", " ", " "); 3567 addsnowflakecmds(ESqlStatementType.sstDescStage, TBaseType.rrw_snowflake_desc, "stage", " ", " ", " ", " ", " "); 3568 addsnowflakecmds(ESqlStatementType.sstDescStorage, TBaseType.rrw_snowflake_desc, "storage", " ", " ", " ", " ", " "); 3569 addsnowflakecmds(ESqlStatementType.sstDescTable, TBaseType.rrw_snowflake_desc, "table", " ", " ", " ", " ", " "); 3570 addsnowflakecmds(ESqlStatementType.sstDescUser, TBaseType.rrw_snowflake_desc, "user", " ", " ", " ", " ", " "); 3571 addsnowflakecmds(ESqlStatementType.sstDescView, TBaseType.rrw_snowflake_desc, "view", " ", " ", " ", " ", " "); 3572 3573 addsnowflakecmds(ESqlStatementType.sstDescFileFormat, TBaseType.rrw_describe, "file", "format", " ", " ", " ", " "); 3574 addsnowflakecmds(ESqlStatementType.sstDescFunction, TBaseType.rrw_describe, "function", " ", " ", " ", " ", " "); 3575 addsnowflakecmds(ESqlStatementType.sstDescNetworkPolicy, TBaseType.rrw_describe, "network", "policy", " ", " ", " ", " "); 3576 addsnowflakecmds(ESqlStatementType.sstDescPipe, TBaseType.rrw_describe, "pipe", " ", " ", " ", " ", " "); 3577 addsnowflakecmds(ESqlStatementType.sstDescResult, TBaseType.rrw_describe, "result", " ", " ", " ", " ", " "); 3578 addsnowflakecmds(ESqlStatementType.sstDescShare, TBaseType.rrw_describe, "share", " ", " ", " ", " ", " "); 3579 addsnowflakecmds(ESqlStatementType.sstDescStage, TBaseType.rrw_describe, "stage", " ", " ", " ", " ", " "); 3580 addsnowflakecmds(ESqlStatementType.sstDescStorage, TBaseType.rrw_describe, "storage", " ", " ", " ", " ", " "); 3581 addsnowflakecmds(ESqlStatementType.sstDescTable, TBaseType.rrw_describe, "table", " ", " ", " ", " ", " "); 3582 addsnowflakecmds(ESqlStatementType.sstDescUser, TBaseType.rrw_describe, "user", " ", " ", " ", " ", " "); 3583 addsnowflakecmds(ESqlStatementType.sstDescView, TBaseType.rrw_describe, "view", " ", " ", " ", " ", " "); 3584 3585 addsnowflakecmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 3586 addsnowflakecmds(ESqlStatementType.sstDropFileFormat, TBaseType.rrw_drop, "file", "format", " ", " ", " ", " "); 3587 addsnowflakecmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 3588 addsnowflakecmds(ESqlStatementType.sstDropMaterializedView, TBaseType.rrw_drop, "materialized", "view", " ", " ", " ", " "); 3589 addsnowflakecmds(ESqlStatementType.sstDropNetworkPolicy, TBaseType.rrw_drop, "network", "policy", " ", " ", " ", " "); 3590 addsnowflakecmds(ESqlStatementType.sstDropPipe, TBaseType.rrw_drop, "pipe", " ", " ", " ", " ", " "); 3591 addsnowflakecmds(ESqlStatementType.sstdropprocedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 3592 addsnowflakecmds(ESqlStatementType.sstDropResourceMonitor, TBaseType.rrw_drop, "resource", "monitor", " ", " ", " ", " "); 3593 addsnowflakecmds(ESqlStatementType.sstdroprole, TBaseType.rrw_drop, "role", " ", " ", " ", " ", " "); 3594 addsnowflakecmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 3595 addsnowflakecmds(ESqlStatementType.sstDropShare, TBaseType.rrw_drop, "share", " ", " ", " ", " ", " "); 3596 addsnowflakecmds(ESqlStatementType.sstDropStage, TBaseType.rrw_drop, "stage", " ", " ", " ", " ", " "); 3597 addsnowflakecmds(ESqlStatementType.sstDropStream, TBaseType.rrw_drop, "stream", " ", " ", " ", " ", " "); 3598 addsnowflakecmds(ESqlStatementType.sstDropStreamlit, TBaseType.rrw_drop, "streamlit", " ", " ", " ", " ", " "); 3599 addsnowflakecmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 3600 3601 addsnowflakecmds(ESqlStatementType.sstdropuser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 3602 addsnowflakecmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 3603 addsnowflakecmds(ESqlStatementType.sstDropWarehouse, TBaseType.rrw_drop, "warehouse", " ", " ", " ", " ", " "); 3604 3605 addsnowflakecmds(ESqlStatementType.sstExecute, TBaseType.rrw_execute, "immediate"," "," "," "," "," "); 3606 3607 addsnowflakecmds(ESqlStatementType.sstGet, TBaseType.rrw_get, " ", " ", " ", " ", " ", " "); 3608 3609 addsnowflakecmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 3610 3611 addsnowflakecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 3612 3613 addsnowflakecmds(ESqlStatementType.sstList, TBaseType.rrw_snowflake_list, " ", " ", " ", " ", " ", " "); 3614 addsnowflakecmds(ESqlStatementType.sstList, TBaseType.rrw_snowflake_ls, " ", " ", " ", " ", " ", " "); 3615 3616 addsnowflakecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, " ", " ", " ", " ", " ", " "); 3617 3618 addsnowflakecmds(ESqlStatementType.sstSnowflakePseudoExprStmt, TBaseType.rrw_snowflake_pseudo_stmt_sign, " ", " ", " ", " ", " ", " "); 3619 addsnowflakecmds(ESqlStatementType.sstPut, TBaseType.rrw_snowflake_put, " ", " ", " ", " ", " ", " "); 3620 3621 addsnowflakecmds(ESqlStatementType.sstRemove, TBaseType.rrw_snowflake_remove, " ", " ", " ", " ", " ", " "); 3622 3623 addsnowflakecmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 3624 addsnowflakecmds(ESqlStatementType.sstRemove, TBaseType.rrw_snowflake_rm, " ", " ", " ", " ", " ", " "); 3625 addsnowflakecmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 3626 3627 3628 addsnowflakecmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 3629 3630 addsnowflakecmds(ESqlStatementType.sstset, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 3631 3632 addsnowflakecmds(ESqlStatementType.sstShowColumns, TBaseType.rrw_show, "columns", " ", " ", " ", " ", " "); 3633 addsnowflakecmds(ESqlStatementType.sstShowDatabases, TBaseType.rrw_show, "databases", " ", " ", " ", " ", " "); 3634 addsnowflakecmds(ESqlStatementType.sstShowFileFormats, TBaseType.rrw_show, "file", "formats", " ", " ", " ", " "); 3635 addsnowflakecmds(ESqlStatementType.sstShowFunctions, TBaseType.rrw_show, "functions", " ", " ", " ", " ", " "); 3636 addsnowflakecmds(ESqlStatementType.sstShowGrants, TBaseType.rrw_show, "grants", " ", " ", " ", " ", " "); 3637 addsnowflakecmds(ESqlStatementType.sstShowLocks, TBaseType.rrw_show, "locks", " ", " ", " ", " ", " "); 3638 addsnowflakecmds(ESqlStatementType.sstShowNetworkPolicies, TBaseType.rrw_show, "network", "policies", " ", " ", " ", " "); 3639 addsnowflakecmds(ESqlStatementType.sstShowObjects, TBaseType.rrw_show, "objects", " ", " ", " ", " ", " "); 3640 addsnowflakecmds(ESqlStatementType.sstShowParameters, TBaseType.rrw_show, "parameters", " ", " ", " ", " ", " "); 3641 addsnowflakecmds(ESqlStatementType.sstShowPipes, TBaseType.rrw_show, "pipes", " ", " ", " ", " ", " "); 3642 addsnowflakecmds(ESqlStatementType.sstShowProcedures, TBaseType.rrw_show, "procedures", " ", " ", " ", " ", " "); 3643 addsnowflakecmds(ESqlStatementType.sstShowResourceMonitors, TBaseType.rrw_show, "resource", "monitors", " ", " ", " ", " "); 3644 addsnowflakecmds(ESqlStatementType.sstShowRoles, TBaseType.rrw_show, "roles", " ", " ", " ", " ", " "); 3645 addsnowflakecmds(ESqlStatementType.sstShowSchemas, TBaseType.rrw_show, "schemas", " ", " ", " ", " ", " "); 3646 addsnowflakecmds(ESqlStatementType.sstShowSequences, TBaseType.rrw_show, "sequences", " ", " ", " ", " ", " "); 3647 addsnowflakecmds(ESqlStatementType.sstShowShares, TBaseType.rrw_show, "shares", " ", " ", " ", " ", " "); 3648 addsnowflakecmds(ESqlStatementType.sstShowStages, TBaseType.rrw_show, "stages", " ", " ", " ", " ", " "); 3649 addsnowflakecmds(ESqlStatementType.sstShowStreams, TBaseType.rrw_show, "streams", " ", " ", " ", " ", " "); 3650 addsnowflakecmds(ESqlStatementType.sstShowTables, TBaseType.rrw_show, "tables", " ", " ", " ", " ", " "); 3651 addsnowflakecmds(ESqlStatementType.sstShowTasks, TBaseType.rrw_show, "tasks", " ", " ", " ", " ", " "); 3652 addsnowflakecmds(ESqlStatementType.sstShowDatabases, TBaseType.rrw_show, "terse", "databases", " ", " ", " ", " "); 3653 addsnowflakecmds(ESqlStatementType.sstShowStreams, TBaseType.rrw_show, "terse", "streams", " ", " ", " ", " "); 3654 addsnowflakecmds(ESqlStatementType.sstShowTasks, TBaseType.rrw_show, "terse", "tasks", " ", " ", " ", " "); 3655 addsnowflakecmds(ESqlStatementType.sstShowTransactions, TBaseType.rrw_show, "transactions", " ", " ", " ", " ", " "); 3656 addsnowflakecmds(ESqlStatementType.sstShowUserFunctions, TBaseType.rrw_show, "user", "functions", " ", " ", " ", " "); 3657 addsnowflakecmds(ESqlStatementType.sstShowUsers, TBaseType.rrw_show, "users", " ", " ", " ", " ", " "); 3658 addsnowflakecmds(ESqlStatementType.sstShowVariables, TBaseType.rrw_show, "variables", " ", " ", " ", " ", " "); 3659 addsnowflakecmds(ESqlStatementType.sstShowViews, TBaseType.rrw_show, "views", " ", " ", " ", " ", " "); 3660 addsnowflakecmds(ESqlStatementType.sstShowWarehouses, TBaseType.rrw_show, "warehouses", " ", " ", " ", " ", " "); 3661 addsnowflakecmds(ESqlStatementType.sstbegintran, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 3662 addsnowflakecmds(ESqlStatementType.sstpostgresqlTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 3663 3664 addsnowflakecmds(ESqlStatementType.sstUndropDatabase, TBaseType.rrw_snowflake_undrop, "database", " ", " ", " ", " ", " "); 3665 addsnowflakecmds(ESqlStatementType.sstUndropSchema, TBaseType.rrw_snowflake_undrop, "schema", " ", " ", " ", " ", " "); 3666 addsnowflakecmds(ESqlStatementType.sstUndropTable, TBaseType.rrw_snowflake_undrop, "table", " ", " ", " ", " ", " "); 3667 3668 addsnowflakecmds(ESqlStatementType.sstunset, TBaseType.rrw_snowflake_unset, " ", " ", " ", " ", " ", " "); 3669 addsnowflakecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 3670 addsnowflakecmds(ESqlStatementType.sstUse, TBaseType.rrw_use, " ", " ", " ", " ", " ", " "); 3671 addsnowflakecmds(ESqlStatementType.sstUseSecondaryRoles, TBaseType.rrw_use, "secondary", "roles", " ", " ", " ", " "); 3672} 3673 3674void initredshiftcmds() { 3675// cmd must be sorted alphabetically 3676 addredshiftcmds(ESqlStatementType.sstredshiftAbort, TBaseType.rrw_abort, " ", " ", " ", " ", " ", " "); 3677 addredshiftcmds(ESqlStatementType.sstredshiftAbort, TBaseType.rrw_abort, "transaction", " ", " ", " ", " ", " "); 3678 addredshiftcmds(ESqlStatementType.sstredshiftAbort, TBaseType.rrw_abort, "work", " ", " ", " ", " ", " "); 3679 addredshiftcmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 3680 addredshiftcmds(ESqlStatementType.sstredshiftAlterGroup, TBaseType.rrw_alter, "group", " ", " ", " ", " ", " "); 3681 addredshiftcmds(ESqlStatementType.sstredshiftAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 3682 addredshiftcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 3683 addredshiftcmds(ESqlStatementType.sstredshiftAlterUser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 3684 addredshiftcmds(ESqlStatementType.sstredshiftAnalyze, TBaseType.rrw_analyze, " ", " ", " ", " ", " ", " "); 3685 addredshiftcmds(ESqlStatementType.sstredshiftAnalyzeCompression, TBaseType.rrw_analyze, "Compression", " ", " ", " ", " ", " "); 3686 addredshiftcmds(ESqlStatementType.sstredshiftBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 3687 addredshiftcmds(ESqlStatementType.sstredshiftCancel, TBaseType.rrw_redshift_cancel, " ", " ", " ", " ", " ", " "); 3688 addredshiftcmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 3689 3690 addredshiftcmds(ESqlStatementType.sstredshiftClose, TBaseType.rrw_close, " ", " ", " ", " ", " ", " "); 3691 addredshiftcmds(ESqlStatementType.sstredshiftComment, TBaseType.rrw_comment, "on", " ", " ", " ", " ", " "); 3692 addredshiftcmds(ESqlStatementType.sstredshiftCommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 3693 addredshiftcmds(ESqlStatementType.sstredshiftCopy, TBaseType.rrw_redshift_copy, " ", " ", " ", " ", " ", " "); 3694 addredshiftcmds(ESqlStatementType.sstredshiftCreateSchema, TBaseType.rrw_create, "external", "schema", " ", " ", " ", " "); 3695 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 3696 addredshiftcmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 3697 addredshiftcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 3698 addredshiftcmds(ESqlStatementType.sstredshiftCreateGroup, TBaseType.rrw_create, "group", " ", " ", " ", " ", " "); 3699 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "table", " ", " ", " ", " "); 3700 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local","temp", "table", " ", " ", " "); 3701 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local","temporary", "table", " ", " ", " "); 3702 addredshiftcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"materialized","view"," "," "," "," "); 3703 addredshiftcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace","function", " ", " ", " "); 3704 addredshiftcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"or", "replace","materialized","view"," "," "); 3705 addredshiftcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "or", "replace","procedure", " ", " ", " "); 3706 addredshiftcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 3707 addredshiftcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 3708 addredshiftcmds(ESqlStatementType.sstredshiftCreateSchema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 3709 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 3710 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 3711 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 3712 addredshiftcmds(ESqlStatementType.sstredshiftCreateUser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 3713 addredshiftcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 3714 addredshiftcmds(ESqlStatementType.sstredshiftDeallocate, TBaseType.rrw_deallocate, " ", " ", " ", " ", " ", " "); 3715 addredshiftcmds(ESqlStatementType.sstredshiftDeclare, TBaseType.rrw_declare, " ", " ", " ", " ", " ", " "); 3716 addredshiftcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 3717 addredshiftcmds(ESqlStatementType.sstredshiftDropDatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 3718 addredshiftcmds(ESqlStatementType.sstredshiftDropGroup, TBaseType.rrw_drop, "group", " ", " ", " ", " ", " "); 3719 addredshiftcmds(ESqlStatementType.sstredshiftDropSchema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 3720 addredshiftcmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 3721 addredshiftcmds(ESqlStatementType.sstredshiftDropUser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 3722 addredshiftcmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 3723 addredshiftcmds(ESqlStatementType.sstredshiftEnd, TBaseType.rrw_end, " ", " ", " ", " ", " ", " "); 3724 addredshiftcmds(ESqlStatementType.sstExecutePreparedStmt, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 3725 addredshiftcmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 3726 addredshiftcmds(ESqlStatementType.sstFetchFrom, TBaseType.rrw_fetch, " ", " ", " ", " ", " ", " "); 3727 addredshiftcmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 3728 addredshiftcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, "into", " ", " ", " ", " ", " "); 3729 addredshiftcmds(ESqlStatementType.sstredshiftLock, TBaseType.rrw_lock, " ", " ", " ", " ", " ", " "); 3730 addredshiftcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 3731 3732 addredshiftcmds(ESqlStatementType.sstredshiftPrepare, TBaseType.rrw_prepare, " ", " ", " ", " ", " ", " "); 3733 addredshiftcmds(ESqlStatementType.sstredshiftReset, TBaseType.rrw_reset, " ", " ", " ", " ", " ", " "); 3734 addredshiftcmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 3735 addredshiftcmds(ESqlStatementType.sstredshiftRollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 3736 addredshiftcmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 3737 addredshiftcmds(ESqlStatementType.sstredshiftSet, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 3738 addredshiftcmds(ESqlStatementType.sstredshiftSetSessionAuthorization, TBaseType.rrw_set, "Authorization", " ", " ", " ", " ", " "); 3739 addredshiftcmds(ESqlStatementType.sstredshiftSetSessionCharacteristics, TBaseType.rrw_set, "Characteristics", " ", " ", " ", " ", " "); 3740 addredshiftcmds(ESqlStatementType.sstredshiftSetSessionAuthorization, TBaseType.rrw_set, "local", "Authorization", " ", " ", " ", " "); 3741 addredshiftcmds(ESqlStatementType.sstredshiftShow, TBaseType.rrw_show, " ", " ", " ", " ", " ", " "); 3742 addredshiftcmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "Transaction", " ", " ", " ", " ", " "); 3743 addredshiftcmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 3744 addredshiftcmds(ESqlStatementType.sstredshiftUnload, TBaseType.rrw_redshift_unload, " ", " ", " ", " ", " ", " "); 3745 addredshiftcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 3746 addredshiftcmds(ESqlStatementType.sstredshiftVacuum, TBaseType.rrw_redshift_vacuum, " ", " ", " ", " ", " ", " "); 3747} 3748 3749void initgreenplumcmds(){ 3750// cmd must be sorted alphabetically 3751 addgreenplumcmds(ESqlStatementType.sstpostgresqlabort, TBaseType.rrw_abort, " ", " ", " ", " ", " ", " "); 3752 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterAggregate, TBaseType.rrw_alter, "aggregate", " ", " ", " ", " ", " "); 3753 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterCollation, TBaseType.rrw_alter, "collation", " ", " ", " ", " ", " "); 3754 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterConversion, TBaseType.rrw_alter, "conversion", " ", " ", " ", " ", " "); 3755 addgreenplumcmds(ESqlStatementType.sstpostgresqlalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 3756 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterDefaultPrivileges, TBaseType.rrw_alter, "default", "privileges", " ", " ", " ", " "); 3757 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterDomain, TBaseType.rrw_alter, "domain", " ", " ", " ", " ", " "); 3758 3759 addgreenplumcmds(ESqlStatementType.sstgreenplumAlterExternalTable, TBaseType.rrw_alter, "external", "table", " ", " ", " ", " "); 3760 addgreenplumcmds(ESqlStatementType.sstgreenplumAlterFilespace, TBaseType.rrw_alter, "filespace", " ", " ", " ", " ", " "); 3761 3762// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterEventTrigger, TBaseType.rrw_alter, "event", "trigger", " ", " ", " ", " "); 3763// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterExtension, TBaseType.rrw_alter, "extension", " ", " ", " ", " ", " "); 3764// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterForeignDataWrapper, TBaseType.rrw_alter, "foreign", "data", "wrapper", " ", " ", " "); 3765// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterForeignTable, TBaseType.rrw_alter, "foreign", "Table", " ", " ", " ", " "); 3766 3767 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 3768 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterGroup, TBaseType.rrw_alter, "group", " ", " ", " ", " ", " "); 3769 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterIndex, TBaseType.rrw_alter, "index", " ", " ", " ", " ", " "); 3770 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "language", " ", " ", " ", " ", " "); 3771// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterLargeObject, TBaseType.rrw_alter, "large", "object", " ", " ", " ", " "); 3772 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterMaterializedView, TBaseType.rrw_alter, "materialized", "view", " ", " ", " ", " "); 3773 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterOperator, TBaseType.rrw_alter, "operator", " ", " ", " ", " ", " "); 3774 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterOperatorClass, TBaseType.rrw_alter, "operator", "class", " ", " ", " ", " "); 3775 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterOperatorFamily, TBaseType.rrw_alter, "operator", "family", " ", " ", " ", " "); 3776 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "procedural", "language", " ", " ", " ", " "); 3777 addgreenplumcmds(ESqlStatementType.sstgreenplumAlterProtocol, TBaseType.rrw_alter, "protocol", " ", " ", " ", " ", " "); 3778 addgreenplumcmds(ESqlStatementType.sstgreenplumAlterResourceQueue, TBaseType.rrw_alter, "resource", "queue", " ", " ", " ", " "); 3779 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 3780 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 3781 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterSequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 3782 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterServer, TBaseType.rrw_alter, "server", " ", " ", " ", " ", " "); 3783 addgreenplumcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 3784 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTablespace, TBaseType.rrw_alter, "tablespace", " ", " ", " ", " ", " "); 3785 3786// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTextSearchConfiguration, TBaseType.rrw_alter, "text", "search", "configuration", " ", " ", " "); 3787// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTextSearchDictionary, TBaseType.rrw_alter, "text", "search", "dictionary", " ", " ", " "); 3788// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTextSearchParser, TBaseType.rrw_alter, "text", "search", "parser", " ", " ", " "); 3789// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTextSearchTemplate, TBaseType.rrw_alter, "text", "search", "template", " ", " ", " "); 3790 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTrigger, TBaseType.rrw_alter, "trigger", " ", " ", " ", " ", " "); 3791 3792 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterType, TBaseType.rrw_alter, "type", " ", " ", " ", " ", " "); 3793 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterUser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 3794// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterUserMapping, TBaseType.rrw_alter, "user", "mapping", " ", " ", " ", " "); 3795// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterView, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 3796 addgreenplumcmds(ESqlStatementType.sstpostgresqlAnalyze, TBaseType.rrw_greenplum_analyse, " ", " ", " ", " ", " ", " "); 3797 addgreenplumcmds(ESqlStatementType.sstpostgresqlAnalyze, TBaseType.rrw_analyze, " ", " ", " ", " ", " ", " "); 3798 3799 addgreenplumcmds(ESqlStatementType.sstpostgresqlBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 3800 addgreenplumcmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 3801 3802 addgreenplumcmds(ESqlStatementType.sstpostgresqlCheckpoint, TBaseType.rrw_checkpoint, " ", " ", " ", " ", " ", " "); 3803 addgreenplumcmds(ESqlStatementType.sstpostgresqlClose, TBaseType.rrw_close, " ", " ", " ", " ", " ", " "); 3804 3805 addgreenplumcmds(ESqlStatementType.sstpostgresqlCluster, TBaseType.rrw_greenplum_cluster, " ", " ", " ", " ", " ", " "); 3806 3807 addgreenplumcmds(ESqlStatementType.sstpostgresqlComment, TBaseType.rrw_comment, "on", " ", " ", " ", " ", " "); 3808 3809 addgreenplumcmds(ESqlStatementType.sstpostgresqlCommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 3810 //addgreenplumcmds(ESqlStatementType.sstpostgresqlCommitPrepared, TBaseType.rrw_commit, "prepared", " ", " ", " ", " ", " "); 3811 addgreenplumcmds(ESqlStatementType.sstpostgresqlCopy, TBaseType.rrw_greenplum_copy, " ", " ", " ", " ", " ", " "); 3812 3813 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateAggregate, TBaseType.rrw_create, "aggregate", " ", " ", " ", " ", " "); 3814 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateCast, TBaseType.rrw_create, "cast", " ", " ", " ", " ", " "); 3815 3816 //addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateCollation, TBaseType.rrw_create, "collation", " ", " ", " ", " ", " "); 3817 3818 addgreenplumcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "constraint", "trigger", " ", " ", " ", " "); 3819 3820 addgreenplumcmds(ESqlStatementType.sstpostgresqlConversion, TBaseType.rrw_create, "conversion", " ", " ", " ", " ", " "); 3821 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateDatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 3822 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateDomain, TBaseType.rrw_create, "domain", " ", " ", " ", " ", " "); 3823 //addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateEventTrigger, TBaseType.rrw_create, "event", "trigger", " ", " ", " ", " "); 3824 addgreenplumcmds(ESqlStatementType.sstcreateExtension, TBaseType.rrw_create, "extension", " ", " ", " ", " ", " "); 3825 3826// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateForeignDataWrapper, TBaseType.rrw_create, "foreign", "data", "wrapper", " ", " ", " "); 3827// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateForeignTable, TBaseType.rrw_create, "foreign", "table", " ", " ", " ", " "); 3828 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 3829 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "temp", "table", " ", " ", " "); 3830 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "temporary", "table", " ", " ", " "); 3831 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "web", "table", " ", " ", " "); 3832 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "web", "temp", "table", " ", " "); 3833 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "web", "temporary", "table", " ", " "); 3834 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateFilespace, TBaseType.rrw_create, "filespace", " ", " ", " ", " ", " "); 3835 3836 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 3837 3838 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temp", "table", " ", " ", " "); 3839 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temporary", "table", " ", " ", " "); 3840 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "unlocked", "table", " ", " ", " "); 3841 3842 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateGroup, TBaseType.rrw_create, "group", " ", " ", " ", " ", " "); 3843 3844 3845 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "index", " ", " ", " ", " ", " "); 3846 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "language", " ", " ", " ", " ", " "); 3847 3848 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temp", "table", " ", " ", " "); 3849 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temporary", "table", " ", " ", " "); 3850 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "unlocked", "table", " ", " ", " "); 3851 3852 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateMaterializedView, TBaseType.rrw_create, "materialized", "view", " ", " ", " ", " "); 3853 3854 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateOperator, TBaseType.rrw_create, "operator", " ", " ", " ", " ", " "); 3855// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateOperatorClass, TBaseType.rrw_create, "operator", "class", " ", " ", " ", " "); 3856// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateOperatorFimaly, TBaseType.rrw_create, "operator", "family", " ", " ", " ", " "); 3857 3858 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable", "external", "table", " ", " ", " "); 3859 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable", "external", "temp", "table", " ", " "); 3860 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable", "external", "temporary", "table", " ", " "); 3861 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable","external", "web", "table", " ", " "); 3862 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable","external", "web", "temp", "table", " "); 3863 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable","external", "web", "temporary", "table", " "); 3864 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable", "external", "table", " ", " ", " "); 3865 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable", "external", "temp", "table", " ", " "); 3866 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable", "external", "temporary", "table", " ", " "); 3867 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable","external", "web", "table", " ", " "); 3868 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable","external", "web", "temp", "table", " "); 3869 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable","external", "web", "temporary", "table", " "); 3870 3871 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateResourceQueue, TBaseType.rrw_create, "resource", "queue", " ", " ", " ", " "); 3872 3873 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "or", "replace", "function", " ", " ", " "); 3874 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "language", " ", " ", " "); 3875 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "or", "replace", "role ", " ", " ", " "); 3876 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temp", "view", " ", " "); 3877 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temporary", "view", " ", " "); 3878 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "trusted", "language", " ", " "); 3879 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 3880 3881 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "role", " ", " ", " ", " ", " "); 3882 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateRule, TBaseType.rrw_create, "rule", " ", " ", " ", " ", " "); 3883 3884 3885 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateSchema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 3886 3887 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 3888 3889 3890 //addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateServer, TBaseType.rrw_create, "server", " ", " ", " ", " ", " "); 3891 3892 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 3893 3894 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateTablespace, TBaseType.rrw_create, "tablespace", " ", " ", " ", " ", " "); 3895 3896 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temp", "sequence", " ", " ", " ", " "); 3897 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 3898 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temp", "view", " ", " ", " ", " "); 3899 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temporary", "sequence", " ", " ", " ", " "); 3900 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 3901 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temporary", "view", " ", " ", " ", " "); 3902 3903// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateTextSearchConfiguration, TBaseType.rrw_create, "text", "search", "configuration", " ", " ", " "); 3904// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateTextSearchDictionary, TBaseType.rrw_create, "text", "search", "dictionary", " ", " ", " "); 3905// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateTextSearchParser, TBaseType.rrw_create, "text", "search", "parser", " ", " ", " "); 3906// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateTextSearchTemplate, TBaseType.rrw_create, "text", "search", "template", " ", " ", " "); 3907 3908 addgreenplumcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "trigger", " ", " ", " ", " ", " "); 3909 3910 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "trusted", "language", " ", " ", " ", " "); 3911 3912 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateType, TBaseType.rrw_create, "type", " ", " ", " ", " ", " "); 3913 3914 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "unlocked", "table", " ", " ", " ", " "); 3915 3916 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateUser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 3917 3918// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateUserMapping, TBaseType.rrw_create, "user", "mapping", " ", " ", " ", " "); 3919 3920 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 3921 3922 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "unique", "index", " ", " ", " ", " "); 3923 3924 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable", "external", "table", " ", " ", " "); 3925 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable", "external", "web", "table", " ", " "); 3926 3927 addgreenplumcmds(ESqlStatementType.sstpostgresqlDeallocate, TBaseType.rrw_deallocate, " ", " ", " ", " ", " ", " "); 3928 3929 addgreenplumcmds(ESqlStatementType.sstpostgresqlDeclare, TBaseType.rrw_declare, " ", " ", " ", " ", " ", " "); 3930 3931 addgreenplumcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 3932 3933// addgreenplumcmds(ESqlStatementType.sstpostgresqlDiscard, TBaseType.rrw_discard, " ", " ", " ", " ", " ", " "); 3934 addgreenplumcmds(ESqlStatementType.sstpostgresqlDo, TBaseType.rrw_do, " ", " ", " ", " ", " ", " "); 3935 3936 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropAggregate, TBaseType.rrw_drop, "aggregate", " ", " ", " ", " ", " "); 3937 3938 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropCast, TBaseType.rrw_drop, "cast", " ", " ", " ", " ", " "); 3939 3940// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropCollation, TBaseType.rrw_drop, "collation", " ", " ", " ", " ", " "); 3941 3942 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropConversion, TBaseType.rrw_drop, "conversion", " ", " ", " ", " ", " "); 3943 3944 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropDatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 3945 3946 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropDomain, TBaseType.rrw_drop, "domain", " ", " ", " ", " ", " "); 3947 3948 addgreenplumcmds(ESqlStatementType.sstgreenplumDropExternalTable, TBaseType.rrw_drop, "external", "table", " ", " ", " ", " "); 3949 3950 addgreenplumcmds(ESqlStatementType.sstgreenplumDropExternalTable, TBaseType.rrw_drop, "external", "web", "table", " ", " ", " "); 3951 3952 addgreenplumcmds(ESqlStatementType.sstgreenplumDropFilespace, TBaseType.rrw_drop, "filespace", " ", " ", " ", " ", " "); 3953 3954// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropExtension, TBaseType.rrw_drop, "extension", " ", " ", " ", " ", " "); 3955// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropForeignDataWrapper, TBaseType.rrw_drop, "foreign", "data", "wrapper", " ", " ", " "); 3956// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropForeignTable, TBaseType.rrw_drop, "foreign", "table", " ", " ", " ", " "); 3957 3958 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropFunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 3959 3960 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropGroup, TBaseType.rrw_drop, "group", " ", " ", " ", " ", " "); 3961 3962 addgreenplumcmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index", " ", " ", " ", " ", " "); 3963 3964 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "language", " ", " ", " ", " ", " "); 3965 3966 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropMaterializedView, TBaseType.rrw_drop, "materialized", "view", " ", " ", " ", " "); 3967 3968 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropOperator, TBaseType.rrw_drop, "operator", " ", " ", " ", " ", " "); 3969// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropOperatorClass, TBaseType.rrw_drop, "operator", "class", " ", " ", " ", " "); 3970// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropOperatorFamily, TBaseType.rrw_drop, "operator", "family ", " ", " ", " ", " "); 3971 3972 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropOwned, TBaseType.rrw_drop, "owned", " ", " ", " ", " ", " "); 3973 3974 3975 addgreenplumcmds(ESqlStatementType.sstgreenplumDropResourceQueue, TBaseType.rrw_drop, "resource", "queue", " ", " ", " ", " "); 3976 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "procedural", "language", " ", " ", " ", " "); 3977 3978 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropRole, TBaseType.rrw_drop, "role", " ", " ", " ", " ", " "); 3979 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropRule, TBaseType.rrw_drop, "rule", " ", " ", " ", " ", " "); 3980 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropSchema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 3981 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropSequence, TBaseType.rrw_drop, "sequence", " ", " ", " ", " ", " "); 3982 //addgreenplumcmds(ESqlStatementType.sstpostgresqlDropServer, TBaseType.rrw_drop, "server", " ", " ", " ", " ", " "); 3983 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 3984 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTablespace, TBaseType.rrw_drop, "tablespace", " ", " ", " ", " ", " "); 3985 3986// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTextSearchConfiguration, TBaseType.rrw_drop, "text", "search", "configuration", " ", " ", " "); 3987// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTextSearchDictionary, TBaseType.rrw_drop, "text", "search", "dictionary", " ", " ", " "); 3988// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTextSearchParser, TBaseType.rrw_drop, "text", "search", "parser", " ", " ", " "); 3989// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTextSearchTemplate, TBaseType.rrw_drop, "text", "search", "template", " ", " ", " "); 3990 3991 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTrigger, TBaseType.rrw_drop, "trigger", " ", " ", " ", " ", " "); 3992 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropType, TBaseType.rrw_drop, "type", " ", " ", " ", " ", " "); 3993 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropUser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 3994 //addgreenplumcmds(ESqlStatementType.sstpostgresqlDropUserMapping, TBaseType.rrw_drop, "user", "mapping", " ", " ", " ", " "); 3995 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropView, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 3996 3997 addgreenplumcmds(ESqlStatementType.sstpostgresqlEnd, TBaseType.rrw_end, " ", " ", " ", " ", " ", " "); 3998 3999 addgreenplumcmds(ESqlStatementType.sstpostgresqlExecute, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 4000 4001 addgreenplumcmds(ESqlStatementType.sstpostgresqlExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 4002 4003 addgreenplumcmds(ESqlStatementType.sstFetchFrom, TBaseType.rrw_fetch, " ", " ", " ", " ", " ", " "); 4004 4005 addgreenplumcmds(ESqlStatementType.sstpostgresqlGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 4006 4007 addgreenplumcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 4008 4009// addgreenplumcmds(ESqlStatementType.sstpostgresqlListen, TBaseType.rrw_listen, " ", " ", " ", " ", " ", " "); 4010 4011 addgreenplumcmds(ESqlStatementType.sstpostgresqlLoad, TBaseType.rrw_load, " ", " ", " ", " ", " ", " "); 4012 4013 addgreenplumcmds(ESqlStatementType.sstpostgresqlLock, TBaseType.rrw_lock, " ", " ", " ", " ", " ", " "); 4014 4015 addgreenplumcmds(ESqlStatementType.sstpostgresqlMove, TBaseType.rrw_move, " ", " ", " ", " ", " ", " "); 4016 4017 //addgreenplumcmds(ESqlStatementType.sstpostgresqlNotify, TBaseType.rrw_notify, " ", " ", " ", " ", " ", " "); 4018 4019 addgreenplumcmds(ESqlStatementType.sstpostgresqlPrepare, TBaseType.rrw_prepare, " ", " ", " ", " ", " ", " "); 4020 4021// addgreenplumcmds(ESqlStatementType.sstpostgresqlPrepareTransaction, TBaseType.rrw_prepare, "transaction", " ", " ", " ", " ", " "); 4022 4023 addgreenplumcmds(ESqlStatementType.sstpostgresqlReassignOwned, TBaseType.rrw_greenplum_reassign, "owned", " ", " ", " ", " ", " "); 4024 4025 addgreenplumcmds(ESqlStatementType.sstpostgresqlRefreshMaterializedView, TBaseType.rrw_refresh, "materialized", "view", " ", " ", " ", " "); 4026 4027 addgreenplumcmds(ESqlStatementType.sstpostgresqlReindex, TBaseType.rrw_greenplum_reindex, " ", " ", " ", " ", " ", " "); 4028 4029 addgreenplumcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, " ", " ", " ", " ", " ", " "); 4030 addgreenplumcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, "savepoint", " ", " ", " ", " ", " "); 4031 4032 addgreenplumcmds(ESqlStatementType.sstpostgresqlReset, TBaseType.rrw_reset, " ", " ", " ", " ", " ", " "); 4033 4034 addgreenplumcmds(ESqlStatementType.sstpostgresqlRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 4035 4036 addgreenplumcmds(ESqlStatementType.sstpostgresqlRollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 4037// addgreenplumcmds(ESqlStatementType.sstpostgresqlRollbackPrepared, TBaseType.rrw_rollback, "prepared", " ", " ", " ", " ", " "); 4038 4039 addgreenplumcmds(ESqlStatementType.sstpostgresqlSavepoint, TBaseType.rrw_savepoint, " ", " ", " ", " ", " ", " "); 4040 4041// addgreenplumcmds(ESqlStatementType.sstpostgresqlSecurityLabel, TBaseType.rrw_security, "label", " ", " ", " ", " ", " "); 4042 4043 addgreenplumcmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 4044 4045 addgreenplumcmds(ESqlStatementType.sstpostgresqlSet, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 4046 4047// addgreenplumcmds(ESqlStatementType.sstpostgresqlSetConstraints, TBaseType.rrw_set, "constraints", " ", " ", " ", " ", " "); 4048 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "local", "role", " ", " ", " ", " "); 4049 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "local", "session", "authorization", " ", " ", " "); 4050 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "role", " ", " ", " ", " ", " "); 4051 4052 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "authorization", " ", " ", " ", " "); 4053 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "session", "characteristics", "as", "transaction", " ", " "); 4054 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "session", "role", " ", " ", " ", " "); 4055 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "session", "authorization", " ", " ", " "); 4056 4057 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "transaction", " ", " ", " ", " ", " "); 4058 4059 addgreenplumcmds(ESqlStatementType.sstgreenplumShow, TBaseType.rrw_show, " ", " ", " ", " ", " ", " "); 4060 4061 addgreenplumcmds(ESqlStatementType.sstgreenplumStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 4062 4063 addgreenplumcmds(ESqlStatementType.sstpostgresqlTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 4064 4065 //addgreenplumcmds(ESqlStatementType.sstpostgresqlUnlisten, TBaseType.rrw_unlisten, " ", " ", " ", " ", " ", " "); 4066 4067 addgreenplumcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 4068 4069 addgreenplumcmds(ESqlStatementType.sstgreenplumVacuum, TBaseType.rrw_greenplum_vacuum, " ", " ", " ", " ", " ", " "); 4070 addgreenplumcmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " ", " ", " ", " ", " ", " "); 4071 4072} 4073 4074 4075void initoraclecmds(){ 4076// cmd must be sort alphabetically 4077 addoraclecmds(ESqlStatementType.sstoraclealtercluster, TBaseType.rrw_alter,"cluster"," "," "," "," "," "); 4078 addoraclecmds(ESqlStatementType.sstoraclealterdatabase, TBaseType.rrw_alter,"database"," "," "," "," "," "); 4079 addoraclecmds(ESqlStatementType.sstoraclealterdimension, TBaseType.rrw_alter,"dimension"," "," "," "," "," "); 4080 addoraclecmds(ESqlStatementType.sstoraclealterdiskgroup, TBaseType.rrw_alter,"diskgroup"," "," "," "," "," "); 4081 addoraclecmds(ESqlStatementType.sstoraclealterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 4082 addoraclecmds(ESqlStatementType.sstoraclealterindex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 4083 addoraclecmds(ESqlStatementType.sstoraclealterindextype, TBaseType.rrw_alter,"indextype"," "," "," "," "," "); 4084 addoraclecmds(ESqlStatementType.sstoraclealterjava, TBaseType.rrw_alter,"java"," "," "," "," "," "); 4085 addoraclecmds(ESqlStatementType.sstAlterMaterializedView, TBaseType.rrw_alter,"materialized","view"," "," "," "," "); 4086 addoraclecmds(ESqlStatementType.sstoraclealtermaterializedviewlog, TBaseType.rrw_alter,"materialized","view","log"," "," "," "); 4087 addoraclecmds(ESqlStatementType.sstoraclealteroperator, TBaseType.rrw_alter,"operator"," "," "," "," "," "); 4088 addoraclecmds(ESqlStatementType.sstoraclealteroutline, TBaseType.rrw_alter,"outline"," "," "," "," "," "); 4089 addoraclecmds(ESqlStatementType.sstoraclealterpackage, TBaseType.rrw_alter,"package"," "," "," "," "," "); 4090 addoraclecmds(ESqlStatementType.sstoraclealterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 4091 addoraclecmds(ESqlStatementType.sstoraclealterprofile, TBaseType.rrw_alter,"profile"," "," "," "," "," "); 4092 addoraclecmds(ESqlStatementType.sstoraclealterresourcecost, TBaseType.rrw_alter,"resource","cost"," "," "," "," "); 4093 addoraclecmds(ESqlStatementType.sstoraclealterrole, TBaseType.rrw_alter,"role"," "," "," "," "," "); 4094 addoraclecmds(ESqlStatementType.sstoraclealterrollbacksegment, TBaseType.rrw_alter,"rollback","segment"," "," "," "," "); 4095 addoraclecmds(ESqlStatementType.sstoraclealtersequence, TBaseType.rrw_alter,"sequence"," "," "," "," "," "); 4096 addoraclecmds(ESqlStatementType.sstoraclealtersession, TBaseType.rrw_alter,"session"," "," "," "," "," "); 4097 addoraclecmds(ESqlStatementType.sstoraclealtersystem, TBaseType.rrw_alter,"system"," "," "," "," "," "); 4098 addoraclecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 4099 addoraclecmds(ESqlStatementType.sstoraclealtertablespace, TBaseType.rrw_alter,"tablespace"," "," "," "," "," "); 4100 addoraclecmds(ESqlStatementType.sstaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 4101 addoraclecmds(ESqlStatementType.sstoraclealtertype, TBaseType.rrw_alter,"type"," "," "," "," "," "); 4102 addoraclecmds(ESqlStatementType.sstoraclealteruser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 4103 addoraclecmds(ESqlStatementType.sstoraclealterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 4104 addoraclecmds(ESqlStatementType.sstoracleanalyze, TBaseType.rrw_analyze," "," "," "," "," "," "); 4105 addoraclecmds(ESqlStatementType.sstoracleassociatestatistics, TBaseType.rrw_associate,"statistics"," "," "," "," "," "); 4106 addoraclecmds(ESqlStatementType.sstoracleaudit, TBaseType.rrw_audit," "," "," "," "," "," "); 4107 addoraclecmds(ESqlStatementType.sstoraclecall, TBaseType.rrw_call," "," "," "," "," "," "); 4108 addoraclecmds(ESqlStatementType.sstCommentOn, TBaseType.rrw_comment," "," "," "," "," "," "); 4109 addoraclecmds(ESqlStatementType.sstoraclecommit, TBaseType.rrw_commit," "," "," "," "," "," "); 4110 addoraclecmds(ESqlStatementType.sstoraclecreatetablespace, TBaseType.rrw_create,"bigfile","tablespace"," "," "," "," "); 4111 addoraclecmds(ESqlStatementType.sstoraclecreateindex, TBaseType.rrw_create,"bitmap","index"," "," "," "," "); 4112 addoraclecmds(ESqlStatementType.sstoraclecreatecluster, TBaseType.rrw_create,"cluster"," "," "," "," "," "); 4113 addoraclecmds(ESqlStatementType.sstoraclecreatecontext, TBaseType.rrw_create,"context"," "," "," "," "," "); 4114 addoraclecmds(ESqlStatementType.sstoraclecreatecontrolfile, TBaseType.rrw_create,"controlfile"," "," "," "," "," "); 4115 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"editionable","function"," "," "," "," "); 4116 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"editionable","package"," "," "," "," "); 4117 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"editionable","package","body"," "," "," "); 4118 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"editionable","procedure"," "," "," "," "); 4119 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"editioning","view"," "," "," "," "); 4120 addoraclecmds(ESqlStatementType.sstoraclecreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 4121 addoraclecmds(ESqlStatementType.sstoraclecreatedatabaselink, TBaseType.rrw_create,"database","link"," "," "," "," "); 4122 addoraclecmds(ESqlStatementType.sstoraclecreatedimension, TBaseType.rrw_create,"dimension"," "," "," "," "," "); 4123 addoraclecmds(ESqlStatementType.sstoraclecreatedirectory, TBaseType.rrw_create,"directory"," "," "," "," "," "); 4124 addoraclecmds(ESqlStatementType.sstoraclecreatediskgroup, TBaseType.rrw_create,"diskgroup"," "," "," "," "," "); 4125 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"force","view"," "," "," "," "); 4126 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 4127 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temp","table"," "," "," "); 4128 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","table"," "," "," "); 4129 addoraclecmds(ESqlStatementType.sstoraclecreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 4130 addoraclecmds(ESqlStatementType.sstoraclecreateindextype, TBaseType.rrw_create,"indextype"," "," "," "," "," "); 4131 addoraclecmds(ESqlStatementType.sstoraclecreatejava, TBaseType.rrw_create,"java"," "," "," "," "," "); 4132 addoraclecmds(ESqlStatementType.sstoraclecreatelibrary, TBaseType.rrw_create,"library"," "," "," "," "," "); 4133 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"local","temp","table"," "," "," "); 4134 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"local","temporary","table"," "," "," "); 4135 addoraclecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"materialized","view"," "," "," "," "); 4136 addoraclecmds(ESqlStatementType.sstoraclecreatematerializedviewlog, TBaseType.rrw_create, "materialized","view","log"," "," "," "); 4137 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"noforce","view"," "," "," "," "); 4138 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"noneditionable","function"," "," "," "," "); 4139 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"noneditionable","package"," "," "," "," "); 4140 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"noneditionable","package","body"," "," "," "); 4141 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"noneditionable","procedure"," "," "," "," "); 4142 addoraclecmds(ESqlStatementType.sstoraclecreateoperator, TBaseType.rrw_create,"operator"," "," "," "," "," "); 4143 addoraclecmds(ESqlStatementType.sstoraclecreatecontext, TBaseType.rrw_create,"or","replace","context"," "," "," "); 4144 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","editionable","editioning","view"," "); 4145 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"or","replace","editionable","function"," "," "); 4146 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"or","replace","editionable","package"," "," "); 4147 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"or","replace","editionable","package","body"," "); 4148 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"or","replace","editionable","procedure"," "," "); 4149 addoraclecmds(ESqlStatementType.sstplsql_createtrigger, TBaseType.rrw_create,"or","replace","editionable","trigger"," "," "); 4150 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","editionable","view"," "," "); 4151 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","editioning","view"," "," "); 4152 addoraclecmds(ESqlStatementType.sstoraclecreatedirectory, TBaseType.rrw_create,"or","replace","directory"," "," "," "); 4153 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","force","view"," "," "); 4154 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","force","editionable","view"," "); 4155 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","force","editionable","editioning","view"); 4156 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","force","editioning","view"," "); 4157 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","force","noneditionable","view"," "); 4158 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"or","replace","function"," "," "," "); 4159 addoraclecmds(ESqlStatementType.sstoraclecreatelibrary, TBaseType.rrw_create,"or","replace","library"," "," "," "); 4160 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","noforce","view"," "," "); 4161 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"or","replace","noneditionable","function"," "," "); 4162 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"or","replace","noneditionable","package"," "," "); 4163 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"or","replace","noneditionable","package","body"," "); 4164 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"or","replace","noneditionable","procedure"," "," "); 4165 addoraclecmds(ESqlStatementType.sstoraclecreatesynonym, TBaseType.rrw_create,"or","replace","noneditionable","public","synonym"," "); 4166 addoraclecmds(ESqlStatementType.sstplsql_createtrigger, TBaseType.rrw_create,"or","replace","noneditionable","trigger"," "," "); 4167 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","noneditionable","view"," "," "); 4168 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"or","replace","package"," "," "," "); 4169 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"or","replace","package","body"," "," "); 4170 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"or","replace","procedure"," "," "," "); 4171 addoraclecmds(ESqlStatementType.sstoraclecreatesynonym, TBaseType.rrw_create,"or","replace","public","synonym"," "," "); 4172 addoraclecmds(ESqlStatementType.sstoraclecreatesynonym, TBaseType.rrw_create,"or","replace","synonym"," "," "," "); 4173 addoraclecmds(ESqlStatementType.sstplsql_createtrigger, TBaseType.rrw_create,"or","replace","trigger"," "," "," "); 4174 addoraclecmds(ESqlStatementType.sstplsql_createtype_placeholder, TBaseType.rrw_create,"or","replace","type"," "," "," "); 4175 addoraclecmds(ESqlStatementType.sstplsql_createtypebody, TBaseType.rrw_create,"or","replace","type","body"," "," "); 4176 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","view"," "," "," "); 4177 addoraclecmds(ESqlStatementType.sstoraclecreateoutline, TBaseType.rrw_create,"outline"," "," "," "," "," "); 4178 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"package"," "," "," "," "," "); 4179 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"package","body"," "," "," "," "); 4180 addoraclecmds(ESqlStatementType.sstoraclecreatepfile, TBaseType.rrw_create,"pfile"," "," "," "," "," "); 4181 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"private","temporary","table"," "," "," "); 4182 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 4183 addoraclecmds(ESqlStatementType.sstoraclecreateprofile, TBaseType.rrw_create,"profile"," "," "," "," "," "); 4184 addoraclecmds(ESqlStatementType.sstoraclecreatedatabaselink, TBaseType.rrw_create,"public","database","link"," "," "," "); 4185 addoraclecmds(ESqlStatementType.sstoraclecreatesynonym, TBaseType.rrw_create,"public","synonym"," "," "," "," "); 4186 addoraclecmds(ESqlStatementType.sstoraclecreaterestorepoint, TBaseType.rrw_create,"resotre","point"," "," "," "," "); 4187 addoraclecmds(ESqlStatementType.sstoraclecreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 4188 addoraclecmds(ESqlStatementType.sstoraclecreaterollbacksegment, TBaseType.rrw_create,"rollback","segment"," "," "," "," "); 4189 addoraclecmds(ESqlStatementType.sstoraclecreatedatabaselink, TBaseType.rrw_create,"shared","database","link"," "," "," "); 4190 addoraclecmds(ESqlStatementType.sstoraclecreatedatabaselink, TBaseType.rrw_create,"shared","public","database","link"," "," "); 4191 addoraclecmds(ESqlStatementType.sstoraclecreateschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 4192 addoraclecmds(ESqlStatementType.sstoraclecreatesequence, TBaseType.rrw_create,"sequence"," "," "," "," "," "); 4193 addoraclecmds(ESqlStatementType.sstoraclecreatetablespace, TBaseType.rrw_create,"smallfile","tablespace"," "," "," "," "); 4194 addoraclecmds(ESqlStatementType.sstoraclecreatespfile, TBaseType.rrw_create,"spfile"," "," "," "," "," "); 4195 addoraclecmds(ESqlStatementType.sstoraclecreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 4196 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 4197 addoraclecmds(ESqlStatementType.sstoraclecreatetablespace, TBaseType.rrw_create,"tablespace"," "," "," "," "," "); 4198 addoraclecmds(ESqlStatementType.sstoraclecreatetablespace, TBaseType.rrw_create,"temporary","tablespace"," "," "," "," "); 4199 addoraclecmds(ESqlStatementType.sstplsql_createtrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 4200 addoraclecmds(ESqlStatementType.sstplsql_createtype_placeholder, TBaseType.rrw_create,"type"," "," "," "," "," "); 4201 addoraclecmds(ESqlStatementType.sstplsql_createtypebody, TBaseType.rrw_create,"type","body"," "," "," "," "); 4202 addoraclecmds(ESqlStatementType.sstoraclecreatetablespace, TBaseType.rrw_create,"undo","tablespace"," "," "," "," "); 4203 addoraclecmds(ESqlStatementType.sstoraclecreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 4204 addoraclecmds(ESqlStatementType.sstoraclecreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 4205 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 4206 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_custom,"package"," "," "," "," "," "); 4207 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_custom,"package","body"," "," "," "," "); 4208 addoraclecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 4209 addoraclecmds(ESqlStatementType.sstoracledisassociatestatistics, TBaseType.rrw_disassociate, "statistics"," "," "," "," "," "); 4210 addoraclecmds(ESqlStatementType.sstoracledropcluster, TBaseType.rrw_drop,"cluster"," "," "," "," "," "); 4211 addoraclecmds(ESqlStatementType.sstoracledropcontext, TBaseType.rrw_drop,"context"," "," "," "," "," "); 4212 addoraclecmds(ESqlStatementType.sstoracledropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 4213 addoraclecmds(ESqlStatementType.sstoracledropdatabaselink, TBaseType.rrw_drop,"database","link"," "," "," "," "); 4214 addoraclecmds(ESqlStatementType.sstoracledropdimension, TBaseType.rrw_drop,"dimension"," "," "," "," "," "); 4215 addoraclecmds(ESqlStatementType.sstoracledropdirectory, TBaseType.rrw_drop,"directory"," "," "," "," "," "); 4216 addoraclecmds(ESqlStatementType.sstoracledropdiskgroup, TBaseType.rrw_drop,"diskgroup"," "," "," "," "," "); 4217 addoraclecmds(ESqlStatementType.sstoracledropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 4218 addoraclecmds(ESqlStatementType.sstoracledropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 4219 addoraclecmds(ESqlStatementType.sstoracledropindextype, TBaseType.rrw_drop,"indextype"," "," "," "," "," "); 4220 addoraclecmds(ESqlStatementType.sstoracledropjava, TBaseType.rrw_drop,"java"," "," "," "," "," "); 4221 addoraclecmds(ESqlStatementType.sstoracledroplibrary, TBaseType.rrw_drop,"library"," "," "," "," "," "); 4222 addoraclecmds(ESqlStatementType.sstoracledropmaterializedview, TBaseType.rrw_drop,"materialized","view"," "," "," "," "); 4223 addoraclecmds(ESqlStatementType.sstoracledropmaterializedviewlog, TBaseType.rrw_drop,"materialized","view","log"," "," "," "); 4224 addoraclecmds(ESqlStatementType.sstoracledropoperator, TBaseType.rrw_drop,"operator"," "," "," "," "," "); 4225 addoraclecmds(ESqlStatementType.sstoracledropoutline, TBaseType.rrw_drop,"outline"," "," "," "," "," "); 4226 addoraclecmds(ESqlStatementType.sstoracledroppackage, TBaseType.rrw_drop,"package"," "," "," "," "," "); 4227 addoraclecmds(ESqlStatementType.sstoracledropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 4228 addoraclecmds(ESqlStatementType.sstoracledropprofile, TBaseType.rrw_drop,"profile"," "," "," "," "," "); 4229 addoraclecmds(ESqlStatementType.sstoracledropdatabaselink, TBaseType.rrw_drop,"public","database","link"," "," "," "); 4230 addoraclecmds(ESqlStatementType.sstoracledropsynonym, TBaseType.rrw_drop,"public","synonym"," "," "," "," "); 4231 addoraclecmds(ESqlStatementType.sstoracledroprestorepoint, TBaseType.rrw_drop,"restore","point"," "," "," "," "); 4232 addoraclecmds(ESqlStatementType.sstoracledroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 4233 addoraclecmds(ESqlStatementType.sstoracledroprollbacksegment, TBaseType.rrw_drop,"rollback","segment"," "," "," "," "); 4234 addoraclecmds(ESqlStatementType.sstoracledropsequence, TBaseType.rrw_drop,"sequence"," "," "," "," "," "); 4235 addoraclecmds(ESqlStatementType.sstoracledropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 4236 addoraclecmds(ESqlStatementType.sstoracledroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 4237 addoraclecmds(ESqlStatementType.sstoracledroptablespace, TBaseType.rrw_drop,"tablespace"," "," "," "," "," "); 4238 addoraclecmds(ESqlStatementType.sstoracledroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 4239 addoraclecmds(ESqlStatementType.sstoracledroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 4240 addoraclecmds(ESqlStatementType.sstoracledroptypebody, TBaseType.rrw_drop,"type","body"," "," "," "," "); 4241 addoraclecmds(ESqlStatementType.sstoracledropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 4242 addoraclecmds(ESqlStatementType.sstoracledropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 4243 addoraclecmds(ESqlStatementType.sstoracleexecuteprocedure, TBaseType.rrw_execute," "," "," "," "," "," "); 4244 addoraclecmds(ESqlStatementType.sstplsql_execimmestmt, TBaseType.rrw_execute,"immediate"," "," "," "," "," "); 4245 addoraclecmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain,"plan"," "," "," "," "," "); 4246 addoraclecmds(ESqlStatementType.sstoracleflashbackdatabase, TBaseType.rrw_flashback,"database"," "," "," "," "," "); 4247 addoraclecmds(ESqlStatementType.sstoracleflashbacktable, TBaseType.rrw_flashback,"table"," "," "," "," "," "); 4248 addoraclecmds(ESqlStatementType.sstoraclegrant, TBaseType.rrw_grant," "," "," "," "," "," "); 4249 addoraclecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 4250 addoraclecmds(ESqlStatementType.sstoraclelocktable, TBaseType.rrw_lock,"table"," "," "," "," "," "); 4251 addoraclecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 4252 addoraclecmds(ESqlStatementType.sstoraclenoaudit, TBaseType.rrw_noaudit," "," "," "," "," "," "); 4253 addoraclecmds(ESqlStatementType.sstoraclepurge, TBaseType.rrw_purge," "," "," "," "," "," "); 4254 addoraclecmds(ESqlStatementType.sstoraclerename, TBaseType.rrw_rename," "," "," "," "," "," "); 4255 addoraclecmds(ESqlStatementType.sstoraclerevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 4256 addoraclecmds(ESqlStatementType.sstoraclerollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 4257 addoraclecmds(ESqlStatementType.sstoraclesavepoint, TBaseType.rrw_savepoint," "," "," "," "," "," "); 4258 addoraclecmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 4259 addoraclecmds(ESqlStatementType.sstoraclesetconstraint, TBaseType.rrw_set,"constraint"," "," "," "," "," "); 4260 addoraclecmds(ESqlStatementType.sstoraclesetconstraint, TBaseType.rrw_set,"constraints"," "," "," "," "," "); 4261 addoraclecmds(ESqlStatementType.sstoraclesetrole, TBaseType.rrw_set,"role"," "," "," "," "," "); 4262 addoraclecmds(ESqlStatementType.sstoraclesettransaction, TBaseType.rrw_set,"transaction"," "," "," "," "," "); 4263 addoraclecmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate," "," "," "," "," "," "); 4264 addoraclecmds(ESqlStatementType.sstplsql_createtype_placeholder, TBaseType.rrw_type2," "," "," "," "," "," "); 4265 addoraclecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 4266 4267} 4268 4269void initinformixcmds(){ 4270// cmd must be sort alphabetically 4271 addinformixcmds(ESqlStatementType.sstinformixAllocateCollection, TBaseType.rrw_allocate,"collection"," "," "," "," "," "); 4272 addinformixcmds(ESqlStatementType.sstinformixAllocateDescriptor, TBaseType.rrw_allocate,"descriptor"," "," "," "," "," "); 4273 addinformixcmds(ESqlStatementType.sstinformixAlterAccess_Method, TBaseType.rrw_alter,"access_method"," "," "," "," "," "); 4274 addinformixcmds(ESqlStatementType.sstinformixAlterFragment, TBaseType.rrw_alter,"fragment"," "," "," "," "," "); 4275 addinformixcmds(ESqlStatementType.sstinformixAlterFunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 4276 addinformixcmds(ESqlStatementType.sstinformixAlterIndex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 4277 addinformixcmds(ESqlStatementType.sstinformixAlterProcedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 4278 addinformixcmds(ESqlStatementType.sstinformixAlterRoutine, TBaseType.rrw_alter,"routine"," "," "," "," "," "); 4279 addinformixcmds(ESqlStatementType.sstinformixAlterSecurityLabelComponent, TBaseType.rrw_alter,"security","label","component"," "," "," "); 4280 addinformixcmds(ESqlStatementType.sstinformixAlterSequence, TBaseType.rrw_alter,"sequence"," "," "," "," "," "); 4281 addinformixcmds(ESqlStatementType.sstinformixAlterTable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 4282 addinformixcmds(ESqlStatementType.sstinformixAlterTrustedContext, TBaseType.rrw_alter,"trusted","context"," "," "," "," "); 4283 addinformixcmds(ESqlStatementType.sstinformixAlterUser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 4284 addinformixcmds(ESqlStatementType.sstinformixBegin, TBaseType.rrw_begin," "," "," "," "," "," "); 4285 addinformixcmds(ESqlStatementType.sstinformixClose, TBaseType.rrw_close," "," "," "," "," "," "); 4286 addinformixcmds(ESqlStatementType.sstinformixCloseDatabase, TBaseType.rrw_close,"database"," "," "," "," "," "); 4287 addinformixcmds(ESqlStatementType.sstinformixCommit, TBaseType.rrw_commit," "," "," "," "," "," "); 4288 addinformixcmds(ESqlStatementType.sstinformixConnect, TBaseType.rrw_informix_connect_to," "," "," "," "," "," "); 4289 addinformixcmds(ESqlStatementType.sstinformixCreateAccess_Method, TBaseType.rrw_create,"access_method"," "," "," "," "," "); 4290 addinformixcmds(ESqlStatementType.sstinformixCreateAggregate, TBaseType.rrw_create,"aggregate"," "," "," "," "," "); 4291 addinformixcmds(ESqlStatementType.sstinformixCreateCast, TBaseType.rrw_create,"cast"," "," "," "," "," "); 4292 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"cluster","index"," "," "," "," "); 4293 addinformixcmds(ESqlStatementType.sstinformixCreateDatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 4294 addinformixcmds(ESqlStatementType.sstinformixCreateFunction, TBaseType.rrw_create,"dba","function"," "," "," "," "); 4295 addinformixcmds(ESqlStatementType.sstinformixCreateProcedure, TBaseType.rrw_create,"dba","procedure"," "," "," "," "); 4296 addinformixcmds(ESqlStatementType.sstinformixCreateDefaultUser, TBaseType.rrw_create,"default","user"," "," "," "," "); 4297 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"distinct","cluster","index"," "," "," "); 4298 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"distinct","index"," "," "," "," "); 4299 addinformixcmds(ESqlStatementType.sstinformixCreateDistinctType, TBaseType.rrw_create,"distinct","type"," "," "," "," "); 4300 addinformixcmds(ESqlStatementType.sstinformixCreateExternalTable, TBaseType.rrw_create,"external","table"," "," "," "," "); 4301 addinformixcmds(ESqlStatementType.sstinformixCreateFunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 4302 addinformixcmds(ESqlStatementType.sstinformixCreateFunctionFrom, TBaseType.rrw_create,"function","from"," "," "," "," "); 4303 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"index"," "," "," "," "," "); 4304 addinformixcmds(ESqlStatementType.sstinformixCreateOpaqueType, TBaseType.rrw_create,"opaque","type"," "," "," "," "); 4305 addinformixcmds(ESqlStatementType.sstinformixCreateOpclass, TBaseType.rrw_create,"opclass"," "," "," "," "," "); 4306 addinformixcmds(ESqlStatementType.sstinformixCreateSynonym, TBaseType.rrw_create,"private","synonym"," "," "," "," "); 4307 addinformixcmds(ESqlStatementType.sstinformixCreateProcedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 4308 addinformixcmds(ESqlStatementType.sstinformixCreateProcedureFrom, TBaseType.rrw_create,"procedure","from"," "," "," "," "); 4309 addinformixcmds(ESqlStatementType.sstinformixCreateSynonym, TBaseType.rrw_create,"public","synonym"," "," "," "," "); 4310 addinformixcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"raw","table"," "," "," "," "); 4311 addinformixcmds(ESqlStatementType.sstinformixCreateRole, TBaseType.rrw_create,"role"," "," "," "," "," "); 4312 addinformixcmds(ESqlStatementType.sstinformixCreateRoutineFrom, TBaseType.rrw_create,"routine","from"," "," "," "," "); 4313 addinformixcmds(ESqlStatementType.sstinformixCreateRowType, TBaseType.rrw_create,"row","type"," "," "," "," "); 4314 addinformixcmds(ESqlStatementType.sstinformixCreateSchema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 4315 addinformixcmds(ESqlStatementType.sstinformixCreateSecurityLabel, TBaseType.rrw_create,"security","label"," "," "," "," "); 4316 addinformixcmds(ESqlStatementType.sstinformixCreateSecurityLabelComponent, TBaseType.rrw_create,"security","label","component"," "," "," "); 4317 addinformixcmds(ESqlStatementType.sstinformixCreateSecurityPolicy, TBaseType.rrw_create,"security","policy"," "," "," "," "); 4318 addinformixcmds(ESqlStatementType.sstinformixCreateSequence, TBaseType.rrw_create,"sequence"," "," "," "," "," "); 4319 addinformixcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"standard","table"," "," "," "," "); 4320 addinformixcmds(ESqlStatementType.sstinformixCreateSynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 4321 addinformixcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 4322 addinformixcmds(ESqlStatementType.sstinformixCreateTempTable, TBaseType.rrw_create,"temp","table"," "," "," "," "); 4323 addinformixcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 4324 addinformixcmds(ESqlStatementType.sstinformixCreateTrustedContext, TBaseType.rrw_create,"trusted","context"," "," "," "," "); 4325 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"unique","cluster","index"," "," "," "); 4326 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 4327 addinformixcmds(ESqlStatementType.sstinformixCreateUser, TBaseType.rrw_create,"user"," "," "," "," "," "); 4328 addinformixcmds(ESqlStatementType.sstinformixCreateView, TBaseType.rrw_create,"view"," "," "," "," "," "); 4329 addinformixcmds(ESqlStatementType.sstinformixCreateXaDatasource, TBaseType.rrw_create,"xadatasource"," "," "," "," "," "); 4330 addinformixcmds(ESqlStatementType.sstinformixCreateXaDatasourceType, TBaseType.rrw_create,"xadatasource","type"," "," "," "," "); 4331 //addinformixcmds(ESqlStatementType.sstinformixDatabase, TBaseType.rrw_database," "," "," "," "," "," "); 4332 addinformixcmds(ESqlStatementType.sstinformixDeallocateCollection, TBaseType.rrw_deallocate,"collection"," "," "," "," "," "); 4333 addinformixcmds(ESqlStatementType.sstinformixDeallocateDescriptor, TBaseType.rrw_deallocate, "descriptor"," "," "," "," "," "); 4334 addinformixcmds(ESqlStatementType.sstinformixDeallocateRow, TBaseType.rrw_deallocate,"row"," "," "," "," "," "); 4335 addinformixcmds(ESqlStatementType.sstinformixDeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 4336 addinformixcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 4337 addinformixcmds(ESqlStatementType.sstinformixDescribe, TBaseType.rrw_describe," "," "," "," "," "," "); 4338 addinformixcmds(ESqlStatementType.sstinformixDescribeInput, TBaseType.rrw_describe,"input"," "," "," "," "," "); 4339 addinformixcmds(ESqlStatementType.sstinformixDisconnect, TBaseType.rrw_disconnect," "," "," "," "," "," "); 4340 addinformixcmds(ESqlStatementType.sstinformixDropAccess_Method, TBaseType.rrw_drop,"access_method"," "," "," "," "," "); 4341 addinformixcmds(ESqlStatementType.sstinformixDropAggregate, TBaseType.rrw_drop,"aggregate"," "," "," "," "," "); 4342 addinformixcmds(ESqlStatementType.sstinformixDropCast, TBaseType.rrw_drop,"cast"," "," "," "," "," "); 4343 addinformixcmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 4344 addinformixcmds(ESqlStatementType.sstinformixDropFunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 4345 addinformixcmds(ESqlStatementType.sstinformixDropIndex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 4346 addinformixcmds(ESqlStatementType.sstinformixDropOpclass, TBaseType.rrw_drop,"opclass"," "," "," "," "," "); 4347 addinformixcmds(ESqlStatementType.sstinformixDropProcedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 4348 addinformixcmds(ESqlStatementType.sstinformixDropRole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 4349 addinformixcmds(ESqlStatementType.sstinformixDropRoutine, TBaseType.rrw_drop,"routine"," "," "," "," "," "); 4350 addinformixcmds(ESqlStatementType.sstinformixDropRowType, TBaseType.rrw_drop,"row","type"," "," "," "," "); 4351 addinformixcmds(ESqlStatementType.sstinformixDropSecurity, TBaseType.rrw_drop,"security"," "," "," "," "," "); 4352 addinformixcmds(ESqlStatementType.sstinformixDropSequence, TBaseType.rrw_drop,"sequence"," "," "," "," "," "); 4353 addinformixcmds(ESqlStatementType.sstinformixDropSynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 4354 addinformixcmds(ESqlStatementType.sstinformixDropTable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 4355 addinformixcmds(ESqlStatementType.sstinformixDropTrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 4356 addinformixcmds(ESqlStatementType.sstinformixDropTrustedContext, TBaseType.rrw_drop,"trusted","context"," "," "," "," "); 4357 addinformixcmds(ESqlStatementType.sstinformixDropType, TBaseType.rrw_drop,"type"," "," "," "," "," "); 4358 addinformixcmds(ESqlStatementType.sstinformixDropUser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 4359 addinformixcmds(ESqlStatementType.sstinformixDropView, TBaseType.rrw_drop,"view"," "," "," "," "," "); 4360 addinformixcmds(ESqlStatementType.sstinformixDropXaDatasource, TBaseType.rrw_drop,"xadatasource"," "," "," "," "," "); 4361 addinformixcmds(ESqlStatementType.sstinformixDropXaDatasourceType, TBaseType.rrw_drop,"xadatasource","type"," "," "," "," "); 4362 addinformixcmds(ESqlStatementType.sstinformixExecute, TBaseType.rrw_exec," "," "," "," "," "," "); 4363 addinformixcmds(ESqlStatementType.sstinformixExecute, TBaseType.rrw_execute," "," "," "," "," "," "); 4364 addinformixcmds(ESqlStatementType.sstinformixExecuteFunction, TBaseType.rrw_execute,"function"," "," "," "," "," "); 4365 addinformixcmds(ESqlStatementType.sstinformixExecuteImmediate, TBaseType.rrw_execute,"immediate"," "," "," "," "," "); 4366 addinformixcmds(ESqlStatementType.sstinformixExecuteProcedure, TBaseType.rrw_execute,"procedure"," "," "," "," "," "); 4367 addinformixcmds(ESqlStatementType.sstinformixFetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 4368 addinformixcmds(ESqlStatementType.sstinformixFlush, TBaseType.rrw_flush," "," "," "," "," "," "); 4369 addinformixcmds(ESqlStatementType.sstinformixFree, TBaseType.rrw_free," "," "," "," "," "," "); 4370 addinformixcmds(ESqlStatementType.sstinformixGetDescriptor, TBaseType.rrw_get,"descriptor"," "," "," "," "," "); 4371 addinformixcmds(ESqlStatementType.sstinformixGetDiagnostics, TBaseType.rrw_get,"diagnostics"," "," "," "," "," "); 4372 addinformixcmds(ESqlStatementType.sstinformixGrant, TBaseType.rrw_grant," "," "," "," "," "," "); 4373 addinformixcmds(ESqlStatementType.sstinformixGrantFragment, TBaseType.rrw_grant,"fragment"," "," "," "," "," "); 4374 addinformixcmds(ESqlStatementType.sstinformixInfo, TBaseType.rrw_informix_info," "," "," "," "," "," "); 4375 addinformixcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 4376 addinformixcmds(ESqlStatementType.sstinformixLoad, TBaseType.rrw_load," "," "," "," "," "," "); 4377 addinformixcmds(ESqlStatementType.sstinformixLockTable, TBaseType.rrw_lock,"table"," "," "," "," "," "); 4378 addinformixcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 4379 addinformixcmds(ESqlStatementType.sstinformixOpen, TBaseType.rrw_open," "," "," "," "," "," "); 4380 addinformixcmds(ESqlStatementType.sstinformixOutput, TBaseType.rrw_informix_output," "," "," "," "," "," "); 4381 addinformixcmds(ESqlStatementType.sstinformixPrepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 4382 addinformixcmds(ESqlStatementType.sstinformixPut, TBaseType.rrw_informix_put," "," "," "," "," "," "); 4383 addinformixcmds(ESqlStatementType.sstinformixReleaseSavepoint, TBaseType.rrw_release,"savepoint"," "," "," "," "," "); 4384 addinformixcmds(ESqlStatementType.sstinformixRenameColumn, TBaseType.rrw_rename,"column"," "," "," "," "," "); 4385 addinformixcmds(ESqlStatementType.sstinformixRenameDatabase, TBaseType.rrw_rename,"database"," "," "," "," "," "); 4386 addinformixcmds(ESqlStatementType.sstinformixRenameIndex, TBaseType.rrw_rename,"index"," "," "," "," "," "); 4387 addinformixcmds(ESqlStatementType.sstinformixRenameSecurity, TBaseType.rrw_rename,"security"," "," "," "," "," "); 4388 addinformixcmds(ESqlStatementType.sstinformixRenameSequence, TBaseType.rrw_rename,"sequence"," "," "," "," "," "); 4389 addinformixcmds(ESqlStatementType.sstinformixRenameTable, TBaseType.rrw_rename,"table"," "," "," "," "," "); 4390 addinformixcmds(ESqlStatementType.sstinformixRenameTrustedContext, TBaseType.rrw_rename,"trusted","context"," "," "," "," "); 4391 addinformixcmds(ESqlStatementType.sstinformixRenameUser, TBaseType.rrw_rename,"user"," "," "," "," "," "); 4392 addinformixcmds(ESqlStatementType.sstinformixRevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 4393 addinformixcmds(ESqlStatementType.sstinformixRevokeFragment, TBaseType.rrw_revoke,"fragment"," "," "," "," "," "); 4394 addinformixcmds(ESqlStatementType.sstinformixRollbackWork, TBaseType.rrw_rollback," "," "," "," "," "," "); 4395 addinformixcmds(ESqlStatementType.sstinformixRollbackWork, TBaseType.rrw_rollback,"work"," "," "," "," "," "); 4396 addinformixcmds(ESqlStatementType.sstinformixSaveExternalDirectives, TBaseType.rrw_save,"external","directives"," "," "," "," "); 4397 addinformixcmds(ESqlStatementType.sstinformixSavepoint, TBaseType.rrw_savepoint," "," "," "," "," "," "); 4398 addinformixcmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 4399 addinformixcmds(ESqlStatementType.sstinformixSetAutofree, TBaseType.rrw_set,"autofree"," "," "," "," "," "); 4400 addinformixcmds(ESqlStatementType.sstinformixSetCollation, TBaseType.rrw_set,"collation"," "," "," "," "," "); 4401 addinformixcmds(ESqlStatementType.sstinformixSetConnection, TBaseType.rrw_set,"connection"," "," "," "," "," "); 4402 addinformixcmds(ESqlStatementType.sstinformixSetConstraints, TBaseType.rrw_set,"constraints"," "," "," "," "," "); 4403 addinformixcmds(ESqlStatementType.sstinformixSetDatabaseObject, TBaseType.rrw_set,"database","object"," "," "," "," "); 4404 addinformixcmds(ESqlStatementType.sstinformixSetDataskip, TBaseType.rrw_set,"dataskip"," "," "," "," "," "); 4405 addinformixcmds(ESqlStatementType.sstinformixSetDebugFile, TBaseType.rrw_set,"debug","file"," "," "," "," "); 4406 addinformixcmds(ESqlStatementType.sstinformixSetDeferred_Prepare, TBaseType.rrw_set,"defferred_prepare"," "," "," "," "," "); 4407 addinformixcmds(ESqlStatementType.sstinformixSetDescriptor, TBaseType.rrw_set,"descriptor"," "," "," "," "," "); 4408 addinformixcmds(ESqlStatementType.sstinformixSetEncryptionPassword, TBaseType.rrw_set,"encryption","password"," "," "," "," "); 4409 addinformixcmds(ESqlStatementType.sstinformixSetEnvironment, TBaseType.rrw_set,"environment"," "," "," "," "," "); 4410 addinformixcmds(ESqlStatementType.sstinformixSetExplain, TBaseType.rrw_set,"explain"," "," "," "," "," "); 4411 addinformixcmds(ESqlStatementType.sstinformixSetIndexes, TBaseType.rrw_set,"indexes"," "," "," "," "," "); 4412 addinformixcmds(ESqlStatementType.sstinformixSetIsolation, TBaseType.rrw_set,"isolation"," "," "," "," "," "); 4413 addinformixcmds(ESqlStatementType.sstinformixSetLockMode, TBaseType.rrw_set,"lock","mode"," "," "," "," "); 4414 addinformixcmds(ESqlStatementType.sstinformixSetLog, TBaseType.rrw_set,"log"," "," "," "," "," "); 4415 addinformixcmds(ESqlStatementType.sstinformixSetOptimization, TBaseType.rrw_set,"optimization"," "," "," "," "," "); 4416 addinformixcmds(ESqlStatementType.sstinformixSetPDQPriority, TBaseType.rrw_set,"pdqpriority"," "," "," "," "," "); 4417 addinformixcmds(ESqlStatementType.sstinformixSetRole, TBaseType.rrw_set,"role"," "," "," "," "," "); 4418 addinformixcmds(ESqlStatementType.sstinformixSetSessionAuthorization, TBaseType.rrw_set,"session","authorization"," "," "," "," "); 4419 addinformixcmds(ESqlStatementType.sstinformixSetStatementCache, TBaseType.rrw_set,"statement","cache"," "," "," "," "); 4420 addinformixcmds(ESqlStatementType.sstinformixSetTransaction, TBaseType.rrw_set,"transaction"," "," "," "," "," "); 4421 addinformixcmds(ESqlStatementType.sstinformixSetTransactionMode, TBaseType.rrw_set,"transaction","mode"," "," "," "," "); 4422 addinformixcmds(ESqlStatementType.sstinformixSetTriggers, TBaseType.rrw_set,"triggers"," "," "," "," "," "); 4423 addinformixcmds(ESqlStatementType.sstinformixSetUserPassword, TBaseType.rrw_set,"user","password"," "," "," "," "); 4424 addinformixcmds(ESqlStatementType.sstinformixStartViolationsTable, TBaseType.rrw_start,"violations","table"," "," "," "," "); 4425 addinformixcmds(ESqlStatementType.sstinformixStopViolationsTable, TBaseType.rrw_stop,"violations","table"," "," "," "," "); 4426 addinformixcmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate," "," "," "," "," "," "); 4427 addinformixcmds(ESqlStatementType.sstinformixUnload, TBaseType.rrw_informix_unload," "," "," "," "," "," "); 4428 addinformixcmds(ESqlStatementType.sstinformixUnlockTable, TBaseType.rrw_unlock,"table"," "," "," "," "," "); 4429 addinformixcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 4430 addinformixcmds(ESqlStatementType.sstinformixUpdateStatistics, TBaseType.rrw_update,"statistics"," "," "," "," "," "); 4431 addinformixcmds(ESqlStatementType.sstinformixWhenever, TBaseType.rrw_informix_whenever," "," "," "," "," "," "); 4432} 4433 public void initcouchbasecmds() { 4434 addcouchbasecmds(ESqlStatementType.sstBuildIndex, TBaseType.rrw_couchbase_build, "index"," ", " ", " ", " ", " "); 4435 addcouchbasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "index", " ", " ", " ", " ", " "); 4436 addcouchbasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "primary", "index", " ", " ", " ", " "); 4437 addcouchbasecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 4438 addcouchbasecmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index", " ", " ", " ", " ", " "); 4439 addcouchbasecmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "primary", "index", " ", " ", " ", " "); 4440 addcouchbasecmds(ESqlStatementType.sstExecutePreparedStmt, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 4441 addcouchbasecmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 4442 addcouchbasecmds(ESqlStatementType.sstinfer, TBaseType.rrw_couchbase_infer, " ", " ", " ", " ", " ", " "); 4443 addcouchbasecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 4444 addcouchbasecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, " ", " ", " ", " ", " ", " "); 4445 addcouchbasecmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare, " ", " ", " ", " ", " ", " "); 4446 addcouchbasecmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 4447 addcouchbasecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 4448 addcouchbasecmds(ESqlStatementType.sstupsert, TBaseType.rrw_couchbase_upsert, " ", " ", " ", " ", " ", " "); 4449 } 4450 4451 void initverticacmds(){ 4452 4453 addverticacmds(ESqlStatementType.sstActivateDirectedQuery, TBaseType.rrw_vertica_activate, "directed", "query", " ", " ", " ", " "); 4454 4455 addverticacmds(ESqlStatementType.sstAlterAccessPolicy, TBaseType.rrw_alter, "access", "policy", " ", " ", " ", " "); 4456 addverticacmds(ESqlStatementType.sstAlterAuthentication, TBaseType.rrw_alter, "authentication", " ", " ", " ", " ", " "); 4457 addverticacmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 4458 addverticacmds(ESqlStatementType.sstAlterFaultGroup, TBaseType.rrw_alter, "fault", "group", " ", " ", " ", " "); 4459 addverticacmds(ESqlStatementType.sstalterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 4460 addverticacmds(ESqlStatementType.sstAlterLibrary, TBaseType.rrw_alter, "library", " ", " ", " ", " ", " "); 4461 addverticacmds(ESqlStatementType.sstAlterNode, TBaseType.rrw_alter, "node", " ", " ", " ", " ", " "); 4462 addverticacmds(ESqlStatementType.sstAlterNetworkInterface, TBaseType.rrw_alter, "network", "interface", " ", " ", " ", " "); 4463 addverticacmds(ESqlStatementType.sstAlterProjection, TBaseType.rrw_alter, "projection", " ", " ", " ", " ", " "); 4464 addverticacmds(ESqlStatementType.sstAlterProfile, TBaseType.rrw_alter, "profile", " ", " ", " ", " ", " "); 4465 addverticacmds(ESqlStatementType.sstAlterResourcePool, TBaseType.rrw_alter, "resource", "pool", " ", " ", " ", " "); 4466 addverticacmds(ESqlStatementType.sstAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 4467 addverticacmds(ESqlStatementType.sstAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 4468 addverticacmds(ESqlStatementType.sstaltersequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 4469 addverticacmds(ESqlStatementType.sstaltersession, TBaseType.rrw_alter, "session", " ", " ", " ", " ", " "); 4470 addverticacmds(ESqlStatementType.sstAlterSubnet, TBaseType.rrw_alter, "subnet", " ", " ", " ", " ", " "); 4471 addverticacmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 4472 addverticacmds(ESqlStatementType.sstalteruser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 4473 addverticacmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 4474 4475 addverticacmds(ESqlStatementType.sstBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 4476 addverticacmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 4477 4478 addverticacmds(ESqlStatementType.sstCommentOn, TBaseType.rrw_comment, "on", " ", " ", " ", " ", " "); 4479 addverticacmds(ESqlStatementType.sstcommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 4480 addverticacmds(ESqlStatementType.sstconnect, TBaseType.rrw_connect, "to", " ", " ", " ", " ", " "); 4481 addverticacmds(ESqlStatementType.sstCopy, TBaseType.rrw_vertica_copy, " ", " ", " ", " ", " ", " "); 4482 4483 addverticacmds(ESqlStatementType.sstCreateAccessPolicy, TBaseType.rrw_create, "access", "policy", " ", " ", " ", " "); 4484 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "aggregate", "function", " ", " ", " ", " "); 4485 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "analytic", "function", " ", " ", " ", " "); 4486 addverticacmds(ESqlStatementType.sstCreateAuthentication, TBaseType.rrw_create, "authentication", " ", " ", " ", " ", " "); 4487 addverticacmds(ESqlStatementType.sstCreateDirectedQuery, TBaseType.rrw_create, "directed", "query", " ", " ", " ", " "); 4488 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 4489 addverticacmds(ESqlStatementType.sstCreateFaultGroup, TBaseType.rrw_create , "fault", "group", " ", " ", " ", " "); 4490 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "filter", " ", " ", " ", " ", " "); 4491 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flex", "table", " ", " ", " ", " "); 4492 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flex", "local", "temp", "table", " ", " "); 4493 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flex", "local", "temporary", "table", " ", " "); 4494 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flexible", "table", " ", " ", " ", " "); 4495 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flexible", "local", "temp", "table", " ", " "); 4496 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flexible", "local", "temporary", "table", " ", " "); 4497 4498 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "function", " ", " ", " ", " ", " "); 4499 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "global", "temp", "table", " ", " ", " "); 4500 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "global", "temporary", "table", " ", " ", " "); 4501 addverticacmds(ESqlStatementType.sstCreateHCatalogSchema, TBaseType.rrw_create , "hcatalog", "schema", " ", " ", " ", " "); 4502 addverticacmds(ESqlStatementType.sstCreateLibrary, TBaseType.rrw_create, "library", " ", " ", " ", " ", " "); 4503 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "local", "temp", "table", " ", " ", " "); 4504 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "local", "temp", "view", " ", " ", " "); 4505 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "local", "temporary", "table", " ", " ", " "); 4506 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "local", "temporary", "view", " ", " ", " "); 4507 addverticacmds(ESqlStatementType.sstCreateLocation, TBaseType.rrw_create , "location", " ", " ", " ", " ", " "); 4508 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "managed", "external", "table", " ", " ", " "); 4509 addverticacmds(ESqlStatementType.sstCreateNetworkInterface, TBaseType.rrw_create, "network", "interface", " ", " ", " ", " "); 4510 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "or", "replace", "aggregate", "function", " ", " "); 4511 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "or", "replace", "function", " ", " ", " "); 4512 addverticacmds(ESqlStatementType.sstCreateLibrary, TBaseType.rrw_create , "or", "replace", "library", " ", " ", " "); 4513 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "or", "replace", "local", "temp", "view", " "); 4514 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "or", "replace", "local", "temporary", "view", " "); 4515 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "or", "replace", "view", " ", " ", " "); 4516 addverticacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create , "or", "replace", "procedure", " ", " ", " "); 4517 4518 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "parser", " ", " ", " ", " ", " "); 4519 addverticacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create , "procedure", " ", " ", " ", " ", " "); 4520 addverticacmds(ESqlStatementType.sstCreateProfile, TBaseType.rrw_create , "profile", " ", " ", " ", " ", " "); 4521 addverticacmds(ESqlStatementType.sstCreateProjection, TBaseType.rrw_create , "projection", " ", " ", " ", " ", " "); 4522 addverticacmds(ESqlStatementType.sstCreateResourcePool, TBaseType.rrw_create , "resource", "pool", " ", " ", " ", " "); 4523 addverticacmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create , "role", " ", " ", " ", " ", " "); 4524 addverticacmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create , "schema", " ", " ", " ", " ", " "); 4525 addverticacmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create , "sequence", " ", " ", " ", " ", " "); 4526 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "source", " ", " ", " ", " ", " "); 4527 addverticacmds(ESqlStatementType.sstCreateSubnet, TBaseType.rrw_create , "subnet", " ", " ", " ", " ", " "); 4528 4529 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "table", " ", " ", " ", " ", " "); 4530 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "temp", "table", " ", " ", " ", " "); 4531 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "temporary", "table", " ", " ", " ", " "); 4532 addverticacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create , "text", "index", " ", " ", " ", " "); 4533 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "transform", "function", " ", " ", " ", " "); 4534 addverticacmds(ESqlStatementType.sstcreateuser, TBaseType.rrw_create , "user", " ", " ", " ", " ", " "); 4535 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "view", " ", " ", " ", " ", " "); 4536 4537 addverticacmds(ESqlStatementType.sstDeActivateDirectedQuery, TBaseType.rrw_vertica_deactivate, "directed", "query", " ", " ", " ", " "); 4538 4539 addverticacmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete , " ", " ", " ", " ", " ", " "); 4540 addverticacmds(ESqlStatementType.sstDisconnect, TBaseType.rrw_disconnect , " ", " ", " ", " ", " ", " "); 4541 4542 addverticacmds(ESqlStatementType.sstDeActivateDirectedQuery, TBaseType.rrw_drop, "directed", "query", " ", " ", " ", " "); 4543 addverticacmds(ESqlStatementType.sstDropAccessPolicy, TBaseType.rrw_drop, "access","policy", " ", " ", " ", " "); 4544 addverticacmds(ESqlStatementType.sstDropAggregateFunction, TBaseType.rrw_drop, "aggregate","function", " ", " ", " ", " "); 4545 addverticacmds(ESqlStatementType.sstDropAuthentication, TBaseType.rrw_drop, "authentication"," ", " ", " ", " ", " "); 4546 4547 addverticacmds(ESqlStatementType.sstDropFaultGroup, TBaseType.rrw_drop, "fault","group", " ", " ", " ", " "); 4548 4549 addverticacmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function"," ", " ", " ", " ", " "); 4550 addverticacmds(ESqlStatementType.sstDropLibrary, TBaseType.rrw_drop, "library"," ", " ", " ", " ", " "); 4551 addverticacmds(ESqlStatementType.sstDropNetworkInterface, TBaseType.rrw_drop, "network","interface", " ", " ", " ", " "); 4552 addverticacmds(ESqlStatementType.sstdropprocedure, TBaseType.rrw_drop, "procedure"," ", " ", " ", " ", " "); 4553 addverticacmds(ESqlStatementType.sstDropProfile, TBaseType.rrw_drop, "profile"," ", " ", " ", " ", " "); 4554 addverticacmds(ESqlStatementType.sstDropProjection, TBaseType.rrw_drop, "projection"," ", " ", " ", " ", " "); 4555 addverticacmds(ESqlStatementType.sstDropResourcePool, TBaseType.rrw_drop, "resource","pool", " ", " ", " ", " "); 4556 addverticacmds(ESqlStatementType.sstdroprole, TBaseType.rrw_drop, "role"," ", " ", " ", " ", " "); 4557 addverticacmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema"," ", " ", " ", " ", " "); 4558 addverticacmds(ESqlStatementType.sstdropsequence, TBaseType.rrw_drop, "sequence"," ", " ", " ", " ", " "); 4559 addverticacmds(ESqlStatementType.sstDropSubnet, TBaseType.rrw_drop, "subnet"," ", " ", " ", " ", " "); 4560 addverticacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," ", " ", " ", " ", " "); 4561 addverticacmds(ESqlStatementType.sstDropTextIndex, TBaseType.rrw_drop, "text","index", " ", " ", " ", " "); 4562 addverticacmds(ESqlStatementType.sstDropTransformFunction, TBaseType.rrw_drop, "transform","function", " ", " ", " ", " "); 4563 addverticacmds(ESqlStatementType.sstdropuser, TBaseType.rrw_drop, "user"," ", " ", " ", " ", " "); 4564 addverticacmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," ", " ", " ", " ", " "); 4565 4566 addverticacmds(ESqlStatementType.sstEnd, TBaseType.rrw_end, " ", " "," ", " ", " ", " "); 4567 addverticacmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " ", " "," ", " ", " ", " "); 4568 addverticacmds(ESqlStatementType.sstExportToVertica, TBaseType.rrw_vertica_export, "to", "vertica"," ", " ", " ", " "); 4569 addverticacmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " ", " "," ", " ", " ", " "); 4570 addverticacmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " "," ", " ", " ", " "); 4571 addverticacmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, " ", " "," ", " ", " ", " "); 4572 addverticacmds(ESqlStatementType.sstProfile, TBaseType.rrw_vertica_profile, " ", " "," ", " ", " ", " "); 4573 addverticacmds(ESqlStatementType.sstReleaseSavepoint, TBaseType.rrw_release, " ", " "," ", " ", " ", " "); 4574 addverticacmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " ", " "," ", " ", " ", " "); 4575 addverticacmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " ", " "," ", " ", " ", " "); 4576 addverticacmds(ESqlStatementType.sstsavepoint, TBaseType.rrw_savepoint, " ", " "," ", " ", " ", " "); 4577 addverticacmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " "," ", " ", " ", " "); 4578 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "datestyle", "to"," ", " ", " ", " "); 4579 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "escape_string_warning", "to"," ", " ", " ", " "); 4580 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "intervalstyle", "to"," ", " ", " ", " "); 4581 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "locale", " "," ", " ", " ", " "); 4582 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "role", " "," ", " ", " ", " "); 4583 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "search_path", " "," ", " ", " ", " "); 4584 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "session", " "," ", " ", " ", " "); 4585 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "standard_conforming_strings", " "," ", " ", " ", " "); 4586 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "time", "zone"," ", " ", " ", " "); 4587 addverticacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, " ", " "," ", " ", " ", " "); 4588 addverticacmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, " ", " "," ", " ", " ", " "); 4589 addverticacmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate, "table", " "," ", " ", " ", " "); 4590 addverticacmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " "," ", " ", " ", " "); 4591 4592 4593 // addverticacmds(ESqlStatementType.sstGetDirectedQuery, TBaseType.rrw_get, "directed", "query", " ", " ", " ", " "); 4594 // addverticacmds(ESqlStatementType.sstSaveQuery, TBaseType.rrw_save, "query", " "," ", " ", " ", " "); 4595 4596 } 4597 4598 void inithanacmds(){ 4599//alter 4600 addhanacmds(ESqlStatementType.sstalterauditpolicy, TBaseType.rrw_alter, "audit", "policy", " ", " ", " ", " "); 4601 addhanacmds(ESqlStatementType.sstaltercredential, TBaseType.rrw_alter, "credential", " ", " ", " ", " ", " "); 4602 addhanacmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 4603 addhanacmds(ESqlStatementType.sstalterfulltextindex, TBaseType.rrw_alter, "fulltext", "index", " ", " ", " ", " "); 4604 addhanacmds(ESqlStatementType.sstalterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 4605 addhanacmds(ESqlStatementType.sstalterindex, TBaseType.rrw_alter, "index", " ", " ", " ", " ", " "); 4606 addhanacmds(ESqlStatementType.sstalterldapprovider, TBaseType.rrw_alter, "ldap", "provider", " ", " ", " ", " "); 4607 addhanacmds(ESqlStatementType.sstalterjwtprovider, TBaseType.rrw_alter, "jwt", "provider", " ", " ", " ", " "); 4608 addhanacmds(ESqlStatementType.sstalterpse, TBaseType.rrw_alter, "pse", " ", " ", " ", " ", " "); 4609 addhanacmds(ESqlStatementType.sstalterprocedure, TBaseType.rrw_alter, "procedure", " ", " ", " ", " ", " "); 4610 addhanacmds(ESqlStatementType.sstalterremotesource, TBaseType.rrw_alter, "remote", "source", " ", " ", " ", " "); 4611 addhanacmds(ESqlStatementType.sstAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 4612 addhanacmds(ESqlStatementType.sstaltersamlprovider, TBaseType.rrw_alter, "saml", "provider", " ", " ", " ", " "); 4613 addhanacmds(ESqlStatementType.sstaltersequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 4614 addhanacmds(ESqlStatementType.sstalterstatistics, TBaseType.rrw_alter, "statistics", " ", " ", " ", " ", " "); 4615 addhanacmds(ESqlStatementType.sstalterstructuredprivilege, TBaseType.rrw_alter, "structured", "privilege", " ", " ", " ", " "); 4616 addhanacmds(ESqlStatementType.sstaltersystem, TBaseType.rrw_alter, "system", " ", " ", " ", " ", " "); 4617 addhanacmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 4618 addhanacmds(ESqlStatementType.sstalteruser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 4619 addhanacmds(ESqlStatementType.sstalterusergroup, TBaseType.rrw_alter, "usergroup", " ", " ", " ", " ", " "); 4620 addhanacmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 4621 addhanacmds(ESqlStatementType.sstalterviewcache, TBaseType.rrw_alter, "view", "cache", " ", " ", " ", " "); 4622 addhanacmds(ESqlStatementType.sstaltervirtualtable, TBaseType.rrw_alter, "virtual", "table", " ", " ", " ", " "); 4623 addhanacmds(ESqlStatementType.sstalterworkloadclass, TBaseType.rrw_alter, "workload", "class", " ", " ", " ", " "); 4624 addhanacmds(ESqlStatementType.sstalterworkloadmapping, TBaseType.rrw_alter, "workload", "mapping", " ", " ", " ", " "); 4625 4626//backup 4627 addhanacmds(ESqlStatementType.sstbackupcancel, TBaseType.rrw_backup,"cancel"," "," "," "," "," "); 4628 addhanacmds(ESqlStatementType.sstbackupcatalogdelete, TBaseType.rrw_backup, "catalog", "delete", " ", " ", " ", " "); 4629 addhanacmds(ESqlStatementType.sstbackupcheck, TBaseType.rrw_backup,"check"," "," "," "," "," "); 4630 addhanacmds(ESqlStatementType.sstbackupcheckaccess, TBaseType.rrw_backup, "check", "access", " ", " ", " ", " "); 4631 addhanacmds(ESqlStatementType.sstbackupdata, TBaseType.rrw_backup, "data", " ", " ", " ", " ", " "); 4632 addhanacmds(ESqlStatementType.sstbackuplistdata, TBaseType.rrw_backup, "list", "data", " ", " ", " ", " "); 4633 4634 addhanacmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 4635 4636//commit 4637 addhanacmds(ESqlStatementType.sstcomment, TBaseType.rrw_comment, "on", " ", " ", " ", " ", " "); 4638 addhanacmds(ESqlStatementType.sstcommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 4639 addhanacmds(ESqlStatementType.sstconnect, TBaseType.rrw_connect, " ", " ", " ", " ", " ", " "); 4640 4641//create 4642 addhanacmds(ESqlStatementType.sstcreateauditpolicy, TBaseType.rrw_create, "audit", "policy", " ", " ", " ", " "); 4643 addhanacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "btree", "index", " ", " ", " ", " "); 4644 addhanacmds(ESqlStatementType.sstcreatecertificate, TBaseType.rrw_create, "certificate", " ", " ", " ", " ", " "); 4645 addhanacmds(ESqlStatementType.sstcreatecollection, TBaseType.rrw_create, "collection", " ", " ", " ", " ", " "); 4646 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "column", "table", " ", " ", " ", " "); 4647 addhanacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "cpbtree", "index", " ", " ", " ", " "); 4648 addhanacmds(ESqlStatementType.sstcreatecredential, TBaseType.rrw_create, "credential", " ", " ", " ", " ", " "); 4649 addhanacmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 4650 addhanacmds(ESqlStatementType.sstcreatefulltextindex, TBaseType.rrw_create, "fulltext", "index", " ", " ", " ", " "); 4651 addhanacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 4652 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temporary", "column", "table", " ", " "); 4653 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","table"," "," "," "); 4654 addhanacmds(ESqlStatementType.sstcreategraphworkspace, TBaseType.rrw_create, "graph", "workspace", " ", " ", " ", " "); 4655 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"history","column","table"," "," "," "); 4656 addhanacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "index", " ", " ", " ", " ", " "); 4657 addhanacmds(ESqlStatementType.sstcreateJWTProvider, TBaseType.rrw_create, "jwt", "provider", " ", " ", " ", " "); 4658 addhanacmds(ESqlStatementType.sstcreateLDAPProvider, TBaseType.rrw_create, "ldap", "provider", " ", " ", " ", " "); 4659 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"local","temporary","column","table"," "," "); 4660 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temporary", "table", " ", " ", " "); 4661 addhanacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "force", "editionable", "view", " "); 4662 addhanacmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create, "or", "replace", "public", "synonym", " ", " "); 4663 addhanacmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create, "or", "replace", "synonym", " ", " ", " "); 4664 addhanacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 4665 addhanacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 4666 addhanacmds(ESqlStatementType.sstcreatepse, TBaseType.rrw_create, "pse", " ", " ", " ", " ", " "); 4667 addhanacmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create, "public", "synonym", " ", " ", " ", " "); 4668 addhanacmds(ESqlStatementType.sstcreateremotesource, TBaseType.rrw_create, "remote", "source", " ", " ", " ", " "); 4669 addhanacmds(ESqlStatementType.sstcreateuser, TBaseType.rrw_create, "restricted", "user", " ", " ", " ", " "); 4670 addhanacmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "role", " ", " ", " ", " ", " "); 4671 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "row", "table", " ", " ", " ", " "); 4672 addhanacmds(ESqlStatementType.sstcreatesamlprovider, TBaseType.rrw_create, "saml", "provider", " ", " ", " ", " "); 4673 addhanacmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 4674 addhanacmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 4675 addhanacmds(ESqlStatementType.sstcreatestatistics, TBaseType.rrw_create, "statistics", " ", " ", " ", " ", " "); 4676 addhanacmds(ESqlStatementType.sstcreatestructuredprivilege, TBaseType.rrw_create, "structured", "privilege", " ", " ", " ", " "); 4677 addhanacmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create, "synonym", " ", " ", " ", " ", " "); 4678 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 4679 addhanacmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "trigger", " ", " ", " ", " ", " "); 4680 addhanacmds(ESqlStatementType.sstcreatetype, TBaseType.rrw_create, "type", " ", " ", " ", " ", " "); 4681 addhanacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "unique", "index", " ", " ", " ", " "); 4682 addhanacmds(ESqlStatementType.sstcreateuser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 4683 addhanacmds(ESqlStatementType.sstcreateusergroup, TBaseType.rrw_create, "usergroup", " ", " ", " ", " ", " "); 4684 addhanacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 4685 addhanacmds(ESqlStatementType.sstcreatevirtualfunction, TBaseType.rrw_create, "virtual", "function", " ", " ", " ", " "); 4686 addhanacmds(ESqlStatementType.sstcreatevirtualtable, TBaseType.rrw_create, "virtual", "table", " ", " ", " ", " "); 4687 addhanacmds(ESqlStatementType.sstcreateworkloadclass, TBaseType.rrw_create, "workload", "class", " ", " ", " ", " "); 4688 addhanacmds(ESqlStatementType.sstcreateworkloadmapping, TBaseType.rrw_create, "workload", "mapping", " ", " ", " ", " "); 4689 4690//DELETE 4691 addhanacmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 4692 4693 addhanacmds(ESqlStatementType.sstdobeginend, TBaseType.rrw_do, "begin", " ", " ", " ", " ", " "); 4694 4695//drop 4696 addhanacmds(ESqlStatementType.sstdropauditpolicy, TBaseType.rrw_drop, "audit", "policy", " ", " ", " ", " "); 4697 addhanacmds(ESqlStatementType.sstdropcertificate, TBaseType.rrw_drop, "certificate", " ", " ", " ", " ", " "); 4698 addhanacmds(ESqlStatementType.sstdropcollection, TBaseType.rrw_drop, "collection", " ", " ", " ", " ", " "); 4699 addhanacmds(ESqlStatementType.sstdropcredential, TBaseType.rrw_drop, "credential", " ", " ", " ", " ", " "); 4700 addhanacmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 4701 addhanacmds(ESqlStatementType.sstdropfulltextindex, TBaseType.rrw_drop, "fulltext", "index", " ", " ", " ", " "); 4702 addhanacmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 4703 addhanacmds(ESqlStatementType.sstdropgraphworkspace, TBaseType.rrw_drop, "graph", "workspace", " ", " ", " ", " "); 4704 addhanacmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index", " ", " ", " ", " ", " "); 4705 addhanacmds(ESqlStatementType.sstdropJWTProvider, TBaseType.rrw_drop, "jwt", "provider", " ", " ", " ", " "); 4706 addhanacmds(ESqlStatementType.sstdropLDAPProvider, TBaseType.rrw_drop, "ldap", "provider", " ", " ", " ", " "); 4707 addhanacmds(ESqlStatementType.sstdropprocedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 4708 addhanacmds(ESqlStatementType.sstdroppse, TBaseType.rrw_drop, "pse", " ", " ", " ", " ", " "); 4709 addhanacmds(ESqlStatementType.sstdropsynonym, TBaseType.rrw_drop, "public", "synonym", " ", " ", " ", " "); 4710 addhanacmds(ESqlStatementType.sstdropremotesource, TBaseType.rrw_drop, "remote", "source", " ", " ", " ", " "); 4711 addhanacmds(ESqlStatementType.sstdroprole, TBaseType.rrw_drop, "role", " ", " ", " ", " ", " "); 4712 addhanacmds(ESqlStatementType.sstdropsamlprovider, TBaseType.rrw_drop, "saml", "provider", " ", " ", " ", " "); 4713 addhanacmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 4714 addhanacmds(ESqlStatementType.sstdropsequence, TBaseType.rrw_drop, "sequence", " ", " ", " ", " ", " "); 4715 addhanacmds(ESqlStatementType.sstdropstatistics, TBaseType.rrw_drop, "statistics", " ", " ", " ", " ", " "); 4716 addhanacmds(ESqlStatementType.sstdropstructuredprivilege, TBaseType.rrw_drop, "structured", "privilege", " ", " ", " ", " "); 4717 addhanacmds(ESqlStatementType.sstdropsynonym, TBaseType.rrw_drop, "synonym", " ", " ", " ", " ", " "); 4718 addhanacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 4719 addhanacmds(ESqlStatementType.sstdroptrigger, TBaseType.rrw_drop, "trigger", " ", " ", " ", " ", " "); 4720 addhanacmds(ESqlStatementType.sstdroptype, TBaseType.rrw_drop, "type", " ", " ", " ", " ", " "); 4721 addhanacmds(ESqlStatementType.sstdropuser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 4722 addhanacmds(ESqlStatementType.sstdropusergroup, TBaseType.rrw_drop, "usergroup", " ", " ", " ", " ", " "); 4723 addhanacmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 4724 addhanacmds(ESqlStatementType.sstdropworkloadclass, TBaseType.rrw_drop, "workload", "class", " ", " ", " ", " "); 4725 addhanacmds(ESqlStatementType.sstdropworkloadmapping, TBaseType.rrw_drop, "workload", "mapping", " ", " ", " ", " "); 4726 4727 addhanacmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, "plan", " ", " ", " ", " ", " "); 4728 addhanacmds(ESqlStatementType.sstexport, TBaseType.rrw_hana_export, " ", " ", " ", " ", " ", " "); 4729 4730//GRANT 4731 addhanacmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 4732 4733 addhanacmds(ESqlStatementType.sstimport, TBaseType.rrw_hana_import, " ", " ", " ", " ", " ", " "); 4734 addhanacmds(ESqlStatementType.sstimportfrom, TBaseType.rrw_hana_import, "from", " ", " ", " ", " ", " "); 4735 addhanacmds(ESqlStatementType.sstimportscan, TBaseType.rrw_hana_import, "scan", " ", " ", " ", " ", " "); 4736 4737//insert 4738 addhanacmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 4739 4740// 4741 addhanacmds(ESqlStatementType.sstload, TBaseType.rrw_load, " ", " ", " ", " ", " ", " "); 4742 addhanacmds(ESqlStatementType.sstlocktable, TBaseType.rrw_lock, "table", " ", " ", " ", " ", " "); 4743 4744 addhanacmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, "into", " ", " ", " ", " ", " "); 4745 4746 addhanacmds(ESqlStatementType.sstmergedelta, TBaseType.rrw_merge, "delta", " ", " ", " ", " ", " "); 4747 addhanacmds(ESqlStatementType.sstmergedelta, TBaseType.rrw_merge,"history","delta"," "," "," "," "); 4748 4749 addhanacmds(ESqlStatementType.sstrecoverdata, TBaseType.rrw_hana_recover,"data"," "," "," "," "," "); 4750 addhanacmds(ESqlStatementType.sstrecoverdatabase, TBaseType.rrw_hana_recover, "database", " ", " ", " ", " ", " "); 4751 addhanacmds(ESqlStatementType.sstrefreshstatistics, TBaseType.rrw_refresh, "statistics", " ", " ", " ", " ", " "); 4752 addhanacmds(ESqlStatementType.sstrenamecollection, TBaseType.rrw_rename,"collection"," "," "," "," "," "); 4753 addhanacmds(ESqlStatementType.sstrenamecolumn, TBaseType.rrw_rename,"column"," "," "," "," "," "); 4754 addhanacmds(ESqlStatementType.sstrenamedatabase, TBaseType.rrw_rename,"database"," "," "," "," "," "); 4755 addhanacmds(ESqlStatementType.sstrenameindex, TBaseType.rrw_rename,"index"," "," "," "," "," "); 4756 addhanacmds(ESqlStatementType.sstrenametable, TBaseType.rrw_rename,"table"," "," "," "," "," "); 4757 addhanacmds(ESqlStatementType.sstreplace, TBaseType.rrw_replace, " ", " ", " ", " ", " ", " "); 4758 4759 addhanacmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 4760 4761 addhanacmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 4762 4763 addhanacmds(ESqlStatementType.sstsavepoint, TBaseType.rrw_savepoint, " ", " ", " ", " ", " ", " "); 4764//SELECT 4765 addhanacmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 4766 4767//SET 4768 addhanacmds(ESqlStatementType.sstset, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 4769 addhanacmds(ESqlStatementType.sssethistorysession, TBaseType.rrw_set, "history", "session", " ", " ", " ", " "); 4770 addhanacmds(ESqlStatementType.sstsetpse, TBaseType.rrw_set, "pse", " ", " ", " ", " ", " "); 4771 addhanacmds(ESqlStatementType.sstsetschema, TBaseType.rrw_set, "schema", " ", " ", " ", " ", " "); 4772 addhanacmds(ESqlStatementType.sstsetsystemlicense, TBaseType.rrw_set, "system", "license", " ", " ", " ", " "); 4773 addhanacmds(ESqlStatementType.sstsettransaction, TBaseType.rrw_set, "transaction", " ", " ", " ", " ", " "); 4774 addhanacmds(ESqlStatementType.sstsettransactionautocommit, TBaseType.rrw_set, "transaction", "autocommit", " ", " ", " ", " "); 4775 4776 addhanacmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 4777 4778 4779//TRUNCATE TABLE 4780 addhanacmds(ESqlStatementType.ssttruncatecollection, TBaseType.rrw_truncate, "collection", " ", " ", " ", " ", " "); 4781 addhanacmds(ESqlStatementType.ssttruncatetable, TBaseType.rrw_truncate, "table", " ", " ", " ", " ", " "); 4782 addhanacmds(ESqlStatementType.sstunload, TBaseType.rrw_hana_unload, " ", " ", " ", " ", " ", " "); 4783 addhanacmds(ESqlStatementType.sstunset, TBaseType.rrw_hana_unset, " ", " ", " ", " ", " ", " "); 4784 addhanacmds(ESqlStatementType.sstunsetpse, TBaseType.rrw_hana_unset, "pse", " ", " ", " ", " ", " "); 4785 addhanacmds(ESqlStatementType.sstunsetsystemlicense, TBaseType.rrw_hana_unset, "system", "license", " ", " ", " ", " "); 4786 4787//UPDATE 4788 addhanacmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 4789 4790 addhanacmds(ESqlStatementType.sstupsert, TBaseType.rrw_hana_upsert, " ", " ", " ", " ", " ", " "); 4791 addhanacmds(ESqlStatementType.sstvalidateLDAPProvider, TBaseType.rrw_hana_validate, "ldap", "provider", " ", " ", " ", " "); 4792 addhanacmds(ESqlStatementType.sstvalidateUser, TBaseType.rrw_hana_validate, "user", " ", " ", " ", " ", " "); 4793 4794 } 4795 4796ESqlStatementType findsybasecmd(TSourceToken ptoken){ 4797 if (sybasecmds.size() == 0) {initsybasecmds();} 4798 return finddbcmd(ptoken,sybasecmds); 4799} 4800 4801 ESqlStatementType findmssqlcmd(TSourceToken ptoken){ 4802 if (mssqlcmds.size() == 0) {initmssqlcmds();} 4803 return finddbcmd(ptoken,mssqlcmds); 4804 } 4805 4806 ESqlStatementType findteradatacmd(TSourceToken ptoken){ 4807 if (teradatacmds.size() == 0) {initteradatacmds();} 4808 return finddbcmd(ptoken,teradatacmds); 4809} 4810 4811ESqlStatementType findpostgresqlcmd(TSourceToken ptoken){ 4812 if (postgresqlcmds.size() == 0) {initpostgresqlcmds();} 4813 return finddbcmd(ptoken,postgresqlcmds); 4814} 4815 4816 ESqlStatementType findredshiftcmd(TSourceToken ptoken){ 4817 if (redshiftcmds.size() == 0) {initredshiftcmds();} 4818 return finddbcmd(ptoken,redshiftcmds); 4819 } 4820 4821 4822 ESqlStatementType findgreenplumcmd(TSourceToken ptoken){ 4823 if (greenplumcmds.size() == 0) {initgreenplumcmds();} 4824 return finddbcmd(ptoken,greenplumcmds); 4825} 4826 4827 4828ESqlStatementType findnetezzacmd(TSourceToken ptoken){ 4829 if (netezzacmds.size() == 0) {initnetezzacmds();} 4830 return finddbcmd(ptoken,netezzacmds); 4831} 4832 4833ESqlStatementType findsparksqlcmd(TSourceToken ptoken){ 4834 if (sparksqlcmds.size() == 0) {initsparksqlcmds();} 4835 return finddbcmd(ptoken,sparksqlcmds); 4836 } 4837 4838ESqlStatementType finddatabrickscmd(TSourceToken ptoken){ 4839 if (databrickscmds.size() == 0) {initdatabrickscmds();} 4840 return finddbcmd(ptoken,databrickscmds); 4841} 4842 ESqlStatementType findgaussdbcmd(TSourceToken ptoken){ 4843 if (gaussdbcmds.size() == 0) {initgaussdbcmds();} 4844 return finddbcmd(ptoken,gaussdbcmds); 4845 } 4846ESqlStatementType findprestocmd(TSourceToken ptoken){ 4847 if (prestocmds.size() == 0) {initprestocmds();} 4848 return finddbcmd(ptoken,prestocmds); 4849} 4850 4851ESqlStatementType findathenacmd(TSourceToken ptoken){ 4852 if (athenacmds.size() == 0) {initathenacmds();} 4853 return finddbcmd(ptoken,athenacmds); 4854} 4855 4856ESqlStatementType findmysqlcmd(TSourceToken ptoken){ 4857 if (mysqlcmds.size() == 0) {initmysqlcmds();} 4858 return finddbcmd(ptoken,mysqlcmds); 4859} 4860 4861ESqlStatementType findhivecmd(TSourceToken ptoken){ 4862 if (hivecmds.size() == 0) {inithivecmds();} 4863 return finddbcmd(ptoken,hivecmds); 4864 } 4865 4866ESqlStatementType finddb2cmd(TSourceToken ptoken){ 4867 if (db2cmds.size() == 0) {initdb2cmds();} 4868 return finddbcmd(ptoken,db2cmds); 4869 } 4870 4871 4872ESqlStatementType findoraclecmd(TSourceToken ptoken){ 4873 if (oraclecmds.size() == 0) {initoraclecmds();} 4874 return finddbcmd(ptoken,oraclecmds); 4875 } 4876 4877ESqlStatementType findmdxcmd(TSourceToken ptoken){ 4878 if (mdxcmds.size() == 0) {initmdxcmds();} 4879 return finddbcmd(ptoken,mdxcmds); 4880 } 4881 4882ESqlStatementType findinformixcmd(TSourceToken ptoken){ 4883 if (informixcmds.size() == 0) {initinformixcmds();} 4884 return finddbcmd(ptoken,informixcmds); 4885 } 4886 4887ESqlStatementType findhanacmd(TSourceToken ptoken){ 4888 if (hanacmds.size() == 0) {inithanacmds();} 4889 return finddbcmd(ptoken,hanacmds); 4890} 4891 4892ESqlStatementType findverticacmd(TSourceToken ptoken){ 4893 if (verticacmds.size() == 0) {initverticacmds();} 4894 return finddbcmd(ptoken,verticacmds); 4895} 4896 4897ESqlStatementType findcouchbasecmd(TSourceToken ptoken){ 4898 if (couchbasecmds.size() == 0) {initcouchbasecmds();} 4899 return finddbcmd(ptoken,couchbasecmds); 4900} 4901 4902ESqlStatementType findsnowflakecmd(TSourceToken ptoken){ 4903 if (snowflakecmds.size() == 0) {initsnowflakecmds();} 4904 return finddbcmd(ptoken,snowflakecmds); 4905} 4906 4907ESqlStatementType findbigquerycmd(TSourceToken ptoken){ 4908 if (bigquerycmds.size() == 0) {initbigquerycmds();} 4909 return finddbcmd(ptoken,bigquerycmds); 4910} 4911 4912TCustomSqlStatement isnetezza(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 4913 TCustomSqlStatement ret = null; 4914 4915 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 4916 4917 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 4918 || (pcst.tokencode == TBaseType.cmtslashstar) 4919 || (pcst.tokencode == TBaseType.lexspace) 4920 || (pcst.tokencode == TBaseType.lexnewline) 4921 || (pcst.tokentype == ETokenType.ttsemicolon) ) 4922 { 4923 return null; 4924 } 4925 4926 int lcpos = pcst.posinlist; 4927 TSourceTokenList lcsourcetokenlist = pcst.container; 4928 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 4929 4930 //subquery after semicolon or at first line 4931 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 4932 { 4933 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 4934 if ( k >0 ) 4935 { 4936 ret = new TSelectSqlStatement(pdbvendor); 4937 } 4938 4939 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_with,1,"("); // ( with 4940 if ( k >0 ) 4941 { 4942 ret = new TSelectSqlStatement(pdbvendor); 4943 } 4944 4945 return ret; 4946 } 4947 4948 //cte 4949 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 4950 { 4951 ret = findcte(pcst,pdbvendor); 4952 if ( (ret != null) ) return ret; 4953 } 4954 4955 gnewsqlstatementtype = findnetezzacmd(pcst); 4956 4957 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 4958 switch (gnewsqlstatementtype) { // 4959 case sstinvalid: 4960 { 4961 ret = null; 4962 4963 if ( pstate == EFindSqlStateType.stnormal ) 4964 { 4965 } 4966 break; 4967 } 4968 case sstselect: 4969 { 4970 boolean lcisnewsql = true; 4971 4972 if ( pstate != EFindSqlStateType.stnormal ) 4973 { 4974 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 4975 if ( (lcprevsolidtoken != null) ) 4976 { 4977 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 4978 lcisnewsql = false; //subqery 4979 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 4980 lcisnewsql = false; 4981 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 4982 lcisnewsql = false; 4983 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 4984 lcisnewsql = false; 4985 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 4986 lcisnewsql = false; 4987 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 4988 lcisnewsql = false; 4989 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 4990 { 4991 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 4992 lcisnewsql = false; 4993 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 4994 lcisnewsql = false; 4995 } 4996 4997 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 4998 { 4999 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 5000 if ( (lcpprevsolidtoken != null) ) 5001 { 5002 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 5003 lcisnewsql = false; 5004 } 5005 } 5006 5007 } 5008 5009 5010 if ( (lccurrentsqlstatement != null) ) 5011 { 5012 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 5013 lcisnewsql = false; 5014 } 5015 5016 } 5017 5018 if ( lcisnewsql ) 5019 ret = new TSelectSqlStatement(pdbvendor); 5020 5021 break; 5022 } 5023 case sstinsert: 5024 { 5025 boolean lcisnewsql = true; 5026 if ( pstate != EFindSqlStateType.stnormal ) 5027 { 5028 if ( (lccurrentsqlstatement != null) ) 5029 { 5030 5031 } 5032 } 5033 5034 if ( lcisnewsql ) 5035 ret = new TInsertSqlStatement(pdbvendor); 5036 5037 break; 5038 } 5039 case sstupdate: 5040 { 5041 boolean lcisnewsql = true; 5042 if ( pstate != EFindSqlStateType.stnormal ) 5043 { 5044 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5045 if ( (lcprevsolidtoken != null) ) 5046 { // 5047 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 5048 lcisnewsql = false; 5049 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 5050 lcisnewsql = false; 5051 } 5052 5053 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 5054 if ( (lcnextsolidtoken != null) ) 5055 { 5056 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 5057 { 5058 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 5059 if ( k == 0 ) lcisnewsql = false; 5060 } 5061 } 5062 5063 5064 if ( (lccurrentsqlstatement != null) ) 5065 { 5066 } 5067 } 5068 5069 if ( lcisnewsql ) 5070 { 5071 ret = new TUpdateSqlStatement(pdbvendor); 5072 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 5073 } 5074 break; 5075 } 5076 case sstdelete: 5077 { 5078 boolean lcisnewsql = true; 5079 5080 if ( pstate != EFindSqlStateType.stnormal ) 5081 { 5082 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5083 if ( (lcprevsolidtoken != null) ) 5084 { 5085 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 5086 lcisnewsql = false; 5087 } 5088 5089 if ( (lccurrentsqlstatement != null) ) 5090 { 5091 } 5092 } 5093 5094 if ( lcisnewsql ) 5095 ret = new TDeleteSqlStatement(pdbvendor); 5096 5097 break; 5098 } 5099 case sstTruncate: 5100 { 5101 ret = new TTruncateStatement(pdbvendor); 5102 ret.sqlstatementtype = gnewsqlstatementtype; 5103 break; 5104 } 5105 case sstcreatetable: 5106 case sstnetezzaCreateExternalTable: 5107 { 5108 ret = new TCreateTableSqlStatement(pdbvendor); 5109 break; 5110 } 5111 case sstcreateview: 5112 { 5113 ret = new TCreateViewSqlStatement(pdbvendor); 5114 break; 5115 } 5116 case sstcreatematerializedview:{ 5117 ret = new TCreateMaterializedSqlStatement(pdbvendor); 5118 break; 5119 } 5120 case sstcreatedatabase: 5121 { 5122 ret = new TCreateDatabaseSqlStatement(pdbvendor); 5123 break; 5124 } 5125 case sstdroptable: 5126 { 5127 ret = new TDropTableSqlStatement(pdbvendor); 5128 break; 5129 } 5130 case sstdropview: 5131 { 5132 ret = new TDropViewSqlStatement(pdbvendor); 5133 break; 5134 } 5135 case sstaltertable: 5136 { 5137 ret = new TAlterTableStatement(pdbvendor); 5138 break; 5139 } 5140 case sstaltersession: 5141 { 5142 ret = new TAlterSessionStatement(pdbvendor); 5143 break; 5144 } 5145 case sstnetezzaGroomTable: 5146 { 5147 ret = new TNetezzaGroomTable(pdbvendor); 5148 break; 5149 } 5150 case sstnetezzaGenerateStatistics: 5151 { 5152 ret = new TNetezzaGenerateStatistics(pdbvendor); 5153 break; 5154 } 5155 case sstnetezzaAlterTable: 5156 { 5157 ret = new TAlterTableStatement(pdbvendor); 5158 break; 5159 } 5160 case sstnetezzaDropSchema: 5161 { 5162 ret = new TDropSchemaSqlStatement(pdbvendor); 5163 break; 5164 } 5165 case sstnetezzaCreateUser: 5166 { 5167 ret = new TCreateUserStmt(pdbvendor); 5168 break; 5169 } 5170 case sstnetezzaAlterView: 5171 { 5172 ret = new TAlterViewStatement(pdbvendor); 5173 break; 5174 } 5175 case sstnetezzaAlterDatabase: 5176 { 5177 ret = new TAlterDatabaseStmt(pdbvendor); 5178 break; 5179 } 5180 case sstAlterSchema: 5181 { 5182 ret = new TAlterSchemaStmt(pdbvendor); 5183 break; 5184 } 5185 case sstAlterSynonym: 5186 { 5187 ret = new TAlterSynonymStmt(pdbvendor); 5188 break; 5189 } 5190 case sstnetezzaDropTable: 5191 { 5192 ret = new TDropTableSqlStatement(pdbvendor); 5193 break; 5194 } 5195 case sstnetezzaDropView: 5196 { 5197 ret = new TDropViewSqlStatement(pdbvendor); 5198 break; 5199 } 5200 case sstmerge: 5201 { 5202 ret = new TMergeSqlStatement(pdbvendor); 5203 break; 5204 } 5205 case sstdropprocedure: 5206 { 5207 ret = new TDropProcedureStmt(pdbvendor); 5208 break; 5209 } 5210 case sstdropsynonym: 5211 ret = new TDropSynonymStmt(pdbvendor); 5212 break; 5213 case sstdropdatabase: 5214 ret = new TDropDatabaseStmt(pdbvendor); 5215 break; 5216 case sstcall: 5217 ret = new TCallStatement(pdbvendor); 5218 break; 5219 case sstcreatesynonym: 5220 ret = new TCreateSynonymStmt(pdbvendor); 5221 break; 5222 case sstcreatesequence: 5223 ret = new TCreateSequenceStmt(pdbvendor); 5224 break; 5225 case sstnetezzaDropSequence: 5226 ret = new TDropSequenceStmt(pdbvendor); 5227 break; 5228 case sstnetezzaGrant: 5229 ret = new TGrantStmt(pdbvendor); 5230 break; 5231 case sstexecutestmt: 5232 ret = new TExecuteSqlStatement(pdbvendor); 5233 break; 5234 case sstlocktable: 5235 ret = new TLockTableStmt(pdbvendor); 5236 break; 5237 case sstnetezzaComment: 5238 ret = new TCommentOnSqlStmt(pdbvendor); 5239 break; 5240 case sstcreateprocedure: 5241 ret = new TCreateProcedureStmt(pdbvendor); 5242 break; 5243 case sstnetezzaCopy: 5244 ret = new TCopyStmt(pdbvendor); 5245 break; 5246 case sstExplain: 5247 ret = new TExplainPlan(pdbvendor); 5248 break; 5249 case sstSetCatalog: 5250 ret = new TSetCatalogStmt(pdbvendor); 5251 break; 5252 case sstSetSchema: 5253 ret = new TSetSchemaStmt(pdbvendor); 5254 break; 5255 case sstnetezzaCommit: 5256 case sstnetezzaRollback: 5257 case sstnetezzaRevoke: 5258 default: 5259 { 5260 ret = new TUnknownSqlStatement(pdbvendor); 5261 ret.sqlstatementtype = gnewsqlstatementtype; 5262 break; 5263 } 5264 } // case 5265 5266 return ret; 5267} 5268 5269 TCustomSqlStatement isredshift(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 5270 TCustomSqlStatement ret = null; 5271 5272 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 5273 5274 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 5275 || (pcst.tokencode == TBaseType.cmtslashstar) 5276 || (pcst.tokencode == TBaseType.lexspace) 5277 || (pcst.tokencode == TBaseType.lexnewline) 5278 || (pcst.tokentype == ETokenType.ttsemicolon) ) 5279 { 5280 return null; 5281 } 5282 5283 int lcpos = pcst.posinlist; 5284 TSourceTokenList lcsourcetokenlist = pcst.container; 5285 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 5286 5287 //subquery after semicolon or at first line 5288 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 5289 { 5290 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 5291 if ( k >0 ) 5292 { 5293 ret = new TSelectSqlStatement(pdbvendor); 5294 } 5295 5296 return ret; 5297 } 5298 5299 //cte 5300 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 5301 { 5302 ret = findcte(pcst,pdbvendor); 5303 if ( (ret != null) ) return ret; 5304 } 5305 5306 gnewsqlstatementtype = findredshiftcmd(pcst); 5307 5308 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5309 switch (gnewsqlstatementtype) { // 5310 case sstinvalid: 5311 { 5312 ret = null; 5313 break; 5314 } 5315 case sstselect: 5316 { 5317 boolean lcisnewsql = true; 5318 5319 if ( pstate != EFindSqlStateType.stnormal ) 5320 { 5321 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5322 if ( (lcprevsolidtoken != null) ) 5323 { 5324 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 5325 lcisnewsql = false; //subqery 5326 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 5327 lcisnewsql = false; 5328 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 5329 lcisnewsql = false; 5330 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 5331 lcisnewsql = false; 5332 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 5333 lcisnewsql = false; 5334 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 5335 lcisnewsql = false; 5336 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 5337 { 5338 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 5339 lcisnewsql = false; 5340 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 5341 lcisnewsql = false; 5342 } 5343 5344 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 5345 { 5346 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 5347 if ( (lcpprevsolidtoken != null) ) 5348 { 5349 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 5350 lcisnewsql = false; 5351 } 5352 } 5353 5354 } 5355 5356 5357 if ( (lccurrentsqlstatement != null) ) 5358 { 5359 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 5360 lcisnewsql = false; 5361 } 5362 5363 } 5364 5365 if ( lcisnewsql ) 5366 ret = new TSelectSqlStatement(pdbvendor); 5367 5368 break; 5369 } 5370 case sstinsert: 5371 { 5372 boolean lcisnewsql = true; 5373 if ( pstate != EFindSqlStateType.stnormal ) 5374 { 5375 if ( (lccurrentsqlstatement != null) ) 5376 { 5377 5378 } 5379 } 5380 5381 if ( lcisnewsql ) 5382 ret = new TInsertSqlStatement(pdbvendor); 5383 5384 break; 5385 } 5386 case sstupdate: 5387 { 5388 boolean lcisnewsql = true; 5389 if ( pstate != EFindSqlStateType.stnormal ) 5390 { 5391 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5392 if ( (lcprevsolidtoken != null) ) 5393 { // 5394 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 5395 lcisnewsql = false; 5396 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 5397 lcisnewsql = false; 5398 } 5399 5400 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 5401 if ( (lcnextsolidtoken != null) ) 5402 { 5403 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 5404 { 5405 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 5406 if ( k == 0 ) lcisnewsql = false; 5407 } 5408 } 5409 5410 5411 if ( (lccurrentsqlstatement != null) ) 5412 { 5413 } 5414 } 5415 5416 if ( lcisnewsql ) 5417 { 5418 ret = new TUpdateSqlStatement(pdbvendor); 5419 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 5420 } 5421 break; 5422 } 5423 case sstdelete: 5424 { 5425 boolean lcisnewsql = true; 5426 5427 if ( pstate != EFindSqlStateType.stnormal ) 5428 { 5429 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5430 if ( (lcprevsolidtoken != null) ) 5431 { 5432 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 5433 lcisnewsql = false; 5434 } 5435 5436 if ( (lccurrentsqlstatement != null) ) 5437 { 5438 } 5439 } 5440 5441 if ( lcisnewsql ) 5442 ret = new TDeleteSqlStatement(pdbvendor); 5443 5444 break; 5445 } 5446 case sstredshiftAbort: 5447 { 5448 ret = new TRedshiftAbort(pdbvendor); 5449 ret.sqlstatementtype = gnewsqlstatementtype; 5450 break; 5451 } 5452 case sstalterdatabase: 5453 { 5454 ret = new TAlterDatabaseStmt(pdbvendor); 5455 break; 5456 } 5457 case sstredshiftAlterGroup: 5458 { 5459 ret = new TAlterGroup(pdbvendor); 5460 break; 5461 } 5462 case sstredshiftAlterSchema: 5463 { 5464 ret = new TRedshiftAlterSchema(pdbvendor); 5465 break; 5466 } 5467 case sstaltertable: 5468 { 5469 ret = new TAlterTableStatement(pdbvendor); 5470 break; 5471 } 5472 case sstredshiftAlterUser: 5473 { 5474 ret = new TRedshiftAlterUser(pdbvendor); 5475 break; 5476 } 5477 case sstredshiftAnalyze: 5478 { 5479 ret = new TRedshiftAnalyze(pdbvendor); 5480 break; 5481 } 5482 case sstredshiftAnalyzeCompression: 5483 { 5484 ret = new TRedshiftAnalyzeCompression(pdbvendor); 5485 break; 5486 } 5487 case sstredshiftBegin: 5488 { 5489 ret = new TRedshiftBegin(pdbvendor); 5490 break; 5491 } 5492 case sstredshiftCancel: 5493 { 5494 ret = new TRedshiftCancel(pdbvendor); 5495 break; 5496 } 5497 case sstredshiftClose: 5498 { 5499 ret = new TCloseStmt(pdbvendor); 5500 break; 5501 } 5502 case sstredshiftComment: 5503 { 5504 ret = new TRedshiftComment(pdbvendor); 5505 break; 5506 } 5507 case sstredshiftCommit: 5508 { 5509 ret = new TRedshiftCommit(pdbvendor); 5510 break; 5511 } 5512 case sstredshiftCopy: 5513 { 5514 ret = new TRedshiftCopy(pdbvendor); 5515 break; 5516 } 5517 case sstcreatedatabase: 5518 { 5519 ret = new TCreateDatabaseSqlStatement(pdbvendor); 5520 break; 5521 } 5522 case sstredshiftCreateGroup: 5523 { 5524 ret = new TCreateGroup(pdbvendor); 5525 break; 5526 } 5527 case sstredshiftCreateSchema: 5528 { 5529 ret = new TCreateSchemaSqlStatement(pdbvendor); 5530 break; 5531 } 5532 case sstcreatetable: 5533 { 5534 ret = new TCreateTableSqlStatement(pdbvendor); 5535 break; 5536 } 5537 case sstredshiftCreateUser: 5538 { 5539 ret = new TRedshiftCreateUser(pdbvendor); 5540 break; 5541 } 5542 case sstcreateview: 5543 { 5544 ret = new TCreateViewSqlStatement(pdbvendor); 5545 break; 5546 } 5547 case sstredshiftDeallocate: 5548 { 5549 ret = new TRedshiftDeallocate(pdbvendor); 5550 break; 5551 } 5552 case sstredshiftDeclare: 5553 { 5554 ret = new TRedshiftDeclare(pdbvendor); 5555 break; 5556 } 5557 case sstredshiftDropDatabase: 5558 { 5559 ret = new TDropDatabaseStmt(pdbvendor); 5560 break; 5561 } 5562 case sstredshiftDropGroup: 5563 { 5564 ret = new TDropGroup(pdbvendor); 5565 break; 5566 } 5567 case sstredshiftDropSchema: 5568 { 5569 ret = new TRedshiftDropSchema(pdbvendor); 5570 break; 5571 } 5572 case sstdroptable: 5573 { 5574 ret = new TDropTableSqlStatement(pdbvendor); 5575 break; 5576 } 5577 case sstredshiftDropUser: 5578 { 5579 ret = new TRedshiftDropUser(pdbvendor); 5580 break; 5581 } 5582 case sstdropview: 5583 { 5584 ret = new TDropViewSqlStatement(pdbvendor); 5585 break; 5586 } 5587 case sstredshiftEnd: 5588 { 5589 ret = new TRedshiftEnd(pdbvendor); 5590 break; 5591 } 5592 case sstExecutePreparedStmt: 5593 { 5594 ret = new TExecuteSqlStatement(pdbvendor); 5595 break; 5596 } 5597 case sstExplain: 5598 { 5599 ret = new TExplainPlan(pdbvendor); 5600 break; 5601 } 5602 case sstFetchFrom: 5603 { 5604 ret = new TFetchFromStmt(pdbvendor); 5605 break; 5606 } 5607 case sstGrant: 5608 { 5609 ret = new TGrantStmt(pdbvendor); 5610 break; 5611 } 5612 case sstredshiftLock: 5613 { 5614 ret = new TLockTableStmt(pdbvendor); 5615 break; 5616 } 5617 case sstredshiftPrepare: 5618 { 5619 ret = new TRedshiftPrepare(pdbvendor); 5620 break; 5621 } 5622 case sstredshiftReset: 5623 { 5624 ret = new TRedshiftReset(pdbvendor); 5625 break; 5626 } 5627 case sstRevoke: 5628 { 5629 ret = new TRevokeStmt(pdbvendor); 5630 break; 5631 } 5632 case sstredshiftRollback: 5633 { 5634 ret = new TRedshiftRollback(pdbvendor); 5635 break; 5636 } 5637 case sstredshiftSet: 5638 { 5639 ret = new TSetStmt(pdbvendor); 5640 break; 5641 } 5642 case sstredshiftSetSessionAuthorization: 5643 { 5644 ret = new TRedshiftSessionAuthorization(pdbvendor); 5645 break; 5646 } 5647 case sstredshiftShow: 5648 { 5649 ret = new TShowStmt(pdbvendor); 5650 break; 5651 } 5652 case sstStartTransaction: 5653 { 5654 ret = new TStartTransactionStmt(pdbvendor); 5655 break; 5656 } 5657 case sstTruncate: 5658 { 5659 ret = new TTruncateStatement(pdbvendor); 5660 break; 5661 } 5662 case sstredshiftUnload: 5663 { 5664 ret = new TUnloadStmt(pdbvendor); 5665 break; 5666 } 5667 case sstredshiftVacuum: 5668 { 5669 ret = new TRedshiftVacuum(pdbvendor); 5670 break; 5671 } 5672 case sstcreatefunction: 5673 ret = new TCreateFunctionStmt(pdbvendor); 5674 break; 5675 case sstcreateprocedure: 5676 ret = new TCreateProcedureStmt(pdbvendor); 5677 break; 5678 case sstcreatematerializedview:{ 5679 ret = new TCreateMaterializedSqlStatement(pdbvendor); 5680 break; 5681 } 5682 case sstcall: 5683 ret = new TCallStatement(pdbvendor); 5684 break; 5685 case sstmerge: 5686 { 5687 ret = new TMergeSqlStatement(pdbvendor); 5688 break; 5689 } 5690 default: 5691 { 5692 ret = new TUnknownSqlStatement(pdbvendor); 5693 ret.sqlstatementtype = gnewsqlstatementtype; 5694 break; 5695 } 5696 } // case 5697 5698 return ret; 5699 } 5700 TCustomSqlStatement isgaussdb(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 5701 TCustomSqlStatement ret = null; 5702 5703 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 5704 5705 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 5706 || (pcst.tokencode == TBaseType.cmtslashstar) 5707 || (pcst.tokencode == TBaseType.lexspace) 5708 || (pcst.tokencode == TBaseType.lexnewline) 5709 || (pcst.tokentype == ETokenType.ttsemicolon) ) 5710 { 5711 return null; 5712 } 5713 5714 int lcpos = pcst.posinlist; 5715 TSourceTokenList lcsourcetokenlist = pcst.container; 5716 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 5717 5718 //subquery after semicolon or at first line 5719 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 5720 { 5721 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 5722 if ( k >0 ) 5723 { 5724 ret = new TSelectSqlStatement(pdbvendor); 5725 }else{ 5726 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_with,1,"("); 5727 if ( k >0 ) 5728 { // syntax like: (with ... ) 5729 ret = new TSelectSqlStatement(pdbvendor); 5730 } 5731 } 5732 5733 return ret; 5734 } 5735 5736 //cte 5737 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 5738 { 5739 ret = findcte(pcst,pdbvendor); 5740 if ( (ret != null) ) return ret; 5741 } 5742 5743 gnewsqlstatementtype = findgaussdbcmd(pcst); 5744 5745 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5746 switch (gnewsqlstatementtype) { // 5747 case sstinvalid: 5748 { 5749 ret = null; 5750 5751 if ( pstate == EFindSqlStateType.stnormal ) 5752 { 5753 if ( pcst.tokencode == TBaseType.label_begin ) 5754 { 5755 ret = new TCommonBlock(pdbvendor); 5756 gnewsqlstatementtype = ret.sqlstatementtype; 5757 5758 } 5759 else if ( pcst.tokencode == TBaseType.rrw_declare ) 5760 { 5761 ret = new TCommonBlock(pdbvendor); 5762 gnewsqlstatementtype = ret.sqlstatementtype; 5763 } 5764 else if ( pcst.tokencode == TBaseType.rrw_begin ) 5765 { 5766 // https://support.huaweicloud.com/distributed-devg-v3-opengauss/gaussdb-12-0498.html 5767 // 有两种可能 1:开启匿名块,或 2:开启事务 5768 boolean isBlock = true; 5769 TSourceToken st = pcst.nextSolidToken(); 5770 if (st != null){ 5771 if ((st.tokencode == ';') 5772 ||(st.toString().equalsIgnoreCase("work")) 5773 ||(st.toString().equalsIgnoreCase("transaction")) 5774 ){ 5775 isBlock = false; 5776 } 5777 } 5778 if (isBlock){ 5779 ret = new TCommonBlock(pdbvendor); 5780 gnewsqlstatementtype = ret.sqlstatementtype; 5781 }else{ 5782 ret = new TStartTransactionStmt(pdbvendor); 5783 gnewsqlstatementtype = ret.sqlstatementtype; 5784 pcst.tokencode = TBaseType.GAUSSDB_BEGIN_TRANSACTION; 5785 } 5786 5787 } 5788 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 5789 { 5790 ret = new TCreateProcedureStmt(pdbvendor); 5791 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 5792 gnewsqlstatementtype = ret.sqlstatementtype; 5793 } 5794 else if ( pcst.tokencode == TBaseType.rrw_function ) 5795 { 5796 ret = new TPlsqlCreateFunction(pdbvendor); 5797 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 5798 gnewsqlstatementtype = ret.sqlstatementtype; 5799 } 5800 else if ( pcst.tokencode == TBaseType.rrw_package ) 5801 { 5802 ret = new TPlsqlCreatePackage(pdbvendor); 5803 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 5804 gnewsqlstatementtype = ret.sqlstatementtype; 5805 } 5806 } 5807 break; 5808 } 5809 case sstpostgresqlDeclare:{ 5810 // https://support.huaweicloud.com/distributed-devg-v3-opengauss/gaussdb-12-0554.html 5811 // declare cursor_name [ BINARY ] [ NO SCROLL ] CURSOR ..., 这是单个的定义游标语句 5812 // 下面这种类型的定义才是开始一个 匿名块 5813 // [DECLARE [declare_statements]] 5814 //BEGIN 5815 //execution_statements 5816 //END; 5817 5818 // 判断逻辑如下: 5819 // 1. 如果 declare 后直接跟 CURSOR, 那就是开启一个 匿名块 5820 // 2. 如果 declare 后直接跟的是一个 identifier, 那再检查之后的第2或3或4个token是否为 CURSOR, 5821 // 如果是,该语句为 单个的定义游标语句,否则为 匿名块 5822 5823 boolean isBlock = true; 5824 TSourceToken st = pcst.nextSolidToken(); 5825 if (st != null){ 5826 if (st.tokencode == TBaseType.GAUSSDB_CURSOR){ 5827 isBlock = true; 5828 }else if (st.tokencode == TBaseType.ident){ 5829 st = st.nextSolidToken(); 5830 if (st != null){ 5831 if ((st.tokencode == TBaseType.GAUSSDB_CURSOR) 5832 ||(st.tokencode == TBaseType.rrw_binary) 5833 ||(st.toString().equalsIgnoreCase("no")) 5834 ){ 5835 isBlock = false; 5836 } 5837 } 5838 } 5839 } 5840 if (isBlock){ 5841 ret = new TCommonBlock(pdbvendor); 5842 gnewsqlstatementtype = ret.sqlstatementtype; 5843 }else{ 5844 ret = new TDeclareCursorStmt(pdbvendor); 5845 gnewsqlstatementtype = ret.sqlstatementtype; 5846 pcst.tokencode = TBaseType.GAUSSDB_DECLARE_SINGLE_STMT; 5847 } 5848 5849 break; 5850 } 5851 case sstmerge: 5852 { 5853 ret = new TMergeSqlStatement(pdbvendor); 5854 ret.sqlstatementtype = gnewsqlstatementtype; 5855 break; 5856 } 5857 case sstcreatesynonym: 5858 ret = new TCreateSynonymStmt(pdbvendor); 5859 break; 5860 case sstdropsynonym: 5861 ret = new TDropSynonymStmt(pdbvendor); 5862 break; 5863 case sstAlterPackage: 5864 ret = new TAlterPackageStmt(pdbvendor); 5865 break; 5866 case sstpostgresqlRefreshMaterializedView: 5867 ret = new TRefreshMaterializedViewStmt(pdbvendor); 5868 break; 5869 case sstAlterSynonym: 5870 ret = new TAlterSynonymStmt(pdbvendor); 5871 break; 5872 case sstsavepoint: 5873 { 5874 ret = new TSavepointStmt(pdbvendor); 5875 ret.sqlstatementtype = gnewsqlstatementtype; 5876 break; 5877 } 5878 case sstselect: 5879 { 5880 boolean lcisnewsql = true; 5881 5882 if ( pstate != EFindSqlStateType.stnormal ) 5883 { 5884 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5885 if ( (lcprevsolidtoken != null) ) 5886 { 5887 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 5888 lcisnewsql = false; //subqery 5889 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 5890 lcisnewsql = false; 5891 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 5892 lcisnewsql = false; 5893 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 5894 lcisnewsql = false; 5895 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 5896 lcisnewsql = false; 5897 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 5898 lcisnewsql = false; 5899 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 5900 { 5901 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 5902 lcisnewsql = false; 5903 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 5904 lcisnewsql = false; 5905 } 5906 5907 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 5908 { 5909 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 5910 if ( (lcpprevsolidtoken != null) ) 5911 { 5912 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 5913 lcisnewsql = false; 5914 } 5915 } 5916 5917 } 5918 5919 5920 if ( (lccurrentsqlstatement != null) ) 5921 { 5922 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 5923 lcisnewsql = false; 5924 } 5925 5926 } 5927 5928 if ( lcisnewsql ) 5929 ret = new TSelectSqlStatement(pdbvendor); 5930 5931 break; 5932 } 5933 case sstinsert: 5934 { 5935 boolean lcisnewsql = true; 5936 if ( pstate != EFindSqlStateType.stnormal ) 5937 { 5938 if ( (lccurrentsqlstatement != null) ) 5939 { 5940 5941 } 5942 } 5943 5944 if ( lcisnewsql ) 5945 ret = new TInsertSqlStatement(pdbvendor); 5946 5947 break; 5948 } 5949 case sstupdate: 5950 { 5951 boolean lcisnewsql = true; 5952 if ( pstate != EFindSqlStateType.stnormal ) 5953 { 5954 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5955 if ( (lcprevsolidtoken != null) ) 5956 { // 5957 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 5958 lcisnewsql = false; 5959 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 5960 lcisnewsql = false; 5961 } 5962 5963 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 5964 if ( (lcnextsolidtoken != null) ) 5965 { 5966 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 5967 { 5968 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 5969 if ( k == 0 ) lcisnewsql = false; 5970 } 5971 } 5972 5973 5974 if ( (lccurrentsqlstatement != null) ) 5975 { 5976 } 5977 } 5978 5979 if ( lcisnewsql ) 5980 { 5981 ret = new TUpdateSqlStatement(pdbvendor); 5982 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 5983 } 5984 break; 5985 } 5986 case sstdelete: 5987 { 5988 boolean lcisnewsql = true; 5989 5990 if ( pstate != EFindSqlStateType.stnormal ) 5991 { 5992 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5993 if ( (lcprevsolidtoken != null) ) 5994 { 5995 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 5996 lcisnewsql = false; 5997 } 5998 5999 if ( (lccurrentsqlstatement != null) ) 6000 { 6001 } 6002 } 6003 6004 if ( lcisnewsql ) 6005 ret = new TDeleteSqlStatement(pdbvendor); 6006 6007 break; 6008 } 6009 case sstoraclecommit: 6010 { 6011 ret = new TUnknownSqlStatement(pdbvendor); 6012 ret.sqlstatementtype = gnewsqlstatementtype; 6013 break; 6014 } 6015 case sstoraclerollback: 6016 { 6017 ret = new TUnknownSqlStatement(pdbvendor); 6018 ret.sqlstatementtype = gnewsqlstatementtype; 6019 break; 6020 } 6021 case sstoraclesavepoint: 6022 { 6023 ret = new TUnknownSqlStatement(pdbvendor); 6024 ret.sqlstatementtype = gnewsqlstatementtype; 6025 break; 6026 } 6027 case sstoraclerevoke: 6028 { 6029 ret = new TUnknownSqlStatement(pdbvendor); 6030 ret.sqlstatementtype = gnewsqlstatementtype; 6031 break; 6032 } 6033 case sstoraclegrant: 6034 { 6035 ret = new TUnknownSqlStatement(pdbvendor); 6036 //ret = new TGrantStmt(pdbvendor); 6037 ret.sqlstatementtype = gnewsqlstatementtype; 6038 break; 6039 } 6040 case sstoracleanalyze: 6041 { 6042 ret = new TUnknownSqlStatement(pdbvendor); 6043 ret.sqlstatementtype = gnewsqlstatementtype; 6044 break; 6045 } 6046 case sstoracletruncate: 6047 { 6048 ret = new TUnknownSqlStatement(pdbvendor); 6049 ret.sqlstatementtype = gnewsqlstatementtype; 6050 break; 6051 } 6052 case sstcreatetable: 6053 { 6054 ret = new TCreateTableSqlStatement(pdbvendor); 6055 break; 6056 } 6057 case sstoraclecreateview: 6058 { 6059 ret = new TCreateViewSqlStatement(pdbvendor); 6060 break; 6061 } 6062 case sstcreatematerializedview:{ 6063 ret = new TCreateMaterializedSqlStatement(pdbvendor); 6064 break; 6065 } 6066 case sstoraclecreateindex: 6067 { 6068 ret = new TCreateIndexSqlStatement(pdbvendor); 6069 break; 6070 } 6071 case sstoraclecreatedatabase: 6072 { 6073 ret = new TCreateDatabaseSqlStatement(pdbvendor); 6074 break; 6075 } 6076 case sstoracledroptable: 6077 { 6078 ret = new TDropTableSqlStatement(pdbvendor); 6079 break; 6080 } 6081 case sstoracledropview: 6082 { 6083 ret = new TDropViewSqlStatement(pdbvendor); 6084 break; 6085 } 6086 case sstoracledropindex: 6087 { 6088 ret = new TDropIndexSqlStatement(pdbvendor); 6089 break; 6090 } 6091 case sstaltertable: 6092 { 6093 ret = new TAlterTableStatement(pdbvendor); 6094 break; 6095 } 6096 case sstoraclealtersession: 6097 { 6098 ret = new TAlterSessionStatement(pdbvendor); 6099 break; 6100 } 6101 case sstplsql_createprocedure: 6102 { 6103 ret = new TPlsqlCreateProcedure(pdbvendor); 6104 ret.sqlstatementtype = gnewsqlstatementtype; 6105 // System.out.println(gnewsqlstatementtype); 6106 break; 6107 } 6108 case sstplsql_createfunction: 6109 { 6110 ret = new TPlsqlCreateFunction(pdbvendor); 6111 ret.sqlstatementtype = gnewsqlstatementtype; 6112 // System.out.println(gnewsqlstatementtype); 6113 break; 6114 } 6115 case sstplsql_createpackage: 6116 { 6117 ret = new TPlsqlCreatePackage(pdbvendor); 6118 ret.sqlstatementtype = gnewsqlstatementtype; 6119 // System.out.println(gnewsqlstatementtype); 6120 break; 6121 } 6122 case sstoraclecreatepackagebody: 6123 { 6124 ret = new TPlsqlCreatePackage(pdbvendor); 6125 ret.sqlstatementtype = gnewsqlstatementtype; 6126 //ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 6127 break; 6128 } 6129 case sstplsql_createtrigger: 6130 { 6131 ret = new TPlsqlCreateTrigger(pdbvendor); 6132 ret.sqlstatementtype = gnewsqlstatementtype; 6133 // System.out.println(gnewsqlstatementtype); 6134 break; 6135 } 6136 case sstplsql_execimmestmt: 6137 { 6138 ret = new TExecImmeStmt(pdbvendor); 6139 // ret.sqlstatementtype = gnewsqlstatementtype; 6140 // System.out.println(gnewsqlstatementtype); 6141 break; 6142 } 6143 case sstplsql_createtype_placeholder: 6144 { 6145 ret = new TPlsqlCreateType_Placeholder(pdbvendor); 6146 ret.sqlstatementtype = gnewsqlstatementtype; 6147 // System.out.println(gnewsqlstatementtype); 6148 break; 6149 } 6150 case sstplsql_createtypebody: 6151 { 6152 ret = new TPlsqlCreateTypeBody(pdbvendor); 6153 ret.sqlstatementtype = gnewsqlstatementtype; 6154 break; 6155 } 6156 case sstCommentOn: 6157 { 6158 ret = new TCommentOnSqlStmt(pdbvendor); 6159 break; 6160 } 6161 case sstoraclecreatesequence: 6162 { 6163 ret = new TCreateSequenceStmt(pdbvendor); 6164 break; 6165 } 6166 case sstoraclecreatesynonym: 6167 { 6168 ret = new TCreateSynonymStmt(pdbvendor); 6169 break; 6170 } 6171 case sstoraclecreatedirectory: 6172 { 6173 ret = new TOracleCreateDirectoryStmt(pdbvendor); 6174 break; 6175 } 6176 case sstpostgresqlCreateIndex: 6177 ret = new TCreateIndexSqlStatement(pdbvendor); 6178 break; 6179 case sstpostgresqlCreateView: 6180 ret = new TCreateViewSqlStatement(pdbvendor); 6181 break; 6182 case sstpostgresqlCreateFunction: 6183 ret = new TCreateFunctionStmt(pdbvendor); 6184 break; 6185 case sstcreatetrigger: 6186 ret = new TCreateTriggerStmt(pdbvendor); 6187 break; 6188 case sstpostgresqlMove: 6189 ret = new TMoveStmt(pdbvendor); 6190 break; 6191 case sstpostgresqlTruncate: 6192 ret = new TTruncateStatement(pdbvendor); 6193 break; 6194 case sstpostgresqlExecute: 6195 ret = new TExecuteSqlStatement(pdbvendor); 6196 break; 6197 case sstpostgresqlDropTable: 6198 ret = new TDropTableSqlStatement(pdbvendor); 6199 break; 6200 case sstPostgresqlBlock: 6201 ret = new TCommonBlock(pdbvendor); 6202 break; 6203 case sstVacuum: 6204 ret = new TVacuumStmt(pdbvendor); 6205 break; 6206 case sstReindex: 6207 ret = new TReindexStmt(pdbvendor); 6208 break; 6209 case sstcreateprocedure: 6210 ret = new TCreateProcedureStmt(pdbvendor); 6211 break; 6212 case sstpostgresqlCommit: 6213 ret = new TCommitStmt(pdbvendor); 6214 break; 6215 case sstpostgresqlCreateSchema: 6216 ret = new TCreateSchemaSqlStatement(pdbvendor); 6217 break; 6218 case sstpostgresqlDropSchema: 6219 ret = new TDropSchemaSqlStatement(pdbvendor); 6220 break; 6221 case sstpostgresqlShowSearchPath: 6222 ret = new TShowSearchPathStmt(pdbvendor); 6223 break; 6224 case sstpostgresqlCopy: 6225 ret = new TCopyStmt(pdbvendor); 6226 break; 6227 case sstcall: 6228 ret = new TCallStatement(pdbvendor); 6229 break; 6230 case sstpostgresqlAlterSchema: 6231 ret = new TAlterSchemaStmt(pdbvendor); 6232 break; 6233 case sstpostgresqlAlterfunction: 6234 ret = new TAlterFunctionStmt(pdbvendor); 6235 break; 6236 case sstStartTransaction: 6237 { 6238 ret = new TStartTransactionStmt(pdbvendor); 6239 break; 6240 } 6241 case sstpostgresqlComment: 6242 ret = new TCommentOnSqlStmt(pdbvendor); 6243 break; 6244 case sstpostgresqlShow: 6245 ret = new TShowStmt(pdbvendor); 6246 break; 6247 case sstpostgresqlSetSearchPath: 6248 case sstpostgresqlSet: 6249 ret = new TSetStmt(pdbvendor); 6250 break; 6251 case sstpostgresqlDropFunction: 6252 ret = new TDropFunctionStmt(pdbvendor); 6253 break; 6254 case sstpostgresqlDropTrigger: 6255 ret = new TDropTriggerSqlStatement(pdbvendor); 6256 break; 6257 case sstpostgresqlDropProcedure: 6258 ret = new TDropProcedureStmt(pdbvendor); 6259 break; 6260 case sstdropindex: 6261 ret = new TDropIndexSqlStatement(pdbvendor); 6262 break; 6263 case sstpostgresqlDropSequence: 6264 ret = new TDropSequenceStmt(pdbvendor); 6265 break; 6266 case sstpostgresqlDropView: 6267 ret = new TDropViewSqlStatement(pdbvendor); 6268 break; 6269 case sstpostgresqlCreateSequence: 6270 ret = new TCreateSequenceStmt(pdbvendor); 6271 break; 6272 case sstpostgresqlAlterSequence: 6273 ret = new TAlterSequenceStatement(pdbvendor); 6274 break; 6275 case sstpostgresqlCreateType: 6276 ret = new TCreateTypeStmt(pdbvendor); 6277 break; 6278 case sstcreateExtension: 6279 ret = new TCreateExtensionStmt(pdbvendor); 6280 break; 6281 case sstPostgresqlTable: 6282 ret = new TPostgresqlTableStmt(pdbvendor); 6283 break; 6284 case sstpostgresqlEnd: 6285 ret = new TEndTran(pdbvendor); 6286 break; 6287 case sstpostgresqlDo: 6288 boolean lcisnewsql = false; 6289 6290 if ( pstate == EFindSqlStateType.stnormal ) 6291 { 6292 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 6293 if ( (lcnextsolidtoken != null) ) 6294 { 6295 if ( lcnextsolidtoken.tokencode == TBaseType.rrw_postgresql_function_delimiter ) 6296 lcisnewsql = true; 6297 else if ( lcnextsolidtoken.tokencode == TBaseType.rrw_postgresql_language ) 6298 lcisnewsql = true; 6299 } 6300 } 6301 6302 if ( lcisnewsql ) 6303 ret = new TDoExecuteBlockStmt(pdbvendor); 6304 6305 break; 6306 default: 6307 { 6308 ret = new TUnknownSqlStatement(pdbvendor); 6309 ret.sqlstatementtype = gnewsqlstatementtype; 6310 break; 6311 } 6312 } // case 6313 6314 return ret; 6315 } 6316 6317 TCustomSqlStatement ispostgresql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 6318 TCustomSqlStatement ret = null; 6319 6320 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 6321 6322 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 6323 || (pcst.tokencode == TBaseType.cmtslashstar) 6324 || (pcst.tokencode == TBaseType.lexspace) 6325 || (pcst.tokencode == TBaseType.lexnewline) 6326 || (pcst.tokentype == ETokenType.ttsemicolon) ) 6327 { 6328 return null; 6329 } 6330 6331 int lcpos = pcst.posinlist; 6332 TSourceTokenList lcsourcetokenlist = pcst.container; 6333 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 6334 6335 //subquery after semicolon or at first line 6336 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 6337 { 6338 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 6339 if ( k >0 ) 6340 { 6341 ret = new TSelectSqlStatement(pdbvendor); 6342 } 6343 6344 return ret; 6345 } 6346 6347 //cte 6348 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 6349 { 6350 ret = findcte(pcst,pdbvendor); 6351 if ( (ret != null) ) return ret; 6352 } 6353 6354 gnewsqlstatementtype = findpostgresqlcmd(pcst); 6355 6356 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6357 switch (gnewsqlstatementtype) { // 6358 case sstinvalid: 6359 { 6360 ret = null; 6361 6362 if ( pstate == EFindSqlStateType.stnormal ) 6363 { 6364 if ( pcst.tokencode == TBaseType.label_begin ) 6365 { 6366 ret = new TCommonBlock(pdbvendor); 6367 gnewsqlstatementtype = ret.sqlstatementtype; 6368 } 6369 else if ( pcst.tokencode == TBaseType.rrw_declare ) 6370 { 6371 ret = new TCommonBlock(pdbvendor); 6372 gnewsqlstatementtype = ret.sqlstatementtype; 6373 } 6374 else if ( pcst.tokencode == TBaseType.rrw_begin ) 6375 { 6376 ret = new TCommonBlock(pdbvendor); 6377 gnewsqlstatementtype = ret.sqlstatementtype; 6378 } 6379 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 6380 { 6381 ret = new TCreateProcedureStmt(pdbvendor); 6382 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 6383 gnewsqlstatementtype = ret.sqlstatementtype; 6384 } 6385 else if ( pcst.tokencode == TBaseType.rrw_function ) 6386 { 6387 ret = new TPlsqlCreateFunction(pdbvendor); 6388 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 6389 gnewsqlstatementtype = ret.sqlstatementtype; 6390 } 6391 else if ( pcst.tokencode == TBaseType.rrw_package ) 6392 { 6393 ret = new TPlsqlCreatePackage(pdbvendor); 6394 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 6395 gnewsqlstatementtype = ret.sqlstatementtype; 6396 } 6397 } 6398 break; 6399 } 6400 case sstselect: 6401 { 6402 boolean lcisnewsql = true; 6403 6404 if ( pstate != EFindSqlStateType.stnormal ) 6405 { 6406 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6407 if ( (lcprevsolidtoken != null) ) 6408 { 6409 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 6410 lcisnewsql = false; //subqery 6411 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 6412 lcisnewsql = false; 6413 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 6414 lcisnewsql = false; 6415 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 6416 lcisnewsql = false; 6417 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 6418 lcisnewsql = false; 6419 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 6420 lcisnewsql = false; 6421 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 6422 { 6423 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 6424 lcisnewsql = false; 6425 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 6426 lcisnewsql = false; 6427 } 6428 6429 6430 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 6431 { 6432 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 6433 if ( (lcpprevsolidtoken != null) ) 6434 { 6435 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 6436 lcisnewsql = false; 6437 } 6438 } 6439 6440 } 6441 6442 6443 if ( (lccurrentsqlstatement != null) ) 6444 { 6445 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 6446 lcisnewsql = false; 6447 } 6448 6449 } 6450 6451 if ( lcisnewsql ) 6452 ret = new TSelectSqlStatement(pdbvendor); 6453 6454 break; 6455 } 6456 case sstinsert: 6457 { 6458 boolean lcisnewsql = true; 6459 if ( pstate != EFindSqlStateType.stnormal ) 6460 { 6461 if ( (lccurrentsqlstatement != null) ) 6462 { 6463 6464 } 6465 } 6466 6467 if ( lcisnewsql ) 6468 ret = new TInsertSqlStatement(pdbvendor); 6469 6470 break; 6471 } 6472 case sstupdate: 6473 { 6474 boolean lcisnewsql = true; 6475 if ( pstate != EFindSqlStateType.stnormal ) 6476 { 6477 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6478 if ( (lcprevsolidtoken != null) ) 6479 { // 6480 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 6481 lcisnewsql = false; 6482 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 6483 lcisnewsql = false; 6484 } 6485 6486 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 6487 if ( (lcnextsolidtoken != null) ) 6488 { 6489 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 6490 { 6491 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 6492 if ( k == 0 ) lcisnewsql = false; 6493 } 6494 } 6495 6496 6497 if ( (lccurrentsqlstatement != null) ) 6498 { 6499 } 6500 } 6501 6502 if ( lcisnewsql ) 6503 { 6504 ret = new TUpdateSqlStatement(pdbvendor); 6505 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 6506 } 6507 break; 6508 } 6509 case sstdelete: 6510 { 6511 boolean lcisnewsql = true; 6512 6513 if ( pstate != EFindSqlStateType.stnormal ) 6514 { 6515 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6516 if ( (lcprevsolidtoken != null) ) 6517 { 6518 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 6519 lcisnewsql = false; 6520 } 6521 6522 if ( (lccurrentsqlstatement != null) ) 6523 { 6524 } 6525 } 6526 6527 if ( lcisnewsql ) 6528 ret = new TDeleteSqlStatement(pdbvendor); 6529 6530 break; 6531 } 6532 case sstmerge: 6533 { 6534 ret = new TMergeSqlStatement(pdbvendor); 6535 ret.sqlstatementtype = gnewsqlstatementtype; 6536 break; 6537 } 6538 case sstoraclecommit: 6539 { 6540 ret = new TUnknownSqlStatement(pdbvendor); 6541 ret.sqlstatementtype = gnewsqlstatementtype; 6542 break; 6543 } 6544 case sstoraclerollback: 6545 { 6546 ret = new TUnknownSqlStatement(pdbvendor); 6547 ret.sqlstatementtype = gnewsqlstatementtype; 6548 break; 6549 } 6550 case sstoraclesavepoint: 6551 { 6552 ret = new TUnknownSqlStatement(pdbvendor); 6553 ret.sqlstatementtype = gnewsqlstatementtype; 6554 break; 6555 } 6556 case sstoraclerevoke: 6557 { 6558 ret = new TUnknownSqlStatement(pdbvendor); 6559 ret.sqlstatementtype = gnewsqlstatementtype; 6560 break; 6561 } 6562 case sstoraclegrant: 6563 { 6564 ret = new TUnknownSqlStatement(pdbvendor); 6565 //ret = new TGrantStmt(pdbvendor); 6566 ret.sqlstatementtype = gnewsqlstatementtype; 6567 break; 6568 } 6569 case sstoracleanalyze: 6570 { 6571 ret = new TUnknownSqlStatement(pdbvendor); 6572 ret.sqlstatementtype = gnewsqlstatementtype; 6573 break; 6574 } 6575 case sstoracletruncate: 6576 { 6577 ret = new TUnknownSqlStatement(pdbvendor); 6578 ret.sqlstatementtype = gnewsqlstatementtype; 6579 break; 6580 } 6581 case sstcreatetable: 6582 { 6583 ret = new TCreateTableSqlStatement(pdbvendor); 6584 break; 6585 } 6586 case sstoraclecreateview: 6587 { 6588 ret = new TCreateViewSqlStatement(pdbvendor); 6589 break; 6590 } 6591 case sstcreatematerializedview:{ 6592 ret = new TCreateMaterializedSqlStatement(pdbvendor); 6593 break; 6594 } 6595 case sstoraclecreateindex: 6596 { 6597 ret = new TCreateIndexSqlStatement(pdbvendor); 6598 break; 6599 } 6600 case sstoraclecreatedatabase: 6601 { 6602 ret = new TCreateDatabaseSqlStatement(pdbvendor); 6603 break; 6604 } 6605 case sstoracledroptable: 6606 { 6607 ret = new TDropTableSqlStatement(pdbvendor); 6608 break; 6609 } 6610 case sstoracledropview: 6611 { 6612 ret = new TDropViewSqlStatement(pdbvendor); 6613 break; 6614 } 6615 case sstoracledropindex: 6616 { 6617 ret = new TDropIndexSqlStatement(pdbvendor); 6618 break; 6619 } 6620 case sstaltertable: 6621 { 6622 ret = new TAlterTableStatement(pdbvendor); 6623 break; 6624 } 6625 case sstoraclealtersession: 6626 { 6627 ret = new TAlterSessionStatement(pdbvendor); 6628 break; 6629 } 6630 case sstplsql_createprocedure: 6631 { 6632 ret = new TPlsqlCreateProcedure(pdbvendor); 6633 ret.sqlstatementtype = gnewsqlstatementtype; 6634 // System.out.println(gnewsqlstatementtype); 6635 break; 6636 } 6637 case sstplsql_createfunction: 6638 { 6639 ret = new TPlsqlCreateFunction(pdbvendor); 6640 ret.sqlstatementtype = gnewsqlstatementtype; 6641 // System.out.println(gnewsqlstatementtype); 6642 break; 6643 } 6644 case sstplsql_createpackage: 6645 { 6646 ret = new TPlsqlCreatePackage(pdbvendor); 6647 ret.sqlstatementtype = gnewsqlstatementtype; 6648 // System.out.println(gnewsqlstatementtype); 6649 break; 6650 } 6651 case sstplsql_createtrigger: 6652 { 6653 ret = new TPlsqlCreateTrigger(pdbvendor); 6654 ret.sqlstatementtype = gnewsqlstatementtype; 6655 // System.out.println(gnewsqlstatementtype); 6656 break; 6657 } 6658 case sstplsql_execimmestmt: 6659 { 6660 ret = new TExecImmeStmt(pdbvendor); 6661 // ret.sqlstatementtype = gnewsqlstatementtype; 6662 // System.out.println(gnewsqlstatementtype); 6663 break; 6664 } 6665 case sstoraclecreatepackagebody: 6666 { 6667 ret = new TPlsqlCreatePackage(pdbvendor); 6668 ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 6669 break; 6670 } 6671 case sstplsql_createtype_placeholder: 6672 { 6673 ret = new TPlsqlCreateType_Placeholder(pdbvendor); 6674 ret.sqlstatementtype = gnewsqlstatementtype; 6675 // System.out.println(gnewsqlstatementtype); 6676 break; 6677 } 6678 case sstplsql_createtypebody: 6679 { 6680 ret = new TPlsqlCreateTypeBody(pdbvendor); 6681 ret.sqlstatementtype = gnewsqlstatementtype; 6682 break; 6683 } 6684 case sstCommentOn: 6685 { 6686 ret = new TCommentOnSqlStmt(pdbvendor); 6687 break; 6688 } 6689 case sstoraclecreatesequence: 6690 { 6691 ret = new TCreateSequenceStmt(pdbvendor); 6692 break; 6693 } 6694 case sstoraclecreatesynonym: 6695 { 6696 ret = new TCreateSynonymStmt(pdbvendor); 6697 break; 6698 } 6699 case sstoraclecreatedirectory: 6700 { 6701 ret = new TOracleCreateDirectoryStmt(pdbvendor); 6702 break; 6703 } 6704 case sstpostgresqlCreateIndex: 6705 ret = new TCreateIndexSqlStatement(pdbvendor); 6706 break; 6707 case sstpostgresqlCreateView: 6708 ret = new TCreateViewSqlStatement(pdbvendor); 6709 break; 6710 case sstpostgresqlCreateFunction: 6711 ret = new TCreateFunctionStmt(pdbvendor); 6712 break; 6713 case sstcreatetrigger: 6714 ret = new TCreateTriggerStmt(pdbvendor); 6715 break; 6716 case sstpostgresqlMove: 6717 ret = new TMoveStmt(pdbvendor); 6718 break; 6719 case sstpostgresqlTruncate: 6720 ret = new TTruncateStatement(pdbvendor); 6721 break; 6722 case sstpostgresqlExecute: 6723 ret = new TExecuteSqlStatement(pdbvendor); 6724 break; 6725 case sstpostgresqlDropTable: 6726 ret = new TDropTableSqlStatement(pdbvendor); 6727 break; 6728 case sstPostgresqlBlock: 6729 ret = new TCommonBlock(pdbvendor); 6730 break; 6731 case sstVacuum: 6732 ret = new TVacuumStmt(pdbvendor); 6733 break; 6734 case sstReindex: 6735 ret = new TReindexStmt(pdbvendor); 6736 break; 6737 case sstcreateprocedure: 6738 ret = new TCreateProcedureStmt(pdbvendor); 6739 break; 6740 case sstpostgresqlCommit: 6741 ret = new TCommitStmt(pdbvendor); 6742 break; 6743 case sstpostgresqlCreateSchema: 6744 ret = new TCreateSchemaSqlStatement(pdbvendor); 6745 break; 6746 case sstpostgresqlDropSchema: 6747 ret = new TDropSchemaSqlStatement(pdbvendor); 6748 break; 6749 case sstpostgresqlShowSearchPath: 6750 ret = new TShowSearchPathStmt(pdbvendor); 6751 break; 6752 case sstpostgresqlCopy: 6753 ret = new TCopyStmt(pdbvendor); 6754 break; 6755 case sstcall: 6756 ret = new TCallStatement(pdbvendor); 6757 break; 6758 case sstpostgresqlAlterSchema: 6759 ret = new TAlterSchemaStmt(pdbvendor); 6760 break; 6761 case sstpostgresqlAlterfunction: 6762 ret = new TAlterFunctionStmt(pdbvendor); 6763 break; 6764 case sstStartTransaction: 6765 { 6766 ret = new TStartTransactionStmt(pdbvendor); 6767 break; 6768 } 6769 case sstpostgresqlComment: 6770 ret = new TCommentOnSqlStmt(pdbvendor); 6771 break; 6772 case sstpostgresqlShow: 6773 ret = new TShowStmt(pdbvendor); 6774 break; 6775 case sstpostgresqlSetSearchPath: 6776 case sstpostgresqlSet: 6777 ret = new TSetStmt(pdbvendor); 6778 break; 6779 case sstpostgresqlDropFunction: 6780 ret = new TDropFunctionStmt(pdbvendor); 6781 break; 6782 case sstpostgresqlDropTrigger: 6783 ret = new TDropTriggerSqlStatement(pdbvendor); 6784 break; 6785 case sstpostgresqlDropProcedure: 6786 ret = new TDropProcedureStmt(pdbvendor); 6787 break; 6788 case sstdropindex: 6789 ret = new TDropIndexSqlStatement(pdbvendor); 6790 break; 6791 case sstpostgresqlDropSequence: 6792 ret = new TDropSequenceStmt(pdbvendor); 6793 break; 6794 case sstpostgresqlDropView: 6795 ret = new TDropViewSqlStatement(pdbvendor); 6796 break; 6797 case sstpostgresqlCreateSequence: 6798 ret = new TCreateSequenceStmt(pdbvendor); 6799 break; 6800 case sstpostgresqlAlterSequence: 6801 ret = new TAlterSequenceStatement(pdbvendor); 6802 break; 6803 case sstpostgresqlCreateType: 6804 ret = new TCreateTypeStmt(pdbvendor); 6805 break; 6806 case sstcreateExtension: 6807 ret = new TCreateExtensionStmt(pdbvendor); 6808 break; 6809 case sstPostgresqlTable: 6810 ret = new TPostgresqlTableStmt(pdbvendor); 6811 break; 6812 case sstpostgresqlDropMaterializedView: 6813 ret = new TDropMaterializedViewStmt(pdbvendor); 6814 break; 6815 case sstpostgresqlDo: 6816 boolean lcisnewsql = false; 6817 6818 if ( pstate == EFindSqlStateType.stnormal ) 6819 { 6820 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 6821 if ( (lcnextsolidtoken != null) ) 6822 { 6823 if ( lcnextsolidtoken.tokencode == TBaseType.rrw_postgresql_function_delimiter ) 6824 lcisnewsql = true; 6825 else if ( lcnextsolidtoken.tokencode == TBaseType.rrw_postgresql_language ) 6826 lcisnewsql = true; 6827 } 6828 } 6829 6830 if ( lcisnewsql ) 6831 ret = new TDoExecuteBlockStmt(pdbvendor); 6832 6833 break; 6834 case sstpostgresqlDeclare: 6835 ret = new TCommonBlock(pdbvendor); 6836 gnewsqlstatementtype = ret.sqlstatementtype; 6837 break; 6838 case sstpostgresqlExplain: 6839 ret = new TExplainPlan(pdbvendor); 6840 gnewsqlstatementtype = ret.sqlstatementtype; 6841 break; 6842 case sstpostgresqlCreateRole: 6843 ret = new TCreateRoleStmt(pdbvendor); 6844 break; 6845 case sstpostgresqlAlterRole: 6846 ret = new TAlterRoleStmt(pdbvendor); 6847 break; 6848 case sstpostgresqlAlterIndex: 6849 ret = new TAlterIndexStmt(pdbvendor); 6850 break; 6851 default: 6852 { 6853 ret = new TUnknownSqlStatement(pdbvendor); 6854 ret.sqlstatementtype = gnewsqlstatementtype; 6855 break; 6856 } 6857 } // case 6858 6859 return ret; 6860 } 6861 6862 6863 6864TCustomSqlStatement isbigquery(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 6865 TCustomSqlStatement ret = null; 6866 6867 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 6868 6869 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 6870 || (pcst.tokencode == TBaseType.cmtslashstar) 6871 || (pcst.tokencode == TBaseType.lexspace) 6872 || (pcst.tokencode == TBaseType.lexnewline) 6873 || (pcst.tokentype == ETokenType.ttsemicolon) ) 6874 { 6875 return null; 6876 } 6877 6878 int lcpos = pcst.posinlist; 6879 TSourceTokenList lcsourcetokenlist = pcst.container; 6880 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 6881 6882 //subquery after semicolon or at first line 6883 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 6884 { 6885 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 6886 if ( k >0 ) 6887 { 6888 ret = new TSelectSqlStatement(pdbvendor); 6889 } 6890 6891 return ret; 6892 } 6893 6894 //cte 6895 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 6896 { 6897 ret = findcte(pcst,pdbvendor); 6898 if ( (ret != null) ) return ret; 6899 } 6900 6901 gnewsqlstatementtype = findbigquerycmd(pcst); 6902 6903 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6904 switch (gnewsqlstatementtype) { // 6905 case sstinvalid: 6906 { 6907 ret = null; 6908 6909 if ( pstate == EFindSqlStateType.stnormal ) 6910 { 6911 if ( pcst.tokencode == TBaseType.rrw_begin ) 6912 { 6913 6914 ret = new TCommonBlock(pdbvendor); 6915 gnewsqlstatementtype = ret.sqlstatementtype; 6916 } 6917 6918 } 6919 break; 6920 } 6921 case sstselect: 6922 { 6923 boolean lcisnewsql = true; 6924 6925 if ( pstate != EFindSqlStateType.stnormal ) 6926 { 6927 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6928 if ( (lcprevsolidtoken != null) ) 6929 { 6930 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 6931 lcisnewsql = false; //subqery 6932 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 6933 lcisnewsql = false; 6934 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 6935 lcisnewsql = false; 6936 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 6937 lcisnewsql = false; 6938 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 6939 lcisnewsql = false; 6940 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 6941 lcisnewsql = false; 6942 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 6943 { 6944 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 6945 lcisnewsql = false; 6946 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 6947 lcisnewsql = false; 6948 } 6949 6950 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 6951 { 6952 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 6953 if ( (lcpprevsolidtoken != null) ) 6954 { 6955 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 6956 lcisnewsql = false; 6957 } 6958 } 6959 6960 } 6961 6962 6963 if ( (lccurrentsqlstatement != null) ) 6964 { 6965 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 6966 lcisnewsql = false; 6967 } 6968 6969 } 6970 6971 if ( lcisnewsql ) 6972 ret = new TSelectSqlStatement(pdbvendor); 6973 6974 break; 6975 } 6976 case sstinsert: 6977 { 6978 boolean lcisnewsql = true; 6979 if ( pstate != EFindSqlStateType.stnormal ) 6980 { 6981 if ( (lccurrentsqlstatement != null) ) 6982 { 6983 6984 } 6985 } 6986 6987 if ( lcisnewsql ) 6988 ret = new TInsertSqlStatement(pdbvendor); 6989 6990 break; 6991 } 6992 case sstupdate: 6993 { 6994 boolean lcisnewsql = true; 6995 if ( pstate != EFindSqlStateType.stnormal ) 6996 { 6997 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6998 if ( (lcprevsolidtoken != null) ) 6999 { // 7000 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 7001 lcisnewsql = false; 7002 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 7003 lcisnewsql = false; 7004 } 7005 7006 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 7007 if ( (lcnextsolidtoken != null) ) 7008 { 7009 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 7010 { 7011 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 7012 if ( k == 0 ) lcisnewsql = false; 7013 } 7014 } 7015 7016 7017 if ( (lccurrentsqlstatement != null) ) 7018 { 7019 } 7020 } 7021 7022 if ( lcisnewsql ) 7023 { 7024 ret = new TUpdateSqlStatement(pdbvendor); 7025 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 7026 } 7027 break; 7028 } 7029 case sstdelete: 7030 { 7031 boolean lcisnewsql = true; 7032 7033 if ( pstate != EFindSqlStateType.stnormal ) 7034 { 7035 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7036 if ( (lcprevsolidtoken != null) ) 7037 { 7038 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 7039 lcisnewsql = false; 7040 } 7041 7042 if ( (lccurrentsqlstatement != null) ) 7043 { 7044 } 7045 } 7046 7047 if ( lcisnewsql ) 7048 ret = new TDeleteSqlStatement(pdbvendor); 7049 7050 break; 7051 } 7052 case sstmerge: 7053 { 7054 ret = new TMergeSqlStatement(pdbvendor); 7055 ret.sqlstatementtype = gnewsqlstatementtype; 7056 break; 7057 } 7058 case sstcreatetable: 7059 { 7060 ret = new TCreateTableSqlStatement(pdbvendor); 7061 break; 7062 } 7063 case sstcreateview:{ 7064 ret = new TCreateViewSqlStatement(pdbvendor); 7065 break; 7066 } 7067 case sstaltertable: 7068 { 7069 ret = new TAlterTableStatement(pdbvendor); 7070 break; 7071 } 7072 case sstalterview: 7073 { 7074 ret = new TAlterViewStatement(pdbvendor); 7075 break; 7076 } 7077 case sstdroptable: 7078 { 7079 ret = new TDropTableSqlStatement(pdbvendor); 7080 break; 7081 } 7082 case sstdropview: 7083 { 7084 ret = new TDropViewSqlStatement(pdbvendor); 7085 break; 7086 } 7087 case sstcreatefunction: 7088 { 7089 ret = new TCreateFunctionStmt(pdbvendor); 7090 break; 7091 } 7092 case sstcreateprocedure: 7093 { 7094 ret = new TCreateProcedureStmt(pdbvendor); 7095 break; 7096 } 7097 case sstBigQueryDeclare: 7098 ret = new TMssqlDeclare(pdbvendor); 7099 break; 7100 case sstTruncate: 7101 { 7102 ret = new TTruncateStatement(pdbvendor); 7103 break; 7104 } 7105 case sstset: 7106 { 7107 boolean lcisnewsql = true; 7108 if ( pstate != EFindSqlStateType.stnormal ) 7109 { 7110 if ( TBaseType.assigned(lccurrentsqlstatement) ) 7111 { 7112 lcisnewsql = false; 7113 } 7114 } 7115 7116 if ( lcisnewsql ) 7117 { 7118 ret = new TSetStmt(pdbvendor); 7119 } 7120 break; 7121 } 7122 case sstcreatematerializedview:{ 7123 ret = new TCreateMaterializedSqlStatement(pdbvendor); 7124 break; 7125 } 7126 case sstdropprocedure: 7127 { 7128 ret = new TDropProcedureStmt(pdbvendor); 7129 break; 7130 } 7131 case sstdropfunction: 7132 { 7133 ret = new TDropFunctionStmt(pdbvendor); 7134 break; 7135 } 7136 case sstDropMaterializedView: 7137 ret = new TDropMaterializedViewStmt(pdbvendor); 7138 break; 7139 case sstcall: 7140 ret = new TCallStatement(pdbvendor); 7141 break; 7142 case sstBigQueryExportData: 7143 ret = new TExportDataStmt(pdbvendor); 7144 break; 7145 case sstBegin: 7146 { 7147 boolean isblock = false; 7148 int numOfSolidToken = 0; 7149 // if linebreak appears before the ;, then it a block, else it a 7150 TSourceToken st ; 7151 if (lcpos == lcsourcetokenlist.size() - 1){ 7152 // this is the last token 7153 }else{ 7154 for(int i=lcpos+1;i<lcsourcetokenlist.size();i++){ 7155 st = lcsourcetokenlist.get(i); 7156 if (st.issolidtoken()){ 7157 numOfSolidToken++; 7158 } 7159 7160 7161 7162 if (st.tokencode == ';') { 7163 if (numOfSolidToken<=3){ 7164 7165 }else{ 7166 isblock = true; 7167 } 7168 break; 7169 } 7170 7171 if (numOfSolidToken > 3){ 7172 isblock = true; 7173 break; 7174 } 7175 } 7176 } 7177 7178 if (isblock){ 7179 ret = new TCommonBlock(pdbvendor); 7180 gnewsqlstatementtype = ret.sqlstatementtype; 7181 }else{ 7182 ret = new TBeginTran(pdbvendor); 7183 pcst.tokencode = TBaseType.rrw_bigquery_begin_transaction; 7184 } 7185 7186 7187 break; 7188 } 7189 case sstbegintran: 7190 { 7191 ret = new TBeginTran(pdbvendor); 7192 if (pcst.tokencode == TBaseType.rrw_begin){ 7193 pcst.tokencode = TBaseType.rrw_bigquery_begin_transaction; 7194 } 7195 7196 break; 7197 } 7198 case sstExecute: 7199 { 7200 ret = new TExecImmeStmt(pdbvendor); 7201 break; 7202 } 7203 case sst_ifstmt: 7204 ret = new TIfStmt(pdbvendor); 7205 break; 7206 case sst_loopstmt: 7207 ret = new TLoopStmt(pdbvendor); 7208 break; 7209 case sstRepeat: 7210 ret = new TRepeatStmt(pdbvendor); 7211 break; 7212 case sstWhilestmt: 7213 ret = new TWhileStmt(pdbvendor); 7214 break; 7215 case sstForStmt: 7216 ret = new TForStmt(pdbvendor); 7217 break; 7218 case sst_casestmt: 7219 ret = new TCaseStmt(pdbvendor); 7220 break; 7221 case sstDropAssignment: 7222 ret = new TDropStmt(pdbvendor); 7223 break; 7224 case sstdropschema: 7225 ret = new TDropSchemaSqlStatement(pdbvendor); 7226 break; 7227 case sstDropReservation: 7228 ret = new TDropStmt(pdbvendor); 7229 break; 7230 case sstDropRowAccessPolicy: 7231 ret = new TDropStmt(pdbvendor); 7232 break; 7233 case sstDropSnapshotTable: 7234 ret = new TDropStmt(pdbvendor); 7235 break; 7236 case sstDropTableFunction: 7237 ret = new TDropStmt(pdbvendor); 7238 break; 7239 default: 7240 { 7241 ret = new TUnknownSqlStatement(pdbvendor); 7242 ret.sqlstatementtype = gnewsqlstatementtype; 7243 break; 7244 } 7245 } // case 7246 7247 return ret; 7248 } 7249 7250TCustomSqlStatement issnowflake(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 7251 TCustomSqlStatement ret = null; 7252 7253 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 7254 7255 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 7256 || (pcst.tokencode == TBaseType.cmtslashstar) 7257 || (pcst.tokencode == TBaseType.lexspace) 7258 || (pcst.tokencode == TBaseType.lexnewline) 7259 || (pcst.tokentype == ETokenType.ttsemicolon) ) 7260 { 7261 return null; 7262 } 7263 7264 int lcpos = pcst.posinlist; 7265 TSourceTokenList lcsourcetokenlist = pcst.container; 7266 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 7267 7268 //subquery after semicolon or at first line 7269 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 7270 { 7271 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 7272 if ( k >0 ) 7273 { 7274 ret = new TSelectSqlStatement(pdbvendor); 7275 } 7276 else{ 7277 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_with,1,"("); 7278 int k2 = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_as,3,"("); 7279 if (( k >0 ) && (k2 > 2)) 7280 { 7281 ret = new TSelectSqlStatement(pdbvendor); 7282 } 7283 7284 } 7285 7286 return ret; 7287 } 7288 7289 //cte 7290 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 7291 { 7292 ret = findcte(pcst,pdbvendor); 7293 if ( (ret != null) ) return ret; 7294 } 7295 7296 gnewsqlstatementtype = findsnowflakecmd(pcst); 7297 7298 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7299 switch (gnewsqlstatementtype) { // 7300 case sstinvalid: 7301 { 7302 ret = null; 7303 7304 if ( pstate == EFindSqlStateType.stnormal ) 7305 { 7306 if ( pcst.tokencode == TBaseType.label_begin ) 7307 { 7308 ret = new TCommonBlock(pdbvendor); 7309 gnewsqlstatementtype = ret.sqlstatementtype; 7310 } 7311 else if ( pcst.tokencode == TBaseType.rrw_declare ) 7312 { 7313 ret = new TCommonBlock(pdbvendor); 7314 gnewsqlstatementtype = ret.sqlstatementtype; 7315 } 7316 else if ( pcst.tokencode == TBaseType.rrw_begin ) 7317 { 7318 ret = new TCommonBlock(pdbvendor); 7319 gnewsqlstatementtype = ret.sqlstatementtype; 7320 } 7321 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 7322 { 7323 ret = new TPlsqlCreateProcedure(pdbvendor); 7324 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 7325 gnewsqlstatementtype = ret.sqlstatementtype; 7326 } 7327 else if ( pcst.tokencode == TBaseType.rrw_function ) 7328 { 7329 ret = new TPlsqlCreateFunction(pdbvendor); 7330 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 7331 gnewsqlstatementtype = ret.sqlstatementtype; 7332 } 7333 else if ( pcst.tokencode == TBaseType.rrw_package ) 7334 { 7335 ret = new TPlsqlCreatePackage(pdbvendor); 7336 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 7337 gnewsqlstatementtype = ret.sqlstatementtype; 7338 } 7339 } 7340 break; 7341 } 7342 case sstselect: 7343 { 7344 boolean lcisnewsql = true; 7345 7346 if ( pstate != EFindSqlStateType.stnormal ) 7347 { 7348 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7349 if ( (lcprevsolidtoken != null) ) 7350 { 7351 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 7352 lcisnewsql = false; //subqery 7353 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 7354 lcisnewsql = false; 7355 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 7356 lcisnewsql = false; 7357 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 7358 lcisnewsql = false; 7359 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 7360 lcisnewsql = false; 7361 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 7362 lcisnewsql = false; 7363 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 7364 { 7365 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 7366 lcisnewsql = false; 7367 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 7368 lcisnewsql = false; 7369 } 7370 7371 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 7372 { 7373 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 7374 if ( (lcpprevsolidtoken != null) ) 7375 { 7376 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 7377 lcisnewsql = false; 7378 } 7379 } 7380 7381 } 7382 7383 7384 if ( (lccurrentsqlstatement != null) ) 7385 { 7386 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 7387 lcisnewsql = false; 7388 } 7389 7390 } 7391 7392 if ( lcisnewsql ) 7393 ret = new TSelectSqlStatement(pdbvendor); 7394 7395 break; 7396 } 7397 case sstinsert: 7398 { 7399 boolean lcisnewsql = true; 7400 if ( pstate != EFindSqlStateType.stnormal ) 7401 { 7402 if ( (lccurrentsqlstatement != null) ) 7403 { 7404 7405 } 7406 } 7407 7408 if ( lcisnewsql ) 7409 ret = new TInsertSqlStatement(pdbvendor); 7410 7411 break; 7412 } 7413 case sstupdate: 7414 { 7415 boolean lcisnewsql = true; 7416 if ( pstate != EFindSqlStateType.stnormal ) 7417 { 7418 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7419 if ( (lcprevsolidtoken != null) ) 7420 { // 7421 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 7422 lcisnewsql = false; 7423 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 7424 lcisnewsql = false; 7425 } 7426 7427 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 7428 if ( (lcnextsolidtoken != null) ) 7429 { 7430 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 7431 { 7432 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 7433 if ( k == 0 ) lcisnewsql = false; 7434 } 7435 } 7436 7437 7438 if ( (lccurrentsqlstatement != null) ) 7439 { 7440 } 7441 } 7442 7443 if ( lcisnewsql ) 7444 { 7445 ret = new TUpdateSqlStatement(pdbvendor); 7446 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 7447 } 7448 break; 7449 } 7450 case sstdelete: 7451 { 7452 boolean lcisnewsql = true; 7453 7454 if ( pstate != EFindSqlStateType.stnormal ) 7455 { 7456 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7457 if ( (lcprevsolidtoken != null) ) 7458 { 7459 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 7460 lcisnewsql = false; 7461 } 7462 7463 if ( (lccurrentsqlstatement != null) ) 7464 { 7465 } 7466 } 7467 7468 if ( lcisnewsql ) 7469 ret = new TDeleteSqlStatement(pdbvendor); 7470 7471 break; 7472 } 7473 case sstmerge: 7474 { 7475 ret = new TMergeSqlStatement(pdbvendor); 7476 ret.sqlstatementtype = gnewsqlstatementtype; 7477 break; 7478 } 7479 case sstoraclecommit: 7480 { 7481 ret = new TUnknownSqlStatement(pdbvendor); 7482 ret.sqlstatementtype = gnewsqlstatementtype; 7483 break; 7484 } 7485 case sstoraclerollback: 7486 { 7487 ret = new TUnknownSqlStatement(pdbvendor); 7488 ret.sqlstatementtype = gnewsqlstatementtype; 7489 break; 7490 } 7491 case sstoraclerevoke: 7492 { 7493 ret = new TUnknownSqlStatement(pdbvendor); 7494 ret.sqlstatementtype = gnewsqlstatementtype; 7495 break; 7496 } 7497 case sstoraclegrant: 7498 { 7499 ret = new TUnknownSqlStatement(pdbvendor); 7500 ret.sqlstatementtype = gnewsqlstatementtype; 7501 break; 7502 } 7503 case sstcreatetable: 7504 { 7505 ret = new TCreateTableSqlStatement(pdbvendor); 7506 break; 7507 } 7508 case sstoraclecreateview: 7509 { 7510 ret = new TCreateViewSqlStatement(pdbvendor); 7511 break; 7512 } 7513 case sstAlterAccount: 7514 { 7515 ret = new TAlterAccountStmt(pdbvendor); 7516 break; 7517 } 7518 case sstalterdatabase: 7519 { 7520 ret = new TAlterDatabaseStmt(pdbvendor); 7521 break; 7522 } 7523 case sstAlterFileFormat: 7524 { 7525 ret = new TAlterFileFormatStmt(pdbvendor); 7526 break; 7527 } 7528 case sstalterfunction: 7529 { 7530 ret = new TAlterFunctionStmt(pdbvendor); 7531 break; 7532 } 7533 case sstAlterNetworkPolicy: 7534 { 7535 ret = new TAlterNetworkPolicyStmt(pdbvendor); 7536 break; 7537 } 7538 case sstAlterPipe: 7539 { 7540 ret = new TAlterPipeStmt(pdbvendor); 7541 break; 7542 } 7543 case sstAlterResourceMonitor: 7544 { 7545 ret = new TAlterResourceMonitorStmt(pdbvendor); 7546 break; 7547 } 7548 case sstAlterRole: 7549 { 7550 ret = new TAlterRoleStmt(pdbvendor); 7551 break; 7552 } 7553 case sstAlterSchema: 7554 { 7555 ret = new TAlterSchemaStmt(pdbvendor); 7556 break; 7557 } 7558 case sstaltersequence: 7559 { 7560 ret = new TAlterSequenceStatement(pdbvendor); 7561 break; 7562 } 7563 case sstaltersession: 7564 { 7565 ret = new TAlterSessionStatement(pdbvendor); 7566 break; 7567 } 7568 case sstAlterStage: 7569 { 7570 ret = new TAlterStageStmt(pdbvendor); 7571 break; 7572 } 7573 case sstalteruser: 7574 { 7575 ret = new TAlterUserStmt(pdbvendor); 7576 break; 7577 } 7578 case sstAlterShare: 7579 { 7580 ret = new TAlterShareStmt(pdbvendor); 7581 break; 7582 } 7583 case sstalterview: 7584 { 7585 ret = new TAlterViewStatement(pdbvendor); 7586 break; 7587 } 7588 case sstAlterWarehouse: 7589 { 7590 ret = new TAlterWarehouseStmt(pdbvendor); 7591 break; 7592 } 7593 case sstBegin: 7594 { 7595 boolean isblock = false; 7596 int numOfSolidToken = 0; 7597 // if linebreak appears before the ;, then it a block, else it a 7598 TSourceToken st ; 7599 if (lcpos == lcsourcetokenlist.size() - 1){ 7600 // this is the last token 7601 }else{ 7602 for(int i=lcpos+1;i<lcsourcetokenlist.size();i++){ 7603 st = lcsourcetokenlist.get(i); 7604 if (st.issolidtoken()){ 7605 numOfSolidToken++; 7606 } 7607 // Check for newline before semicolon - if found, must be a block 7608 if (st.tokencode == TBaseType.lexnewline) { 7609 isblock = true; 7610 // Continue to look for semicolon to complete the check 7611 } 7612 7613 if (st.tokencode == ';') { 7614 if (numOfSolidToken<=3){ 7615 7616 }else{ 7617 isblock = true; 7618 } 7619 break; 7620 } 7621 7622 if (numOfSolidToken > 3){ 7623 isblock = true; 7624 break; 7625 } 7626 } 7627 } 7628 7629 if (isblock){ 7630 ret = new TCommonBlock(pdbvendor); 7631 gnewsqlstatementtype = ret.sqlstatementtype; 7632 }else{ 7633 ret = new TBeginTran(pdbvendor); 7634 pcst.tokencode = TBaseType.rrw_snowflake_begin_transaction; 7635 } 7636 7637 7638 break; 7639 } 7640 case sstbegintran: 7641 { 7642 ret = new TBeginTran(pdbvendor); 7643 if (pcst.tokencode == TBaseType.rrw_begin){ 7644 pcst.tokencode = TBaseType.rrw_snowflake_begin_transaction; 7645 } 7646 7647 break; 7648 } 7649 case sstcomment: 7650 { 7651 ret = new TCommentOnSqlStmt(pdbvendor); 7652 break; 7653 } 7654 case sstcommit: 7655 { 7656 ret = new TCommitStmt(pdbvendor); 7657 break; 7658 } 7659 case sstCopyInto: 7660 { 7661 ret = new TSnowflakeCopyIntoStmt(pdbvendor); 7662 break; 7663 } 7664 case sstcreatedatabase: 7665 { 7666 ret = new TCreateDatabaseSqlStatement(pdbvendor); 7667 break; 7668 } 7669 case sstCreateFileFormat: 7670 { 7671 ret = new TCreateFileFormatStmt(pdbvendor); 7672 break; 7673 } 7674 case sstcreatefunction: 7675 { 7676 ret = new TCreateFunctionStmt(pdbvendor); 7677 break; 7678 } 7679 case sstCreateNetworkPolicy: 7680 { 7681 ret = new TCreateNetworkPolicyStmt(pdbvendor); 7682 break; 7683 } 7684 case sstCreatePipe: 7685 { 7686 ret = new TCreatePipeStmt(pdbvendor); 7687 break; 7688 } 7689 case sstCreateResourceMonitor: 7690 { 7691 ret = new TCreateResourceMonitorStmt(pdbvendor); 7692 break; 7693 } 7694 case sstcreaterole: 7695 { 7696 ret = new TCreateRoleStmt(pdbvendor); 7697 break; 7698 } 7699 case sstcreateschema: 7700 { 7701 ret = new TCreateSchemaSqlStatement(pdbvendor); 7702 break; 7703 } 7704 case sstcreatesequence: 7705 { 7706 ret = new TCreateSequenceStmt(pdbvendor); 7707 break; 7708 } 7709 case sstCreateShare: 7710 { 7711 ret = new TCreateShareStmt(pdbvendor); 7712 break; 7713 } 7714 case sstCreateStage: 7715 { 7716 ret = new TCreateStageStmt(pdbvendor); 7717 break; 7718 } 7719 case sstcreateuser: 7720 { 7721 ret = new TCreateUserStmt(pdbvendor); 7722 break; 7723 } 7724 case sstCreateWarehouse: 7725 { 7726 ret = new TCreateWarehouseStmt(pdbvendor); 7727 break; 7728 } 7729 case sstDescFileFormat: 7730 case sstDescFunction: 7731 case sstDescNetworkPolicy: 7732 case sstDescPipe: 7733 case sstDescResult: 7734 case sstDescShare: 7735 case sstDescStage: 7736 case sstDescTable: 7737 case sstDescUser: 7738 case sstDescView: 7739 case sstDescStorage: 7740 { 7741 ret = new TDescribeStmt(pdbvendor); 7742 break; 7743 } 7744 case sstdropfunction: 7745 { 7746 ret = new TDropFunctionStmt(pdbvendor); 7747 break; 7748 } 7749 case sstdropdatabase: 7750 { 7751 ret = new TDropDatabaseStmt(pdbvendor); 7752 break; 7753 } 7754 case sstDropFileFormat: 7755 { 7756 ret = new TDropStmt(pdbvendor); 7757 ret.sqlstatementtype = gnewsqlstatementtype; 7758 break; 7759 } 7760 case sstDropNetworkPolicy: 7761 { 7762 ret = new TDropStmt(pdbvendor); 7763 ret.sqlstatementtype = gnewsqlstatementtype; 7764 break; 7765 } 7766 case sstDropPipe: 7767 { 7768 ret = new TDropStmt(pdbvendor); 7769 ret.sqlstatementtype = gnewsqlstatementtype; 7770 break; 7771 } 7772 case sstDropResourceMonitor: 7773 { 7774 ret = new TDropStmt(pdbvendor); 7775 ret.sqlstatementtype = gnewsqlstatementtype; 7776 break; 7777 } 7778 case sstdroprole: 7779 { 7780 ret = new TDropRoleStmt(pdbvendor); 7781 break; 7782 } 7783 case sstdropschema: 7784 { 7785 ret = new TDropSchemaSqlStatement(pdbvendor); 7786 break; 7787 } 7788 case sstDropShare: 7789 { 7790 ret = new TDropStmt(pdbvendor); 7791 ret.sqlstatementtype = gnewsqlstatementtype; 7792 break; 7793 } 7794 case sstDropStage: 7795 { 7796 ret = new TDropStmt(pdbvendor); 7797 ret.sqlstatementtype = gnewsqlstatementtype; 7798 break; 7799 } 7800 case sstdroptable: 7801 { 7802 ret = new TDropTableSqlStatement(pdbvendor); 7803 break; 7804 } 7805 case sstdropuser: 7806 { 7807 ret = new TDropUserStmt(pdbvendor); 7808 break; 7809 } 7810 case sstdropview: 7811 { 7812 ret = new TDropViewSqlStatement(pdbvendor); 7813 break; 7814 } 7815 case sstDropWarehouse: 7816 { 7817 ret = new TDropStmt(pdbvendor); 7818 ret.sqlstatementtype = gnewsqlstatementtype; 7819 break; 7820 } 7821 case sstGet: 7822 { 7823 ret = new TGetStmt(pdbvendor); 7824 break; 7825 } 7826 case sstGrant: 7827 { 7828 ret = new TGrantStmt(pdbvendor); 7829 break; 7830 } 7831 case sstList: 7832 { 7833 ret = new TListStmt(pdbvendor); 7834 break; 7835 } 7836 case sstPut: 7837 { 7838 ret = new TPutStmt(pdbvendor); 7839 break; 7840 } 7841 case sstRemove: 7842 { 7843 ret = new TRemoveStmt(pdbvendor); 7844 break; 7845 } 7846 case sstRevoke: 7847 { 7848 ret = new TRevokeStmt(pdbvendor); 7849 break; 7850 } 7851 case sstrollback: 7852 { 7853 ret = new TRollbackStmt(pdbvendor); 7854 break; 7855 } 7856 case sstset: 7857 { 7858 ret = new TSetStmt(pdbvendor); 7859 break; 7860 } 7861 case sstShowColumns: 7862 case sstShowDatabases: 7863 case sstShowFileFormats: 7864 case sstShowFunctions: 7865 case sstShowGrants: 7866 case sstShowNetworkPolicies: 7867 case sstShowObjects: 7868 case sstShowParameters: 7869 case sstShowPipes: 7870 case sstShowResourceMonitors: 7871 case sstShowRoles: 7872 case sstShowSchemas: 7873 case sstShowSequences: 7874 case sstShowShares: 7875 case sstShowStages: 7876 case sstShowTables: 7877 case sstShowTransactions: 7878 case sstShowUserFunctions: 7879 case sstShowUsers: 7880 case sstShowVariables: 7881 case sstShowViews: 7882 case sstShowWarehouses: 7883 case sstShowProcedures: 7884 case sstShowTasks: 7885 case sstShowStreams: 7886 { 7887 ret = new TShowStmt(pdbvendor); 7888 ret.sqlstatementtype = gnewsqlstatementtype; 7889 break; 7890 } 7891 case sstTruncate: 7892 { 7893 ret = new TTruncateStatement(pdbvendor); 7894 7895 break; 7896 } 7897 case sstUndropDatabase: 7898 case sstUndropSchema: 7899 case sstUndropTable: 7900 { 7901 ret = new TUndropStmt(pdbvendor); 7902 ret.sqlstatementtype = gnewsqlstatementtype; 7903 break; 7904 } 7905 case sstunset: 7906 { 7907 ret = new TUnsetStmt(pdbvendor); 7908 break; 7909 } 7910 case sstcreatematerializedview:{ 7911 ret = new TCreateMaterializedSqlStatement(pdbvendor); 7912 break; 7913 } 7914 case sstoraclecreateindex: 7915 { 7916 ret = new TCreateIndexSqlStatement(pdbvendor); 7917 break; 7918 } 7919 case sstoracledroptable: 7920 { 7921 ret = new TDropTableSqlStatement(pdbvendor); 7922 break; 7923 } 7924 case sstoracledropview: 7925 { 7926 ret = new TDropViewSqlStatement(pdbvendor); 7927 break; 7928 } 7929 case sstoracledropindex: 7930 { 7931 ret = new TDropIndexSqlStatement(pdbvendor); 7932 break; 7933 } 7934 case sstaltertable: 7935 { 7936 ret = new TAlterTableStatement(pdbvendor); 7937 break; 7938 } 7939 case sstoraclealtersession: 7940 { 7941 ret = new TAlterSessionStatement(pdbvendor); 7942 break; 7943 } 7944 case sstplsql_createfunction: 7945 { 7946 ret = new TPlsqlCreateFunction(pdbvendor); 7947 ret.sqlstatementtype = gnewsqlstatementtype; 7948 // System.out.println(gnewsqlstatementtype); 7949 break; 7950 } 7951 case sstCommentOn: 7952 { 7953 ret = new TCommentOnSqlStmt(pdbvendor); 7954 break; 7955 } 7956 case sstoraclecreatesequence: 7957 { 7958 ret = new TCreateSequenceStmt(pdbvendor); 7959 break; 7960 } 7961 case sstpostgresqlCreateIndex: 7962 ret = new TCreateIndexSqlStatement(pdbvendor); 7963 break; 7964 case sstpostgresqlCreateView: 7965 ret = new TCreateViewSqlStatement(pdbvendor); 7966 break; 7967 case sstpostgresqlCreateFunction: 7968 ret = new TCreateFunctionStmt(pdbvendor); 7969 break; 7970// case sstcreatetrigger: 7971// ret = new TCreateTriggerStmt(pdbvendor); 7972// break; 7973 case sstpostgresqlTruncate: 7974 ret = new TTruncateStatement(pdbvendor); 7975 break; 7976 case sstpostgresqlDropTable: 7977 ret = new TDropTableSqlStatement(pdbvendor); 7978 break; 7979 case sstcreateview: 7980 ret = new TCreateViewSqlStatement(pdbvendor); 7981 break; 7982 case sstcall: 7983 ret = new TCallStatement(pdbvendor); 7984 break; 7985 case sstSnowflakePseudoExprStmt: 7986 ret = new TPseudoExprStmt(pdbvendor); 7987 break; 7988 case sstcreateprocedure: 7989 ret = new TCreateProcedureStmt(pdbvendor); 7990 break; 7991 case sstCreateStream: 7992 ret = new TCreateStreamStmt(pdbvendor); 7993 break; 7994 case sstUse: 7995 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 7996 if (lcnextsolidtoken != null){ 7997 if (lcnextsolidtoken.toString().equalsIgnoreCase("database")){ 7998 ret = new TUseDatabase(pdbvendor); 7999 }else if (lcnextsolidtoken.toString().equalsIgnoreCase("role")){ 8000 ret = new TUseRole(pdbvendor); 8001 }else if (lcnextsolidtoken.toString().equalsIgnoreCase("warehouse")){ 8002 ret = new TUseWarehouse(pdbvendor); 8003 }else{ 8004 ret = new TUseSchema(pdbvendor); 8005 } 8006 8007 }else{ 8008 ret = new TUnknownSqlStatement(pdbvendor); 8009 ret.sqlstatementtype = gnewsqlstatementtype; 8010 } 8011 break; 8012 case sstExecute: 8013 { 8014 ret = new TExecuteSqlStatement(pdbvendor); 8015 break; 8016 } 8017 case sstAlterTask: 8018 ret = new TAlterTaskStmt(pdbvendor); 8019 break; 8020 case sstCreateTask: 8021 ret = new TCreateTaskStmt(pdbvendor); 8022 break; 8023 case sstAlterMaterializedView: 8024 ret = new TAlterMaterializedViewStmt(pdbvendor); 8025 break; 8026 case sstDropMaterializedView: 8027 ret = new TDropMaterializedViewStmt(pdbvendor); 8028 break; 8029 case sstdropprocedure: 8030 ret = new TDropProcedureStmt(pdbvendor); 8031 break; 8032 case sstUseSecondaryRoles: 8033 ret = new TUseSecondaryRolesStmt(pdbvendor); 8034 break; 8035 case sstDropStreamlit: 8036 ret = new TDropStmt(pdbvendor); 8037 break; 8038 case sstDropStream: 8039 ret = new TDropStreamStmt(pdbvendor); 8040 break; 8041 default: 8042 { 8043 ret = new TUnknownSqlStatement(pdbvendor); 8044 ret.sqlstatementtype = gnewsqlstatementtype; 8045 break; 8046 } 8047 } // case 8048 8049 return ret; 8050} 8051 8052TCustomSqlStatement isgreenplum(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 8053 TCustomSqlStatement ret = null; 8054 8055 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 8056 8057 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 8058 || (pcst.tokencode == TBaseType.cmtslashstar) 8059 || (pcst.tokencode == TBaseType.lexspace) 8060 || (pcst.tokencode == TBaseType.lexnewline) 8061 || (pcst.tokentype == ETokenType.ttsemicolon) ) 8062 { 8063 return null; 8064 } 8065 8066 int lcpos = pcst.posinlist; 8067 TSourceTokenList lcsourcetokenlist = pcst.container; 8068 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 8069 8070 //subquery after semicolon or at first line 8071 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 8072 { 8073 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 8074 if ( k >0 ) 8075 { 8076 ret = new TSelectSqlStatement(pdbvendor); 8077 } 8078 8079 return ret; 8080 } 8081 8082 //cte 8083 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 8084 { 8085 ret = findcte(pcst,pdbvendor); 8086 if ( (ret != null) ) return ret; 8087 } 8088 8089 gnewsqlstatementtype = findgreenplumcmd(pcst); 8090 8091 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8092 switch (gnewsqlstatementtype) { // 8093 case sstinvalid: 8094 { 8095 ret = null; 8096 8097 if ( pstate == EFindSqlStateType.stnormal ) 8098 { 8099 if ( pcst.tokencode == TBaseType.label_begin ) 8100 { 8101 ret = new TCommonBlock(pdbvendor); 8102 gnewsqlstatementtype = ret.sqlstatementtype; 8103 } 8104 else if ( pcst.tokencode == TBaseType.rrw_declare ) 8105 { 8106 ret = new TCommonBlock(pdbvendor); 8107 gnewsqlstatementtype = ret.sqlstatementtype; 8108 } 8109 else if ( pcst.tokencode == TBaseType.rrw_begin ) 8110 { 8111 ret = new TCommonBlock(pdbvendor); 8112 gnewsqlstatementtype = ret.sqlstatementtype; 8113 } 8114 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 8115 { 8116 ret = new TPlsqlCreateProcedure(pdbvendor); 8117 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 8118 gnewsqlstatementtype = ret.sqlstatementtype; 8119 } 8120 else if ( pcst.tokencode == TBaseType.rrw_function ) 8121 { 8122 ret = new TPlsqlCreateFunction(pdbvendor); 8123 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 8124 gnewsqlstatementtype = ret.sqlstatementtype; 8125 } 8126 else if ( pcst.tokencode == TBaseType.rrw_package ) 8127 { 8128 ret = new TPlsqlCreatePackage(pdbvendor); 8129 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 8130 gnewsqlstatementtype = ret.sqlstatementtype; 8131 } 8132 } 8133 break; 8134 } 8135 case sstselect: 8136 { 8137 boolean lcisnewsql = true; 8138 8139 if ( pstate != EFindSqlStateType.stnormal ) 8140 { 8141 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8142 if ( (lcprevsolidtoken != null) ) 8143 { 8144 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 8145 lcisnewsql = false; //subqery 8146 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 8147 lcisnewsql = false; 8148 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 8149 lcisnewsql = false; 8150 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 8151 lcisnewsql = false; 8152 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 8153 lcisnewsql = false; 8154 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 8155 lcisnewsql = false; 8156 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 8157 { 8158 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 8159 lcisnewsql = false; 8160 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 8161 lcisnewsql = false; 8162 } 8163 8164 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 8165 { 8166 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 8167 if ( (lcpprevsolidtoken != null) ) 8168 { 8169 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 8170 lcisnewsql = false; 8171 } 8172 } 8173 8174 } 8175 8176 8177 if ( (lccurrentsqlstatement != null) ) 8178 { 8179 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 8180 lcisnewsql = false; 8181 } 8182 8183 } 8184 8185 if ( lcisnewsql ) 8186 ret = new TSelectSqlStatement(pdbvendor); 8187 8188 break; 8189 } 8190 case sstinsert: 8191 { 8192 boolean lcisnewsql = true; 8193 if ( pstate != EFindSqlStateType.stnormal ) 8194 { 8195 if ( (lccurrentsqlstatement != null) ) 8196 { 8197 8198 } 8199 } 8200 8201 if ( lcisnewsql ) 8202 ret = new TInsertSqlStatement(pdbvendor); 8203 8204 break; 8205 } 8206 case sstupdate: 8207 { 8208 boolean lcisnewsql = true; 8209 if ( pstate != EFindSqlStateType.stnormal ) 8210 { 8211 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8212 if ( (lcprevsolidtoken != null) ) 8213 { // 8214 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 8215 lcisnewsql = false; 8216 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 8217 lcisnewsql = false; 8218 } 8219 8220 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 8221 if ( (lcnextsolidtoken != null) ) 8222 { 8223 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 8224 { 8225 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 8226 if ( k == 0 ) lcisnewsql = false; 8227 } 8228 } 8229 8230 8231 if ( (lccurrentsqlstatement != null) ) 8232 { 8233 } 8234 } 8235 8236 if ( lcisnewsql ) 8237 { 8238 ret = new TUpdateSqlStatement(pdbvendor); 8239 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 8240 } 8241 break; 8242 } 8243 case sstdelete: 8244 { 8245 boolean lcisnewsql = true; 8246 8247 if ( pstate != EFindSqlStateType.stnormal ) 8248 { 8249 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8250 if ( (lcprevsolidtoken != null) ) 8251 { 8252 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 8253 lcisnewsql = false; 8254 } 8255 8256 if ( (lccurrentsqlstatement != null) ) 8257 { 8258 } 8259 } 8260 8261 if ( lcisnewsql ) 8262 ret = new TDeleteSqlStatement(pdbvendor); 8263 8264 break; 8265 } 8266 case sstmerge: 8267 { 8268 ret = new TMergeSqlStatement(pdbvendor); 8269 ret.sqlstatementtype = gnewsqlstatementtype; 8270 break; 8271 } 8272 case sstoraclecommit: 8273 { 8274 ret = new TUnknownSqlStatement(pdbvendor); 8275 ret.sqlstatementtype = gnewsqlstatementtype; 8276 break; 8277 } 8278 case sstoraclerollback: 8279 { 8280 ret = new TUnknownSqlStatement(pdbvendor); 8281 ret.sqlstatementtype = gnewsqlstatementtype; 8282 break; 8283 } 8284 case sstoraclesavepoint: 8285 { 8286 ret = new TUnknownSqlStatement(pdbvendor); 8287 ret.sqlstatementtype = gnewsqlstatementtype; 8288 break; 8289 } 8290 case sstoraclerevoke: 8291 { 8292 ret = new TUnknownSqlStatement(pdbvendor); 8293 ret.sqlstatementtype = gnewsqlstatementtype; 8294 break; 8295 } 8296 case sstoraclegrant: 8297 { 8298 ret = new TUnknownSqlStatement(pdbvendor); 8299 ret.sqlstatementtype = gnewsqlstatementtype; 8300 break; 8301 } 8302 case sstoracleanalyze: 8303 { 8304 ret = new TUnknownSqlStatement(pdbvendor); 8305 ret.sqlstatementtype = gnewsqlstatementtype; 8306 break; 8307 } 8308 case sstoracletruncate: 8309 { 8310 ret = new TUnknownSqlStatement(pdbvendor); 8311 ret.sqlstatementtype = gnewsqlstatementtype; 8312 break; 8313 } 8314 case sstcreatetable: 8315 case sstgreenplumCreateExternalTable: 8316 { 8317 ret = new TCreateTableSqlStatement(pdbvendor); 8318 break; 8319 } 8320 case sstoraclecreateview: 8321 { 8322 ret = new TCreateViewSqlStatement(pdbvendor); 8323 break; 8324 } 8325 case sstcreatematerializedview:{ 8326 ret = new TCreateMaterializedSqlStatement(pdbvendor); 8327 break; 8328 } 8329 case sstoraclecreateindex: 8330 { 8331 ret = new TCreateIndexSqlStatement(pdbvendor); 8332 break; 8333 } 8334 case sstoraclecreatedatabase: 8335 { 8336 ret = new TCreateDatabaseSqlStatement(pdbvendor); 8337 break; 8338 } 8339 case sstoracledroptable: 8340 { 8341 ret = new TDropTableSqlStatement(pdbvendor); 8342 break; 8343 } 8344 case sstoracledropview: 8345 { 8346 ret = new TDropViewSqlStatement(pdbvendor); 8347 break; 8348 } 8349 case sstoracledropindex: 8350 { 8351 ret = new TDropIndexSqlStatement(pdbvendor); 8352 break; 8353 } 8354 case sstaltertable: 8355 { 8356 ret = new TAlterTableStatement(pdbvendor); 8357 break; 8358 } 8359 case sstoraclealtersession: 8360 { 8361 ret = new TAlterSessionStatement(pdbvendor); 8362 break; 8363 } 8364 case sstplsql_createprocedure: 8365 { 8366 ret = new TPlsqlCreateProcedure(pdbvendor); 8367 ret.sqlstatementtype = gnewsqlstatementtype; 8368 // System.out.println(gnewsqlstatementtype); 8369 break; 8370 } 8371 case sstplsql_createfunction: 8372 { 8373 ret = new TPlsqlCreateFunction(pdbvendor); 8374 ret.sqlstatementtype = gnewsqlstatementtype; 8375 // System.out.println(gnewsqlstatementtype); 8376 break; 8377 } 8378 case sstplsql_createpackage: 8379 { 8380 ret = new TPlsqlCreatePackage(pdbvendor); 8381 ret.sqlstatementtype = gnewsqlstatementtype; 8382 // System.out.println(gnewsqlstatementtype); 8383 break; 8384 } 8385 case sstplsql_createtrigger: 8386 { 8387 ret = new TPlsqlCreateTrigger(pdbvendor); 8388 ret.sqlstatementtype = gnewsqlstatementtype; 8389 // System.out.println(gnewsqlstatementtype); 8390 break; 8391 } 8392 case sstplsql_execimmestmt: 8393 { 8394 ret = new TExecImmeStmt(pdbvendor); 8395 // ret.sqlstatementtype = gnewsqlstatementtype; 8396 // System.out.println(gnewsqlstatementtype); 8397 break; 8398 } 8399 case sstoraclecreatepackagebody: 8400 { 8401 ret = new TPlsqlCreatePackage(pdbvendor); 8402 ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 8403 break; 8404 } 8405 case sstplsql_createtype_placeholder: 8406 { 8407 ret = new TPlsqlCreateType_Placeholder(pdbvendor); 8408 ret.sqlstatementtype = gnewsqlstatementtype; 8409 // System.out.println(gnewsqlstatementtype); 8410 break; 8411 } 8412 case sstplsql_createtypebody: 8413 { 8414 ret = new TPlsqlCreateTypeBody(pdbvendor); 8415 ret.sqlstatementtype = gnewsqlstatementtype; 8416 break; 8417 } 8418 case sstCommentOn: 8419 { 8420 ret = new TCommentOnSqlStmt(pdbvendor); 8421 break; 8422 } 8423 case sstoraclecreatesequence: 8424 { 8425 ret = new TCreateSequenceStmt(pdbvendor); 8426 break; 8427 } 8428 case sstoraclecreatesynonym: 8429 { 8430 ret = new TCreateSynonymStmt(pdbvendor); 8431 break; 8432 } 8433 case sstoraclecreatedirectory: 8434 { 8435 ret = new TOracleCreateDirectoryStmt(pdbvendor); 8436 break; 8437 } 8438 case sstpostgresqlCreateIndex: 8439 ret = new TCreateIndexSqlStatement(pdbvendor); 8440 break; 8441 case sstpostgresqlCreateView: 8442 ret = new TCreateViewSqlStatement(pdbvendor); 8443 break; 8444 case sstpostgresqlCreateFunction: 8445 ret = new TCreateFunctionStmt(pdbvendor); 8446 break; 8447 case sstcreatetrigger: 8448 ret = new TCreateTriggerStmt(pdbvendor); 8449 break; 8450 case sstpostgresqlMove: 8451 ret = new TMoveStmt(EDbVendor.dbvgreenplum); 8452 break; 8453 case sstpostgresqlTruncate: 8454 ret = new TTruncateStatement(EDbVendor.dbvgreenplum); 8455 break; 8456 case sstpostgresqlExecute: 8457 ret = new TExecuteSqlStatement(EDbVendor.dbvgreenplum); 8458 break; 8459 case sstValues: 8460 ret = new TSelectSqlStatement(EDbVendor.dbvgreenplum); 8461 break; 8462 case sstpostgresqlDeclare: { 8463 boolean lcisnewsql = true; 8464 8465 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos, 2, false); 8466 if ((lcnextsolidtoken != null)) { 8467 if (lcnextsolidtoken.tokencode == TBaseType.rrw_greenplum_CURSOR) { 8468 lcisnewsql = false; 8469 } 8470 } 8471 8472 8473 if (lcisnewsql) 8474 ret = new TCommonBlock(pdbvendor); 8475 else { 8476 ret = new TUnknownSqlStatement(pdbvendor); 8477 } 8478 ret.sqlstatementtype = gnewsqlstatementtype; 8479 8480 break; 8481 } 8482 case sstpostgresqlSet: 8483 ret = new TSetStmt(pdbvendor); 8484 break; 8485 case sstcreateExtension: 8486 ret = new TCreateExtensionStmt(pdbvendor); 8487 break; 8488 case sstcall: 8489 ret = new TCallStatement(pdbvendor); 8490 break; 8491 case sstpostgresqlCreateSchema: 8492 ret = new TCreateSchemaSqlStatement(pdbvendor); 8493 break; 8494 case sstpostgresqlDo: { 8495 boolean lcisnewsql = false; 8496 8497 if (pstate == EFindSqlStateType.stnormal) { 8498 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos, 1, false); 8499 if ((lcnextsolidtoken != null)) { 8500 if (lcnextsolidtoken.tokencode == TBaseType.rrw_greenplum_function_delimiter) 8501 lcisnewsql = true; 8502 else if (lcnextsolidtoken.tokencode == TBaseType.rrw_greenplum_language) 8503 lcisnewsql = true; 8504 } 8505 } 8506 8507 if (lcisnewsql) 8508 ret = new TDoExecuteBlockStmt(pdbvendor); 8509 8510 break; 8511 } 8512 case sstpostgresqlComment: 8513 ret = new TCommentOnSqlStmt(pdbvendor); 8514 break; 8515 default: 8516 { 8517 ret = new TUnknownSqlStatement(pdbvendor); 8518 ret.sqlstatementtype = gnewsqlstatementtype; 8519 break; 8520 } 8521 } // case 8522 8523 return ret; 8524 } 8525 8526TCustomSqlStatement isoraclesql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 8527 TCustomSqlStatement ret = null; 8528 8529 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 8530 8531 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 8532 || (pcst.tokencode == TBaseType.cmtslashstar) 8533 || (pcst.tokencode == TBaseType.lexspace) 8534 || (pcst.tokencode == TBaseType.lexnewline) 8535 || (pcst.tokentype == ETokenType.ttsemicolon) ) 8536 { 8537 return null; 8538 } 8539 8540 int lcpos = pcst.posinlist; 8541 TSourceTokenList lcsourcetokenlist = pcst.container; 8542 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 8543 8544 //subquery after semicolon or at first line 8545 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 8546 { 8547 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 8548 if ( k >0 ) 8549 { 8550 ret = new TSelectSqlStatement(pdbvendor); 8551 } 8552 8553 return ret; 8554 } 8555 8556 //cte 8557 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 8558 { 8559 ret = findcte(pcst,pdbvendor); 8560 if ( (ret != null) ) return ret; 8561 } 8562 8563 gnewsqlstatementtype = findoraclecmd(pcst); 8564 8565 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8566 switch (gnewsqlstatementtype) { // 8567 case sstinvalid: 8568 { 8569 ret = null; 8570 8571 if ( pstate == EFindSqlStateType.stnormal ) 8572 { 8573 if ( pcst.tokencode == TBaseType.label_begin ) 8574 { 8575 ret = new TCommonBlock(pdbvendor); 8576 gnewsqlstatementtype = ret.sqlstatementtype; 8577 } 8578 else if ( pcst.tokencode == TBaseType.rrw_declare ) 8579 { 8580 ret = new TCommonBlock(pdbvendor); 8581 gnewsqlstatementtype = ret.sqlstatementtype; 8582 } 8583 else if ( pcst.tokencode == TBaseType.rrw_begin ) 8584 { 8585 ret = new TCommonBlock(pdbvendor); 8586 gnewsqlstatementtype = ret.sqlstatementtype; 8587 } 8588 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 8589 { 8590 ret = new TPlsqlCreateProcedure(pdbvendor); 8591 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 8592 gnewsqlstatementtype = ret.sqlstatementtype; 8593 } 8594 else if ( pcst.tokencode == TBaseType.rrw_function ) 8595 { 8596 ret = new TPlsqlCreateFunction(pdbvendor); 8597 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 8598 gnewsqlstatementtype = ret.sqlstatementtype; 8599 } 8600 else if ( pcst.tokencode == TBaseType.rrw_package ) 8601 { 8602 ret = new TPlsqlCreatePackage(pdbvendor); 8603 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 8604 gnewsqlstatementtype = ret.sqlstatementtype; 8605 } 8606 } 8607 break; 8608 } 8609 case sstselect: 8610 { 8611 boolean lcisnewsql = true; 8612 8613 if ( pstate != EFindSqlStateType.stnormal ) 8614 { 8615 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8616 if ( (lcprevsolidtoken != null) ) 8617 { 8618 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 8619 lcisnewsql = false; //subquery 8620 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 8621 lcisnewsql = false; 8622 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 8623 lcisnewsql = false; 8624 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 8625 lcisnewsql = false; 8626 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 8627 lcisnewsql = false; 8628 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 8629 lcisnewsql = false; 8630 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 8631 { 8632 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 8633 lcisnewsql = false; 8634 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 8635 lcisnewsql = false; 8636 } 8637 8638 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 8639 { 8640 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 8641 if ( (lcpprevsolidtoken != null) ) 8642 { 8643 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 8644 lcisnewsql = false; 8645 } 8646 } 8647 8648 } 8649 8650 8651 if ( (lccurrentsqlstatement != null) ) 8652 { 8653 switch (lccurrentsqlstatement.sqlstatementtype){ 8654 case sstinsert: 8655 lcisnewsql = false; 8656 break; 8657 case sstcreatetable: 8658 case sstcreateview: 8659 lcisnewsql = false; 8660 break; 8661 } 8662 } 8663 8664 } 8665 8666 if ( lcisnewsql ) 8667 ret = new TSelectSqlStatement(pdbvendor); 8668 8669 break; 8670 } 8671 case sstinsert: 8672 { 8673 boolean lcisnewsql = true; 8674 if ( pstate != EFindSqlStateType.stnormal ) 8675 { 8676 if ( (lccurrentsqlstatement != null) ) 8677 { 8678 8679 } 8680 } 8681 8682 if ( lcisnewsql ) 8683 ret = new TInsertSqlStatement(pdbvendor); 8684 8685 break; 8686 } 8687 case sstupdate: 8688 { 8689 boolean lcisnewsql = true; 8690 if ( pstate != EFindSqlStateType.stnormal ) 8691 { 8692 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8693 if ( (lcprevsolidtoken != null) ) 8694 { // 8695 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 8696 lcisnewsql = false; 8697 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 8698 lcisnewsql = false; 8699 } 8700 8701 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 8702 if ( (lcnextsolidtoken != null) ) 8703 { 8704 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 8705 { 8706 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 8707 if ( k == 0 ) lcisnewsql = false; 8708 } 8709 } 8710 8711 8712 if ( (lccurrentsqlstatement != null) ) 8713 { 8714 } 8715 } 8716 8717 if ( lcisnewsql ) 8718 { 8719 ret = new TUpdateSqlStatement(pdbvendor); 8720 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 8721 } 8722 break; 8723 } 8724 case sstdelete: 8725 { 8726 boolean lcisnewsql = true; 8727 8728 if ( pstate != EFindSqlStateType.stnormal ) 8729 { 8730 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8731 if ( (lcprevsolidtoken != null) ) 8732 { 8733 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 8734 lcisnewsql = false; 8735 } 8736 8737 if ( (lccurrentsqlstatement != null) ) 8738 { 8739 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 8740 if ( (lcnextsolidtoken != null) ){ 8741 if (lcnextsolidtoken.tokencode == TBaseType.rrw_oracle_rows){ 8742 lcisnewsql = false; 8743 } 8744 } 8745 } 8746 } 8747 8748 if ( lcisnewsql ) 8749 ret = new TDeleteSqlStatement(pdbvendor); 8750 8751 break; 8752 } 8753 case sstmerge: 8754 { 8755 ret = new TMergeSqlStatement(pdbvendor); 8756 ret.sqlstatementtype = gnewsqlstatementtype; 8757 break; 8758 } 8759 case sstoraclecommit: 8760 { 8761 8762 boolean lcisnewsql = true; 8763 if ( pstate != EFindSqlStateType.stnormal ) 8764 { 8765 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8766 if ( (lcprevsolidtoken != null) ) 8767 { // 8768 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 8769 lcisnewsql = false; 8770 } 8771 } 8772 8773 if (lcisnewsql){ 8774 ret = new TCommitStmt(pdbvendor); 8775 ret.sqlstatementtype = gnewsqlstatementtype; 8776 } 8777 8778 break; 8779 } 8780 case sstoraclerollback: 8781 { 8782 ret = new TUnknownSqlStatement(pdbvendor); 8783 ret.sqlstatementtype = gnewsqlstatementtype; 8784 break; 8785 } 8786 case sstoraclesavepoint: 8787 { 8788 ret = new TUnknownSqlStatement(pdbvendor); 8789 ret.sqlstatementtype = gnewsqlstatementtype; 8790 break; 8791 } 8792 case sstoraclerevoke: 8793 { 8794 ret = new TUnknownSqlStatement(pdbvendor); 8795 ret.sqlstatementtype = gnewsqlstatementtype; 8796 break; 8797 } 8798 case sstoraclegrant: 8799 { 8800 ret = new TUnknownSqlStatement(pdbvendor); 8801 ret.sqlstatementtype = gnewsqlstatementtype; 8802 break; 8803 } 8804 case sstoracleanalyze: 8805 { 8806 ret = new TUnknownSqlStatement(pdbvendor); 8807 ret.sqlstatementtype = gnewsqlstatementtype; 8808 break; 8809 } 8810 case sstTruncate: 8811 { 8812 ret = new TTruncateStatement(pdbvendor); 8813 ret.sqlstatementtype = gnewsqlstatementtype; 8814 break; 8815 } 8816 case sstcreatetable: 8817 { 8818 ret = new TCreateTableSqlStatement(pdbvendor); 8819 break; 8820 } 8821 case sstoraclecreateview: 8822 { 8823 ret = new TCreateViewSqlStatement(pdbvendor); 8824 break; 8825 } 8826 case sstcreatematerializedview:{ 8827 ret = new TCreateMaterializedSqlStatement(pdbvendor); 8828 break; 8829 } 8830 case sstoraclecreatematerializedviewlog:{ 8831 ret = new TCreateMaterializedViewLogSqlStatement(pdbvendor); 8832 break; 8833 } 8834 case sstoraclecreateindex: 8835 { 8836 ret = new TCreateIndexSqlStatement(pdbvendor); 8837 break; 8838 } 8839 case sstoraclecreatedatabase: 8840 { 8841 ret = new TCreateDatabaseSqlStatement(pdbvendor); 8842 break; 8843 } 8844 case sstoracledroptable: 8845 { 8846 ret = new TDropTableSqlStatement(pdbvendor); 8847 break; 8848 } 8849 case sstoracledropview: 8850 { 8851 ret = new TDropViewSqlStatement(pdbvendor); 8852 break; 8853 } 8854 case sstoracledropindex: 8855 { 8856 ret = new TDropIndexSqlStatement(pdbvendor); 8857 break; 8858 } 8859 case sstaltertable: 8860 { 8861 ret = new TAlterTableStatement(pdbvendor); 8862 break; 8863 } 8864 case sstoraclealtersession: 8865 { 8866 ret = new TAlterSessionStatement(pdbvendor); 8867 break; 8868 } 8869 case sstplsql_createprocedure: 8870 { 8871 ret = new TPlsqlCreateProcedure(pdbvendor); 8872 ret.sqlstatementtype = gnewsqlstatementtype; 8873 // System.out.println(gnewsqlstatementtype); 8874 break; 8875 } 8876 case sstplsql_createfunction: 8877 { 8878 ret = new TPlsqlCreateFunction(pdbvendor); 8879 ret.sqlstatementtype = gnewsqlstatementtype; 8880 // System.out.println(gnewsqlstatementtype); 8881 break; 8882 } 8883 case sstplsql_createpackage: 8884 { 8885 ret = new TPlsqlCreatePackage(pdbvendor); 8886 ret.sqlstatementtype = gnewsqlstatementtype; 8887 // System.out.println(gnewsqlstatementtype); 8888 break; 8889 } 8890 case sstplsql_createtrigger: 8891 { 8892 ret = new TPlsqlCreateTrigger(pdbvendor); 8893 ret.sqlstatementtype = gnewsqlstatementtype; 8894 // System.out.println(gnewsqlstatementtype); 8895 break; 8896 } 8897 case sstplsql_execimmestmt: 8898 { 8899 ret = new TExecImmeStmt(pdbvendor); 8900 // ret.sqlstatementtype = gnewsqlstatementtype; 8901 // System.out.println(gnewsqlstatementtype); 8902 break; 8903 } 8904 case sstoraclecreatepackagebody: 8905 { 8906 ret = new TPlsqlCreatePackage(pdbvendor); 8907 ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 8908 break; 8909 } 8910 case sstplsql_createtype_placeholder: 8911 { 8912 ret = new TPlsqlCreateType_Placeholder(pdbvendor); 8913 ret.sqlstatementtype = gnewsqlstatementtype; 8914 // System.out.println(gnewsqlstatementtype); 8915 break; 8916 } 8917 case sstplsql_createtypebody: 8918 { 8919 ret = new TPlsqlCreateTypeBody(pdbvendor); 8920 ret.sqlstatementtype = gnewsqlstatementtype; 8921 break; 8922 } 8923 case sstCommentOn: 8924 { 8925 ret = new TCommentOnSqlStmt(pdbvendor); 8926 break; 8927 } 8928 case sstoraclecreatesequence: 8929 { 8930 ret = new TCreateSequenceStmt(pdbvendor); 8931 break; 8932 } 8933 case sstoraclecreatesynonym: 8934 { 8935 ret = new TCreateSynonymStmt(pdbvendor); 8936 break; 8937 } 8938 case sstoraclecreatedirectory: 8939 { 8940 ret = new TOracleCreateDirectoryStmt(pdbvendor); 8941 break; 8942 } 8943 case sstoracleexecuteprocedure: 8944 { 8945 ret = new TOracleExecuteProcedure(pdbvendor); 8946 break; 8947 } 8948 case sstExplain: 8949 { 8950 ret = new TExplainPlan(pdbvendor); 8951 break; 8952 } 8953 case sstoraclecreatelibrary: 8954 ret = new TOracleCreateLibraryStmt(pdbvendor); 8955 break; 8956 case sstaltertrigger: 8957 ret = new TAlterTriggerStmt(pdbvendor); 8958 break; 8959 case sstoracledropsequence: 8960 ret = new TDropSequenceStmt(pdbvendor); 8961 break; 8962 case sstoraclecall: 8963 ret = new TCallStatement(pdbvendor); 8964 break; 8965 case sstoraclealterview: 8966 ret = new TAlterViewStatement(pdbvendor); 8967 break; 8968 case sstoracledropsynonym: 8969 ret = new TDropSynonymStmt(pdbvendor); 8970 break; 8971 case sstoracledropdatabaselink: 8972 ret = new TDropDatabaseLinkStmt(pdbvendor); 8973 break; 8974 case sstoraclecreatedatabaselink: 8975 ret = new TCreateDatabaseLinkStmt(pdbvendor); 8976 break; 8977 case sstoracledropmaterializedview: 8978 ret = new TDropMaterializedViewStmt(pdbvendor); 8979 break; 8980 case sstoracledropmaterializedviewlog: 8981 ret = new TDropMaterializedViewLogStmt(pdbvendor); 8982 break; 8983 case sstoraclerename: 8984 ret = new TRenameStmt(pdbvendor); 8985 break; 8986 case sstoracledropprocedure: 8987 ret = new TDropProcedureStmt(pdbvendor); 8988 break; 8989 case sstAlterMaterializedView: 8990 ret = new TAlterMaterializedViewStmt(pdbvendor); 8991 break; 8992 case sstoracledroptrigger: 8993 ret = new TDropTriggerSqlStatement(pdbvendor); 8994 break; 8995 case sstoracledropfunction: 8996 ret = new TDropFunctionStmt(pdbvendor); 8997 break; 8998 case sstoraclealterindex: 8999 ret = new TAlterIndexStmt(pdbvendor); 9000 break; 9001 case sstoraclealtersequence: 9002 ret = new TAlterSequenceStatement(pdbvendor); 9003 break; 9004 case sstoraclealtertype: 9005 ret = new TAlterTypeStatement(pdbvendor); 9006 break; 9007 default: 9008 { 9009 ret = new TUnknownSqlStatement(pdbvendor); 9010 ret.sqlstatementtype = gnewsqlstatementtype; 9011 break; 9012 } 9013 } // case 9014 9015 return ret; 9016} 9017 9018TCustomSqlStatement isinformixsql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 9019 TCustomSqlStatement ret = null; 9020 9021 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 9022 9023 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 9024 || (pcst.tokencode == TBaseType.cmtslashstar) 9025 || (pcst.tokencode == TBaseType.lexspace) 9026 || (pcst.tokencode == TBaseType.lexnewline) 9027 || (pcst.tokentype == ETokenType.ttsemicolon) ) 9028 { 9029 return null; 9030 } 9031 9032 int lcpos = pcst.posinlist; 9033 TSourceTokenList lcsourcetokenlist = pcst.container; 9034 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 9035 9036 //subquery after semicolon or at first line 9037 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 9038 { 9039 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 9040 if ( k >0 ) 9041 { 9042 ret = new TSelectSqlStatement(pdbvendor); 9043 } 9044 9045 return ret; 9046 } 9047 9048 //cte 9049 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 9050 { 9051 ret = findcte(pcst,pdbvendor); 9052 if ( (ret != null) ) return ret; 9053 } 9054 9055 gnewsqlstatementtype = findinformixcmd(pcst); 9056 9057 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9058 switch (gnewsqlstatementtype) { // 9059 case sstinvalid: 9060 { 9061 ret = null; 9062 9063 if ( pstate == EFindSqlStateType.stnormal ) 9064 { 9065 if ( pcst.tokencode == TBaseType.label_begin ) 9066 { 9067 ret = new TCommonBlock(pdbvendor); 9068 gnewsqlstatementtype = ret.sqlstatementtype; 9069 } 9070 else if ( pcst.tokencode == TBaseType.rrw_declare ) 9071 { 9072 ret = new TCommonBlock(pdbvendor); 9073 gnewsqlstatementtype = ret.sqlstatementtype; 9074 } 9075 else if ( pcst.tokencode == TBaseType.rrw_begin ) 9076 { 9077 ret = new TCommonBlock(pdbvendor); 9078 gnewsqlstatementtype = ret.sqlstatementtype; 9079 } 9080 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 9081 { 9082 ret = new TPlsqlCreateProcedure(pdbvendor); 9083 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 9084 gnewsqlstatementtype = ret.sqlstatementtype; 9085 } 9086 else if ( pcst.tokencode == TBaseType.rrw_function ) 9087 { 9088 ret = new TPlsqlCreateFunction(pdbvendor); 9089 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 9090 gnewsqlstatementtype = ret.sqlstatementtype; 9091 } 9092 else if ( pcst.tokencode == TBaseType.rrw_package ) 9093 { 9094 ret = new TPlsqlCreatePackage(pdbvendor); 9095 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 9096 gnewsqlstatementtype = ret.sqlstatementtype; 9097 } 9098 } 9099 break; 9100 } 9101 case sstselect: 9102 { 9103 boolean lcisnewsql = true; 9104 9105 if ( pstate != EFindSqlStateType.stnormal ) 9106 { 9107 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9108 if ( (lcprevsolidtoken != null) ) 9109 { 9110 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 9111 lcisnewsql = false; //subqery 9112 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 9113 lcisnewsql = false; 9114 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 9115 lcisnewsql = false; 9116 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 9117 lcisnewsql = false; 9118 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 9119 lcisnewsql = false; 9120 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 9121 lcisnewsql = false; 9122 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 9123 { 9124 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 9125 lcisnewsql = false; 9126 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 9127 lcisnewsql = false; 9128 } 9129 9130 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 9131 { 9132 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 9133 if ( (lcpprevsolidtoken != null) ) 9134 { 9135 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 9136 lcisnewsql = false; 9137 } 9138 } 9139 9140 } 9141 9142 9143 if ( (lccurrentsqlstatement != null) ) 9144 { 9145 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 9146 lcisnewsql = false; 9147 } 9148 9149 } 9150 9151 if ( lcisnewsql ) 9152 ret = new TSelectSqlStatement(pdbvendor); 9153 9154 break; 9155 } 9156 case sstinsert: 9157 { 9158 boolean lcisnewsql = true; 9159 if ( pstate != EFindSqlStateType.stnormal ) 9160 { 9161 if ( (lccurrentsqlstatement != null) ) 9162 { 9163 // merge 9164 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9165 { 9166 if (lcprevsolidtoken != null) 9167 { 9168 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9169 {lcisnewsql = false;} 9170 } 9171 } 9172 9173 } 9174 } 9175 9176 if ( lcisnewsql ) 9177 ret = new TInsertSqlStatement(pdbvendor); 9178 9179 break; 9180 } 9181 case sstupdate: 9182 { 9183 boolean lcisnewsql = true; 9184 if ( pstate != EFindSqlStateType.stnormal ) 9185 { 9186 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9187 if ( (lcprevsolidtoken != null) ) 9188 { // 9189 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 9190 lcisnewsql = false; 9191 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9192 lcisnewsql = false; 9193 } 9194 9195 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 9196 if ( (lcnextsolidtoken != null) ) 9197 { 9198 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 9199 { 9200 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 9201 if ( k == 0 ) lcisnewsql = false; 9202 } 9203 } 9204 9205 9206 if ( (lccurrentsqlstatement != null) ) 9207 { 9208 // merge 9209 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9210 { 9211 if (lcprevsolidtoken != null) 9212 { 9213 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9214 {lcisnewsql = false;} 9215 } 9216 } 9217 } 9218 } 9219 9220 if ( lcisnewsql ) 9221 { 9222 ret = new TUpdateSqlStatement(pdbvendor); 9223 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 9224 } 9225 break; 9226 } 9227 case sstdelete: 9228 { 9229 boolean lcisnewsql = true; 9230 9231 if ( pstate != EFindSqlStateType.stnormal ) 9232 { 9233 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9234 if ( (lcprevsolidtoken != null) ) 9235 { 9236 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 9237 lcisnewsql = false; 9238 } 9239 9240 if ( (lccurrentsqlstatement != null) ) 9241 { 9242 // merge 9243 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9244 { 9245 if (lcprevsolidtoken != null) 9246 { 9247 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9248 {lcisnewsql = false;} 9249 } 9250 } 9251 } 9252 } 9253 9254 if ( lcisnewsql ) 9255 ret = new TDeleteSqlStatement(pdbvendor); 9256 9257 break; 9258 } 9259 case sstmerge: 9260 { 9261 ret = new TMergeSqlStatement(pdbvendor); 9262 ret.sqlstatementtype = gnewsqlstatementtype; 9263 break; 9264 } 9265 case sstinformixCommit: 9266 { 9267 ret = new TUnknownSqlStatement(pdbvendor); 9268 ret.sqlstatementtype = gnewsqlstatementtype; 9269 break; 9270 } 9271 case sstinformixSavepoint: 9272 { 9273 ret = new TUnknownSqlStatement(pdbvendor); 9274 ret.sqlstatementtype = gnewsqlstatementtype; 9275 break; 9276 } 9277 case sstinformixRevoke: 9278 { 9279 ret = new TUnknownSqlStatement(pdbvendor); 9280 ret.sqlstatementtype = gnewsqlstatementtype; 9281 break; 9282 } 9283 case sstinformixGrant: 9284 { 9285 ret = new TUnknownSqlStatement(pdbvendor); 9286 ret.sqlstatementtype = gnewsqlstatementtype; 9287 break; 9288 } 9289 case sstTruncate: 9290 { 9291 ret = new TTruncateStatement(pdbvendor); 9292 ret.sqlstatementtype = gnewsqlstatementtype; 9293 break; 9294 } 9295 case sstcreatetable: 9296 case sstinformixCreateTempTable: 9297 { 9298 ret = new TCreateTableSqlStatement(pdbvendor); 9299 break; 9300 } 9301 case sstinformixCreateView: 9302 { 9303 ret = new TCreateViewSqlStatement(pdbvendor); 9304 break; 9305 } 9306 case sstinformixCreateIndex: 9307 { 9308 ret = new TCreateIndexSqlStatement(pdbvendor); 9309 break; 9310 } 9311 case sstinformixCreateDatabase: 9312 { 9313 ret = new TCreateDatabaseSqlStatement(pdbvendor); 9314 break; 9315 } 9316 case sstinformixDropTable: 9317 { 9318 ret = new TDropTableSqlStatement(pdbvendor); 9319 break; 9320 } 9321 case sstinformixDropView: 9322 { 9323 ret = new TDropViewSqlStatement(pdbvendor); 9324 break; 9325 } 9326 case sstinformixDropIndex: 9327 { 9328 ret = new TDropIndexSqlStatement(pdbvendor); 9329 break; 9330 } 9331 case sstinformixDropRowType: 9332 { 9333 ret = new TInformixDropRowTypeStmt(pdbvendor); 9334 break; 9335 } 9336 case sstinformixDropSequence: 9337 { 9338 ret = new TDropSequenceStmt(pdbvendor); 9339 break; 9340 } 9341 case sstinformixDropSynonym: 9342 { 9343 ret = new TDropSynonymStmt(pdbvendor); 9344 break; 9345 } 9346 case sstinformixAlterTable: 9347 { 9348 ret = new TAlterTableStatement(pdbvendor); 9349 break; 9350 } 9351 case sstinformixCreateProcedure: 9352 { 9353 ret = new TInformixCreateProcedure(pdbvendor); 9354 ret.sqlstatementtype = gnewsqlstatementtype; 9355 break; 9356 } 9357 case sstinformixCreateFunction: 9358 { 9359 ret = new TInformixCreateFunction(pdbvendor); 9360 ret.sqlstatementtype = gnewsqlstatementtype; 9361 break; 9362 } 9363 case sstcreatetrigger: 9364 { 9365 ret = new TCreateTriggerStmt(pdbvendor); 9366 break; 9367 } 9368 case sstinformixExecuteImmediate: 9369 { 9370 ret = new TInformixExecuteImmediate(pdbvendor); 9371 break; 9372 } 9373 case sstinformixCreateSequence: 9374 case sstinformixAlterSequence: 9375 { 9376 ret = new TCreateSequenceStmt(pdbvendor); 9377 break; 9378 } 9379 case sstinformixCreateSynonym: 9380 { 9381 ret = new TCreateSynonymStmt(pdbvendor); 9382 break; 9383 } 9384 case sstinformixExecuteFunction: 9385 { 9386 ret = new TInformixExecuteFunction(pdbvendor); 9387 break; 9388 } 9389 case sstinformixExecuteProcedure: 9390 { 9391 ret = new TInformixExecuteProcedure(pdbvendor); 9392 break; 9393 } 9394 case sstinformixCreateRowType: 9395 { 9396 ret = new TInformixCreateRowTypeStmt(pdbvendor); 9397 break; 9398 } 9399 case sstinformixPut: 9400 case sstinformixInfo: 9401 { 9402 ret = null; 9403 9404 if ( pstate == EFindSqlStateType.stnormal ) 9405 { 9406 ret = new TUnknownSqlStatement(pdbvendor); 9407 ret.sqlstatementtype = gnewsqlstatementtype; 9408 } 9409 break; 9410 } 9411 case sstinformixAlterIndex: 9412 { 9413 ret = new TAlterIndexStmt(pdbvendor); 9414 break; 9415 } 9416 case sstinformixRenameColumn: 9417 case sstinformixRenameTable: 9418 case sstinformixRenameSequence: 9419 case sstinformixRenameIndex: 9420 { 9421 ret = new TRenameStmt(pdbvendor); 9422 break; 9423 } 9424 case sstdropdatabase: 9425 ret = new TDropDatabaseStmt(pdbvendor); 9426 break; 9427 case sstinformixRollbackWork: 9428 { 9429 ret = new TMssqlRollback(pdbvendor); 9430 break; 9431 } 9432 default: 9433 { 9434 ret = new TUnknownSqlStatement(pdbvendor); 9435 ret.sqlstatementtype = gnewsqlstatementtype; 9436 break; 9437 } 9438 } // case 9439 9440 return ret; 9441} 9442 9443 9444 TCustomSqlStatement issybasesql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 9445 TCustomSqlStatement ret = null; 9446 int k; 9447 boolean lcisnewsql; 9448 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 9449 9450 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 9451 9452 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 9453 || (pcst.tokencode == TBaseType.cmtslashstar) 9454 || (pcst.tokencode == TBaseType.lexspace) 9455 || (pcst.tokencode == TBaseType.lexnewline) 9456 || (pcst.tokentype == ETokenType.ttsemicolon) ) 9457 { 9458 return ret; 9459 } 9460 9461 int lcpos = pcst.posinlist; 9462 TSourceTokenList lcsourcetokenlist = pcst.container; 9463 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 9464 9465 //subquery after semicolon || at first line 9466 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 9467 { 9468 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 9469 if ( k >0 ) 9470 { 9471 ret = new TSelectSqlStatement(pdbvendor); 9472 } 9473 9474 return ret; 9475 } 9476 9477 //cte 9478 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 9479 { 9480 ret = findcte(pcst,pdbvendor); 9481 if ( (ret != null) ) return ret; 9482 } 9483 9484 gnewsqlstatementtype = findsybasecmd(pcst); 9485 9486 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9487 switch(gnewsqlstatementtype ) { // 9488 case sstinvalid: 9489 { 9490 if ( pcst.tokencode == TBaseType.mslabel ) 9491 { 9492 ret = new TMssqlLabel(pdbvendor); 9493 } 9494 else 9495 ret = null; 9496 9497 break; 9498 } 9499 case sstselect: 9500 { 9501 lcisnewsql = true; 9502 9503 if ( pstate != EFindSqlStateType.stnormal ) 9504 { 9505 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9506 if ( (lcprevsolidtoken != null) ) 9507 { 9508 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 9509 lcisnewsql = false; //subqery 9510 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 9511 lcisnewsql = false; 9512 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 9513 lcisnewsql = false; 9514 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 9515 lcisnewsql = false; 9516 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 9517 lcisnewsql = false; 9518 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 9519 lcisnewsql = false; 9520 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 9521 { 9522 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 9523 lcisnewsql = false; 9524 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 9525 lcisnewsql = false; 9526 } 9527 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9528 { 9529 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlset ) 9530 lcisnewsql = false; 9531 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldeclare ) 9532 lcisnewsql = false; 9533 } 9534 9535 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 9536 { 9537 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 9538 if ( (lcpprevsolidtoken != null) ) 9539 { 9540 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 9541 lcisnewsql = false; 9542 } 9543 } 9544 9545 } 9546 9547 if ( (lccurrentsqlstatement != null) ) 9548 { 9549 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 9550 { 9551 } 9552 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 9553 { 9554 if ( (lcprevsolidtoken != null) ) 9555 { 9556 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 9557 lcisnewsql = false; 9558 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9559 lcisnewsql = false; 9560 } 9561 } else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 9562 { 9563 if ( (lcprevsolidtoken != null) ) 9564 { 9565 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 9566 lcisnewsql = false; 9567 } 9568 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 9569 lcisnewsql = false; 9570 } 9571 } 9572 9573 } 9574 9575 if ( lcisnewsql ) 9576 ret = new TSelectSqlStatement(pdbvendor); 9577 9578 break; 9579 9580 } 9581 case sstinsert: 9582 { 9583 lcisnewsql = true; 9584 if ( pstate != EFindSqlStateType.stnormal ) 9585 { 9586 if ( (lccurrentsqlstatement != null) ) 9587 { 9588 // merge 9589 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9590 { 9591 if (lcprevsolidtoken != null) 9592 { 9593 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9594 {lcisnewsql = false;} 9595 } 9596 } 9597 9598 // bulk insert 9599 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlbulkinsert ) 9600 { 9601 if ( (lcprevsolidtoken != null) ) 9602 { 9603 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_bulk ) 9604 lcisnewsql = false; 9605 } 9606 } 9607 9608 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 9609 { 9610 if ( (lcprevsolidtoken != null) ) 9611 { 9612 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 9613 lcisnewsql = false; 9614 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9615 lcisnewsql = false; 9616 } 9617 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) { 9618 if ( (lcprevsolidtoken != null) ) 9619 { 9620 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 9621 lcisnewsql = false; 9622 } 9623 } 9624 9625 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 9626 { 9627 if ( (lcprevsolidtoken != null) ) 9628 { 9629 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9630 lcisnewsql = false; 9631 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9632 lcisnewsql = false; 9633 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 9634 lcisnewsql = false; 9635 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 9636 lcisnewsql = false; 9637 } 9638 } 9639 9640 9641 } 9642 } 9643 9644 if ( lcisnewsql ) 9645 { 9646 ret = new TInsertSqlStatement(pdbvendor); 9647 ret.dummytag = 1; // select stmt in insert is permitted 9648 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 9649 { 9650 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 9651 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 9652 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 9653 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 9654 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ) break; 9655 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 9656 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 9657 } // for ( 9658 if ( k > lcsourcetokenlist.size() - 1 ) 9659 k = lcsourcetokenlist.size() - 1; 9660 9661 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 9662 { 9663 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 9664 } // for ( 9665 9666 } 9667 9668 break; 9669 } 9670 case sstsybaseInsertBulk: 9671 { 9672 ret = new TInsertBulk(pdbvendor); 9673 break; 9674 } 9675 case sstupdate: 9676 { 9677 lcisnewsql = true; 9678 if ( pstate != EFindSqlStateType.stnormal ) 9679 { 9680 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9681 if ( (lcprevsolidtoken != null) ) 9682 { // 9683 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 9684 lcisnewsql = false; 9685 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9686 lcisnewsql = false; 9687 } 9688 9689 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 9690 if ( TBaseType.assigned(lcnextsolidtoken) ) 9691 { 9692 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 9693 { 9694 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 9695 if ( k == 0 ) lcisnewsql = false; 9696 } 9697 } 9698 9699 9700 if ( TBaseType.assigned(lccurrentsqlstatement) ) 9701 { 9702 // merge 9703 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9704 { 9705 if (lcprevsolidtoken != null) 9706 { 9707 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9708 {lcisnewsql = false;} 9709 } 9710 } 9711 9712 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 9713 { 9714 if ( TBaseType.assigned(lcprevsolidtoken) ) 9715 { 9716 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 9717 lcisnewsql = false; 9718 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9719 lcisnewsql = false; 9720 } 9721 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 9722 { 9723 if ( TBaseType.assigned(lcprevsolidtoken) ) 9724 { 9725 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 9726 lcisnewsql = false; 9727 } 9728 } 9729 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 9730 { 9731 if ( TBaseType.assigned(lcprevsolidtoken) ) 9732 { 9733 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9734 lcisnewsql = false; 9735 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9736 lcisnewsql = false; 9737 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 9738 lcisnewsql = false; 9739 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 9740 lcisnewsql = false; 9741 } 9742 } 9743 9744 } 9745 } 9746 9747 if ( lcisnewsql ) 9748 { 9749 ret = new TUpdateSqlStatement(pdbvendor); 9750 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 9751 } 9752 9753 break; 9754 } 9755 case sstdelete: 9756 { 9757 lcisnewsql = true; 9758 9759 if ( pstate != EFindSqlStateType.stnormal ) 9760 { 9761 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9762 if ( TBaseType.assigned(lcprevsolidtoken) ) 9763 { 9764 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 9765 lcisnewsql = false; 9766 } 9767 9768 if ( TBaseType.assigned(lccurrentsqlstatement) ) 9769 { 9770 // merge 9771 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9772 { 9773 if (lcprevsolidtoken != null) 9774 { 9775 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9776 {lcisnewsql = false;} 9777 } 9778 } 9779 9780 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 9781 { 9782 if ( TBaseType.assigned(lcprevsolidtoken) ) 9783 { 9784 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 9785 lcisnewsql = false; 9786 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9787 lcisnewsql = false; 9788 } 9789 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 9790 { 9791 if ( TBaseType.assigned(lcprevsolidtoken) ) 9792 { 9793 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 9794 lcisnewsql = false; 9795 } 9796 } 9797 9798 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 9799 { 9800 if ( TBaseType.assigned(lcprevsolidtoken) ) 9801 { 9802 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9803 lcisnewsql = false; 9804 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9805 lcisnewsql = false; 9806 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 9807 lcisnewsql = false; 9808 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 9809 lcisnewsql = false; 9810 } 9811 } 9812 9813 } 9814 } 9815 9816 if ( lcisnewsql ) 9817 ret = new TDeleteSqlStatement(pdbvendor); 9818 9819 break; 9820 } 9821 case sstcreatetable: 9822 { 9823 ret = new TCreateTableSqlStatement(pdbvendor); 9824 break; 9825 } 9826 case sstcreateview: 9827 { 9828 ret = new TCreateViewSqlStatement(pdbvendor); 9829 break; 9830 } 9831 case sstaltertable: 9832 { 9833 ret = new TAlterTableStatement(pdbvendor); 9834 break; 9835 } 9836 case sstmssqlfetch: 9837 { 9838 ret = new TMssqlFetch(pdbvendor); 9839 break; 9840 } 9841 case sstmssqlif : 9842 { 9843 lcisnewsql = true; 9844 if ((lccurrentsqlstatement != null) && ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldropprocedure )) 9845 {lcisnewsql = false;} 9846 if (lcisnewsql){ 9847 ret = new TMssqlIfElse(pdbvendor); 9848 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 9849 } 9850 9851 break; 9852 } 9853 case sstmssqlwhile: 9854 { 9855 ret = new TMssqlIfElse(pdbvendor); 9856 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 9857 break; 9858 } 9859 case sstmssqlcreateprocedure : 9860 case sstmssqlalterprocedure: 9861 { 9862 ret = new TMssqlCreateProcedure(pdbvendor); 9863 break; 9864 } 9865 case sstmssqlcreatefunction : 9866 case sstmssqlalterfunction: 9867 { 9868 ret = new TMssqlCreateFunction(pdbvendor); 9869 break; 9870 } 9871 case sstcreatetrigger : 9872 case sstmssqlaltertrigger: 9873 { 9874 ret = new TCreateTriggerStmt(pdbvendor); 9875 break; 9876 } 9877 case sstmssqlreturn: 9878 { 9879 ret = new TMssqlReturn(pdbvendor); 9880 break; 9881 } 9882 case sstmssqlprint: 9883 { 9884 ret = new TMssqlPrint(pdbvendor); 9885 break; 9886 } 9887 case sstmssqluse: 9888 { 9889 ret = new TUseDatabase(pdbvendor); 9890 break; 9891 } 9892 case sstmssqlgo: 9893 { 9894 ret = new TMssqlGo(pdbvendor); 9895 break; 9896 } 9897 case sstmssqlrevert: 9898 { 9899 ret = new TMssqlRevert(pdbvendor); 9900 break; 9901 } 9902 case sstmssqlgrant: 9903 { 9904 lcisnewsql = true; 9905 // prev tokentext can't be with 9906 if ( pstate != EFindSqlStateType.stnormal ) 9907 { 9908 if ( TBaseType.assigned(lcprevsolidtoken) ) 9909 { 9910 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 9911 { 9912 ret = null; 9913 lcisnewsql = false; 9914 } 9915 } 9916 } 9917 if ( lcisnewsql ) 9918 { 9919 ret = new TGrantStmt(pdbvendor); 9920 //ret.sqlstatementtype = gnewsqlstatementtype; 9921 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 9922 { 9923 lctoken = lcsourcetokenlist.get(k); 9924 if (lctoken.isnonsolidtoken() ) continue; 9925 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 9926 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 9927 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 9928 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 9929 } 9930 } 9931 break; 9932 } 9933 case sstmssqldeclare: 9934 { 9935 ret = new TMssqlDeclare(pdbvendor); 9936 break; 9937 } 9938 case sstmssqlcontinue: 9939 { 9940 lcisnewsql = true; 9941 if ((lccurrentsqlstatement != null) && ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstload )) 9942 {lcisnewsql = false;} 9943 if (lcisnewsql){ 9944 ret = new TMssqlContinue(pdbvendor); 9945 } 9946 9947 break; 9948 } 9949 case sstbreak: 9950 { 9951 ret = new TBreakStmt(pdbvendor); 9952 break; 9953 } 9954 case sstmssqlopen: 9955 { 9956 ret = new TMssqlOpen(pdbvendor); 9957 break; 9958 } 9959 case sstmssqlclose: 9960 { 9961 ret = new TMssqlClose(pdbvendor); 9962 break; 9963 } 9964 case sstmssqlbulkinsert: 9965 { 9966 ret = new TMssqlBulkInsert(pdbvendor); 9967 break; 9968 } 9969 case sstmssqldeallocate: 9970 { 9971 ret = new TMssqlDeallocate(pdbvendor); 9972 break; 9973 } 9974 case sstmssqlraiserror: 9975 { 9976 ret = new TMssqlRaiserror(pdbvendor); 9977 break; 9978 } 9979 case sstmssqlgoto: 9980 { 9981 ret = new TMssqlGoTo(pdbvendor); 9982 break; 9983 } 9984 case sstmssqldropview: 9985 { 9986 ret = new TDropViewSqlStatement(pdbvendor); 9987 break; 9988 } 9989 case sstmssqldroptable: 9990 { 9991 ret = new TDropTableSqlStatement(pdbvendor); 9992 break; 9993 } 9994 case sstmssqldropindex: 9995 { 9996 ret = new TDropIndexSqlStatement(pdbvendor); 9997 break; 9998 } 9999 case sstmssqldroppartitionscheme : 10000 ret = new TDropPartitionSchemeStmt(pdbvendor); 10001 break; 10002 10003 case sstmssqldropaggregate : 10004 case sstmssqldropapplicationrole : 10005 case sstmssqldropassembly : 10006 case sstmssqldropasymmetrickey : 10007 case sstmssqldropcertificate : 10008 case sstmssqldropcontract : 10009 case sstmssqldropcredential : 10010 case sstmssqldropdefault : 10011 case sstmssqldropendpoint : 10012 case sstmssqldropeventnotification : 10013 case sstmssqldropfulltextcatalog : 10014 case sstmssqldropfulltextindex : 10015 case sstmssqldropfunction : 10016 case sstmssqldroplogin : 10017 case sstmssqldropmasterkey : 10018 case sstmssqldropmessagetype : 10019 case sstmssqldroppartitionfunction : 10020 case sstmssqldropprocedure : 10021 case sstmssqldropqueue : 10022 case sstmssqldropremoteservicebinding : 10023 case sstmssqldroprole : 10024 case sstmssqldroproute : 10025 case sstmssqldroprule : 10026 case sstmssqldropschema : 10027 case sstmssqldropservice : 10028 case sstmssqldropsignature: 10029 case sstmssqldropstatistics : 10030 case sstmssqldropsymmetrickey : 10031 case sstmssqldroptrigger : 10032 case sstmssqldroptype : 10033 case sstmssqldropuser : 10034 case sstmssqldropxmlschemacollection: 10035 case sstmssqldropdatabase : 10036 { 10037 ret = new TMssqlDropDbObject(EDbVendor.dbvsybase); 10038 ret.sqlstatementtype = gnewsqlstatementtype; 10039 break; 10040 } 10041 case sstmssqldropsynonym : 10042 { 10043 ret = new TDropSynonymStmt(pdbvendor); 10044 break; 10045 } 10046 case sstmssqltruncatetable: 10047 { 10048 ret = new TTruncateStatement(pdbvendor); 10049 break; 10050 } 10051 case sstmssqlbegintran: 10052 { 10053 ret = new TBeginTran(pdbvendor); 10054 break; 10055 } 10056 case sstmssqlsavetran: 10057 { 10058 ret = new TMssqlSaveTran(pdbvendor); 10059 break; 10060 } 10061 case sstmssqlcommit: 10062 { 10063 lcisnewsql = true; 10064 10065 if ( TBaseType.assigned(lcprevsolidtoken) ) 10066 { 10067 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 10068 { 10069 10070 lcisnewsql = false; 10071 } 10072 } 10073 10074 if (lcisnewsql){ 10075 ret = new TMssqlCommit(pdbvendor); 10076 } 10077 10078 break; 10079 } 10080 case sstmssqlrollback: 10081 { 10082 ret = new TMssqlRollback(pdbvendor); 10083 break; 10084 } 10085 case sstmssqlreadtext : 10086 case sstmssqldbcc : 10087 case sstmssqlrestore : 10088 case sstmssqlbackup : 10089 { 10090 ret = new TMssqlDummyStmt(pdbvendor); 10091 ret.sqlstatementtype = gnewsqlstatementtype; 10092 break; 10093 } 10094 case sstcreateindex: 10095 { 10096 ret = new TCreateIndexSqlStatement(pdbvendor); 10097 break; 10098 } 10099 case sstmssqlwaitfor: 10100 { 10101 ret = new TMssqlWaitFor(pdbvendor); 10102 break; 10103 } 10104 case sstmerge: 10105 { 10106 lcisnewsql = true; 10107 10108 if (pstate != EFindSqlStateType.stnormal) 10109 { 10110 10111 if (lccurrentsqlstatement != null) 10112 { 10113 // merge union, merge join 10114 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 10115 { 10116 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 10117 if (lcnextsolidtoken != null) 10118 { 10119 if ((lcnextsolidtoken.tokencode == TBaseType.rrw_union) || (lcnextsolidtoken.tokencode == TBaseType.rrw_join)) 10120 { 10121 lcisnewsql = false; 10122 } 10123 } 10124 } 10125 10126 } 10127 10128 TSourceToken lcnexttoken = lcsourcetokenlist.nextsolidtoken(lcpos, 1, false); 10129 if ( (lcnexttoken != null) ) 10130 { 10131 if ( lcnexttoken.tokencode == TBaseType.rrw_sybase_partition ) 10132 lcisnewsql = false; 10133 } 10134 10135 } 10136 10137 if (lcisnewsql) 10138 { 10139 ret = new TMergeSqlStatement(pdbvendor); 10140 ret.sqlstatementtype = gnewsqlstatementtype; 10141 } 10142 10143 break; 10144 } 10145 case sstmssqlbegintry : 10146 case sstmssqlbegincatch: 10147 { 10148 ret = new TMssqlBlock(pdbvendor); 10149 ret.sqlstatementtype = gnewsqlstatementtype; 10150 break; 10151 } 10152 case sstmssqlexec: 10153 { 10154 lcisnewsql = true; 10155 // prev tokentext can't be with 10156 if ( pstate != EFindSqlStateType.stnormal ) 10157 { 10158 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10159 { 10160 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 10161 { 10162 if ( lccurrentsqlstatement.dummytag == 1 ) 10163 { 10164 lcisnewsql = false; 10165 lccurrentsqlstatement.dummytag = 0; // no select is permited after it 10166 } 10167 } 10168 10169 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 10170 { 10171 if ( TBaseType.assigned(lcprevsolidtoken) ) 10172 { 10173 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 10174 lcisnewsql = false; 10175 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10176 lcisnewsql = false; 10177 } 10178 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ){ 10179 if ( TBaseType.assigned(lcprevsolidtoken) ) 10180 { 10181 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 10182 lcisnewsql = false; 10183 } 10184 } 10185 10186 10187 10188 if ( 10189 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 10190 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 10191 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 10192 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 10193 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 10194 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 10195 ) 10196 { 10197 if ( TBaseType.assigned(lcprevsolidtoken) ) 10198 { 10199 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 10200 lcisnewsql = false; 10201 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10202 lcisnewsql = false; 10203 } 10204 } 10205 } 10206 } 10207 if ( lcisnewsql ) 10208 { 10209 ret = new TMssqlExecute(pdbvendor); 10210 } 10211 break; 10212 } 10213 case sstmssqlexecuteas: 10214 { 10215 lcisnewsql = true; 10216 // prev tokentext can't be with 10217 if ( pstate != EFindSqlStateType.stnormal ) 10218 { 10219 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10220 { 10221 if ( 10222 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 10223 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 10224 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 10225 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 10226 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 10227 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 10228 ) 10229 { 10230 if ( TBaseType.assigned(lcprevsolidtoken) ) 10231 { 10232 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 10233 lcisnewsql = false; 10234 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10235 lcisnewsql = false; 10236 } 10237 } 10238 } 10239 } 10240 if ( lcisnewsql ) 10241 { 10242 ret = new TMssqlExecuteAs(pdbvendor); 10243 ret.sqlstatementtype = gnewsqlstatementtype; 10244 } 10245 break; 10246 } 10247 case sstmssqlset: 10248 { 10249 lcisnewsql = true; 10250 if ( pstate != EFindSqlStateType.stnormal ) 10251 { 10252 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10253 { 10254 10255 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlif) 10256 { 10257 TSourceToken lcPPToken = lcsourcetokenlist.searchToken(TBaseType.rrw_update,"",pcst,-10); 10258 if (TBaseType.assigned(lcPPToken)) 10259 { 10260 lcisnewsql = false; 10261 } 10262 } 10263 10264 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 10265 { 10266 if (lcprevsolidtoken != null) 10267 { 10268 if (lcprevsolidtoken.tokencode == TBaseType.rrw_update){ 10269 lcisnewsql = false;} 10270 } 10271 } 10272 10273 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstupdate ) 10274 { 10275 if ( lccurrentsqlstatement.dummytag == 1 ) 10276 { 10277 //update statement still find set clause yet, so this is setclause in update statement 10278 lccurrentsqlstatement.dummytag = 0; 10279 lcisnewsql = false; 10280 } 10281 } 10282 } 10283 10284 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 10285 if ( TBaseType.assigned(lcnextsolidtoken) ) 10286 { //set null, set default 10287 if ( (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(),"null")==0) 10288 || (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(), "default")==0) ) 10289 { 10290 lcisnewsql = false; 10291 } 10292 } 10293 10294 } 10295 10296 if ( lcisnewsql ) 10297 { 10298 ret = new TMssqlSet(pdbvendor); 10299 } 10300 10301 break; 10302 } 10303 case sstmssqlupdatetext: 10304 { 10305 ret = new TMssqlUpdateText(pdbvendor); 10306 break; 10307 } 10308 case sstmssqlendconversation: 10309 { 10310 ret = new TMssqlEndConversation(pdbvendor); 10311 break; 10312 } 10313 case sstmssqlbegindialog: 10314 { 10315 ret = new TMssqlBeginDialog(pdbvendor); 10316 break; 10317 } 10318 case sstmssqlsendonconversation: 10319 { 10320 ret = new TMssqlSendOnConversation(pdbvendor); 10321 break; 10322 } 10323 case sstmssqldisabletrigger : 10324 case sstmssqlenabletrigger: 10325 { 10326 lcisnewsql = true; 10327 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10328 { 10329 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable ) 10330 lcisnewsql = false; 10331 } 10332 10333 if ( lcisnewsql ) 10334 { 10335 ret = new TDisableEnableTriggerStmt(pdbvendor); 10336 ret.sqlstatementtype = gnewsqlstatementtype; 10337 } 10338 break; 10339 } 10340 case sstsybaseWritetext: 10341 { 10342 ret = new TSybaseWritetext(pdbvendor); 10343 break; 10344 } 10345 case sstsybaseDeleteStatistics: 10346 { 10347 ret = new TSybaseDeleteStatistics(pdbvendor); 10348 break; 10349 } 10350 case sstcall: 10351 { 10352 ret = new TCallStatement(pdbvendor); 10353 break; 10354 } 10355 default: 10356 { 10357 ret = new TUnknownSqlStatement(pdbvendor); 10358 ret.sqlstatementtype = gnewsqlstatementtype; 10359 break; 10360 } 10361 } // case 10362 10363 return ret; 10364 } 10365 10366 TCustomSqlStatement ismssqlsql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 10367 TCustomSqlStatement ret = null; 10368 int k; 10369 boolean lcisnewsql; 10370 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 10371 10372 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 10373 10374 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 10375 || (pcst.tokencode == TBaseType.cmtslashstar) 10376 || (pcst.tokencode == TBaseType.lexspace) 10377 || (pcst.tokencode == TBaseType.lexnewline) 10378 || (pcst.tokentype == ETokenType.ttsemicolon) ) 10379 { 10380 return ret; 10381 } 10382 10383 int lcpos = pcst.posinlist; 10384 TSourceTokenList lcsourcetokenlist = pcst.container; 10385 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 10386 10387 //subquery after semicolon or at first line 10388 if ( pcst.tokentype == ETokenType.ttleftparenthesis) // ( 10389 { 10390 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 10391 if ( k >0 ) 10392 { 10393 if (pstate == EFindSqlStateType.stnormal){ 10394 ret = new TSelectSqlStatement(pdbvendor); 10395 return ret; 10396 } 10397// if (((lccurrentsqlstatement != null) )&&(lccurrentsqlstatement.sqlstatementtype != ESqlStatementType.sstselect)&&(lcsourcetokenlist.returnbeforecurtoken(true))){ 10398// ret = new TSelectSqlStatement(pdbvendor); 10399// return ret; 10400// } 10401 } 10402 } 10403 10404 //cte 10405 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 10406 { 10407 ret = findcte(pcst,pdbvendor); 10408 if ( (ret != null) ) return ret; 10409 } 10410 10411 if ( (lccurrentsqlstatement != null) && (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable) 10412 && (pcst.tokencode == TBaseType.rrw_with) ) 10413 { 10414 TSourceToken lcPrevToken = pcst.prevSolidToken(); 10415 if ((lcPrevToken != null) && (lcPrevToken.tokencode == TBaseType.rrw_as)) 10416 { // mantisbt/view.php?id=3900, create table with as select, ignore tokens from with to select (including the select token) 10417 ret = findcte(pcst,pdbvendor); 10418 if ( (ret != null) ) { 10419 ret = null; 10420 } 10421 } 10422 } 10423 10424 //odbc 10425 if ( (pstate == EFindSqlStateType.stnormal) && ((pcst.tokencode == '{')||(pcst.tokencode == TBaseType.odbc_esc_prefix)) && (pcst.getLinkToken() != null) ) 10426 { 10427 ret = new TCallStatement(pdbvendor); 10428 return ret; 10429 } 10430 10431 gnewsqlstatementtype = findmssqlcmd(pcst); 10432 10433 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 10434 switch(gnewsqlstatementtype ) { // 10435 case sstinvalid: 10436 { 10437 if ( pcst.tokencode == TBaseType.mslabel ) 10438 { 10439 ret = new TMssqlLabel(pdbvendor); 10440 } 10441 else 10442 ret = null; 10443 10444 break; 10445 } 10446 case sstselect: 10447 { 10448 lcisnewsql = true; 10449 10450 if ( pstate != EFindSqlStateType.stnormal ) 10451 { 10452 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 10453 if ( (lcprevsolidtoken != null) ) 10454 { 10455 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 10456 lcisnewsql = false; //subqery 10457 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 10458 lcisnewsql = false; 10459 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 10460 lcisnewsql = false; 10461 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 10462 lcisnewsql = false; 10463 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 10464 lcisnewsql = false; 10465 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 10466 lcisnewsql = false; 10467 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 10468 { 10469 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 10470 lcisnewsql = false; 10471 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 10472 lcisnewsql = false; 10473 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstalterview ) 10474 lcisnewsql = false; 10475 } 10476 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 10477 { 10478 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlset ) 10479 lcisnewsql = false; 10480 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldeclare ) 10481 lcisnewsql = false; 10482 } 10483 10484 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 10485 { 10486 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 10487 if ( (lcpprevsolidtoken != null) ) 10488 { 10489 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 10490 lcisnewsql = false; 10491 } 10492 } 10493 10494 } 10495 10496 if ( (lccurrentsqlstatement != null) ) 10497 { 10498 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 10499 { 10500 } 10501 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 10502 { 10503 if ( (lcprevsolidtoken != null) ) 10504 { 10505 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 10506 lcisnewsql = false; 10507 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10508 lcisnewsql = false; 10509 } 10510 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 10511 lcisnewsql = false; 10512 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatematerializedview ){ 10513 lcisnewsql = false; 10514 } 10515 } 10516 10517 } 10518 10519 if ( lcisnewsql ) 10520 ret = new TSelectSqlStatement(pdbvendor); 10521 10522 break; 10523 10524 } 10525 case sstinsert: 10526 { 10527 lcisnewsql = true; 10528 if ( pstate != EFindSqlStateType.stnormal ) 10529 { 10530 if ( (lccurrentsqlstatement != null) ) 10531 { 10532 // merge 10533 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 10534 { 10535 if (lcprevsolidtoken != null) 10536 { 10537 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 10538 {lcisnewsql = false;} 10539 } 10540 } 10541 10542 // bulk insert 10543 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlbulkinsert ) 10544 { 10545 if ( (lcprevsolidtoken != null) ) 10546 { 10547 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_bulk ) 10548 lcisnewsql = false; 10549 } 10550 } 10551 10552 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 10553 { 10554 if ( (lcprevsolidtoken != null) ) 10555 { 10556 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 10557 lcisnewsql = false; 10558 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10559 lcisnewsql = false; 10560 } 10561 } 10562 10563 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 10564 { 10565 if ( (lcprevsolidtoken != null) ) 10566 { 10567 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 10568 lcisnewsql = false; 10569 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10570 lcisnewsql = false; 10571 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 10572 lcisnewsql = false; 10573 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 10574 lcisnewsql = false; 10575 } 10576 } 10577 10578 10579 } 10580 } 10581 10582 if ( lcisnewsql ) 10583 { 10584 ret = new TInsertSqlStatement(pdbvendor); 10585 ret.dummytag = 1; // select stmt in insert is permitted 10586 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 10587 { 10588 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 10589 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 10590 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 10591 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 10592 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ){ 10593 ret.dummytag = 0; 10594 break; 10595 } 10596 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 10597 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 10598 } // for ( 10599 if ( k > lcsourcetokenlist.size() - 1 ) 10600 k = lcsourcetokenlist.size() - 1; 10601 10602 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 10603 { 10604 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 10605 } // for ( 10606 10607 } 10608 10609 break; 10610 } 10611 case sstupdate: 10612 { 10613 lcisnewsql = true; 10614 if ( pstate != EFindSqlStateType.stnormal ) 10615 { 10616 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 10617 if ( (lcprevsolidtoken != null) ) 10618 { // 10619 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 10620 lcisnewsql = false; 10621 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 10622 lcisnewsql = false; 10623 } 10624 10625 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 10626 if ( TBaseType.assigned(lcnextsolidtoken) ) 10627 { 10628 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 10629 { 10630 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 10631 if ( k == 0 ) lcisnewsql = false; 10632 } 10633 } 10634 10635 10636 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10637 { 10638 // merge 10639 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 10640 { 10641 if (lcprevsolidtoken != null) 10642 { 10643 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 10644 {lcisnewsql = false;} 10645 } 10646 } 10647 10648 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 10649 { 10650 if ( TBaseType.assigned(lcprevsolidtoken) ) 10651 { 10652 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 10653 lcisnewsql = false; 10654 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10655 lcisnewsql = false; 10656 } 10657 } 10658 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 10659 { 10660 if ( TBaseType.assigned(lcprevsolidtoken) ) 10661 { 10662 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 10663 lcisnewsql = false; 10664 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10665 lcisnewsql = false; 10666 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 10667 lcisnewsql = false; 10668 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 10669 lcisnewsql = false; 10670 } 10671 } 10672 10673 } 10674 } 10675 10676 if ( lcisnewsql ) 10677 { 10678 ret = new TUpdateSqlStatement(pdbvendor); 10679 ret.dummytag = 1; // means set clause in update is not found yet, used to separate set clause from set statement 10680 } 10681 10682 break; 10683 } 10684 case sstdelete: 10685 { 10686 lcisnewsql = true; 10687 10688 if ( pstate != EFindSqlStateType.stnormal ) 10689 { 10690 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 10691 if ( TBaseType.assigned(lcprevsolidtoken) ) 10692 { 10693 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 10694 lcisnewsql = false; 10695 } 10696 10697 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10698 { 10699 // merge 10700 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 10701 { 10702 if (lcprevsolidtoken != null) 10703 { 10704 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 10705 {lcisnewsql = false;} 10706 } 10707 } 10708 10709 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 10710 { 10711 if ( TBaseType.assigned(lcprevsolidtoken) ) 10712 { 10713 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 10714 lcisnewsql = false; 10715 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10716 lcisnewsql = false; 10717 } 10718 } 10719 10720 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 10721 { 10722 if ( TBaseType.assigned(lcprevsolidtoken) ) 10723 { 10724 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 10725 lcisnewsql = false; 10726 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10727 lcisnewsql = false; 10728 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 10729 lcisnewsql = false; 10730 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 10731 lcisnewsql = false; 10732 } 10733 } 10734 10735 } 10736 } 10737 10738 if ( lcisnewsql ) 10739 ret = new TDeleteSqlStatement(pdbvendor); 10740 10741 break; 10742 } 10743 case sstcreatetable: 10744 { 10745 lcisnewsql = true; 10746 if ( pstate != EFindSqlStateType.stnormal ) { 10747 10748 if (TBaseType.assigned(lccurrentsqlstatement)) { 10749 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateschema) 10750 ) 10751 { 10752 lcisnewsql = false; 10753 } 10754 } 10755 } 10756 10757 if (lcisnewsql) { 10758 ret = new TCreateTableSqlStatement(pdbvendor); 10759 10760 } 10761 break; 10762 } 10763 case sstcreateview: 10764 { 10765 10766 lcisnewsql = true; 10767 if ( pstate != EFindSqlStateType.stnormal ) { 10768 10769 if (TBaseType.assigned(lccurrentsqlstatement)) { 10770 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateschema) 10771 ) 10772 { 10773 lcisnewsql = false; 10774 } 10775 } 10776 } 10777 if (lcisnewsql) { 10778 ret = new TCreateViewSqlStatement(pdbvendor); 10779 } 10780 break; 10781 } 10782 case sstcreatesequence: 10783 { 10784 ret = new TCreateSequenceStmt(pdbvendor); 10785 break; 10786 } 10787 case sstaltertable: 10788 { 10789 ret = new TAlterTableStatement(pdbvendor); 10790 break; 10791 } 10792 case sstmssqlfetch: 10793 { 10794 ret = new TMssqlFetch(pdbvendor); 10795 break; 10796 } 10797 case sstmssqlif : 10798 { 10799 lcisnewsql = true; 10800 if ( pstate != EFindSqlStateType.stnormal ) { 10801 10802 if (TBaseType.assigned(lccurrentsqlstatement)) { 10803 // merge 10804 if ( 10805 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropprocedure) 10806 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropdatabase) 10807 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropfunction) 10808 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlDropSecurityPolicy) 10809 ) 10810 { 10811 lcisnewsql = false; 10812 }else if ( (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdroptable) 10813 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropindex) 10814 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable) 10815 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropsynonym) 10816 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropview) 10817 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropsequence) 10818 ){ 10819 // DROP TABLE IF EXISTS T1; 10820 TSourceToken st = lcsourcetokenlist.solidtokenbefore(lcpos); 10821 if ((st.tokencode == TBaseType.rrw_table)||(st.tokencode == TBaseType.rrw_index) 10822 ||(st.tokencode == TBaseType.rrw_sqlserver_synonym)||(st.tokencode == TBaseType.rrw_view) 10823 ||(st.tokencode == TBaseType.rrw_sqlserver_sequence) 10824 ){ 10825 lcisnewsql = false; 10826 } 10827 }else if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable)){ 10828 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 10829 if (lcnextsolidtoken != null){ 10830 if (lcnextsolidtoken.tokencode == TBaseType.rrw_sqlserver_exists){ 10831 lcisnewsql = false; 10832 } 10833 } 10834 } 10835 } 10836 } 10837 10838 10839 if (lcisnewsql) { 10840 ret = new TMssqlIfElse(pdbvendor); 10841 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 10842 } 10843 break; 10844 } 10845 case sstmssqlwhile: 10846 { 10847 ret = new TMssqlIfElse(pdbvendor); 10848 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 10849 break; 10850 } 10851 case sstmssqlcreateprocedure : 10852 case sstmssqlalterprocedure: 10853 { 10854 ret = new TMssqlCreateProcedure(pdbvendor); 10855 break; 10856 } 10857 case sstmssqlcreatefunction : 10858 case sstmssqlalterfunction: 10859 { 10860 ret = new TMssqlCreateFunction(pdbvendor); 10861 break; 10862 } 10863 case sstcreatetrigger : 10864 case sstmssqlaltertrigger: 10865 { 10866 ret = new TCreateTriggerStmt(pdbvendor); //TMssqlCreateTrigger(pdbvendor); 10867 break; 10868 } 10869 case sstmssqlreturn: 10870 { 10871 ret = new TMssqlReturn(pdbvendor); 10872 break; 10873 } 10874 case sstmssqlprint: 10875 { 10876 if (pdbvendor == EDbVendor.dbvodbc){ 10877 10878 }else if (pdbvendor == EDbVendor.dbvmssql){ 10879 ret = new TMssqlPrint(pdbvendor); 10880 } 10881 10882 break; 10883 } 10884 case sstmssqluse: 10885 { 10886 ret = new TUseDatabase(pdbvendor); 10887 break; 10888 } 10889 case sstmssqlgo: 10890 { 10891 ret = new TMssqlGo(pdbvendor); 10892 break; 10893 } 10894 case sstmssqlrevert: 10895 { 10896 lcisnewsql = true; 10897 // prev tokentext can't be with 10898 if ( pstate != EFindSqlStateType.stnormal ) { 10899 if (TBaseType.assigned(lcprevsolidtoken)) { 10900 if (lcprevsolidtoken.toString().equalsIgnoreCase("no")) { 10901 ret = null; 10902 lcisnewsql = false; 10903 } 10904 } 10905 } 10906 if (lcisnewsql){ 10907 ret = new TMssqlRevert(pdbvendor); 10908 } 10909 10910 break; 10911 } 10912 case sstmssqlgrant: 10913 { 10914 lcisnewsql = true; 10915 // prev tokentext can't be with 10916 if ( pstate != EFindSqlStateType.stnormal ) 10917 { 10918 if ( TBaseType.assigned(lcprevsolidtoken) ) 10919 { 10920 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 10921 { 10922 ret = null; 10923 lcisnewsql = false; 10924 } 10925 } 10926 10927 if((lcisnewsql)&&(TBaseType.assigned(lccurrentsqlstatement))) { 10928 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateschema) 10929 ) 10930 { 10931 lcisnewsql = false; 10932 } 10933 } 10934 } 10935 if ( lcisnewsql ) 10936 { 10937 ret = new TGrantStmt(pdbvendor); 10938 //ret.sqlstatementtype = gnewsqlstatementtype; 10939 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 10940 { 10941 lctoken = lcsourcetokenlist.get(k); 10942 if (lctoken.isnonsolidtoken() ) continue; 10943 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 10944 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 10945 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 10946 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 10947 } 10948 } 10949 break; 10950 } 10951 case sstmssqlrevoke:{ 10952 lcisnewsql = true; 10953 if ( pstate != EFindSqlStateType.stnormal ) 10954 { 10955 if((lcisnewsql)&&(TBaseType.assigned(lccurrentsqlstatement))) { 10956 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateschema) 10957 ) 10958 { 10959 lcisnewsql = false; 10960 } 10961 } 10962 } 10963 if ( lcisnewsql ) 10964 { 10965 ret = new TRevokeStmt(pdbvendor); 10966 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 10967 { 10968 lctoken = lcsourcetokenlist.get(k); 10969 if (lctoken.isnonsolidtoken() ) continue; 10970 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 10971 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 10972 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 10973 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 10974 } 10975 } 10976 break; 10977 10978 } 10979 case sstmssqldeny: 10980 { 10981 lcisnewsql = true; 10982 if ( pstate != EFindSqlStateType.stnormal ) 10983 { 10984 if((lcisnewsql)&&(TBaseType.assigned(lccurrentsqlstatement))) { 10985 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateschema) 10986 ) 10987 { 10988 lcisnewsql = false; 10989 } 10990 } 10991 } 10992 if ( lcisnewsql ) 10993 { 10994 ret = new TDenyStmt(pdbvendor); 10995 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 10996 { 10997 lctoken = lcsourcetokenlist.get(k); 10998 if (lctoken.isnonsolidtoken() ) continue; 10999 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 11000 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 11001 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 11002 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 11003 } 11004 } 11005 break; 11006 } 11007 case sstmssqldeclare: 11008 { 11009 ret = new TMssqlDeclare(pdbvendor); 11010 break; 11011 } 11012 case sstmssqlcontinue: 11013 { 11014 ret = new TMssqlContinue(pdbvendor); 11015 break; 11016 } 11017 case sstbreak: 11018 { 11019 ret = new TBreakStmt(pdbvendor); 11020 break; 11021 } 11022 case sstmssqlopen: 11023 { 11024 ret = new TMssqlOpen(pdbvendor); 11025 break; 11026 } 11027 case sstmssqlclose: 11028 { 11029 ret = new TMssqlClose(pdbvendor); 11030 break; 11031 } 11032 case sstmssqlbulkinsert: 11033 { 11034 ret = new TMssqlBulkInsert(pdbvendor); 11035 break; 11036 } 11037 case sstmssqldeallocate: 11038 { 11039 ret = new TMssqlDeallocate(pdbvendor); 11040 break; 11041 } 11042 case sstmssqlraiserror: 11043 { 11044 ret = new TMssqlRaiserror(pdbvendor); 11045 break; 11046 } 11047 case sstmssqlgoto: 11048 { 11049 ret = new TMssqlGoTo(pdbvendor); 11050 break; 11051 } 11052 case sstmssqldropview: 11053 { 11054 ret = new TDropViewSqlStatement(pdbvendor); 11055 break; 11056 } 11057 case sstmssqldroptable: 11058 { 11059 ret = new TDropTableSqlStatement(pdbvendor); 11060 break; 11061 } 11062 case sstmssqldropindex: 11063 { 11064 ret = new TDropIndexSqlStatement(pdbvendor); 11065 break; 11066 } 11067 case sstmssqldroppartitionscheme : 11068 ret = new TDropPartitionSchemeStmt(pdbvendor); 11069 break; 11070 case sstmssqldropaggregate : 11071 case sstmssqldropapplicationrole : 11072 case sstmssqldropassembly : 11073 case sstmssqldropasymmetrickey : 11074 case sstmssqldropcertificate : 11075 case sstmssqldropcontract : 11076 case sstmssqldropcredential : 11077 case sstmssqldropdefault : 11078 case sstmssqldropendpoint : 11079 case sstmssqldropeventnotification : 11080 case sstmssqldropfulltextcatalog : 11081 case sstmssqldropfulltextindex : 11082 case sstmssqldroplogin : 11083 case sstmssqldropmasterkey : 11084 case sstmssqldropmessagetype : 11085 case sstmssqldroppartitionfunction : 11086 case sstmssqldropqueue : 11087 case sstmssqldropremoteservicebinding : 11088 case sstmssqldroprole : 11089 case sstmssqldroproute : 11090 case sstmssqldroprule : 11091 case sstmssqldropservice : 11092 case sstmssqldropsignature: 11093 case sstmssqldropstatistics : 11094 case sstmssqldropsymmetrickey : 11095 case sstmssqldroptrigger : 11096 case sstmssqldroptype : 11097 case sstmssqldropuser : 11098 case sstmssqldropxmlschemacollection: 11099 case sstmssqldropeventsession: 11100 { 11101 ret = new TMssqlDropDbObject(EDbVendor.dbvmssql); 11102 ret.sqlstatementtype = gnewsqlstatementtype; 11103 break; 11104 } 11105 case sstmssqldropsynonym : 11106 { 11107 ret = new TDropSynonymStmt(pdbvendor); 11108 break; 11109 } 11110 case sstmssqldropprocedure : 11111 { 11112 ret = new TDropProcedureStmt(EDbVendor.dbvmssql); 11113 break; 11114 } 11115 case sstmssqldropdatabase : 11116 { 11117 ret = new TDropDatabaseStmt(EDbVendor.dbvmssql); 11118 break; 11119 } 11120 case sstmssqldropschema : 11121 { 11122 ret = new TDropSchemaSqlStatement(EDbVendor.dbvmssql); 11123 break; 11124 } 11125 case sstmssqltruncatetable: 11126 { 11127 ret = new TTruncateStatement(pdbvendor); 11128 break; 11129 } 11130 case sstmssqlbegintran: 11131 { 11132 ret = new TBeginTran(pdbvendor); 11133 break; 11134 } 11135 case sstmssqlsavetran: 11136 { 11137 if (pdbvendor == EDbVendor.dbvodbc){ 11138 11139 }else if (pdbvendor == EDbVendor.dbvmssql) { 11140 ret = new TMssqlSaveTran(pdbvendor); 11141 } 11142 break; 11143 } 11144 case sstmssqlcommit: 11145 { 11146 ret = new TMssqlCommit(pdbvendor); 11147 break; 11148 } 11149 case sstmssqlrollback: 11150 { 11151 ret = new TMssqlRollback(pdbvendor); 11152 break; 11153 } 11154 case sstmssqlreadtext : 11155 case sstmssqldbcc : 11156 case sstmssqlrestore : 11157 case sstmssqlbackup : 11158 { 11159 ret = new TMssqlDummyStmt(pdbvendor); 11160 ret.sqlstatementtype = gnewsqlstatementtype; 11161 break; 11162 } 11163 11164 case sstmssqlreceive: 11165 { 11166 lcisnewsql = true; 11167 if ( pstate != EFindSqlStateType.stnormal ) 11168 { 11169 if((lcisnewsql)&&(TBaseType.assigned(lccurrentsqlstatement))) { 11170 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 11171 ) 11172 { 11173 lcisnewsql = false; 11174 } 11175 } 11176 } 11177 if ( lcisnewsql ) 11178 { 11179 ret = new TMssqlDummyStmt(pdbvendor); 11180 ret.sqlstatementtype = gnewsqlstatementtype; 11181 } 11182 break; 11183 } 11184 case sstcreateindex: 11185 { 11186 ret = new TCreateIndexSqlStatement(pdbvendor); 11187 break; 11188 } 11189 case sstmssqlwaitfor: 11190 { 11191 ret = new TMssqlWaitFor(pdbvendor); 11192 break; 11193 } 11194 case sstmerge: 11195 { 11196 lcisnewsql = true; 11197 11198 if (pstate != EFindSqlStateType.stnormal) 11199 { 11200 11201 if (lccurrentsqlstatement != null) 11202 { 11203 // merge union, merge join 11204 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 11205 { 11206 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 11207 if (lcnextsolidtoken != null) 11208 { 11209 if ((lcnextsolidtoken.tokencode == TBaseType.rrw_union) || (lcnextsolidtoken.tokencode == TBaseType.rrw_join)) 11210 { 11211 lcisnewsql = false; 11212 } 11213 } 11214 } 11215 11216// if ( TBaseType.assigned(lcprevsolidtoken) ) 11217// { 11218// if ( lcprevsolidtoken.tokencode == '(' ) 11219// lcisnewsql = false; 11220// } 11221 11222 } 11223 if (lcisnewsql){ 11224 TSourceToken nextSt = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 11225 if (nextSt != null){ 11226 if (nextSt.tokencode == TBaseType.rrw_join){ 11227 lcisnewsql = false; 11228 } 11229 } 11230 } 11231 } 11232 11233 if (lcisnewsql) 11234 { 11235 ret = new TMergeSqlStatement(pdbvendor); 11236 ret.sqlstatementtype = gnewsqlstatementtype; 11237 } 11238 11239 break; 11240 } 11241 case sstmssqlbegintry : 11242 case sstmssqlbegincatch: 11243 { 11244 ret = new TMssqlBlock(pdbvendor); 11245 ret.sqlstatementtype = gnewsqlstatementtype; 11246 break; 11247 } 11248 case sstmssqlexec: 11249 { 11250 lcisnewsql = true; 11251 // prev tokentext can't be with 11252 if ( pstate != EFindSqlStateType.stnormal ) 11253 { 11254 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11255 { 11256 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 11257 { 11258 if ( lccurrentsqlstatement.dummytag == 1 ) 11259 { 11260 lcisnewsql = false; 11261 lccurrentsqlstatement.dummytag = 0; // no select is permitted after it 11262 } 11263 11264 TSourceToken valuesToken = pcst.searchToken(TBaseType.rrw_values,-pcst.posinlist); 11265 if (valuesToken != null){ 11266 // https://www.sqlparser.com/bugs/mantisbt/view.php?id=3153 11267 // INSERT INTO @tempTbl VALUES ('Test5') 11268 // 11269 //EXEC sp_execute @handle, 1 11270 // 如果 EXEC 在 insert 语句的 values 后面,则这个 EXEC 为独立的 sql 语句, 11271 // 而不是属于insert 语句 11272 TSourceToken insertToken = lccurrentsqlstatement.sourcetokenlist.get(0); 11273 if (valuesToken.posinlist > insertToken.posinlist){ 11274 lcisnewsql = true; 11275 } 11276 } 11277 } 11278 11279 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 11280 { 11281 if ( TBaseType.assigned(lcprevsolidtoken) ) 11282 { 11283 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 11284 lcisnewsql = false; 11285 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 11286 lcisnewsql = false; 11287 } 11288 } 11289 11290 if ( 11291 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 11292 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 11293 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 11294 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 11295 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 11296 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 11297 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatequeue) 11298 ) 11299 { 11300 if ( TBaseType.assigned(lcprevsolidtoken) ) 11301 { 11302 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 11303 lcisnewsql = false; 11304 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 11305 lcisnewsql = false; 11306 } 11307 } 11308 } 11309 } 11310 if ( lcisnewsql ) 11311 { 11312 ret = new TMssqlExecute(pdbvendor); 11313 } 11314 break; 11315 } 11316 case sstmssqlexecuteas: 11317 { 11318 lcisnewsql = true; 11319 // prev tokentext can't be with 11320 if ( pstate != EFindSqlStateType.stnormal ) 11321 { 11322 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11323 { 11324 if ( 11325 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 11326 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 11327 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 11328 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 11329 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 11330 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 11331 ) 11332 { 11333 if ( TBaseType.assigned(lcprevsolidtoken) ) 11334 { 11335 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 11336 lcisnewsql = false; 11337 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 11338 lcisnewsql = false; 11339 } 11340 } 11341 } 11342 } 11343 if ( lcisnewsql ) 11344 { 11345 ret = new TMssqlExecuteAs(pdbvendor); 11346 ret.sqlstatementtype = gnewsqlstatementtype; 11347 } 11348 break; 11349 } 11350 case sstmssqlset: 11351 { 11352 lcisnewsql = true; 11353 if ( pstate != EFindSqlStateType.stnormal ) 11354 { 11355 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11356 { 11357 11358 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlif) 11359 { 11360 TSourceToken lcPPToken = lcsourcetokenlist.searchToken(TBaseType.rrw_update,"",pcst,-10); 11361 if (TBaseType.assigned(lcPPToken)) 11362 { 11363 lcisnewsql = false; 11364 } 11365 } 11366 11367 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstalterdatabase) 11368 { 11369 TSourceToken lcPPToken = lcsourcetokenlist.searchToken(TBaseType.rrw_alter,"",pcst,-10); 11370 if (TBaseType.assigned(lcPPToken)) 11371 { 11372 lcisnewsql = false; 11373 } 11374 } 11375 11376 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 11377 { 11378 if (lcprevsolidtoken != null) 11379 { 11380 if (lcprevsolidtoken.tokencode == TBaseType.rrw_update){ 11381 lcisnewsql = false;} 11382 } 11383 } 11384 11385 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstupdate ) 11386 { 11387 if ( lccurrentsqlstatement.dummytag == 1 ) 11388 { 11389 //update statement still find set clause yet, so this is set clause in update statement 11390 lccurrentsqlstatement.dummytag = 0; 11391 lcisnewsql = false; 11392 } 11393 } 11394 11395 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateeventsession ) 11396 { 11397 lcisnewsql = false; 11398 } 11399 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable ) 11400 { 11401 lcisnewsql = false; 11402 } 11403 } 11404 11405 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 11406 if ( TBaseType.assigned(lcnextsolidtoken) ) 11407 { //set null, set default 11408 if ( (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(),"null")==0) 11409 || (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(), "default")==0) ) 11410 { 11411 lcisnewsql = false; 11412 } 11413 } 11414 11415 } 11416 11417 if ( lcisnewsql ) 11418 { 11419 ret = new TMssqlSet(pdbvendor); 11420 } 11421 11422 break; 11423 } 11424 case sstmssqlsetrowcount: 11425 { 11426 ret = new TMssqlSetRowCount(pdbvendor); 11427 break; 11428 } 11429 case sstmssqlupdatetext: 11430 { 11431 ret = new TMssqlUpdateText(pdbvendor); 11432 break; 11433 } 11434 case sstmssqlendconversation: 11435 { 11436 ret = new TMssqlEndConversation(pdbvendor); 11437 break; 11438 } 11439 case sstmssqlbegindialog: 11440 { 11441 ret = new TMssqlBeginDialog(pdbvendor); 11442 break; 11443 } 11444 case sstmssqlsendonconversation: 11445 { 11446 ret = new TMssqlSendOnConversation(pdbvendor); 11447 break; 11448 } 11449 case sstdropsequence: 11450 ret = new TDropSequenceStmt(pdbvendor); 11451 break; 11452 case sstmssqldisabletrigger : 11453 case sstmssqlenabletrigger: 11454 { 11455 lcisnewsql = true; 11456 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11457 { 11458 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable ) 11459 lcisnewsql = false; 11460 } 11461 11462 if ( lcisnewsql ) 11463 { 11464 ret = new TUnknownSqlStatement(pdbvendor); 11465 ret.sqlstatementtype = gnewsqlstatementtype; 11466 } 11467 break; 11468 } 11469 case sstmssqlthrow: 11470 ret = new TMssqlThrow(pdbvendor); 11471 break; 11472 case sstmssqlalterdatabase: 11473 ret = new TAlterDatabaseStmt(pdbvendor); 11474 break; 11475 case sstmssqlreconfigure: 11476 ret = new TReconfigure(pdbvendor); 11477 break; 11478 case sstcreatedatabase: 11479 { 11480 ret = new TCreateDatabaseSqlStatement(pdbvendor); 11481 break; 11482 } 11483 case sstmssqlcreateschema: 11484 { 11485 ret = new TCreateSchemaSqlStatement(pdbvendor); 11486 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 11487 { 11488 lctoken = lcsourcetokenlist.get(k); 11489 if (lctoken.isnonsolidtoken() ) continue; 11490 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 11491 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 11492 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 11493 } 11494 break; 11495 } 11496 case sstmssqlcreatesynonym: 11497 { 11498 ret = new TCreateSynonymStmt(pdbvendor); 11499 break; 11500 } 11501 case sstmssqlcreatetype: 11502 ret = new TMssqlCreateType(pdbvendor); 11503 break; 11504 case sstmssqlcreatexmlschemacollection: 11505 ret = new TMssqlCreateXmlSchemaCollectionStmt(pdbvendor); 11506 break; 11507 case sstmssqlalterindex: 11508 ret = new TAlterIndexStmt(pdbvendor); 11509 break; 11510 case sstmssqlcreateevexternalDataSource: 11511 ret = new TCreateExternalDataSourceStmt(pdbvendor); 11512 break; 11513 case sstmssqlcreateeventsession: 11514 ret = new TCreateEventSession(pdbvendor); 11515 break; 11516 case sstmssqldropfunction : 11517 ret = new TDropFunctionStmt(pdbvendor); 11518 break; 11519 case sstmssqlcreateevexternalLanguage: 11520 ret = new TCreateExternalLanguage(pdbvendor); 11521 break; 11522 case sstmssqlalterview: 11523 { 11524 lcisnewsql = true; 11525 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11526 { 11527 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 11528 lcisnewsql = false; 11529 } 11530 11531 if ( lcisnewsql ) 11532 { 11533 ret = new TAlterViewStatement(pdbvendor); 11534 //ret.sqlstatementtype = gnewsqlstatementtype; 11535 } 11536 break; 11537 } 11538 case sstCreateFileFormat: 11539 { 11540 ret = new TCreateFileFormatStmt(pdbvendor); 11541 break; 11542 } 11543 case sstmssqlcreatemasterkey: 11544 ret = new TCreateMasterKeyStmt(pdbvendor); 11545 break; 11546 case sstmssqlcreatedatabaseencryptionkey: 11547 { 11548 TMssqlStmtStub stub = new TMssqlStmtStub(pdbvendor); 11549 stub.sqlstatementtype = ESqlStatementType.sstmssqlcreatedatabaseencryptionkey; 11550 ret = stub; 11551 break; 11552 } 11553 case sstmssqlcreateselectivexmlindex: 11554 { 11555 TMssqlStmtStub stub = new TMssqlStmtStub(pdbvendor); 11556 stub.sqlstatementtype = ESqlStatementType.sstmssqlcreateselectivexmlindex; 11557 ret = stub; 11558 break; 11559 } 11560 case sstmssqlcreatejsonindex: 11561 { 11562 TMssqlStmtStub stub = new TMssqlStmtStub(pdbvendor); 11563 stub.sqlstatementtype = ESqlStatementType.sstmssqlcreatejsonindex; 11564 ret = stub; 11565 break; 11566 } 11567 case sstmssqlcreatevectorindex: 11568 { 11569 TMssqlStmtStub stub = new TMssqlStmtStub(pdbvendor); 11570 stub.sqlstatementtype = ESqlStatementType.sstmssqlcreatevectorindex; 11571 ret = stub; 11572 break; 11573 } 11574 case sstcreatecredential: 11575 ret = new TCreateCredentialStmt(pdbvendor); 11576 break; 11577 case sstCopyInto: 11578 { 11579 ret = new TMssqlCopyIntoStmt(pdbvendor); 11580 break; 11581 } 11582 case sstcreatematerializedview:{ 11583 ret = new TCreateMaterializedSqlStatement(pdbvendor); 11584 break; 11585 } 11586 case sstmssqlCreateSecurityPolicy: 11587 ret = new TMssqlCreateSecurityPolicy(pdbvendor); 11588 break; 11589 case sstmssqlAlterSecurityPolicy: 11590 ret = new TMssqlAlterSecurityPolicy(pdbvendor); 11591 break; 11592 case sstmssqlDropSecurityPolicy: 11593 ret = new TMssqlDropSecurityPolicy(pdbvendor); 11594 break; 11595 case sstmssqlalterpartitionfunction: 11596 ret = new TAlterPartitionFunctionStmt(pdbvendor); 11597 break; 11598 case sstmssqlcreatepartitionfunction: 11599 ret = new TCreatePartitionFunctionStmt(pdbvendor); 11600 break; 11601 case sstmssqlalterpartitionscheme: 11602 ret = new TAlterPartitionSchemeSqlStatement(pdbvendor); 11603 break; 11604 case sstmssqlcreatepartitionscheme: 11605 ret = new TCreatePartitionSchemeSqlStatement(pdbvendor); 11606 break; 11607 default: 11608 { 11609 ret = new TUnknownSqlStatement(pdbvendor); 11610 ret.sqlstatementtype = gnewsqlstatementtype; 11611 break; 11612 } 11613 } // case 11614 11615 return ret; 11616 } 11617 11618 TCustomSqlStatement isteradatasql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 11619 TCustomSqlStatement ret = null; 11620 int k; 11621 boolean lcisnewsql; 11622 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 11623 11624 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 11625 11626 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 11627 || (pcst.tokencode == TBaseType.cmtslashstar) 11628 || (pcst.tokencode == TBaseType.lexspace) 11629 || (pcst.tokencode == TBaseType.lexnewline) 11630 || (pcst.tokentype == ETokenType.ttsemicolon) ) 11631 { 11632 return ret; 11633 } 11634 11635 int lcpos = pcst.posinlist; 11636 TSourceTokenList lcsourcetokenlist = pcst.container; 11637 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 11638 11639 //subquery after semicolon || at first line 11640 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) 11641 { 11642 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 11643 if ( k >0 ) 11644 { 11645 ret = new TSelectSqlStatement(pdbvendor); 11646 }else{ 11647 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_teradata_sel,1,"("); 11648 if ( k >0 ) 11649 { 11650 ret = new TSelectSqlStatement(pdbvendor); 11651 } 11652 } 11653 11654 return ret; 11655 } 11656 11657 //cte 11658 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 11659 { 11660 ret = findcte(pcst,pdbvendor); 11661 if ( (ret != null) ) return ret; 11662 } 11663 11664 // using 11665 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_teradata_using) ){ 11666 //return mapTeradataUsing(pcst); 11667 return new TTeradataUsing(pdbvendor); 11668 } 11669 11670 if ( (pstate == EFindSqlStateType.stnormal) && 11671 ((pcst.tokencode == TBaseType.rrw_lock)||(pcst.tokencode == TBaseType.rrw_teradata_locking)) ){ 11672 return new TTeradataLock(pdbvendor); 11673 } 11674 11675 gnewsqlstatementtype = findteradatacmd(pcst); 11676 11677 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 11678 switch(gnewsqlstatementtype ) { // 11679 case sstinvalid: 11680 { 11681 ret = null; 11682 break; 11683 } 11684 case sstselect: 11685 { 11686 lcisnewsql = true; 11687 11688 if ( pstate != EFindSqlStateType.stnormal ) 11689 { 11690 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 11691 if ( (lcprevsolidtoken != null) ) 11692 { 11693 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 11694 lcisnewsql = false; //subqery 11695 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 11696 lcisnewsql = false; 11697 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 11698 lcisnewsql = false; 11699 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 11700 lcisnewsql = false; 11701 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 11702 lcisnewsql = false; 11703 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 11704 lcisnewsql = false; 11705 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 11706 { 11707 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 11708 lcisnewsql = false; 11709 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 11710 lcisnewsql = false; 11711 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatareplaceview ) 11712 lcisnewsql = false; 11713 } 11714 11715 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 11716 { 11717 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 11718 if ( (lcpprevsolidtoken != null) ) 11719 { 11720 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 11721 lcisnewsql = false; 11722 } 11723 } 11724 11725 } 11726 11727 if ( (lccurrentsqlstatement != null) ) 11728 { 11729 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 11730 { 11731 } 11732 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 11733 lcisnewsql = false; 11734 } 11735 } 11736 11737 } 11738 11739 if ( lcisnewsql ) 11740 ret = new TSelectSqlStatement(pdbvendor); 11741 11742 break; 11743 11744 } 11745 case sstinsert: 11746 { 11747 lcisnewsql = true; 11748 if ( pstate != EFindSqlStateType.stnormal ) 11749 { 11750 if ( (lccurrentsqlstatement != null) ) 11751 { 11752 // merge 11753 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 11754 { 11755 if (lcprevsolidtoken != null) 11756 { 11757 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 11758 {lcisnewsql = false;} 11759 } 11760 } 11761 11762 11763 11764 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger ) 11765 { 11766 if ( (lcprevsolidtoken != null) ) 11767 { 11768 if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 11769 lcisnewsql = false; 11770 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 11771 lcisnewsql = false; 11772 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"before") == 0 ) 11773 lcisnewsql = false; 11774 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 11775 lcisnewsql = false; 11776 } 11777 } 11778 11779 11780 } 11781 } 11782 11783 if ( lcisnewsql ) 11784 { 11785 ret = new TInsertSqlStatement(pdbvendor); 11786 ret.dummytag = 1; // select stmt in insert is permitted 11787 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 11788 { 11789 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 11790 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 11791 // if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 11792 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 11793 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ) break; 11794 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 11795 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 11796 } // for ( 11797 if ( k > lcsourcetokenlist.size() - 1 ) 11798 k = lcsourcetokenlist.size() - 1; 11799 11800 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 11801 { 11802 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 11803 } // for ( 11804 11805 } 11806 11807 break; 11808 } 11809 case sstupdate: 11810 { 11811 lcisnewsql = true; 11812 if ( pstate != EFindSqlStateType.stnormal ) 11813 { 11814 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 11815 if ( (lcprevsolidtoken != null) ) 11816 { // 11817 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 11818 lcisnewsql = false; 11819 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 11820 lcisnewsql = false; 11821 } 11822 11823 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 11824 if ( TBaseType.assigned(lcnextsolidtoken) ) 11825 { 11826 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 11827 { 11828 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 11829 if ( k == 0 ) lcisnewsql = false; 11830 } 11831 } 11832 11833 11834 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11835 { 11836 // merge 11837 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 11838 { 11839 if (lcprevsolidtoken != null) 11840 { 11841 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 11842 {lcisnewsql = false;} 11843 } 11844 } 11845 11846 11847 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger ) 11848 { 11849 if ( TBaseType.assigned(lcprevsolidtoken) ) 11850 { 11851 if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 11852 lcisnewsql = false; 11853 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 11854 lcisnewsql = false; 11855 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"before") == 0 ) 11856 lcisnewsql = false; 11857 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 11858 lcisnewsql = false; 11859 } 11860 } 11861 11862 } 11863 } 11864 11865 if ( lcisnewsql ) 11866 { 11867 ret = new TUpdateSqlStatement(pdbvendor); 11868 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 11869 } 11870 11871 break; 11872 } 11873 case sstdelete: 11874 { 11875 lcisnewsql = true; 11876 11877 if ( pstate != EFindSqlStateType.stnormal ) 11878 { 11879 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 11880 if ( TBaseType.assigned(lcprevsolidtoken) ) 11881 { 11882 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 11883 lcisnewsql = false; 11884 } 11885 11886 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11887 { 11888 // merge 11889 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 11890 { 11891 if (lcprevsolidtoken != null) 11892 { 11893 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 11894 {lcisnewsql = false;} 11895 } 11896 } 11897 11898 11899 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger ) 11900 { 11901 if ( TBaseType.assigned(lcprevsolidtoken) ) 11902 { 11903 if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 11904 lcisnewsql = false; 11905 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 11906 lcisnewsql = false; 11907 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"before") == 0 ) 11908 lcisnewsql = false; 11909 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 11910 lcisnewsql = false; 11911 } 11912 } 11913 11914 } 11915 } 11916 11917 if ( lcisnewsql ) 11918 ret = new TDeleteSqlStatement(pdbvendor); 11919 11920 break; 11921 } 11922 case sstcreatetable: 11923 { 11924 ret = new TCreateTableSqlStatement(pdbvendor); 11925 break; 11926 } 11927 case sstaltertable: 11928 case sstteradataaltertable: 11929 { 11930 ret = new TAlterTableStatement(pdbvendor); 11931 break; 11932 } 11933 case sstteradatafetch: 11934 { 11935 ret = new TMssqlFetch(pdbvendor); 11936 break; 11937 } 11938 case sstcreateprocedure : 11939 case sstteradatareplaceprocedure: 11940 { 11941 ret = new TCreateProcedureStmt(pdbvendor); 11942 break; 11943 } 11944 case sstteradataalterprocedure: 11945 ret = new TAlterProcedureStmt(pdbvendor); 11946 break; 11947 case sstteradatacreatefunction : 11948 case sstteradatareplacefunction: 11949 { 11950 ret = new TTeradataCreateFunction(pdbvendor); 11951 break; 11952 } 11953 case sstteradataalterfunction: 11954 ret = new TAlterFunctionStmt(pdbvendor); 11955 break; 11956 case sstteradatacreatetrigger : 11957 case sstteradataaltertrigger: 11958 case sstteradatareplacetrigger: 11959 { 11960 ret = new TCreateTriggerStmt(pdbvendor); 11961 break; 11962 } 11963 case sstteradatagrant: 11964 { 11965 lcisnewsql = true; 11966 // prev tokentext can't be with 11967 if ( pstate != EFindSqlStateType.stnormal ) 11968 { 11969 if ( TBaseType.assigned(lcprevsolidtoken) ) 11970 { 11971 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 11972 { 11973 ret = null; 11974 lcisnewsql = false; 11975 } 11976 } 11977 } 11978 if ( lcisnewsql ) 11979 { 11980 ret = new TTeradataGrant(pdbvendor); 11981 ret.sqlstatementtype = gnewsqlstatementtype; 11982 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 11983 { 11984 lctoken = lcsourcetokenlist.get(k); 11985 if (lctoken.isnonsolidtoken() ) continue; 11986 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 11987 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 11988 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 11989 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 11990 } 11991 } 11992 break; 11993 } 11994 case sstdropindex: 11995 { 11996 ret = new TDropIndexSqlStatement(pdbvendor); 11997 break; 11998 } 11999 case sstdroptable: 12000 { 12001 ret = new TDropTableSqlStatement(pdbvendor); 12002 break; 12003 } 12004 case sstdropview: 12005 { 12006 ret = new TDropViewSqlStatement(pdbvendor); 12007 break; 12008 } 12009 case sstteradatadropprocedure: 12010 ret = new TDropProcedureStmt(pdbvendor); 12011 break; 12012 case sstteradatadropauthorization: 12013 case sstteradatadropcast: 12014 case sstteradatadropdatabase: 12015 case sstteradatadropfunction: 12016 case sstteradatadroptrigger: 12017 case sstteradatadropordering: 12018 case sstteradatadropprofile: 12019 case sstteradatadropreplicationgroup: 12020 case sstteradatadroprole: 12021 case sstteradatadroptransform: 12022 case sstteradatadroptype: 12023 case sstteradatadropuser: 12024 case sstteradatadropzone: 12025 { 12026 ret = new TTeradataDropDbObject(EDbVendor.dbvteradata); 12027 ret.sqlstatementtype = gnewsqlstatementtype; 12028 break; 12029 } 12030 case sstteradatadropmacro: 12031 ret = new TDropMacro(EDbVendor.dbvteradata); 12032 break; 12033 case sstteradatadropconstraint: 12034 ret = new TDropConstraintStmt(EDbVendor.dbvteradata); 12035 break; 12036 case sstteradatabegintransaction: 12037 { 12038 ret = new TBeginTran(pdbvendor); 12039 break; 12040 } 12041 case sstteradataendtransaction: 12042 { 12043 ret = new TEndTran(pdbvendor); 12044 break; 12045 } 12046 case sstteradatabeginrequest: 12047 { 12048 ret = new TBeginTran(pdbvendor); 12049 ret.sqlstatementtype = ESqlStatementType.sstteradatabeginrequest; 12050 break; 12051 } 12052 case sstteradataendrequest: 12053 { 12054 ret = new TEndTran(pdbvendor); 12055 ret.sqlstatementtype = ESqlStatementType.sstteradataendrequest; 12056 break; 12057 } 12058 case sstteradatacommit: 12059 { 12060 ret = new TTeradataCommit(pdbvendor); 12061 break; 12062 } 12063 case sstteradatarollback: 12064 { 12065 ret = new TTeradataRollback(pdbvendor); 12066 break; 12067 } 12068 case sstcreateindex: 12069 { 12070 ret = new TCreateIndexSqlStatement(pdbvendor); 12071 break; 12072 } 12073 case sstmerge: 12074 { 12075 lcisnewsql = true; 12076 12077 if (pstate != EFindSqlStateType.stnormal) 12078 { 12079 12080 if (lccurrentsqlstatement != null) 12081 { 12082 // merge union, merge join 12083 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 12084 { 12085 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 12086 if (lcnextsolidtoken != null) 12087 { 12088 if ((lcnextsolidtoken.tokencode == TBaseType.rrw_union) || (lcnextsolidtoken.tokencode == TBaseType.rrw_join)) 12089 { 12090 lcisnewsql = false; 12091 } 12092 } 12093 } 12094 12095 } 12096 } 12097 12098 if (lcisnewsql) 12099 { 12100 ret = new TMergeSqlStatement(pdbvendor); 12101 ret.sqlstatementtype = gnewsqlstatementtype; 12102 } 12103 12104 break; 12105 } 12106 case sstteradataexecute: 12107 { 12108 lcisnewsql = true; 12109 // prev tokentext can't be with 12110 if ( pstate != EFindSqlStateType.stnormal ) 12111 { 12112 if ( TBaseType.assigned(lccurrentsqlstatement) ) 12113 { 12114 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 12115 { 12116 if ( lccurrentsqlstatement.dummytag == 1 ) 12117 { 12118 lcisnewsql = false; 12119 lccurrentsqlstatement.dummytag = 0; // no select is permited after it 12120 } 12121 } 12122 12123 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatagrant ) 12124 { 12125 if ( TBaseType.assigned(lcprevsolidtoken) ) 12126 { 12127 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 12128 lcisnewsql = false; 12129 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12130 lcisnewsql = false; 12131 } 12132 } 12133 12134 if ( 12135 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateprocedure) 12136 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger) 12137 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatacreatefunction) 12138 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradataalterprocedure) 12139 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradataaltertrigger) 12140 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradataalterfunction) 12141 ) 12142 { 12143 if ( TBaseType.assigned(lcprevsolidtoken) ) 12144 { 12145 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 12146 lcisnewsql = false; 12147 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12148 lcisnewsql = false; 12149 } 12150 } 12151 } 12152 } 12153 if ( lcisnewsql ) 12154 { 12155 ret = new TTeradataExecute(pdbvendor); 12156 } 12157 break; 12158 } 12159 case sstteradatasetsession: 12160 { 12161 ret = new TTeradataSetSession(pdbvendor); 12162 break; 12163 } 12164 case sstteradatadatabase: 12165 if (pcst.isFirstTokenOfLine()){ 12166 ret = new TTeradataSetSession(pdbvendor); 12167 } 12168 12169 break; 12170 case sstteradatasettimezone: 12171 { 12172 ret = new TTeradataSetTimezone(pdbvendor); 12173 break; 12174 } 12175 case sstteradatasetrole: 12176 { 12177 ret = new TTeradataSetRole(pdbvendor); 12178 break; 12179 } 12180 case sstteradataendlogging: 12181 { 12182 ret = new TTeradataEndLogging(pdbvendor); 12183 break; 12184 } 12185 case sstteradatabeginlogging: 12186 { 12187 ret = new TTeradataBeginLogging(pdbvendor); 12188 break; 12189 } 12190 case sstteradataabort: 12191 { 12192 ret = new TTeradataAbort(pdbvendor); 12193 break; 12194 } 12195 case sstteradatareplaceview: 12196 case sstcreateview: 12197 { 12198 ret = new TCreateViewSqlStatement(pdbvendor); 12199 ret.sqlstatementtype = ESqlStatementType.sstcreateview; 12200 break; 12201 } 12202 case sstteradatacollectstatistics: 12203 { 12204 ret = new TTeradataCollectStatistics(pdbvendor); 12205 break; 12206 } 12207 case sstteradatagive: 12208 { 12209 ret = new TTeradataGive(pdbvendor); 12210 break; 12211 } 12212 case sstteradatacall: 12213 ret = new TCallStatement(pdbvendor); 12214 break; 12215 case sstteradatacreatemacro: 12216 case sstteradatareplacemacro: 12217 ret = new TCreateMacro(pdbvendor); 12218 break; 12219 case sstteradatarenametable: 12220 ret = new TRenameStmt(pdbvendor); 12221 break; 12222 case sstteradatacomment: 12223 ret = new TCommentOnSqlStmt(pdbvendor); 12224 break; 12225 case sstteradatacheckworkload: 12226 ret = new TCheckWorkload(pdbvendor); 12227 break; 12228 case sstgetdiagnostics: 12229 ret = new TGetDiagStmt(pdbvendor); 12230 break; 12231 case sstteradatacreaterole: 12232 ret = new TCreateRoleStmt(pdbvendor); 12233 break; 12234 case sstteradatarevoke: 12235 ret = new TRevokeStmt(pdbvendor); 12236 break; 12237 case sstteradataalterzone: 12238 ret = new TAlterZoneStmt(pdbvendor); 12239 break; 12240 case sstcreatezone: 12241 ret = new TCreateZoneStmt(pdbvendor); 12242 break; 12243 case sstteradataalterconstraint: 12244 ret = new TAlterConstraintStmt(pdbvendor); 12245 break; 12246 case sstExplain: 12247 ret = new TExplainPlan(pdbvendor); 12248 break; 12249 case sstteradatareleaseLock: 12250 ret = new TTeradataReleaseLockStmt(pdbvendor); 12251 break; 12252 default: 12253 { 12254 ret = new TTeradataNotImplement(pdbvendor); 12255 ret.sqlstatementtype = gnewsqlstatementtype; 12256 break; 12257 } 12258 } // case 12259 12260 return ret; 12261 } 12262 12263 12264 TCustomSqlStatement ishana(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 12265 TCustomSqlStatement ret = null; 12266 int k; 12267 boolean lcisnewsql; 12268 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 12269 12270 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 12271 12272 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 12273 || (pcst.tokencode == TBaseType.cmtslashstar) 12274 || (pcst.tokencode == TBaseType.lexspace) 12275 || (pcst.tokencode == TBaseType.lexnewline) 12276 || (pcst.tokentype == ETokenType.ttsemicolon) ) 12277 { 12278 return ret; 12279 } 12280 12281 int lcpos = pcst.posinlist; 12282 TSourceTokenList lcsourcetokenlist = pcst.container; 12283 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 12284 12285 //subquery after semicolon || at first line 12286 if ( pcst.tokentype == ETokenType.ttleftparenthesis) // ( 12287 { 12288 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 12289 if ( k >0 ) 12290 { 12291 if (pstate == EFindSqlStateType.stnormal){ 12292 ret = new TSelectSqlStatement(pdbvendor); 12293 return ret; 12294 } 12295 } 12296 } 12297 12298 //cte 12299 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 12300 { 12301 ret = findcte(pcst,pdbvendor); 12302 if ( (ret != null) ) return ret; 12303 } 12304 12305 gnewsqlstatementtype = findhanacmd(pcst); 12306 12307 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 12308 switch(gnewsqlstatementtype ) { // 12309 case sstinvalid: 12310 { 12311 if ( pcst.tokencode == TBaseType.mslabel ) 12312 { 12313 ret = new TMssqlLabel(pdbvendor); 12314 } 12315 else 12316 ret = null; 12317 12318 break; 12319 } 12320 case sstselect: 12321 { 12322 lcisnewsql = true; 12323 12324 if ( pstate != EFindSqlStateType.stnormal ) 12325 { 12326 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 12327 if ( (lcprevsolidtoken != null) ) 12328 { 12329 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 12330 lcisnewsql = false; //subqery 12331 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 12332 lcisnewsql = false; 12333 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 12334 lcisnewsql = false; 12335 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 12336 lcisnewsql = false; 12337 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 12338 lcisnewsql = false; 12339 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 12340 lcisnewsql = false; 12341 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 12342 { 12343 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 12344 lcisnewsql = false; 12345 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 12346 lcisnewsql = false; 12347 } 12348 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12349 { 12350 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlset ) 12351 lcisnewsql = false; 12352 } 12353 else if (lcprevsolidtoken.tokentype == ETokenType.ttrightparenthesis){ 12354 if ((lccurrentsqlstatement != null) && (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable)){ 12355 lcisnewsql = false; 12356 } 12357 } 12358 12359 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 12360 { 12361 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 12362 if ( (lcpprevsolidtoken != null) ) 12363 { 12364 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 12365 lcisnewsql = false; 12366 } 12367 } 12368 12369 } 12370 12371 if ( (lccurrentsqlstatement != null) ) 12372 { 12373 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 12374 { 12375 lcisnewsql = false; 12376 } 12377 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstGrant ) 12378 { 12379 if ( (lcprevsolidtoken != null) ) 12380 { 12381 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 12382 lcisnewsql = false; 12383 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12384 lcisnewsql = false; 12385 } 12386 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 12387 lcisnewsql = false; 12388 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltersequence ){ 12389 lcisnewsql = false; 12390 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstExplain ){ 12391 lcisnewsql = false; 12392 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstRevoke ){ 12393 lcisnewsql = false; 12394 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstupsert ){ 12395 lcisnewsql = false; 12396 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstalterview ){ 12397 lcisnewsql = false; 12398 } 12399 } 12400 12401 } 12402 12403 if ( lcisnewsql ) 12404 ret = new TSelectSqlStatement(pdbvendor); 12405 12406 break; 12407 12408 } 12409 case sstinsert: 12410 { 12411 lcisnewsql = true; 12412 if ( pstate != EFindSqlStateType.stnormal ) 12413 { 12414 if ( (lccurrentsqlstatement != null) ) 12415 { 12416 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateauditpolicy) 12417 { 12418 lcisnewsql = false; 12419 } 12420 // merge 12421 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12422 { 12423 if (lcprevsolidtoken != null) 12424 { 12425 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 12426 {lcisnewsql = false;} 12427 } 12428 } 12429 12430 12431 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstGrant ) 12432 { 12433 if ( (lcprevsolidtoken != null) ) 12434 { 12435 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 12436 lcisnewsql = false; 12437 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12438 lcisnewsql = false; 12439 } 12440 }else if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12441 { 12442 lcisnewsql = false; 12443 } 12444 12445 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 12446 { 12447 if ( (lcprevsolidtoken != null) ) 12448 { 12449 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12450 lcisnewsql = false; 12451 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12452 lcisnewsql = false; 12453 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 12454 lcisnewsql = false; 12455 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 12456 lcisnewsql = false; 12457 } 12458 } 12459 12460 12461 } 12462 } 12463 12464 if ( lcisnewsql ) 12465 { 12466 ret = new TInsertSqlStatement(pdbvendor); 12467 ret.dummytag = 1; // select stmt in insert is permitted 12468 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 12469 { 12470 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 12471 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 12472 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 12473 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ){ 12474 ret.dummytag = 0; 12475 break; 12476 } 12477 } // for ( 12478 if ( k > lcsourcetokenlist.size() - 1 ) 12479 k = lcsourcetokenlist.size() - 1; 12480 12481 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 12482 { 12483 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 12484 } // for ( 12485 12486 } 12487 12488 break; 12489 } 12490 case sstupdate: 12491 { 12492 lcisnewsql = true; 12493 if ( pstate != EFindSqlStateType.stnormal ) 12494 { 12495 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 12496 if ( (lcprevsolidtoken != null) ) 12497 { // 12498 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 12499 lcisnewsql = false; 12500 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12501 lcisnewsql = false; 12502 } 12503 12504 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 12505 if ( TBaseType.assigned(lcnextsolidtoken) ) 12506 { 12507 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 12508 { 12509 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 12510 if ( k == 0 ) lcisnewsql = false; 12511 } 12512 } 12513 12514 12515 if ( TBaseType.assigned(lccurrentsqlstatement) ) 12516 { 12517 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateauditpolicy) 12518 { 12519 lcisnewsql = false; 12520 }else if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12521 { 12522 lcisnewsql = false; 12523 } 12524 // merge 12525 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12526 { 12527 if (lcprevsolidtoken != null) 12528 { 12529 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 12530 {lcisnewsql = false;} 12531 } 12532 } 12533 12534 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstGrant ) 12535 { 12536 if ( TBaseType.assigned(lcprevsolidtoken) ) 12537 { 12538 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 12539 lcisnewsql = false; 12540 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12541 lcisnewsql = false; 12542 } 12543 } 12544 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 12545 { 12546 if ( TBaseType.assigned(lcprevsolidtoken) ) 12547 { 12548 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12549 lcisnewsql = false; 12550 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12551 lcisnewsql = false; 12552 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 12553 lcisnewsql = false; 12554 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 12555 lcisnewsql = false; 12556 } 12557 } 12558 12559 } 12560 } 12561 12562 if ( lcisnewsql ) 12563 { 12564 ret = new TUpdateSqlStatement(pdbvendor); 12565 ret.dummytag = 1; // means set clause in update is not found yet, used to separate set clause from set statement 12566 } 12567 12568 break; 12569 } 12570 case sstdelete: 12571 { 12572 lcisnewsql = true; 12573 12574 if ( pstate != EFindSqlStateType.stnormal ) 12575 { 12576 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 12577 if ( TBaseType.assigned(lcprevsolidtoken) ) 12578 { 12579 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 12580 lcisnewsql = false; 12581 } 12582 12583 if ( TBaseType.assigned(lccurrentsqlstatement) ) 12584 { 12585 // merge 12586 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12587 { 12588 if (lcprevsolidtoken != null) 12589 { 12590 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 12591 {lcisnewsql = false;} 12592 } 12593 } 12594 12595 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstGrant ) 12596 { 12597 if ( TBaseType.assigned(lcprevsolidtoken) ) 12598 { 12599 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 12600 lcisnewsql = false; 12601 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12602 lcisnewsql = false; 12603 } 12604 } 12605 12606 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 12607 { 12608 if ( TBaseType.assigned(lcprevsolidtoken) ) 12609 { 12610 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12611 lcisnewsql = false; 12612 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12613 lcisnewsql = false; 12614 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 12615 lcisnewsql = false; 12616 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 12617 lcisnewsql = false; 12618 } 12619 } 12620 12621 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstbackupcatalogdelete) 12622 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable) 12623 ) 12624 { 12625 lcisnewsql = false; 12626 } 12627 12628 } 12629 } 12630 12631 if ( lcisnewsql ) 12632 ret = new TDeleteSqlStatement(pdbvendor); 12633 12634 break; 12635 } 12636 case sstcreatetable: 12637 { 12638 ret = new TCreateTableSqlStatement(pdbvendor); 12639 break; 12640 } 12641 case sstcreateview: 12642 { 12643 ret = new TCreateViewSqlStatement(pdbvendor); 12644 break; 12645 } 12646 case sstcreatesequence: 12647 { 12648 ret = new TCreateSequenceStmt(pdbvendor); 12649 break; 12650 } 12651 case sstaltertable: 12652 { 12653 lcisnewsql = true; 12654 if ( pstate != EFindSqlStateType.stnormal ) 12655 { 12656 lcisnewsql = false; 12657 } 12658 if ( lcisnewsql ) { 12659 ret = new TAlterTableStatement(pdbvendor); 12660 } 12661 break; 12662 } 12663 case sstcreateprocedure : 12664 { 12665 ret = new TCreateProcedureStmt(pdbvendor); 12666 break; 12667 } 12668 case sstalterprocedure: 12669 { 12670 boolean isAlter = false; 12671 // hana alter and create procedure 语法混在一起,无法区分 12672 // c:\prg\gsp_java\gsp_java_core\gsp_sqlfiles\TestCases\public\allversions\hana\create_procedure.sql 12673 if (pcst.tokencode == TBaseType.rrw_alter){ 12674 12675 TSourceToken st = pcst.nextSolidToken(3); 12676 if (st != null){ 12677 switch (st.toString().toUpperCase()) { 12678 case "RECOMPILE": 12679 isAlter = true; 12680 break; 12681 case "ENCRYPTION": 12682 isAlter = true; 12683 break; 12684 case "ADD": 12685 isAlter = true; 12686 break; 12687 default: 12688 break; 12689 } 12690 } 12691 12692 // TSourceToken st = pcst.searchToken("recompile",4); 12693 // if (st != null){ 12694 // isAlter = true; 12695 // }else{ 12696 // st = pcst.searchToken("encryption",4); 12697 // if (st != null){ 12698 // isAlter = true; 12699 // } 12700 // } 12701 } 12702 if (isAlter){ 12703 ret = new TAlterProcedureStmt (pdbvendor); 12704 }else{ 12705 ret = new TCreateProcedureStmt (pdbvendor); 12706 } 12707 12708 break; 12709 } 12710 case sstcreatefunction : 12711 { 12712 ret = new TCreateFunctionStmt(pdbvendor); 12713 break; 12714 } 12715 case sstalterfunction: 12716 { 12717 boolean isAlter = false; 12718 // hana alter and create function 语法混在一起,无法区分 12719 12720 if (pcst.tokencode == TBaseType.rrw_alter){ 12721 TSourceToken stAdd = pcst.searchToken("add",4); 12722 TSourceToken stAlter = pcst.searchToken("alter",4); 12723 TSourceToken stDrop = pcst.searchToken("drop",4); 12724 if ((stAdd != null)||(stAlter != null)||(stDrop != null)){ 12725 isAlter = true; 12726 }else{ 12727 TSourceToken st = pcst.searchToken("encryption",4); 12728 if (st != null){ 12729 isAlter = true; 12730 } 12731 } 12732 } 12733 12734 if (isAlter){ 12735 ret = new TAlterFunctionStmt (pdbvendor); 12736 }else{ 12737 ret = new TCreateFunctionStmt (pdbvendor); 12738 } 12739 12740 12741 break; 12742 } 12743 case sstcreatetrigger : 12744 case sstaltertrigger: 12745 { 12746 ret = new TCreateTriggerStmt(pdbvendor); 12747 break; 12748 } 12749 case sstGrant: 12750 { 12751 lcisnewsql = true; 12752 12753 if ( pstate != EFindSqlStateType.stnormal ) 12754 { 12755 lcisnewsql = false; 12756 12757 } 12758 if ( lcisnewsql ) 12759 { 12760 ret = new TGrantStmt(pdbvendor); 12761 //ret.sqlstatementtype = gnewsqlstatementtype; 12762 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 12763 { 12764 lctoken = lcsourcetokenlist.get(k); 12765 if (lctoken.isnonsolidtoken() ) continue; 12766 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 12767 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 12768 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 12769 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 12770 } 12771 } 12772 break; 12773 } 12774 case sstdropview: 12775 { 12776 ret = new TDropViewSqlStatement(pdbvendor); 12777 break; 12778 } 12779 case sstdroptable: 12780 { 12781 ret = new TDropTableSqlStatement(pdbvendor); 12782 break; 12783 } 12784 case sstdropindex: 12785 { 12786 ret = new TDropIndexSqlStatement(pdbvendor); 12787 break; 12788 } 12789 case ssttruncatetable: 12790 { 12791 ret = new TTruncateStatement(pdbvendor); 12792 break; 12793 } 12794 case sstcommit: 12795 { 12796 lcisnewsql = true; 12797 TSourceToken lcPrev = pcst.prevSolidToken(); 12798 if ((lcPrev != null) && (lcPrev.tokencode == TBaseType.rrw_hana_of)){ 12799 lcisnewsql = false; 12800 } 12801 if ( pstate != EFindSqlStateType.stnormal ) 12802 { 12803 lcisnewsql = false; 12804 12805 } 12806 if (lcisnewsql){ 12807 ret = new TCommitStmt(pdbvendor); 12808 } 12809 12810 break; 12811 } 12812 case sstrollback: 12813 { 12814 ret = new TRollbackStmt(pdbvendor); 12815 break; 12816 } 12817 case sstRevoke: 12818 { 12819 lcisnewsql = true; 12820 12821 if ( pstate != EFindSqlStateType.stnormal ) 12822 { 12823 lcisnewsql = false; 12824 12825 } 12826 if (lcisnewsql){ 12827 ret = new TRevokeStmt(pdbvendor); 12828 } 12829 break; 12830 } 12831 case sstcreateindex: 12832 { 12833 ret = new TCreateIndexSqlStatement(pdbvendor); 12834 break; 12835 } 12836 case sstset: 12837 { 12838 lcisnewsql = true; 12839 if ( pstate != EFindSqlStateType.stnormal ) 12840 { 12841 if ( TBaseType.assigned(lccurrentsqlstatement) ) 12842 { 12843 lcisnewsql = false; 12844 } 12845 } 12846 12847 if ( lcisnewsql ) 12848 { 12849 ret = new TMssqlSet(pdbvendor); 12850 } 12851 12852 break; 12853 } 12854 case sstdropsequence: 12855 ret = new TDropSequenceStmt(pdbvendor); 12856 break; 12857 case sstalterdatabase: 12858 ret = new TAlterDatabaseStmt(pdbvendor); 12859 break; 12860 case sstcreatedatabase: 12861 { 12862 ret = new TCreateDatabaseSqlStatement(pdbvendor); 12863 break; 12864 } 12865 case sstcreateschema: 12866 { 12867 ret = new TCreateSchemaSqlStatement(pdbvendor); 12868 break; 12869 } 12870 case sstcreatesynonym: 12871 { 12872 ret = new TCreateSynonymStmt(pdbvendor); 12873 break; 12874 } 12875 case sstcreatetype: 12876 ret = new TMssqlCreateType(pdbvendor); 12877 break; 12878 case sstreplace: 12879 lcisnewsql = true; 12880 TSourceToken lcNext = pcst.nextSolidToken(); 12881 if ((lcNext != null) && (lcNext.tokencode == '(')){ 12882 lcisnewsql = false; 12883 } 12884 if ( pstate != EFindSqlStateType.stnormal ) 12885 { 12886 lcisnewsql = false; 12887 } 12888 if (lcisnewsql) { 12889 ret = new TUpsertStmt(pdbvendor); 12890 //ret.sqlstatementtype = gnewsqlstatementtype; 12891 } 12892 break; 12893 case sstalterauditpolicy: 12894 ret = new TAlterAuditPolicyStmt(pdbvendor); 12895 break; 12896 case sstaltercredential: 12897 ret = new TAlterCredentialStmt(pdbvendor); 12898 break; 12899 case sstalterfulltextindex: 12900 ret = new TAlterFulltextIndexStmt(pdbvendor); 12901 break; 12902 case sstalterindex: 12903 ret = new TAlterIndexStmt(pdbvendor); 12904 break; 12905 case sstalterldapprovider: 12906 ret = new TAlterLDAPProviderStmt(pdbvendor); 12907 break; 12908 case sstalterjwtprovider: 12909 ret = new TAlterJWTProviderStmt(pdbvendor); 12910 break; 12911 case sstalterpse: 12912 ret = new TAlterPSEStmt(pdbvendor); 12913 break; 12914 case sstalterremotesource: 12915 ret = new TAlterRemoteSourceStmt(pdbvendor); 12916 break; 12917 case sstAlterRole: 12918 ret = new TAlterRoleStmt(pdbvendor); 12919 break; 12920 case sstaltersamlprovider: 12921 ret = new TAlterSAMLProviderStmt(pdbvendor); 12922 break; 12923 case sstaltersequence: 12924 ret = new TAlterSequenceStatement(pdbvendor); 12925 break; 12926 case sstalterstatistics: 12927 ret = new TAlterStatisticsStmt(pdbvendor); 12928 break; 12929 case sstaltersystem: 12930 ret = new TAlterSystemStmt(pdbvendor); 12931 break; 12932 case sstunload: 12933 lcisnewsql = true; 12934 if ( pstate != EFindSqlStateType.stnormal ) 12935 { 12936 lcisnewsql = false; 12937 } 12938 if ( lcisnewsql ) { 12939 ret = new TUnloadStmt(pdbvendor); 12940 ret.sqlstatementtype = gnewsqlstatementtype; 12941 } 12942 break; 12943 case sstunset: 12944 case sstunsetpse: 12945 case sstunsetsystemlicense: 12946 lcisnewsql = true; 12947 if ( pstate != EFindSqlStateType.stnormal ) 12948 { 12949 lcisnewsql = false; 12950 } 12951 if ( lcisnewsql ) { 12952 ret = new TUnsetStmt(pdbvendor); 12953 ret.sqlstatementtype = gnewsqlstatementtype; 12954 } 12955 break; 12956 case sstalteruser: 12957 ret = new TAlterUserStmt(pdbvendor); 12958 break; 12959 case sstconnect: 12960 lcisnewsql = true; 12961 if ( pstate != EFindSqlStateType.stnormal ) 12962 { 12963 lcisnewsql = false; 12964 } 12965 if ( lcisnewsql ) { 12966 ret = new TConnectStmt(pdbvendor); 12967 ret.sqlstatementtype = gnewsqlstatementtype; 12968 } 12969 break; 12970 case sstalterusergroup: 12971 ret = new TAlterUserGroupStmt(pdbvendor); 12972 break; 12973 case sstalterview: 12974 case sstalterviewcache: 12975 ret = new TAlterViewStatement(pdbvendor); 12976 break; 12977 case sstaltervirtualtable: 12978 ret = new TAlterVirtualTableStmt(pdbvendor); 12979 break; 12980 case sstalterworkloadclass: 12981 ret = new TAlterWorkloadClassStmt(pdbvendor); 12982 break; 12983 case sstalterworkloadmapping: 12984 ret = new TAlterWorkloadMappingStmt(pdbvendor); 12985 break; 12986 case sstbackupcancel: 12987 ret = new TBackupCancelStmt(pdbvendor); 12988 break; 12989 case sstbackupcatalogdelete: 12990 ret = new TBackupCatalogDeleteStmt(pdbvendor); 12991 break; 12992 case sstbackupcheck: 12993 case sstbackupcheckaccess: 12994 ret = new TBackupCheckStmt(pdbvendor); 12995 break; 12996 case sstbackupdata: 12997 ret = new TBackupDataStmt(pdbvendor); 12998 break; 12999 case sstbackuplistdata: 13000 ret = new TBackupListDataStmt(pdbvendor); 13001 break; 13002 case sstcall: 13003 ret = new TCallStatement(pdbvendor); 13004 break; 13005 case sstcomment: 13006 ret = new TCommentOnSqlStmt(pdbvendor); 13007 break; 13008 case sstcreateauditpolicy: 13009 ret = new TCreateAuditPolicyStmt(pdbvendor); 13010 break; 13011 case sstcreatecertificate: 13012 ret = new TCreateCertificateStmt(pdbvendor); 13013 break; 13014 case sstcreatecollection: 13015 ret = new TCreateCollectionStmt(pdbvendor); 13016 break; 13017 case sstcreatecredential: 13018 ret = new TCreateCredentialStmt(pdbvendor); 13019 break; 13020 case sstcreatefulltextindex: 13021 ret = new TCreateFulltextIndexStmt(pdbvendor); 13022 break; 13023 case sstcreategraphworkspace: 13024 ret = new TCreateGraphWorkspaceStmt(pdbvendor); 13025 break; 13026 case sstcreateJWTProvider: 13027 ret = new TCreateJWTProviderStmt(pdbvendor); 13028 break; 13029 case sstcreateLDAPProvider: 13030 ret = new TCreateLDAPProviderStmt(pdbvendor); 13031 break; 13032 case sstcreatepse: 13033 ret = new TCreatePSEStmt(pdbvendor); 13034 break; 13035 case sstcreateremotesource: 13036 ret = new TCreateRemoteSourceStmt(pdbvendor); 13037 break; 13038 case sstcreaterole: 13039 ret = new TCreateRoleStmt(pdbvendor); 13040 break; 13041 case sstcreatesamlprovider: 13042 ret = new TCreateSAMLProviderStmt(pdbvendor); 13043 break; 13044 case sstcreatestatistics: 13045 ret = new TCreateStatistics(pdbvendor); 13046 break; 13047 case sstcreatestructuredprivilege: 13048 ret = new TCreateStructuredPrivilegeStmt(pdbvendor); 13049 break; 13050 case sstcreateuser: 13051 ret = new TCreateUserStmt(pdbvendor); 13052 break; 13053 case sstcreateusergroup: 13054 ret = new TCreateUserGroupStmt(pdbvendor); 13055 break; 13056 case sstcreatevirtualfunction: 13057 ret = new TCreateVirtualFunctionStmt(pdbvendor); 13058 break; 13059 case sstcreatevirtualtable: 13060 ret = new TCreateVirtualTableStmt(pdbvendor); 13061 break; 13062 case sstcreateworkloadclass: 13063 ret = new TCreateWorkloadClassStmt(pdbvendor); 13064 break; 13065 case sstcreateworkloadmapping: 13066 ret = new TCreateWorkloadMappingStmt(pdbvendor); 13067 break; 13068 case sstdropauditpolicy: 13069 case sstdropcertificate: 13070 case sstdropcollection: 13071 case sstdropcredential: 13072 case sstdropfulltextindex: 13073 case sstdropJWTProvider: 13074 case sstdropLDAPProvider: 13075 case sstdroppse: 13076 case sstdropremotesource: 13077 case sstdropsamlprovider: 13078 case sstdropstatistics: 13079 case sstdropgraphworkspace: 13080 case sstdropstructuredprivilege: 13081 case sstdroptype: 13082 case sstdropusergroup: 13083 case sstdropworkloadclass: 13084 case sstdropworkloadmapping: 13085 lcisnewsql = true; 13086 if ( pstate != EFindSqlStateType.stnormal ) 13087 { 13088 lcisnewsql = false; 13089 } 13090 if ( lcisnewsql ) { 13091 ret = new TDropStmt(pdbvendor); 13092 } 13093 13094 break; 13095 case sstdropdatabase: 13096 ret = new TDropDatabaseStmt(pdbvendor); 13097 break; 13098 case sstdropfunction: 13099 ret = new TDropFunctionStmt(pdbvendor); 13100 break; 13101 case sstdropprocedure: 13102 ret = new TDropProcedureStmt(pdbvendor); 13103 break; 13104 case sstdroprole: 13105 ret = new TDropRoleStmt(pdbvendor); 13106 break; 13107 case sstdropschema: 13108 ret = new TDropSchemaSqlStatement(pdbvendor); 13109 break; 13110 case sstdropsynonym: 13111 ret = new TDropSynonymStmt(pdbvendor); 13112 break; 13113 case sstdroptrigger: 13114 ret = new TDropTriggerSqlStatement(pdbvendor); 13115 break; 13116 case sstdropuser: 13117 ret = new TDropUserStmt(pdbvendor); 13118 break; 13119 case sstExplain: 13120 ret = new TExplainPlan(pdbvendor); 13121 break; 13122 case sstexport: 13123 ret = new TExportStmt(pdbvendor); 13124 break; 13125 case sstimport: 13126// case sstimportfrom: 13127// case sstimportscan: 13128 ret = new TImportStmt(pdbvendor); 13129 break; 13130 case sstload: 13131 lcisnewsql = true; 13132 if ( pstate != EFindSqlStateType.stnormal ) 13133 { 13134 lcisnewsql = false; 13135 } 13136 if ( lcisnewsql ) { 13137 ret = new TLoadStmt(pdbvendor); 13138 } 13139 13140 break; 13141 case sstlocktable: 13142 ret = new TLockTableStmt(pdbvendor); 13143 break; 13144 case sstmergedelta: 13145 ret = new TMergeDeltaStmt(pdbvendor); 13146 break; 13147 case sstmerge: 13148 ret = new TMergeSqlStatement(pdbvendor); 13149 break; 13150 case sstrecoverdata: 13151 ret = new TRecoverDataStmt(pdbvendor); 13152 break; 13153 case sstrecoverdatabase: 13154 ret = new TRecoverDatabaseStmt(pdbvendor); 13155 break; 13156 case sstrefreshstatistics: 13157 ret = new TRefreshStatisticsStmt(pdbvendor); 13158 break; 13159 case sstrenamecollection: 13160 case sstrenamecolumn: 13161 case sstrenamedatabase: 13162 case sstrenameindex: 13163 case sstrenametable: 13164 ret = new TRenameStmt(pdbvendor); 13165 break; 13166 case sssethistorysession: 13167 case sstsetpse: 13168 case sstsetschema: 13169 case sstsetsystemlicense: 13170 case sstsettransaction: 13171 case sstsettransactionautocommit: 13172 ret = new TSetDatabaseObjectStmt(pdbvendor); 13173 break; 13174 case ssttruncatecollection: 13175 ret = new TTruncateCollectionStmt(pdbvendor); 13176 break; 13177 case sstvalidateLDAPProvider: 13178 ret = new TValidateLDAPProviderStmt(pdbvendor); 13179 break; 13180 case sstvalidateUser: 13181 ret = new TValidateUserStmt(pdbvendor); 13182 break; 13183 case sstupsert: 13184 ret = new TUpsertStmt(pdbvendor); 13185 break; 13186 case sstsavepoint: 13187 { 13188 lcisnewsql = true; 13189 13190 if ( pstate != EFindSqlStateType.stnormal ) 13191 { 13192 lcisnewsql = false; 13193 13194 } 13195 if (lcisnewsql){ 13196 ret = new TSavepointStmt(pdbvendor); 13197 ret.sqlstatementtype = gnewsqlstatementtype; 13198 } 13199 break; 13200 } 13201 default: 13202 { 13203 ret = new TUnknownSqlStatement(pdbvendor); 13204 ret.sqlstatementtype = gnewsqlstatementtype; 13205 break; 13206 } 13207 } // case 13208 13209 return ret; 13210 } 13211 13212 TCustomSqlStatement mapTeradataUsing(TSourceToken ptoken){ 13213 TCustomSqlStatement ret = null; 13214 TSourceToken lctoken = null; 13215 int lcnested = 0,k,j; 13216 13217 //using ... insert/select/delete/update/begin transaction 13218 int lcpos = ptoken.posinlist; 13219 TSourceTokenList lcsourcetokenlist = ptoken.container; 13220 13221 for (int i = lcpos + 1; i < lcsourcetokenlist.size();i++) // iterate 13222 { 13223 lctoken = lcsourcetokenlist.get(i); 13224 if ( (lctoken.tokencode == TBaseType.rrw_delete) ) 13225 { 13226 ret = new TDeleteSqlStatement(EDbVendor.dbvteradata); 13227 gnewsqlstatementtype = ESqlStatementType.sstdelete; 13228 break; 13229 } 13230 else if ( (lctoken.tokencode == TBaseType.rrw_insert) ) 13231 { 13232 ret = new TInsertSqlStatement(EDbVendor.dbvteradata); 13233 gnewsqlstatementtype = ESqlStatementType.sstinsert; 13234 break; 13235 } 13236 else if ( (lctoken.tokencode == TBaseType.rrw_select) ) 13237 { 13238 ret = new TSelectSqlStatement(EDbVendor.dbvteradata); 13239 gnewsqlstatementtype = ESqlStatementType.sstselect; 13240 break; 13241 } 13242 else if ( (lctoken.tokencode == TBaseType.rrw_update) ) 13243 { 13244 ret = new TUpdateSqlStatement(EDbVendor.dbvteradata); 13245 gnewsqlstatementtype = ESqlStatementType.sstupdate; 13246 break; 13247 } 13248 else if ( (lctoken.tokencode == TBaseType.rrw_begin) || (lctoken.tokencode == TBaseType.rrw_bt) ) 13249 { 13250 ret = new TTeradataBeginTransaction(EDbVendor.dbvteradata); 13251 gnewsqlstatementtype = ESqlStatementType.sstteradatabegintransaction; 13252 break; 13253 } 13254 } 13255 return ret; 13256 } 13257 13258/** 13259 * Analyzes a SQL token to determine if it starts a Common Table Expression (CTE) 13260 * and returns the appropriate SQL statement object. 13261 * 13262 * This function handles CTEs that begin with "WITH" and can contain: 13263 * - SELECT statements 13264 * - INSERT statements 13265 * - UPDATE statements 13266 * - DELETE statements 13267 * - MERGE statements 13268 * - VALUES clauses (PostgreSQL) 13269 * 13270 * Side Effects: 13271 * When a CTE is found, this function marks tokens as "ignored" to prevent them from being 13272 * processed again during raw statement parsing: 13273 * 1. All tokens from after WITH up to and including the main statement keyword (SELECT/INSERT/etc.) 13274 * are marked with ETokenStatus.tsignoredbygetrawstatement 13275 * 2. For INSERT statements, additional tokens after INSERT up to VALUES/SELECT/EXECUTE/semicolon 13276 * are also marked as ignored 13277 * 13278 * Example of ignored tokens: 13279 * WITH cte AS (SELECT * FROM t1) -- these tokens marked as ignored 13280 * SELECT * FROM cte; -- SELECT is also marked as ignored 13281 * -- parsing continues after SELECT 13282 * 13283 * @param ptoken The source token to analyze, expected to be a "WITH" keyword 13284 * @param pdbvendor The database vendor type (e.g. Oracle, SQL Server, etc.) 13285 * @return A TCustomSqlStatement object representing the CTE statement type found, 13286 * or null if no valid CTE statement is detected 13287 */ 13288TCustomSqlStatement findcte(TSourceToken ptoken, EDbVendor pdbvendor){ 13289 TCustomSqlStatement ret = null; 13290 TSourceToken lctoken = null; 13291 int lcnested = 0,k,j; 13292 boolean inXmlNamespaces = false; 13293 boolean isXmlNamespaces = false; 13294 13295 int lcpos = ptoken.posinlist; 13296 TSourceTokenList lcsourcetokenlist = ptoken.container; 13297 13298 for (int i = lcpos + 1; i < lcsourcetokenlist.size();i++) // iterate 13299 { 13300 lctoken = lcsourcetokenlist.get(i); 13301// if (lctoken.tokencode == TBaseType.rrw_postgresql_recursive){ 13302// continue; 13303// } 13304 if (lctoken.tokencode == TBaseType.rrw_xmlnamespaces){ 13305 inXmlNamespaces = true; 13306 lcnested = 0; 13307 continue; 13308 } 13309 if (inXmlNamespaces) { 13310 if ( lctoken.tokentype == ETokenType.ttleftparenthesis) lcnested++; 13311 if ( lctoken.tokentype == ETokenType.ttrightparenthesis) { 13312 lcnested--; 13313 if (lcnested == 0) { 13314 inXmlNamespaces = false; 13315 isXmlNamespaces = true; 13316 } 13317 } 13318 continue; 13319 } 13320 if (( lctoken.tokencode == TBaseType.rrw_as ) || isXmlNamespaces) 13321 { 13322 lcnested = 0; 13323 int startPos = i+1; 13324 if (isXmlNamespaces) startPos = i; 13325 for ( j = startPos; j < lcsourcetokenlist.size();j++) 13326 { 13327 lctoken = lcsourcetokenlist.get(j); 13328 if (lctoken.isnonsolidtoken() ) continue; 13329 if ( lctoken.tokentype == ETokenType.ttleftparenthesis) lcnested++; 13330 if ( lctoken.tokentype == ETokenType.ttrightparenthesis) lcnested--; 13331 13332 13333 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_delete) ) 13334 { 13335 ret = new TDeleteSqlStatement(pdbvendor); 13336 ret.isctequery = true; 13337 gnewsqlstatementtype = ESqlStatementType.sstdelete; 13338 break; 13339 } 13340 13341 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_merge) ) 13342 { 13343 ret = new TMergeSqlStatement(pdbvendor); 13344 ret.isctequery = true; 13345 gnewsqlstatementtype = ESqlStatementType.sstmerge; 13346 break; 13347 } 13348 13349 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_insert) ) 13350 { 13351 ret = new TInsertSqlStatement(pdbvendor); 13352 ret.isctequery = true; 13353 gnewsqlstatementtype = ESqlStatementType.sstinsert; 13354 ret.dummytag = 1; // select stmt in insert is permitted 13355 13356 for ( k = lctoken.posinlist + 1; k < lcsourcetokenlist.size();k++) // iterate 13357 { 13358 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 13359 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 13360 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 13361 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 13362 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ) break; 13363 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 13364 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 13365 } // for 13366 if ( k > lcsourcetokenlist.size() - 1 ) 13367 k = lcsourcetokenlist.size() - 1; 13368 13369 for (int m = lctoken.posinlist + 1; m <= k; m++) // iterate 13370 { 13371 lcsourcetokenlist.get(m).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 13372 } // for 13373 13374 break; 13375 } 13376 13377 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_values) &&(pdbvendor == EDbVendor.dbvpostgresql) ) 13378 { 13379 ret = new TSelectSqlStatement(pdbvendor); 13380 ret.isctequery = true; 13381 gnewsqlstatementtype = ESqlStatementType.sstselect; 13382 break; 13383 } 13384 13385 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_select) ) 13386 { 13387 ret = new TSelectSqlStatement(pdbvendor); 13388 ret.isctequery = true; 13389 gnewsqlstatementtype = ESqlStatementType.sstselect; 13390 break; 13391 } 13392 13393 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_update) ) 13394 { 13395 ret = new TUpdateSqlStatement(pdbvendor); 13396 ret.isctequery = true; 13397 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 13398 gnewsqlstatementtype = ESqlStatementType.sstupdate; 13399 break; 13400 } 13401 13402 if ( (pdbvendor == EDbVendor.dbvhive) && (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_from) ) 13403 { 13404 TSourceToken cmdToken = lctoken.searchToken(TBaseType.rrw_insert,3); 13405 if (cmdToken != null){ 13406 ret = new TInsertSqlStatement(pdbvendor); 13407 ret.isctequery = true; 13408 gnewsqlstatementtype = ESqlStatementType.sstinsert; 13409 13410 }else{ 13411 ret = new TSelectSqlStatement(pdbvendor); 13412 ret.isctequery = true; 13413 gnewsqlstatementtype = ESqlStatementType.ssthiveFromQuery; 13414 } 13415 break; 13416 } 13417 13418 13419 } // for 13420 13421 if ( (ret != null) ) 13422 { 13423 for (k = lcpos + 1; k <= j;k++) // iterate 13424 { 13425 lcsourcetokenlist.get(k).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 13426 } // for 13427 break; 13428 } 13429 13430 } 13431 } 13432 13433 return ret; 13434} 13435 13436 TCustomSqlStatement findMdxStmtBeginWithClause(TSourceToken ptoken, EDbVendor pdbvendor){ 13437 TCustomSqlStatement ret = null; 13438 ret = new TMdxSelect(pdbvendor); 13439 ret.isctequery = true; 13440 gnewsqlstatementtype = ESqlStatementType.sstmdxselect; 13441 return ret; 13442 } 13443 13444 TCustomSqlStatement isdb2sql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 13445 TCustomSqlStatement ret = null; 13446 int k; 13447 boolean lcisnewsql; 13448 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 13449 13450 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 13451 13452 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 13453 || (pcst.tokencode == TBaseType.cmtslashstar) 13454 || (pcst.tokencode == TBaseType.lexspace) 13455 || (pcst.tokencode == TBaseType.lexnewline) 13456 || (pcst.tokentype == ETokenType.ttsemicolon) ) 13457 { 13458 return ret; 13459 } 13460 13461 int lcpos = pcst.posinlist; 13462 TSourceTokenList lcsourcetokenlist = pcst.container; 13463 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 13464 13465 //subquery after semicolon || at first line 13466 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 13467 { 13468 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 13469 if ( k >0 ) 13470 { 13471 ret = new TSelectSqlStatement(pdbvendor); 13472 } 13473 13474 return ret; 13475 } 13476 13477 //cte 13478 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 13479 { 13480 ret = findcte(pcst,pdbvendor); 13481 if ( TBaseType.assigned(ret) ) return ret; 13482 } 13483 13484 //values 13485 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_values) ) 13486 { 13487 ret = new TSelectSqlStatement(pdbvendor); 13488 return ret; 13489 } 13490 13491 // db2 scriptoptions 13492 if ( pcst.tokencode == TBaseType.scriptoptions ) 13493 { 13494 ret = new TDb2ScriptOptionStmt(pdbvendor); 13495 return ret; 13496 } 13497 13498 gnewsqlstatementtype = finddb2cmd(pcst); 13499 13500 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 13501 switch(gnewsqlstatementtype) { // 13502 case sstinvalid: 13503 { 13504 ret = null; 13505 if ( pcst.tokencode == TBaseType.rrw_begin ) 13506 { 13507 ret = new TCommonBlock(pdbvendor); 13508 gnewsqlstatementtype = ret.sqlstatementtype; 13509 } 13510 break; 13511 } 13512 case sstselect: 13513 { 13514 lcisnewsql = true; 13515 13516 if ( pstate != EFindSqlStateType.stnormal ) 13517 { 13518 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 13519 if ( TBaseType.assigned(lcprevsolidtoken) ) 13520 { 13521 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 13522 lcisnewsql = false; //subqery 13523 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 13524 lcisnewsql = false; 13525 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 13526 lcisnewsql = false; 13527 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 13528 lcisnewsql = false; 13529 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 13530 lcisnewsql = false; 13531 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 13532 lcisnewsql = false; 13533 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 13534 { 13535 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 13536 lcisnewsql = false; 13537 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 13538 lcisnewsql = false; 13539 } 13540 13541 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 13542 { 13543 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 13544 if ( TBaseType.assigned(lcpprevsolidtoken) ) 13545 { 13546 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 13547 lcisnewsql = false; 13548 } 13549 } 13550 13551 } 13552 13553 13554 if ( TBaseType.assigned(lccurrentsqlstatement) ) 13555 { 13556 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 13557 { 13558 lcisnewsql = false; 13559 } 13560 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect ) 13561 { 13562 if ( lccurrentsqlstatement.isctequery ) 13563 lcisnewsql = false; 13564 } 13565 } 13566 13567 } 13568 13569 if ( lcisnewsql ) 13570 ret = new TSelectSqlStatement(pdbvendor); 13571 break; 13572 } 13573 case sstinsert: 13574 { 13575 lcisnewsql = true; 13576 if ( pstate != EFindSqlStateType.stnormal ) 13577 { 13578 if ( TBaseType.assigned(lccurrentsqlstatement) ) 13579 { 13580 13581 } 13582 } 13583 13584 if ( lcisnewsql ) 13585 ret = new TInsertSqlStatement(pdbvendor); 13586 break; 13587 } 13588 case sstupdate: 13589 { 13590 lcisnewsql = true; 13591 if ( pstate != EFindSqlStateType.stnormal ) 13592 { 13593 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 13594 if ( TBaseType.assigned(lcprevsolidtoken) ) 13595 { // 13596 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 13597 lcisnewsql = false; 13598 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 13599 lcisnewsql = false; 13600 } 13601 13602 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 13603 if ( TBaseType.assigned(lcnextsolidtoken) ) 13604 { 13605 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 13606 { 13607 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 13608 if ( k == 0 ) lcisnewsql = false; 13609 } 13610 } 13611 13612 13613 if ( TBaseType.assigned(lccurrentsqlstatement) ) 13614 { 13615 } 13616 } 13617 13618 if ( lcisnewsql ) 13619 { 13620 ret = new TUpdateSqlStatement(pdbvendor); 13621 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 13622 } 13623 break; 13624 } 13625 case sstdelete: 13626 { 13627 lcisnewsql = true; 13628 13629 if ( pstate != EFindSqlStateType.stnormal ) 13630 { 13631 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 13632 if ( TBaseType.assigned(lcprevsolidtoken) ) 13633 { 13634 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 13635 lcisnewsql = false; 13636 } 13637 13638 if ( TBaseType.assigned(lccurrentsqlstatement) ) 13639 { 13640 } 13641 } 13642 13643 if ( lcisnewsql ) 13644 ret = new TDeleteSqlStatement(pdbvendor); 13645 break; 13646 } 13647 case sstmerge: 13648 { 13649 ret = new TMergeSqlStatement(pdbvendor); 13650 ret.sqlstatementtype = gnewsqlstatementtype; 13651 break; 13652 } 13653 case sstcommit: 13654 { 13655 ret = new TUnknownSqlStatement(pdbvendor); 13656 ret.sqlstatementtype = gnewsqlstatementtype; 13657 break; 13658 } 13659 case sstrollback: 13660 { 13661 ret = new TUnknownSqlStatement(pdbvendor); 13662 ret.sqlstatementtype = gnewsqlstatementtype; 13663 break; 13664 } 13665 case sstsavepoint: 13666 { 13667 ret = new TUnknownSqlStatement(pdbvendor); 13668 ret.sqlstatementtype = gnewsqlstatementtype; 13669 break; 13670 } 13671 case sstRevoke: 13672 { 13673 ret = new TUnknownSqlStatement(pdbvendor); 13674 ret.sqlstatementtype = gnewsqlstatementtype; 13675 break; 13676 } 13677 case sstcreatetable: 13678 { 13679 ret = new TCreateTableSqlStatement(pdbvendor); 13680 break; 13681 } 13682 case sstcreateview: 13683 { 13684 ret = new TCreateViewSqlStatement(pdbvendor); 13685 break; 13686 } 13687 case sstcreateindex: 13688 { 13689 ret = new TCreateIndexSqlStatement(pdbvendor); 13690 break; 13691 } 13692 case sstcreatedatabase: 13693 { 13694 ret = new TCreateDatabaseSqlStatement(pdbvendor); 13695 break; 13696 } 13697 case sstdroptable: 13698 { 13699 ret = new TDropTableSqlStatement(pdbvendor); 13700 break; 13701 } 13702 case sstdropview: 13703 { 13704 ret = new TDropViewSqlStatement(pdbvendor); 13705 break; 13706 } 13707 case sstdropindex: 13708 { 13709 ret = new TDropIndexSqlStatement(pdbvendor); 13710 break; 13711 } 13712 case sstaltertable: 13713 { 13714 ret = new TAlterTableStatement(pdbvendor); 13715 break; 13716 } 13717 case sstaltersession: 13718 { 13719 ret = new TAlterSessionStatement(pdbvendor); 13720 break; 13721 } 13722 case sstdb2set: 13723 { 13724 ret = new TDb2SetVariableStmt(pdbvendor); 13725 break; 13726 } 13727 case sstdb2setschema: 13728 { 13729 ret = new TSetDatabaseObjectStmt(pdbvendor); 13730 break; 13731 } 13732 case sstdb2call: 13733 { 13734 ret = new TDb2CallStmt(pdbvendor); 13735 break; 13736 } 13737 case sstdb2declarecursor: 13738 { 13739 ret = new TDb2DeclareCursorStatement(pdbvendor); 13740 break; 13741 } 13742 case sstcreateprocedure: 13743 { 13744 ret = new TCreateProcedureStmt(pdbvendor); 13745 break; 13746 } 13747 case sstcreatefunction: 13748 { 13749 ret = new TCreateFunctionStmt(pdbvendor); 13750 break; 13751 } 13752 case sstdb2createtrigger: 13753 { 13754 ret = new TCreateTriggerStmt(pdbvendor); 13755 break; 13756 } 13757 case sstdb2return: 13758 { 13759 ret = new TDb2ReturnStmt(pdbvendor); 13760 break; 13761 } 13762 case sstdb2refreshtable: 13763 case sstdb2connect: 13764 case sstdb2terminate: 13765 case sstdb2execute: 13766 { 13767 ret = new TDb2DummyStmt(pdbvendor); 13768 break; 13769 } 13770 case sstdb2createalias: 13771 { 13772 ret = new TCreateAliasStmt(pdbvendor); 13773 break; 13774 } 13775 case sstcreateauditpolicy: 13776 ret = new TCreateAuditPolicyStmt(pdbvendor); 13777 break; 13778 case sstdb2comment: 13779 ret = new TCommentOnSqlStmt(pdbvendor); 13780 break; 13781 case sstdb2createvariable: 13782 ret = new TCreateVariableStmt(pdbvendor); 13783 break; 13784 case sstcreaterole: 13785 ret = new TCreateRoleStmt(pdbvendor); 13786 break; 13787 case sstcreateTablespace: 13788 ret = new TCreateTablespaceStmt(pdbvendor); 13789 break; 13790 case sstRunStats: 13791 ret = new TRunStats(pdbvendor); 13792 break; 13793 case ssttruncatetable: 13794 { 13795 ret = new TTruncateStatement(pdbvendor); 13796 break; 13797 } 13798 case sstcreatesynonym: 13799 ret = new TCreateSynonymStmt(pdbvendor); 13800 break; 13801 default: 13802 { 13803 // ret = tdb2dummystmt.create(pdbvendor); 13804 ret = new TUnknownSqlStatement(pdbvendor); 13805 ret.sqlstatementtype = gnewsqlstatementtype; 13806 break; 13807 } 13808 } // case 13809 13810 return ret; 13811} 13812 13813 public TCustomSqlStatement issql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 13814 TCustomSqlStatement ret = null; 13815 if (pcst == null) return null; 13816 13817 switch (pdbvendor){ 13818 case dbvoracle: { 13819 ret = isoraclesql(pcst,pdbvendor,pstate,psqlstatement); 13820 break; 13821 } 13822 case dbvdameng: { 13823 ret = isoraclesql(pcst,pdbvendor,pstate,psqlstatement); 13824 break; 13825 } 13826 case dbvmssql: { 13827 ret = ismssqlsql(pcst, pdbvendor, pstate, psqlstatement); 13828 break; 13829 } 13830 case dbvdb2: { 13831 ret = isdb2sql(pcst, pdbvendor, pstate, psqlstatement); 13832 break; 13833 } 13834 case dbvmysql: { 13835 ret = ismysqlsql(pcst, pdbvendor, pstate, psqlstatement); 13836 break; 13837 } 13838 case dbvaccess: { 13839 ret = ismssqlsql(pcst, pdbvendor, pstate, psqlstatement); 13840 break; 13841 } 13842 case dbvteradata: { 13843 ret = isteradatasql(pcst, pdbvendor, pstate, psqlstatement); 13844 break; 13845 } 13846 case dbvpostgresql: { 13847 ret = ispostgresql(pcst, pdbvendor, pstate, psqlstatement); 13848 break; 13849 } 13850 case dbvredshift: { 13851 ret = isredshift(pcst, pdbvendor, pstate, psqlstatement); 13852 break; 13853 } 13854 case dbvgreenplum: { 13855 ret = isgreenplum(pcst,pdbvendor,pstate,psqlstatement); 13856 break; 13857 } 13858 case dbvmdx:{ 13859 ret = ismdxsql(pcst, pdbvendor, pstate, psqlstatement); 13860 break; 13861 } 13862 case dbvnetezza:{ 13863 ret = isnetezza(pcst, pdbvendor, pstate, psqlstatement); 13864 break; 13865 } 13866 case dbvsybase:{ 13867 ret = issybasesql(pcst, pdbvendor, pstate, psqlstatement); 13868 break; 13869 } 13870 case dbvinformix:{ 13871 ret = isinformixsql(pcst, pdbvendor, pstate, psqlstatement); 13872 break; 13873 } 13874 case dbvhive:{ 13875 ret = ishive(pcst, pdbvendor, pstate, psqlstatement); 13876 break; 13877 } 13878 case dbvimpala:{ 13879 ret = ishive(pcst, pdbvendor, pstate, psqlstatement); 13880 break; 13881 } 13882 case dbvhana:{ 13883 ret = ishana(pcst, pdbvendor, pstate, psqlstatement); 13884 break; 13885 } 13886 case dbvvertica:{ 13887 ret = isvertica(pcst, pdbvendor, pstate, psqlstatement); 13888 break; 13889 } 13890 case dbvcouchbase:{ 13891 ret = iscouchbase(pcst, pdbvendor, pstate, psqlstatement); 13892 break; 13893 } 13894 case dbvsnowflake:{ 13895 ret = issnowflake(pcst, pdbvendor, pstate, psqlstatement); 13896 break; 13897 } 13898 case dbvbigquery:{ 13899 ret = isbigquery(pcst, pdbvendor, pstate, psqlstatement); 13900 break; 13901 } 13902 case dbvsoql:{ 13903 ret = ismssqlsql(pcst,pdbvendor,pstate,psqlstatement); 13904 break; 13905 } 13906 case dbvsparksql:{ 13907 ret = issparksql(pcst,pdbvendor,pstate,psqlstatement); 13908 break; 13909 } 13910 case dbvpresto:{ 13911 ret = ispresto(pcst,pdbvendor,pstate,psqlstatement); 13912 break; 13913 } 13914 case dbvathena:{ 13915 ret = isathena(pcst,pdbvendor,pstate,psqlstatement); 13916 break; 13917 } 13918 case dbvdatabricks:{ 13919 ret = isdatabricks(pcst,pdbvendor,pstate,psqlstatement); 13920 break; 13921 } 13922 case dbvgaussdb:{ 13923 ret = isgaussdb(pcst,pdbvendor,pstate,psqlstatement); 13924 break; 13925 } 13926 default: 13927 { 13928 ret = ismssqlsql(pcst,pdbvendor,pstate,psqlstatement); 13929 } 13930 } // case 13931 return ret; 13932 } 13933 TCustomSqlStatement isdatabricks(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 13934 13935 TCustomSqlStatement ret = null; 13936 int k; 13937 boolean lcisnewsql; 13938 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 13939 13940 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 13941 13942 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 13943 || (pcst.tokencode == TBaseType.cmtslashstar) 13944 || (pcst.tokencode == TBaseType.lexspace) 13945 || (pcst.tokencode == TBaseType.lexnewline) 13946 || (pcst.tokentype == ETokenType.ttsemicolon) ) 13947 { 13948 return ret; 13949 } 13950 13951 int lcpos = pcst.posinlist; 13952 TSourceTokenList lcsourcetokenlist = pcst.container; 13953 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 13954 13955 //subquery after semicolon || at first line 13956 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 13957 { 13958 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 13959 if ( k >0 ) 13960 { 13961 ret = new TSelectSqlStatement(pdbvendor); 13962 } 13963 13964 return ret; 13965 } 13966 13967 //cte 13968 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 13969 { 13970 ret = findcte(pcst,pdbvendor); 13971 if ( (ret != null) ) return ret; 13972 } 13973 13974 13975 gnewsqlstatementtype = finddatabrickscmd(pcst); 13976 13977 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 13978 13979 if ((gnewsqlstatementtype == ESqlStatementType.sstinvalid)&&(pcst.tokencode == TBaseType.rrw_create)){ 13980 //if (pcst.container.nextsolidtoken(pcst.posinlist,15,)) 13981 TSourceToken viewToken = pcst.container.searchToken(TBaseType.rrw_view,"",pcst,15); 13982 if (viewToken != null){ 13983 gnewsqlstatementtype = ESqlStatementType.sstcreateview; 13984 } 13985 } 13986 switch (gnewsqlstatementtype){ 13987 case sstinvalid: 13988 { 13989 ret = null; 13990 break; 13991 } 13992 case sstselect: 13993 { 13994 lcisnewsql = true; 13995 13996 if ( pstate != EFindSqlStateType.stnormal ) 13997 { 13998 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 13999 if ( TBaseType.assigned(lcprevsolidtoken) ) 14000 { 14001 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 14002 lcisnewsql = false; //subqery 14003 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 14004 lcisnewsql = false; 14005 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 14006 lcisnewsql = false; 14007 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 14008 lcisnewsql = false; 14009 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 14010 lcisnewsql = false; 14011 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 14012 lcisnewsql = false; 14013 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 14014 { 14015 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 14016 lcisnewsql = false; 14017 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 14018 lcisnewsql = false; 14019 } 14020 14021 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 14022 { 14023 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 14024 if ( TBaseType.assigned(lcpprevsolidtoken) ) 14025 { 14026 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 14027 lcisnewsql = false; 14028 } 14029 } 14030 14031 } 14032 14033 14034 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14035 { 14036 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 14037 lcisnewsql = false; 14038 } 14039 14040 } 14041 14042 if ( lcisnewsql ) 14043 ret = new TSelectSqlStatement(pdbvendor); 14044 break; 14045 } 14046 case sstinsert: 14047 { 14048 lcisnewsql = true; 14049 if ( pstate != EFindSqlStateType.stnormal ) 14050 { 14051 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14052 { 14053 14054 } 14055 } 14056 14057 if ( lcisnewsql ) 14058 ret = new TInsertSqlStatement(pdbvendor); 14059 ret.sqlstatementtype = gnewsqlstatementtype; 14060 break; 14061 } 14062 case sstdelete: 14063 { 14064 lcisnewsql = true; 14065 14066 if ( pstate != EFindSqlStateType.stnormal ) 14067 { 14068 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14069 if ( TBaseType.assigned(lcprevsolidtoken) ) 14070 { 14071 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 14072 lcisnewsql = false; 14073 } 14074 14075 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14076 { 14077 } 14078 } 14079 14080 if ( lcisnewsql ) 14081 ret = new TDeleteSqlStatement(pdbvendor); 14082 break; 14083 } 14084 case sstaltertable: 14085 { 14086 ret = new TAlterTableStatement(pdbvendor); 14087 break; 14088 } 14089 case sstalterfunction: 14090 { 14091 ret = new TAlterFunctionStmt(pdbvendor); 14092 break; 14093 } 14094 case sstAlterSchema: 14095 { 14096 ret = new TAlterSchemaStmt(pdbvendor); 14097 break; 14098 } 14099 case sstanalyzeTable: 14100 { 14101 ret = new TAnalyzeStmt(pdbvendor); 14102 break; 14103 } 14104 case sstcall: 14105 { 14106 ret = new TCallStatement(pdbvendor); 14107 break; 14108 } 14109 case sstcommit: 14110 { 14111 ret = new TCommitStmt(pdbvendor); 14112 break; 14113 } 14114 case sstcreatefunction: 14115 { 14116 ret = new TCreateFunctionStmt(pdbvendor); 14117 break; 14118 } 14119 case sstcreaterole: 14120 { 14121 ret = new TCreateRoleStmt(pdbvendor); 14122 break; 14123 } 14124 case sstcreateschema: 14125 { 14126 ret = new TCreateSchemaSqlStatement(pdbvendor); 14127 break; 14128 } 14129 case sstcreatetable: 14130 { 14131 ret = new TCreateTableSqlStatement(pdbvendor); 14132 break; 14133 } 14134 case sstcreateview: 14135 { 14136 ret = new TCreateViewSqlStatement(pdbvendor); 14137 break; 14138 } 14139 case sstpostgresqlDeallocate: 14140 { 14141 ret = new TUnknownSqlStatement(pdbvendor); 14142 ret.sqlstatementtype = gnewsqlstatementtype; 14143 break; 14144 } 14145 case sstdropfunction: 14146 { 14147 ret = new TDropFunctionStmt(pdbvendor); 14148 break; 14149 } 14150 case sstdroprole: 14151 { 14152 ret = new TDropRoleStmt(pdbvendor); 14153 break; 14154 } 14155 case sstdropschema: 14156 { 14157 ret = new TDropSchemaSqlStatement(pdbvendor); 14158 break; 14159 } 14160 case sstdroptable: 14161 { 14162 ret = new TDropTableSqlStatement(pdbvendor); 14163 break; 14164 } 14165 case sstdropview: 14166 { 14167 ret = new TDropViewSqlStatement(pdbvendor); 14168 break; 14169 } 14170 case sstExecute: 14171 { 14172 ret = new TExecuteSqlStatement(pdbvendor); 14173 break; 14174 } 14175 case sstExplain: 14176 { 14177 ret = new TExplainPlan(pdbvendor); 14178 break; 14179 } 14180 case sstGrant: 14181 { 14182 ret = new TGrantStmt(pdbvendor); 14183 break; 14184 } 14185 case sstprepare: 14186 { 14187 ret = new TPrepareStmt(pdbvendor); 14188 break; 14189 } 14190 case sstset: 14191 case sstReset: 14192 { 14193 lcisnewsql = true; 14194 if ( pstate != EFindSqlStateType.stnormal ) 14195 { 14196 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14197 { 14198 lcisnewsql = false; 14199 } 14200 } 14201 14202 if ( lcisnewsql ) 14203 { 14204 ret = new TSetStmt(pdbvendor); 14205 } 14206 break; 14207 } 14208 case sstShow: 14209 { 14210 ret = new TShowStmt(pdbvendor); 14211 ret.sqlstatementtype = gnewsqlstatementtype; 14212 break; 14213 } 14214 case sstStartTransaction: 14215 { 14216 ret = new TStartTransactionStmt(pdbvendor); 14217 break; 14218 } 14219 case sstValues: 14220 { 14221 ret = new TSelectSqlStatement(pdbvendor); 14222 break; 14223 } 14224 case sstResetSession: 14225 { 14226 ret = new TResetSessionStmt(pdbvendor); 14227 break; 14228 } 14229 case sstCreateExternallocation: 14230 ret = new TCreateExternalLocationStmt(pdbvendor); 14231 break; 14232 case sstList: 14233 { 14234 ret = new TListStmt(pdbvendor); 14235 break; 14236 } 14237 case sstRevoke: 14238 ret = new TRevokeStmt(pdbvendor); 14239 break; 14240 case sstaltercredental: 14241 ret = new TAlterCredentialStmt(pdbvendor); 14242 break; 14243 case sstdescribeCatalog: 14244 case sstdescribeFunction: 14245 case sstdescribeProvider: 14246 case sstdescribeQuery: 14247 case sstdescribeRecipient: 14248 case sstdescribeSchema: 14249 case sstdescribeShare: 14250 case sstdescribeTable: 14251 case sstdescribeDatabase: 14252 case sstdescribeLocation: 14253 case sstdescribeCredential: 14254 case sstdescribe: 14255 ret = new TDescribeStmt(pdbvendor); 14256 break; 14257 case sstUseCatalog: 14258 case sstUseSchema: 14259 case sstUseDatabase: 14260 case sstUse: 14261 ret = new TUseDatabase(pdbvendor); 14262 break; 14263 case sstAnalyzeTable: 14264 ret = new TAnalyzeStmt(pdbvendor); 14265 break; 14266 case sstCreategroup: 14267 ret = new TCreateGroup(pdbvendor); 14268 break; 14269 case sstAlterGroup: 14270 ret = new TAlterGroup(pdbvendor); 14271 break; 14272 case sstDeny: 14273 ret = new TDenyStmt(pdbvendor); 14274 break; 14275 case sstDropGroup: 14276 ret = new TDropGroup(pdbvendor); 14277 break; 14278 case sstmsckrepairtable: 14279 ret = new TMSCKStmt(pdbvendor); 14280 break; 14281 case sstcreatecatalog: 14282 ret = new TCreateCatalogStmt(pdbvendor); 14283 break; 14284 case sstConvertToDelta: 14285 ret = new TConvertToDeltaStmt(pdbvendor); 14286 break; 14287 case sstOptimize: 14288 ret = new TOptimizeStmt(pdbvendor); 14289 break; 14290 case sstRestoreTable: 14291 ret = new TRestoreTableStmt(pdbvendor); 14292 break; 14293 case sstReorgTable: 14294 ret = new TReorgTableStmt(pdbvendor); 14295 break; 14296 case sstVacuum: 14297 ret = new TVacuumStmt(pdbvendor); 14298 break; 14299 case sstmerge: 14300 ret = new TMergeSqlStatement(pdbvendor); 14301 break; 14302 default: 14303 { 14304 ret = new TUnknownSqlStatement(pdbvendor); 14305 ret.sqlstatementtype = gnewsqlstatementtype; 14306 break; 14307 } 14308 } // case 14309 14310 return ret; 14311 14312 } 14313 TCustomSqlStatement ispresto(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 14314 14315 TCustomSqlStatement ret = null; 14316 int k; 14317 boolean lcisnewsql; 14318 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 14319 14320 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 14321 14322 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 14323 || (pcst.tokencode == TBaseType.cmtslashstar) 14324 || (pcst.tokencode == TBaseType.lexspace) 14325 || (pcst.tokencode == TBaseType.lexnewline) 14326 || (pcst.tokentype == ETokenType.ttsemicolon) ) 14327 { 14328 return ret; 14329 } 14330 14331 int lcpos = pcst.posinlist; 14332 TSourceTokenList lcsourcetokenlist = pcst.container; 14333 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 14334 14335 //subquery after semicolon || at first line 14336 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 14337 { 14338 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 14339 if ( k >0 ) 14340 { 14341 ret = new TSelectSqlStatement(pdbvendor); 14342 } 14343 14344 return ret; 14345 } 14346 14347 //cte 14348 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 14349 { 14350 ret = findcte(pcst,pdbvendor); 14351 if ( (ret != null) ) return ret; 14352 } 14353 14354 14355 gnewsqlstatementtype = findprestocmd(pcst); 14356 14357 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14358 14359 if ((gnewsqlstatementtype == ESqlStatementType.sstinvalid)&&(pcst.tokencode == TBaseType.rrw_create)){ 14360 //if (pcst.container.nextsolidtoken(pcst.posinlist,15,)) 14361 TSourceToken viewToken = pcst.container.searchToken(TBaseType.rrw_view,"",pcst,15); 14362 if (viewToken != null){ 14363 gnewsqlstatementtype = ESqlStatementType.sstcreateview; 14364 } 14365 } 14366 switch (gnewsqlstatementtype){ 14367 case sstinvalid: 14368 { 14369 ret = null; 14370 break; 14371 } 14372 case sstselect: 14373 { 14374 lcisnewsql = true; 14375 14376 if ( pstate != EFindSqlStateType.stnormal ) 14377 { 14378 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14379 if ( TBaseType.assigned(lcprevsolidtoken) ) 14380 { 14381 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 14382 lcisnewsql = false; //subqery 14383 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 14384 lcisnewsql = false; 14385 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 14386 lcisnewsql = false; 14387 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 14388 lcisnewsql = false; 14389 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 14390 lcisnewsql = false; 14391 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 14392 lcisnewsql = false; 14393 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 14394 { 14395 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 14396 lcisnewsql = false; 14397 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 14398 lcisnewsql = false; 14399 } 14400 14401 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 14402 { 14403 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 14404 if ( TBaseType.assigned(lcpprevsolidtoken) ) 14405 { 14406 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 14407 lcisnewsql = false; 14408 } 14409 } 14410 14411 } 14412 14413 14414 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14415 { 14416 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 14417 lcisnewsql = false; 14418 } 14419 14420 } 14421 14422 if ( lcisnewsql ) 14423 ret = new TSelectSqlStatement(pdbvendor); 14424 break; 14425 } 14426 case sstinsert: 14427 { 14428 lcisnewsql = true; 14429 if ( pstate != EFindSqlStateType.stnormal ) 14430 { 14431 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14432 { 14433 14434 } 14435 } 14436 14437 if ( lcisnewsql ) 14438 ret = new TInsertSqlStatement(pdbvendor); 14439 ret.sqlstatementtype = gnewsqlstatementtype; 14440 break; 14441 } 14442 case sstdelete: 14443 { 14444 lcisnewsql = true; 14445 14446 if ( pstate != EFindSqlStateType.stnormal ) 14447 { 14448 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14449 if ( TBaseType.assigned(lcprevsolidtoken) ) 14450 { 14451 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 14452 lcisnewsql = false; 14453 } 14454 14455 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14456 { 14457 } 14458 } 14459 14460 if ( lcisnewsql ) 14461 ret = new TDeleteSqlStatement(pdbvendor); 14462 break; 14463 } 14464 case sstaltertable: 14465 { 14466 ret = new TAlterTableStatement(pdbvendor); 14467 break; 14468 } 14469 case sstalterfunction: 14470 { 14471 ret = new TAlterFunctionStmt(pdbvendor); 14472 break; 14473 } 14474 case sstAlterSchema: 14475 { 14476 ret = new TAlterSchemaStmt(pdbvendor); 14477 break; 14478 } 14479 case sstanalyzeTable: 14480 { 14481 ret = new TAnalyzeStmt(pdbvendor); 14482 break; 14483 } 14484 case sstcall: 14485 { 14486 ret = new TCallStatement(pdbvendor); 14487 break; 14488 } 14489 case sstcommit: 14490 { 14491 ret = new TCommitStmt(pdbvendor); 14492 break; 14493 } 14494 case sstcreatefunction: 14495 { 14496 ret = new TCreateFunctionStmt(pdbvendor); 14497 break; 14498 } 14499 case sstcreaterole: 14500 { 14501 ret = new TCreateRoleStmt(pdbvendor); 14502 break; 14503 } 14504 case sstcreateschema: 14505 { 14506 ret = new TCreateSchemaSqlStatement(pdbvendor); 14507 break; 14508 } 14509 case sstcreatetable: 14510 { 14511 ret = new TCreateTableSqlStatement(pdbvendor); 14512 break; 14513 } 14514 case sstcreateview: 14515 { 14516 ret = new TCreateViewSqlStatement(pdbvendor); 14517 break; 14518 } 14519 case sstpostgresqlDeallocate: 14520 { 14521 ret = new TUnknownSqlStatement(pdbvendor); 14522 ret.sqlstatementtype = gnewsqlstatementtype; 14523 break; 14524 } 14525 case sstdescribe: 14526 { 14527 ret = new TDescribeStmt(pdbvendor); 14528 break; 14529 } 14530 case sstdropfunction: 14531 { 14532 ret = new TDropFunctionStmt(pdbvendor); 14533 break; 14534 } 14535 case sstdroprole: 14536 { 14537 ret = new TDropRoleStmt(pdbvendor); 14538 break; 14539 } 14540 case sstdropschema: 14541 { 14542 ret = new TDropSchemaSqlStatement(pdbvendor); 14543 break; 14544 } 14545 case sstdroptable: 14546 { 14547 ret = new TDropTableSqlStatement(pdbvendor); 14548 break; 14549 } 14550 case sstdropview: 14551 { 14552 ret = new TDropViewSqlStatement(pdbvendor); 14553 break; 14554 } 14555 case sstExecute: 14556 { 14557 ret = new TExecuteSqlStatement(pdbvendor); 14558 break; 14559 } 14560 case sstExplain: 14561 { 14562 ret = new TExplainPlan(pdbvendor); 14563 break; 14564 } 14565 case sstGrant: 14566 { 14567 ret = new TGrantStmt(pdbvendor); 14568 break; 14569 } 14570 case sstprepare: 14571 { 14572 ret = new TPrepareStmt(pdbvendor); 14573 break; 14574 } 14575 case sstset: 14576 case sstReset: 14577 { 14578 lcisnewsql = true; 14579 if ( pstate != EFindSqlStateType.stnormal ) 14580 { 14581 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14582 { 14583 lcisnewsql = false; 14584 } 14585 } 14586 14587 if ( lcisnewsql ) 14588 { 14589 ret = new TSetStmt(pdbvendor); 14590 } 14591 break; 14592 } 14593 case sstShow: 14594 { 14595 ret = new TShowStmt(pdbvendor); 14596 ret.sqlstatementtype = gnewsqlstatementtype; 14597 break; 14598 } 14599 case sstStartTransaction: 14600 { 14601 ret = new TStartTransactionStmt(pdbvendor); 14602 break; 14603 } 14604 case sstUse: 14605 { 14606 ret = new TUseDatabase(pdbvendor); 14607 break; 14608 } 14609 case sstValues: 14610 { 14611 ret = new TSelectSqlStatement(pdbvendor); 14612 break; 14613 } 14614 case sstResetSession: 14615 { 14616 ret = new TResetSessionStmt(pdbvendor); 14617 break; 14618 } 14619 default: 14620 { 14621 ret = new TUnknownSqlStatement(pdbvendor); 14622 ret.sqlstatementtype = gnewsqlstatementtype; 14623 break; 14624 } 14625 } // case 14626 14627 return ret; 14628 14629 } 14630 TCustomSqlStatement isathena(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 14631 14632 TCustomSqlStatement ret = null; 14633 int k; 14634 boolean lcisnewsql; 14635 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 14636 14637 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 14638 14639 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 14640 || (pcst.tokencode == TBaseType.cmtslashstar) 14641 || (pcst.tokencode == TBaseType.lexspace) 14642 || (pcst.tokencode == TBaseType.lexnewline) 14643 || (pcst.tokentype == ETokenType.ttsemicolon) ) 14644 { 14645 return ret; 14646 } 14647 14648 int lcpos = pcst.posinlist; 14649 TSourceTokenList lcsourcetokenlist = pcst.container; 14650 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 14651 14652 //subquery after semicolon || at first line 14653 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 14654 { 14655 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 14656 if ( k >0 ) 14657 { 14658 ret = new TSelectSqlStatement(pdbvendor); 14659 } 14660 14661 return ret; 14662 } 14663 14664 //cte 14665 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 14666 { 14667 ret = findcte(pcst,pdbvendor); 14668 if ( (ret != null) ) return ret; 14669 } 14670 14671 14672 gnewsqlstatementtype = findathenacmd(pcst); 14673 14674 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14675 14676 if ((gnewsqlstatementtype == ESqlStatementType.sstinvalid)&&(pcst.tokencode == TBaseType.rrw_create)){ 14677 //if (pcst.container.nextsolidtoken(pcst.posinlist,15,)) 14678 TSourceToken viewToken = pcst.container.searchToken(TBaseType.rrw_view,"",pcst,15); 14679 if (viewToken != null){ 14680 gnewsqlstatementtype = ESqlStatementType.sstcreateview; 14681 } 14682 } 14683 switch (gnewsqlstatementtype){ 14684 case sstinvalid: 14685 { 14686 ret = null; 14687 break; 14688 } 14689 case sstselect: 14690 { 14691 lcisnewsql = true; 14692 14693 if ( pstate != EFindSqlStateType.stnormal ) 14694 { 14695 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14696 if ( TBaseType.assigned(lcprevsolidtoken) ) 14697 { 14698 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 14699 lcisnewsql = false; //subqery 14700 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 14701 lcisnewsql = false; 14702 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 14703 lcisnewsql = false; 14704 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 14705 lcisnewsql = false; 14706 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 14707 lcisnewsql = false; 14708 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 14709 lcisnewsql = false; 14710 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 14711 { 14712 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 14713 lcisnewsql = false; 14714 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 14715 lcisnewsql = false; 14716 } 14717 14718 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 14719 { 14720 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 14721 if ( TBaseType.assigned(lcpprevsolidtoken) ) 14722 { 14723 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 14724 lcisnewsql = false; 14725 } 14726 } 14727 14728 } 14729 14730 14731 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14732 { 14733 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 14734 lcisnewsql = false; 14735 } 14736 14737 } 14738 14739 if ( lcisnewsql ) 14740 ret = new TSelectSqlStatement(pdbvendor); 14741 break; 14742 } 14743 case sstinsert: 14744 { 14745 lcisnewsql = true; 14746 if ( pstate != EFindSqlStateType.stnormal ) 14747 { 14748 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14749 { 14750 14751 } 14752 } 14753 14754 if ( lcisnewsql ) 14755 ret = new TInsertSqlStatement(pdbvendor); 14756 ret.sqlstatementtype = gnewsqlstatementtype; 14757 break; 14758 } 14759 case sstdelete: 14760 { 14761 lcisnewsql = true; 14762 14763 if ( pstate != EFindSqlStateType.stnormal ) 14764 { 14765 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14766 if ( TBaseType.assigned(lcprevsolidtoken) ) 14767 { 14768 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 14769 lcisnewsql = false; 14770 } 14771 14772 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14773 { 14774 } 14775 } 14776 14777 if ( lcisnewsql ) 14778 ret = new TDeleteSqlStatement(pdbvendor); 14779 break; 14780 } 14781 case sstaltertable: 14782 { 14783 ret = new TAlterTableStatement(pdbvendor); 14784 break; 14785 } 14786 case sstalterfunction: 14787 { 14788 ret = new TAlterFunctionStmt(pdbvendor); 14789 break; 14790 } 14791 case sstAlterSchema: 14792 { 14793 ret = new TAlterSchemaStmt(pdbvendor); 14794 break; 14795 } 14796 case sstanalyzeTable: 14797 { 14798 ret = new TAnalyzeStmt(pdbvendor); 14799 break; 14800 } 14801 case sstcall: 14802 { 14803 ret = new TCallStatement(pdbvendor); 14804 break; 14805 } 14806 case sstcommit: 14807 { 14808 ret = new TCommitStmt(pdbvendor); 14809 break; 14810 } 14811 case sstcreatefunction: 14812 { 14813 ret = new TCreateFunctionStmt(pdbvendor); 14814 break; 14815 } 14816 case sstcreaterole: 14817 { 14818 ret = new TCreateRoleStmt(pdbvendor); 14819 break; 14820 } 14821 case sstcreateschema: 14822 { 14823 ret = new TCreateSchemaSqlStatement(pdbvendor); 14824 break; 14825 } 14826 case sstcreatetable: 14827 { 14828 ret = new TCreateTableSqlStatement(pdbvendor); 14829 break; 14830 } 14831 case sstcreateview: 14832 { 14833 ret = new TCreateViewSqlStatement(pdbvendor); 14834 break; 14835 } 14836 case sstpostgresqlDeallocate: 14837 { 14838 ret = new TUnknownSqlStatement(pdbvendor); 14839 ret.sqlstatementtype = gnewsqlstatementtype; 14840 break; 14841 } 14842 case sstdescribe: 14843 { 14844 ret = new TDescribeStmt(pdbvendor); 14845 break; 14846 } 14847 case sstdropfunction: 14848 { 14849 ret = new TDropFunctionStmt(pdbvendor); 14850 break; 14851 } 14852 case sstdroprole: 14853 { 14854 ret = new TDropRoleStmt(pdbvendor); 14855 break; 14856 } 14857 case sstdropschema: 14858 { 14859 ret = new TDropSchemaSqlStatement(pdbvendor); 14860 break; 14861 } 14862 case sstdroptable: 14863 { 14864 ret = new TDropTableSqlStatement(pdbvendor); 14865 break; 14866 } 14867 case sstdropview: 14868 { 14869 ret = new TDropViewSqlStatement(pdbvendor); 14870 break; 14871 } 14872 case sstExecute: 14873 { 14874 ret = new TExecuteSqlStatement(pdbvendor); 14875 break; 14876 } 14877 case sstExplain: 14878 { 14879 ret = new TExplainPlan(pdbvendor); 14880 break; 14881 } 14882 case sstGrant: 14883 { 14884 ret = new TGrantStmt(pdbvendor); 14885 break; 14886 } 14887 case sstprepare: 14888 { 14889 ret = new TPrepareStmt(pdbvendor); 14890 break; 14891 } 14892 case sstset: 14893 case sstReset: 14894 { 14895 lcisnewsql = true; 14896 if ( pstate != EFindSqlStateType.stnormal ) 14897 { 14898 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14899 { 14900 lcisnewsql = false; 14901 } 14902 } 14903 14904 if ( lcisnewsql ) 14905 { 14906 ret = new TSetStmt(pdbvendor); 14907 } 14908 break; 14909 } 14910 case sstShow: 14911 { 14912 ret = new TShowStmt(pdbvendor); 14913 ret.sqlstatementtype = gnewsqlstatementtype; 14914 break; 14915 } 14916 case sstStartTransaction: 14917 { 14918 ret = new TStartTransactionStmt(pdbvendor); 14919 break; 14920 } 14921 case sstUse: 14922 { 14923 ret = new TUseDatabase(pdbvendor); 14924 break; 14925 } 14926 case sstValues: 14927 { 14928 ret = new TSelectSqlStatement(pdbvendor); 14929 break; 14930 } 14931 case sstResetSession: 14932 { 14933 ret = new TResetSessionStmt(pdbvendor); 14934 break; 14935 } 14936 case sstunload: 14937 lcisnewsql = true; 14938 if ( pstate != EFindSqlStateType.stnormal ) 14939 { 14940 lcisnewsql = false; 14941 } 14942 if ( lcisnewsql ) { 14943 ret = new TUnloadStmt(pdbvendor); 14944 ret.sqlstatementtype = gnewsqlstatementtype; 14945 } 14946 break; 14947 case sstmsck: 14948 { 14949 ret = new TMSCKStmt(pdbvendor); 14950 break; 14951 } 14952 case sstcreatedatabase: 14953 { 14954 ret = new TCreateDatabaseSqlStatement(pdbvendor); 14955 break; 14956 } 14957 case sstalterdatabase: 14958 { 14959 ret = new TAlterDatabaseStmt(pdbvendor); 14960 break; 14961 } 14962 case sstdropdatabase: 14963 ret = new TDropDatabaseStmt(pdbvendor); 14964 break; 14965 default: 14966 { 14967 ret = new TUnknownSqlStatement(pdbvendor); 14968 ret.sqlstatementtype = gnewsqlstatementtype; 14969 break; 14970 } 14971 } // case 14972 14973 return ret; 14974 14975 } 14976 14977 TCustomSqlStatement issparksql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 14978 14979 TCustomSqlStatement ret = null; 14980 int k; 14981 boolean lcisnewsql; 14982 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 14983 14984 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 14985 14986 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 14987 || (pcst.tokencode == TBaseType.cmtslashstar) 14988 || (pcst.tokencode == TBaseType.lexspace) 14989 || (pcst.tokencode == TBaseType.lexnewline) 14990 || (pcst.tokentype == ETokenType.ttsemicolon) ) 14991 { 14992 return ret; 14993 } 14994 14995 int lcpos = pcst.posinlist; 14996 TSourceTokenList lcsourcetokenlist = pcst.container; 14997 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 14998 14999 //subquery after semicolon || at first line 15000 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 15001 { 15002 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 15003 if ( k >0 ) 15004 { 15005 ret = new TSelectSqlStatement(pdbvendor); 15006 } 15007 15008 return ret; 15009 } 15010 15011 //cte 15012 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 15013 { 15014 ret = findcte(pcst,pdbvendor); 15015 if ( (ret != null) ) return ret; 15016 } 15017 15018 15019 gnewsqlstatementtype = findsparksqlcmd(pcst); 15020 15021 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15022 15023 if ((gnewsqlstatementtype == ESqlStatementType.sstinvalid)&&(pcst.tokencode == TBaseType.rrw_create)){ 15024 //if (pcst.container.nextsolidtoken(pcst.posinlist,15,)) 15025 TSourceToken viewToken = pcst.container.searchToken(TBaseType.rrw_view,"",pcst,15); 15026 if (viewToken != null){ 15027 gnewsqlstatementtype = ESqlStatementType.sstcreateview; 15028 } 15029 } 15030 switch (gnewsqlstatementtype){ 15031 case sstinvalid: 15032 { 15033 ret = null; 15034 break; 15035 } 15036 case sstselect: 15037 { 15038 lcisnewsql = true; 15039 15040 if ( pstate != EFindSqlStateType.stnormal ) 15041 { 15042 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15043 if ( TBaseType.assigned(lcprevsolidtoken) ) 15044 { 15045 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 15046 lcisnewsql = false; //subqery 15047 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 15048 lcisnewsql = false; 15049 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 15050 lcisnewsql = false; 15051 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 15052 lcisnewsql = false; 15053 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 15054 lcisnewsql = false; 15055 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 15056 lcisnewsql = false; 15057 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 15058 { 15059 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 15060 lcisnewsql = false; 15061 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 15062 lcisnewsql = false; 15063 } 15064 15065 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 15066 { 15067 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 15068 if ( TBaseType.assigned(lcpprevsolidtoken) ) 15069 { 15070 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 15071 lcisnewsql = false; 15072 } 15073 } 15074 15075 } 15076 15077 15078 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15079 { 15080 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 15081 lcisnewsql = false; 15082 } 15083 15084 } 15085 15086 if ( lcisnewsql ) 15087 ret = new TSelectSqlStatement(pdbvendor); 15088 break; 15089 } 15090 case sstinsert: 15091 { 15092 lcisnewsql = true; 15093 if ( pstate != EFindSqlStateType.stnormal ) 15094 { 15095 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15096 { 15097 15098 } 15099 } 15100 15101 if ( lcisnewsql ) 15102 ret = new TInsertSqlStatement(pdbvendor); 15103 ret.sqlstatementtype = gnewsqlstatementtype; 15104 break; 15105 } 15106 case sstupdate: 15107 { 15108 lcisnewsql = true; 15109 if ( pstate != EFindSqlStateType.stnormal ) 15110 { 15111 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15112 if ( TBaseType.assigned(lcprevsolidtoken) ) 15113 { // 15114 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 15115 lcisnewsql = false; 15116 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 15117 lcisnewsql = false; 15118 } 15119 15120 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 15121 if ( TBaseType.assigned(lcnextsolidtoken) ) 15122 { 15123 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 15124 { 15125 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 15126 if ( k == 0 ) lcisnewsql = false; 15127 } 15128 } 15129 15130 15131 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15132 { 15133 } 15134 } 15135 15136 if ( lcisnewsql ) 15137 { 15138 ret = new TUpdateSqlStatement(pdbvendor); 15139 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 15140 } 15141 break; 15142 } 15143 case sstdelete: 15144 { 15145 lcisnewsql = true; 15146 15147 if ( pstate != EFindSqlStateType.stnormal ) 15148 { 15149 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15150 if ( TBaseType.assigned(lcprevsolidtoken) ) 15151 { 15152 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 15153 lcisnewsql = false; 15154 } 15155 15156 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15157 { 15158 } 15159 } 15160 15161 if ( lcisnewsql ) 15162 ret = new TDeleteSqlStatement(pdbvendor); 15163 break; 15164 } 15165 case sstcreatetable: 15166 { 15167 ret = new TCreateTableSqlStatement(pdbvendor); 15168 break; 15169 } 15170 case sstcreateview: 15171 { 15172 ret = new TCreateViewSqlStatement(pdbvendor); 15173 break; 15174 } 15175 case sstcreatedatabase: 15176 { 15177 ret = new TCreateDatabaseSqlStatement(pdbvendor); 15178 break; 15179 } 15180 case sstdroptable: 15181 { 15182 ret = new TDropTableSqlStatement(pdbvendor); 15183 break; 15184 } 15185 case sstdropview: 15186 { 15187 ret = new TDropViewSqlStatement(pdbvendor); 15188 break; 15189 } 15190 case sstaltertable: 15191 { 15192 ret = new TAlterTableStatement(pdbvendor); 15193 break; 15194 } 15195 case sstset: 15196 case sstReset: 15197 case sstSetTimeZone: 15198 { 15199 lcisnewsql = true; 15200 if ( pstate != EFindSqlStateType.stnormal ) 15201 { 15202 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15203 { 15204 lcisnewsql = false; 15205 } 15206 } 15207 15208 if ( lcisnewsql ) 15209 { 15210 ret = new TSetStmt(pdbvendor); 15211 } 15212 break; 15213 } 15214 case sstcreatefunction: 15215 { 15216 ret = new TCreateFunctionStmt(pdbvendor); 15217 break; 15218 } 15219 case sstTruncate: 15220 { 15221 ret = new TTruncateStatement(pdbvendor); 15222 break; 15223 } 15224 case sstdescribe: 15225 { 15226 ret = new TDescribeStmt(pdbvendor); 15227 break; 15228 } 15229 case sstExplain: 15230 { 15231 ret = new TExplainPlan(pdbvendor); 15232 break; 15233 } 15234 case sstUse: 15235 { 15236 ret = new TUseDatabase(pdbvendor); 15237 break; 15238 } 15239 case sstLoadData: 15240 { 15241 ret = new TLoadDataStmt(pdbvendor); 15242 break; 15243 } 15244 case sstShowColumns: 15245 case sstShowCreateTable: 15246 case sstShowDatabases: 15247 case sstShowFunctions: 15248 case sstShowPartitions: 15249 case sstShowTableExtended: 15250 case sstShowTables: 15251 case sstShowTblProperties: 15252 case sstShowViews: 15253 case sstShowUser: 15254 ret = new TShowStmt(pdbvendor); 15255 ret.sqlstatementtype = gnewsqlstatementtype; 15256 break; 15257 case sstalterdatabase: 15258 ret = new TAlterDatabaseStmt(pdbvendor); 15259 break; 15260 case sstdescribeDatabase: 15261 case sstdescribeTable: 15262 case sstdescribeFunction: 15263 ret = new TDescribeStmt(pdbvendor); 15264 break; 15265 case sstalterview: 15266 ret = new TAlterViewStatement(pdbvendor); 15267 break; 15268 case sstAddFile: 15269 case sstAddJar: 15270 case sstListFile: 15271 case sstListJar: 15272 ret = new TResourceManagement(pdbvendor); 15273 ret.sqlstatementtype = gnewsqlstatementtype; 15274 break; 15275 case sstdropdatabase: 15276 ret = new TDropDatabaseStmt(pdbvendor); 15277 break; 15278 case sstdropfunction: 15279 ret = new TDropFunctionStmt(pdbvendor); 15280 break; 15281 case ssttruncatetable: 15282 ret = new TTruncateStatement(pdbvendor); 15283 break; 15284 case sstmsck: 15285 { 15286 ret = new TMSCKStmt(pdbvendor); 15287 break; 15288 } 15289 case sstanalyzeTable: 15290 { 15291 ret = new TAnalyzeStmt(pdbvendor); 15292 break; 15293 } 15294 case sstCacheTable: 15295 case sstUnCacheTable: 15296 case sstClearCache: 15297 ret = new TCacheTable(pdbvendor); 15298 break; 15299 case sstRefreshTable: 15300 case sstRefreshFunction: 15301 case sstRefresh: 15302 ret = new TRefresh(pdbvendor); 15303 break; 15304 default: 15305 { 15306 ret = new TUnknownSqlStatement(pdbvendor); 15307 ret.sqlstatementtype = gnewsqlstatementtype; 15308 break; 15309 } 15310 } // case 15311 15312 return ret; 15313 15314 } 15315 15316 TCustomSqlStatement ismysqlsql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 15317 TCustomSqlStatement ret = null; 15318 int k; 15319 boolean lcisnewsql; 15320 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 15321 15322 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 15323 15324 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 15325 || (pcst.tokencode == TBaseType.cmtslashstar) 15326 || (pcst.tokencode == TBaseType.lexspace) 15327 || (pcst.tokencode == TBaseType.lexnewline) 15328 || (pcst.tokentype == ETokenType.ttsemicolon) ) 15329 { 15330 return ret; 15331 } 15332 15333 int lcpos = pcst.posinlist; 15334 TSourceTokenList lcsourcetokenlist = pcst.container; 15335 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 15336 15337 //subquery after semicolon || at first line 15338 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 15339 { 15340 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 15341 if ( k >0 ) 15342 { 15343 ret = new TSelectSqlStatement(pdbvendor); 15344 } 15345 15346 return ret; 15347 } 15348 15349 //cte 15350 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 15351 { 15352 ret = findcte(pcst,pdbvendor); 15353 if ( (ret != null) ) return ret; 15354 } 15355 15356 15357 //cte 15358// if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == rrw_with) ) 15359// { 15360// ret = tselectsqlstatement.create(pdbvendor); 15361// tselectsqlstatement(ret).isctequery = true; 15362// exit; 15363// } 15364// 15365 15366 gnewsqlstatementtype = findmysqlcmd(pcst); 15367 15368 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15369 15370 if ((gnewsqlstatementtype == ESqlStatementType.sstinvalid)&&(pcst.tokencode == TBaseType.rrw_create)){ 15371 //if (pcst.container.nextsolidtoken(pcst.posinlist,15,)) 15372 TSourceToken viewToken = pcst.container.searchToken(TBaseType.rrw_view,"",pcst,15); 15373 if (viewToken != null){ 15374 gnewsqlstatementtype = ESqlStatementType.sstcreateview; 15375 } 15376 } 15377 switch (gnewsqlstatementtype){ 15378 case sstinvalid: 15379 { 15380 ret = null; 15381 break; 15382 } 15383 case sstselect: 15384 { 15385 lcisnewsql = true; 15386 15387 if ( pstate != EFindSqlStateType.stnormal ) 15388 { 15389 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15390 if ( TBaseType.assigned(lcprevsolidtoken) ) 15391 { 15392 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 15393 lcisnewsql = false; //subqery 15394 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 15395 lcisnewsql = false; 15396 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 15397 lcisnewsql = false; 15398 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 15399 lcisnewsql = false; 15400 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 15401 lcisnewsql = false; 15402 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 15403 lcisnewsql = false; 15404 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 15405 { 15406 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 15407 lcisnewsql = false; 15408 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 15409 lcisnewsql = false; 15410 } 15411 15412 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 15413 { 15414 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 15415 if ( TBaseType.assigned(lcpprevsolidtoken) ) 15416 { 15417 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 15418 lcisnewsql = false; 15419 } 15420 } 15421 15422 } 15423 15424 15425 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15426 { 15427 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 15428 lcisnewsql = false; 15429 } 15430 15431 } 15432 15433 if ( lcisnewsql ) 15434 ret = new TSelectSqlStatement(pdbvendor); 15435 break; 15436 } 15437 case sstinsert: 15438 case sstmysqlreplace: 15439 { 15440 lcisnewsql = true; 15441 if ( pstate != EFindSqlStateType.stnormal ) 15442 { 15443 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15444 { 15445 15446 } 15447 } 15448 15449 if ( lcisnewsql ) 15450 ret = new TInsertSqlStatement(pdbvendor); 15451 ret.sqlstatementtype = gnewsqlstatementtype; 15452 break; 15453 } 15454 case sstupdate: 15455 { 15456 lcisnewsql = true; 15457 if ( pstate != EFindSqlStateType.stnormal ) 15458 { 15459 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15460 if ( TBaseType.assigned(lcprevsolidtoken) ) 15461 { // 15462 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 15463 lcisnewsql = false; 15464 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 15465 lcisnewsql = false; 15466 } 15467 15468 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 15469 if ( TBaseType.assigned(lcnextsolidtoken) ) 15470 { 15471 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 15472 { 15473 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 15474 if ( k == 0 ) lcisnewsql = false; 15475 } 15476 } 15477 15478 15479 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15480 { 15481 } 15482 } 15483 15484 if ( lcisnewsql ) 15485 { 15486 ret = new TUpdateSqlStatement(pdbvendor); 15487 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 15488 } 15489 break; 15490 } 15491 case sstdelete: 15492 { 15493 lcisnewsql = true; 15494 15495 if ( pstate != EFindSqlStateType.stnormal ) 15496 { 15497 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15498 if ( TBaseType.assigned(lcprevsolidtoken) ) 15499 { 15500 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 15501 lcisnewsql = false; 15502 } 15503 15504 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15505 { 15506 } 15507 } 15508 15509 if ( lcisnewsql ) 15510 ret = new TDeleteSqlStatement(pdbvendor); 15511 break; 15512 } 15513 case sstmerge: 15514 { 15515 ret = new TMergeSqlStatement(pdbvendor); 15516 ret.sqlstatementtype = gnewsqlstatementtype; 15517 break; 15518 } 15519 case sstcommit: 15520 { 15521 ret = new TUnknownSqlStatement(pdbvendor); 15522 ret.sqlstatementtype = gnewsqlstatementtype; 15523 break; 15524 } 15525 case sstrollback: 15526 { 15527 ret = new TUnknownSqlStatement(pdbvendor); 15528 ret.sqlstatementtype = gnewsqlstatementtype; 15529 break; 15530 } 15531 case sstsavepoint: 15532 { 15533 ret = new TUnknownSqlStatement(pdbvendor); 15534 ret.sqlstatementtype = gnewsqlstatementtype; 15535 break; 15536 } 15537 case sstRevoke: 15538 { 15539 ret = new TUnknownSqlStatement(pdbvendor); 15540 ret.sqlstatementtype = gnewsqlstatementtype; 15541 break; 15542 } 15543 case sstcreatetable: 15544 { 15545 ret = new TCreateTableSqlStatement(pdbvendor); 15546 break; 15547 } 15548 case sstcreateview: 15549 { 15550 ret = new TCreateViewSqlStatement(pdbvendor); 15551 break; 15552 } 15553 case sstmysqlcreateindex: 15554 { 15555 ret = new TCreateIndexSqlStatement(pdbvendor); 15556 break; 15557 } 15558 case sstcreatedatabase: 15559 { 15560 ret = new TCreateDatabaseSqlStatement(pdbvendor); 15561 break; 15562 } 15563 case sstmysqldroptable: 15564 case sstdroptable: 15565 { 15566 ret = new TDropTableSqlStatement(pdbvendor); 15567 break; 15568 } 15569 case sstdropview: 15570 { 15571 ret = new TDropViewSqlStatement(pdbvendor); 15572 break; 15573 } 15574 case sstdropindex: 15575 { 15576 ret = new TDropIndexSqlStatement(pdbvendor); 15577 break; 15578 } 15579 case sstaltertable: 15580 { 15581 ret = new TAlterTableStatement(pdbvendor); 15582 break; 15583 } 15584 case sstaltersession: 15585 { 15586 ret = new TAlterSessionStatement(pdbvendor); 15587 break; 15588 } 15589 case sstmysqlset: 15590 { 15591 ret = new TSetStmt(pdbvendor); 15592 break; 15593 } 15594 case sstmysqlcreateprocedure: 15595 { 15596 ret = new TCreateProcedureStmt(pdbvendor); 15597 break; 15598 } 15599 case sstmysqlcreatefunction: 15600 { 15601 ret = new TCreateFunctionStmt(pdbvendor); 15602 break; 15603 } 15604 case sstcreatetrigger: 15605 { 15606 ret = new TCreateTriggerStmt(pdbvendor); 15607 break; 15608 } 15609 case sstmysqlcall: 15610 { 15611 ret = new TCallStatement(pdbvendor); 15612 break; 15613 } 15614 case sstmysqltruncate: 15615 { 15616 ret = new TTruncateStatement(pdbvendor); 15617 break; 15618 } 15619 case sstmysqlprepare: 15620 { 15621 ret = new TPrepareStmt(pdbvendor); 15622 break; 15623 } 15624 case sstdescribe: 15625 { 15626 ret = new TDescribeStmt(pdbvendor); 15627 break; 15628 } 15629 case sstExplain: 15630 { 15631 ret = new TExplainPlan(pdbvendor); 15632 break; 15633 } 15634 case sstmysqldropindex: 15635 { 15636 ret = new TDropIndexSqlStatement(pdbvendor); 15637 break; 15638 } 15639 case sstmysqldropprocedure: 15640 { 15641 ret = new TDropProcedureStmt(pdbvendor); 15642 break; 15643 } 15644 case sstmysqlsignal: 15645 { 15646 ret = new TMySQLSignal(pdbvendor); 15647 break; 15648 } 15649 case sstmysqlstarttransaction: 15650 { 15651 if ( pstate == EFindSqlStateType.stnormal ) 15652 { 15653 ret = new TUnknownSqlStatement(pdbvendor); 15654 ret.sqlstatementtype = gnewsqlstatementtype; 15655 } 15656 break; 15657 } 15658 case sstmysqluse: 15659 { 15660 ret = new TUseDatabase(pdbvendor); 15661 break; 15662 } 15663 case sstmysqlexecute: 15664 { 15665 ret = new TExecuteSqlStatement(pdbvendor); 15666 ret.sqlstatementtype = gnewsqlstatementtype; 15667 break; 15668 } 15669 case sstmysqlcreatedatabase: 15670 { 15671 ret = new TCreateDatabaseSqlStatement(pdbvendor); 15672 break; 15673 } 15674 case sstmysqlrenametable: 15675 { 15676 ret = new TRenameStmt(pdbvendor); 15677 break; 15678 } 15679 case sstmysqlshowindex: 15680 ret = new TShowIndexStmt(pdbvendor); 15681 break; 15682 case sstmysqlloaddatainfile: 15683 ret = new TLoadDataStmt(pdbvendor); 15684 break; 15685 case sstmysqlshowlogs: 15686 case sstmysqlshowbinlogevents: 15687 case sstmysqlshowcharacterset: 15688 case sstmysqlshowcollation: 15689 case sstmysqlshowcolumns: 15690 case sstmysqlshowwarnings: 15691 case sstmysqlshowcreatedatabase: 15692 case sstmysqlshowcreatefunction: 15693 case sstmysqlshowcreateprocedure: 15694 case sstmysqlshowcreatetable: 15695 case sstmysqlshowcreateview: 15696 case sstmysqlshowdatabases: 15697 case sstmysqlshowerrors: 15698 case sstmysqlshowfields: 15699 case sstmysqlshowprocesslist: 15700 case sstmysqlshowtables: 15701 case sstmysqlshowfunctionstatus: 15702 case sstmysqlshowstatus: 15703 case sstmysqlshowvariables: 15704 case sstmysqlshowgrants: 15705 case sstmysqlshowinnodbstatus: 15706 case sstmysqlshowmasterlogs: 15707 case sstmysqlshowplugins: 15708 case sstmysqlshowprivileges: 15709 case sstmysqlshowprofile: 15710 case sstmysqlshowprofiles: 15711 case sstmysqlshowslavehosts: 15712 case sstmysqlshowslavestatus: 15713 case sstmysqlshowtablestatus: 15714 case sstmysqlshowtriggers: 15715 case sstmysqlshowcreateschema: 15716 case sstmysqlshowengines: 15717 ret = new TMySQLShowStmt(pdbvendor); 15718 ret.sqlstatementtype = gnewsqlstatementtype; 15719 break; 15720 case sstmysqlshowengine: 15721 ret = new TShowEngineStmt(pdbvendor); 15722 break; 15723 case sstmysqlshowreplicaStatus: 15724 ret = new TShowStmt(pdbvendor); 15725 ret.sqlstatementtype = gnewsqlstatementtype; 15726 break; 15727 case sstmysqlalterfunction: 15728 ret = new TAlterFunctionStmt(pdbvendor); 15729 break; 15730 case sstmysqlalterprocedure: 15731 ret = new TAlterProcedureStmt(pdbvendor); 15732 break; 15733 case sstmysqldropfunction: 15734 ret = new TDropFunctionStmt(pdbvendor); 15735 break; 15736 case sstmysqldroptrigger: 15737 ret = new TDropTriggerSqlStatement(pdbvendor); 15738 break; 15739 case sstmysqloptimizetable: 15740 ret = new TMySQLOptimizeTableStmt(pdbvendor); 15741 break; 15742 case sstmysqlalterview: 15743 ret = new TAlterViewStatement(pdbvendor); 15744 break; 15745 default: 15746 { 15747 ret = new TUnknownSqlStatement(pdbvendor); 15748 ret.sqlstatementtype = gnewsqlstatementtype; 15749 break; 15750 } 15751 } // case 15752 15753 return ret; 15754} 15755 15756TCustomSqlStatement ismdxsql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 15757 TCustomSqlStatement ret = null; 15758 15759 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 15760 15761 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 15762 || (pcst.tokencode == TBaseType.cmtslashstar) 15763 || (pcst.tokencode == TBaseType.lexspace) 15764 || (pcst.tokencode == TBaseType.lexnewline) 15765 || (pcst.tokentype == ETokenType.ttsemicolon) ) 15766 { 15767 return null; 15768 } 15769 15770 int lcpos = pcst.posinlist; 15771 TSourceTokenList lcsourcetokenlist = pcst.container; 15772 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 15773 15774 15775 //with clause before statement 15776 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 15777 { 15778 ret = findMdxStmtBeginWithClause(pcst,pdbvendor); 15779 if ( (ret != null) ) return ret; 15780 } 15781 15782 gnewsqlstatementtype = findmdxcmd(pcst); 15783 15784 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15785 switch (gnewsqlstatementtype) { // 15786 case sstinvalid: 15787 { 15788 ret = null; 15789 if ( pstate == EFindSqlStateType.stnormal ) 15790 { 15791 //treat all unregonized statement as an expression 15792 ret = new TMdxExpression(EDbVendor.dbvmdx); 15793 } 15794 break; 15795 } 15796 case sstmdxselect: 15797 { 15798 boolean lcisnewsql = true; 15799 15800 if ( pstate != EFindSqlStateType.stnormal ) 15801 { 15802 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect ) 15803 { 15804 if ( lccurrentsqlstatement.isctequery ) 15805 lcisnewsql = false; 15806 } 15807 } 15808 15809 if ( lcisnewsql ) 15810 ret = new TMdxSelect(pdbvendor); 15811 15812 break; 15813 } 15814 case sstmdxupdate: 15815 { 15816 boolean lcisnewsql = true; 15817 if ( pstate != EFindSqlStateType.stnormal ) 15818 { 15819 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15820 if ( (lcprevsolidtoken != null) ) 15821 { // 15822 } 15823 15824 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 15825 if ( (lcnextsolidtoken != null) ) 15826 { 15827 } 15828 15829 if ( (lccurrentsqlstatement != null) ) 15830 { 15831 } 15832 } 15833 15834 if ( lcisnewsql ) 15835 { 15836 ret = new TMdxUpdate(pdbvendor); 15837 } 15838 break; 15839 } 15840 case sstmdxaltercube: 15841 { 15842 ret = new TMdxAlterCube(pdbvendor); 15843 break; 15844 } 15845 case sstmdxcalculate: 15846 { 15847 ret = new TMdxCalculate(pdbvendor); 15848 break; 15849 } 15850 case sstmdxcall: 15851 { 15852 ret = new TMdxCall(pdbvendor); 15853 break; 15854 } 15855 case sstmdxcase: 15856 { 15857 ret = new TMdxCase(pdbvendor); 15858 break; 15859 } 15860 case sstmdxclearcalculations: 15861 { 15862 ret = new TMdxClearCalculations(pdbvendor); 15863 break; 15864 } 15865 case sstmdxcreateaction: 15866 { 15867 ret = new TMdxCreateAction(pdbvendor); 15868 break; 15869 } 15870 case sstmdxcreatemember: 15871 { 15872 ret = new TMdxCreateMember(pdbvendor); 15873 break; 15874 } 15875 case sstmdxcreatecellcalculation: 15876 { 15877 ret = new TMdxCreateCellCalculation(pdbvendor); 15878 break; 15879 } 15880 case sstmdxcreateglobalcube: 15881 { 15882 ret = new TMdxCreateGlobalCube(pdbvendor); 15883 break; 15884 } 15885 case sstmdxcreateset: 15886 { 15887 ret = new TMdxCreateSet(pdbvendor); 15888 break; 15889 } 15890 case sstmdxcreatesessioncube: 15891 { 15892 ret = new TMdxCreateSessionCube(pdbvendor); 15893 break; 15894 } 15895 case sstmdxcreatesubcube: 15896 { 15897 ret = new TMdxCreateSubCube(pdbvendor); 15898 break; 15899 } 15900 case sstmdxdrillthrough: 15901 { 15902 ret = new TMdxDrillthrough(pdbvendor); 15903 break; 15904 } 15905 case sstmdxdropaction: 15906 { 15907 ret = new TMdxDropAction(pdbvendor); 15908 break; 15909 } 15910 case sstmdxdropmember: 15911 { 15912 ret = new TMdxDropMember(pdbvendor);//ret = new TMdxCreateSessionCube(pdbvendor); 15913 break; 15914 } 15915 case sstmdxdropcellcalculation: 15916 { 15917 ret = new TMdxDropCellCalculation(pdbvendor); 15918 break; 15919 } 15920 case sstmdxdropset: 15921 { 15922 ret = new TMdxDropSet(pdbvendor); 15923 break; 15924 } 15925 case sstmdxdropsubcube: 15926 { 15927 ret = new TMdxDropSubcube(pdbvendor); 15928 break; 15929 } 15930 case sstmdxfreeze: 15931 { 15932 ret = new TMdxFreeze(pdbvendor); 15933 break; 15934 } 15935 case sstmdxif: 15936 { 15937 ret = new TMdxIf(pdbvendor); 15938 break; 15939 } 15940 case sstmdxrefreshcube: 15941 { 15942 ret = new TMdxRefreshCube(pdbvendor); 15943 break; 15944 } 15945 case sstmdxscope: 15946 { 15947 ret = new TMdxScope(pdbvendor); 15948 break; 15949 } 15950 case sstmdxcreatemeasure: 15951 { 15952 ret = new TMdxCreateMeasure(pdbvendor); 15953 break; 15954 } 15955 case sstmdxexisting: 15956 default: 15957 { 15958 ret = new TUnknownSqlStatement(pdbvendor); 15959 ret.sqlstatementtype = gnewsqlstatementtype; 15960 break; 15961 } 15962 } // case 15963 15964 return ret; 15965} 15966 15967 15968public ESqlStatementType findsybasecmdusedbyyacc(TSourceToken pcst){ 15969 ESqlStatementType ret = ESqlStatementType.sstinvalid; 15970 15971 int lcpos = pcst.posinlist; 15972 TSourceTokenList lcsourcetokenlist = pcst.container; 15973 15974 //subquery after semicolon or at first line 15975 if ( (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 15976 { 15977 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 15978 if ( k >0 ) 15979 { 15980 ret = ESqlStatementType.sstselect; 15981 } 15982 15983 return ret; 15984 } 15985 15986 15987 ret = findsybasecmd(pcst); 15988 // execute can't be used to delimite other sql 15989 if ( ret == ESqlStatementType.sstmssqlexec ) 15990 ret = ESqlStatementType.sstinvalid; 15991 15992 return ret; 15993} 15994 15995public ESqlStatementType findmssqlcmdusedbyyacc(TSourceToken pcst){ 15996 ESqlStatementType ret = ESqlStatementType.sstinvalid; 15997 15998 int lcpos = pcst.posinlist; 15999 TSourceTokenList lcsourcetokenlist = pcst.container; 16000 16001 //subquery after semicolon or at first line 16002 if ( (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 16003 { 16004 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 16005 if ( k >0 ) 16006 { 16007 ret = ESqlStatementType.sstselect; 16008 } 16009 16010 return ret; 16011 } 16012 16013 16014 ret = findmssqlcmd(pcst); 16015 // execute can't be used to delimite other sql 16016 if ( ret == ESqlStatementType.sstmssqlexec ) 16017 ret = ESqlStatementType.sstinvalid; 16018 16019 return ret; 16020} 16021 16022 16023TCustomSqlStatement ishive(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 16024 TCustomSqlStatement ret = null; 16025 16026 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 16027 16028 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 16029 || (pcst.tokencode == TBaseType.cmtslashstar) 16030 || (pcst.tokencode == TBaseType.lexspace) 16031 || (pcst.tokencode == TBaseType.lexnewline) 16032 || (pcst.tokentype == ETokenType.ttsemicolon) ) 16033 { 16034 return null; 16035 } 16036 16037 int lcpos = pcst.posinlist; 16038 TSourceTokenList lcsourcetokenlist = pcst.container; 16039 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 16040 16041 16042 //from query 16043 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_from) ) 16044 { 16045 if (pcst.container == null){ 16046 return new TSelectSqlStatement(pdbvendor); 16047 } 16048 16049 // search select or insert who comes first, 16050 int lcpos1 = pcst.posinlist; 16051 TSourceTokenList lcsourcetokenlist1 = pcst.container; 16052 TSourceToken tmpSt; 16053 int parenthesisCnt = 0; 16054 for(int k=lcpos1+1;k<lcsourcetokenlist1.size();k++){ 16055 tmpSt = lcsourcetokenlist1.get(k); 16056 if (tmpSt.tokencode == ';') break; 16057 if (tmpSt.tokencode == '(') parenthesisCnt++; 16058 if (tmpSt.tokencode == ')') parenthesisCnt--; 16059 if (parenthesisCnt == 0){ 16060 if (tmpSt.tokencode == TBaseType.rrw_select){ 16061 ret = new TSelectSqlStatement(pdbvendor); 16062 break; 16063 }else if (tmpSt.tokencode == TBaseType.rrw_insert){ 16064 ret = new TInsertSqlStatement(pdbvendor); 16065 break; 16066 } 16067 } 16068 } 16069 16070 if (ret == null){ 16071 ret = new TSelectSqlStatement(pdbvendor); 16072// FROM ( 16073// FROM pv_users 16074// MAP pv_users.userid, pv_users.date 16075// USING 'map_script' 16076// AS dt, uid 16077// CLUSTER BY dt) map_output; 16078 } 16079 16080 return ret; 16081 } 16082 16083 //cte 16084 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 16085 { 16086 ret = findcte(pcst,pdbvendor); 16087 if ( (ret != null) ) return ret; 16088 } 16089 16090 gnewsqlstatementtype = findhivecmd(pcst); 16091 16092 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16093 switch (gnewsqlstatementtype) { // 16094 case sstinvalid: 16095 { 16096 ret = null; 16097 break; 16098 } 16099 case sstselect: 16100 { 16101 boolean lcisnewsql = true; 16102 16103 if ( pstate != EFindSqlStateType.stnormal ) 16104 { 16105 16106 if ( (lccurrentsqlstatement != null) ) 16107 { 16108 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.ssthiveFromQuery ) 16109 //if (((TSelectSqlStatement)lccurrentsqlstatement).getSelectToken().tokencode == TBaseType.rrw_from) 16110 lcisnewsql = false; 16111 } 16112 16113 } 16114 16115 if ( lcisnewsql ) 16116 ret = new TSelectSqlStatement(pdbvendor); 16117 16118 break; 16119 } 16120 case sstinsert: 16121 { 16122 boolean lcisnewsql = true; 16123 if ( pstate != EFindSqlStateType.stnormal ) 16124 { 16125 if ( (lccurrentsqlstatement != null) ) 16126 { 16127 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.ssthiveFromQuery ) 16128 // if (((TSelectSqlStatement)lccurrentsqlstatement).getSelectToken().tokencode == TBaseType.rrw_from) 16129 lcisnewsql = false; 16130 } 16131 } 16132 16133 if ( lcisnewsql ) 16134 ret = new TInsertSqlStatement(pdbvendor); 16135 16136 break; 16137 } 16138 case sstTruncate: 16139 { 16140 ret = new TTruncateStatement(pdbvendor); 16141 break; 16142 } 16143 case sstalterdatabase: 16144 { 16145 ret = new TAlterDatabaseStmt(pdbvendor); 16146 break; 16147 } 16148 case sstalterindex: 16149 { 16150 ret = new TAlterIndexStmt(pdbvendor); 16151 break; 16152 } 16153 case sstaltertable: 16154 { 16155 ret = new TAlterTableStatement(pdbvendor); 16156 break; 16157 } 16158 case sstalterview: 16159 { 16160 ret = new TAlterViewStatement(pdbvendor); 16161 break; 16162 } 16163 case sstanalyzeTable: 16164 { 16165 ret = new TAnalyzeStmt(pdbvendor); 16166 break; 16167 } 16168 case sstcreatedatabase: 16169 { 16170 ret = new TCreateDatabaseSqlStatement(pdbvendor); 16171 break; 16172 } 16173 case sstcreatetable: 16174 { 16175 ret = new TCreateTableSqlStatement(pdbvendor); 16176 break; 16177 } 16178 case sstcreateindex: 16179 { 16180 ret = new TCreateIndexSqlStatement(pdbvendor); 16181 break; 16182 } 16183 case sstcreateview: 16184 { 16185 ret = new TCreateViewSqlStatement(pdbvendor); 16186 break; 16187 } 16188 case ssthiveCreateRole: 16189 { 16190 ret = new THiveCreateRole(pdbvendor); 16191 break; 16192 } 16193 case ssthiveCreateFunction: 16194 { 16195 ret = new THiveCreateFunction(pdbvendor); 16196 break; 16197 } 16198 case ssthiveDesc: 16199 { 16200 ret = new THiveDescribe(pdbvendor); 16201 break; 16202 } 16203 case ssthiveDropDatabase: 16204 { 16205 ret = new THiveDropDatabase(pdbvendor); 16206 break; 16207 } 16208 case sstdropindex: 16209 { 16210 ret = new TDropIndexSqlStatement(pdbvendor); 16211 break; 16212 } 16213 case ssthiveDropRole: 16214 { 16215 ret = new THiveDropRole(pdbvendor); 16216 break; 16217 } 16218 case sstdroptable: 16219 { 16220 ret = new TDropTableSqlStatement(pdbvendor); 16221 break; 16222 } 16223 case ssthiveDropFunciton: 16224 { 16225 ret = new THiveDropFunction(pdbvendor); 16226 break; 16227 } 16228 case sstdropview: 16229 { 16230 ret = new TDropViewSqlStatement(pdbvendor); 16231 break; 16232 } 16233 case ssthiveExplain: 16234 { 16235 ret = new THiveExplain(pdbvendor); 16236 break; 16237 } 16238 case ssthiveExportTable: 16239 { 16240 ret = new THiveExportTable(pdbvendor); 16241 break; 16242 } 16243 case ssthiveGrant: 16244 { 16245 ret = new THiveGrant(pdbvendor); 16246 break; 16247 } 16248 case ssthiveGrantRole: 16249 { 16250 ret = new THiveGrantRole(pdbvendor); 16251 break; 16252 } 16253 case ssthiveImportTable: 16254 { 16255 ret = new THiveImportTable(pdbvendor); 16256 break; 16257 } 16258 case ssthiveLoad: 16259 { 16260 ret = new THiveLoad(pdbvendor); 16261 break; 16262 } 16263 case ssthiveLockTable: 16264 { 16265 ret = new TLockTableStmt(pdbvendor); 16266 break; 16267 } 16268 case sstmsck: 16269 { 16270 ret = new TMSCKStmt(pdbvendor); 16271 break; 16272 } 16273 case ssthiveRevoke: 16274 { 16275 ret = new THiveRevoke(pdbvendor); 16276 break; 16277 } 16278 case ssthiveRevokeRole: 16279 { 16280 ret = new THiveRevokeRole(pdbvendor); 16281 break; 16282 } 16283 case ssthiveSet: 16284 { 16285 ret = new THiveSet(pdbvendor); 16286 break; 16287 } 16288 case ssthiveShow: 16289 { 16290 ret = new THiveShow(pdbvendor); 16291 break; 16292 } 16293 case ssthiveShowGrants: 16294 { 16295 ret = new THiveShowGrant(pdbvendor); 16296 break; 16297 } 16298 case ssthiveShowRoleGrants: 16299 { 16300 ret = new THiveShowRoleGrant(pdbvendor); 16301 break; 16302 } 16303 case ssthiveUnlockTable: 16304 { 16305 ret = new THiveUnlockTable(pdbvendor); 16306 break; 16307 } 16308 case ssthiveSwitchDatabase: 16309 { 16310 ret = new TUseDatabase(pdbvendor); 16311 break; 16312 } 16313 case sstmerge: 16314 { 16315 ret = new TMergeSqlStatement(pdbvendor); 16316 break; 16317 } 16318 case sstupdate: 16319 { 16320 ret = new TUpdateSqlStatement(pdbvendor); 16321 break; 16322 } 16323 case sstdelete: 16324 { 16325 ret = new TDeleteSqlStatement(pdbvendor); 16326 break; 16327 } 16328 case sstCreateMacro: 16329 ret = new TCreateMacro(pdbvendor); 16330 break; 16331 case sstDropMacro: 16332 ret = new TDropMacro(pdbvendor); 16333 break; 16334 case sstcreatematerializedview: 16335 ret = new TCreateMaterializedSqlStatement(pdbvendor); 16336 break; 16337 case sstupsert: 16338 ret = new TUpsertStmt(pdbvendor); 16339 break; 16340 default: 16341 { 16342 ret = new TUnknownSqlStatement(pdbvendor); 16343 ret.sqlstatementtype = gnewsqlstatementtype; 16344 break; 16345 } 16346 } // case 16347 16348 return ret; 16349} 16350 16351 TCustomSqlStatement isvertica(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 16352 TCustomSqlStatement ret = null; 16353 16354 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 16355 16356 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 16357 || (pcst.tokencode == TBaseType.cmtslashstar) 16358 || (pcst.tokencode == TBaseType.lexspace) 16359 || (pcst.tokencode == TBaseType.lexnewline) 16360 || (pcst.tokentype == ETokenType.ttsemicolon) ) 16361 { 16362 return null; 16363 } 16364 16365 int lcpos = pcst.posinlist; 16366 TSourceTokenList lcsourcetokenlist = pcst.container; 16367 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 16368 16369 //subquery after semicolon or at first line 16370 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 16371 { 16372 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 16373 if ( k >0 ) 16374 { 16375 ret = new TSelectSqlStatement(pdbvendor); 16376 } 16377 16378 return ret; 16379 } 16380 16381 //cte 16382 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 16383 { 16384 ret = findcte(pcst,pdbvendor); 16385 if ( (ret != null) ) return ret; 16386 } 16387 16388 gnewsqlstatementtype = findverticacmd(pcst); 16389 16390 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16391 switch (gnewsqlstatementtype) { // 16392 case sstinvalid: 16393 { 16394 ret = null; 16395 16396 if ( pstate == EFindSqlStateType.stnormal ) 16397 { 16398 if ( pcst.tokencode == TBaseType.label_begin ) 16399 { 16400 ret = new TCommonBlock(pdbvendor); 16401 gnewsqlstatementtype = ret.sqlstatementtype; 16402 } 16403 else if ( pcst.tokencode == TBaseType.rrw_declare ) 16404 { 16405 ret = new TCommonBlock(pdbvendor); 16406 gnewsqlstatementtype = ret.sqlstatementtype; 16407 } 16408 else if ( pcst.tokencode == TBaseType.rrw_begin ) 16409 { 16410 ret = new TCommonBlock(pdbvendor); 16411 gnewsqlstatementtype = ret.sqlstatementtype; 16412 } 16413 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 16414 { 16415 ret = new TPlsqlCreateProcedure(pdbvendor); 16416 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 16417 gnewsqlstatementtype = ret.sqlstatementtype; 16418 } 16419 else if ( pcst.tokencode == TBaseType.rrw_function ) 16420 { 16421 ret = new TPlsqlCreateFunction(pdbvendor); 16422 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 16423 gnewsqlstatementtype = ret.sqlstatementtype; 16424 } 16425 else if ( pcst.tokencode == TBaseType.rrw_package ) 16426 { 16427 ret = new TPlsqlCreatePackage(pdbvendor); 16428 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 16429 gnewsqlstatementtype = ret.sqlstatementtype; 16430 } 16431 } 16432 break; 16433 } 16434 case sstselect: 16435 { 16436 boolean lcisnewsql = true; 16437 16438 if ( pstate != EFindSqlStateType.stnormal ) 16439 { 16440 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16441 if ( (lcprevsolidtoken != null) ) 16442 { 16443 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 16444 lcisnewsql = false; //subqery 16445 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 16446 lcisnewsql = false; 16447 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 16448 lcisnewsql = false; 16449 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 16450 lcisnewsql = false; 16451 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 16452 lcisnewsql = false; 16453 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 16454 lcisnewsql = false; 16455 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 16456 { 16457 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 16458 lcisnewsql = false; 16459 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 16460 lcisnewsql = false; 16461 } 16462 16463 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 16464 { 16465 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 16466 if ( (lcpprevsolidtoken != null) ) 16467 { 16468 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 16469 lcisnewsql = false; 16470 } 16471 } 16472 16473 } 16474 16475 16476 if ( (lccurrentsqlstatement != null) ) 16477 { 16478 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 16479 lcisnewsql = false; 16480 } 16481 16482 } 16483 16484 if ( lcisnewsql ) 16485 ret = new TSelectSqlStatement(pdbvendor); 16486 16487 break; 16488 } 16489 case sstinsert: 16490 { 16491 boolean lcisnewsql = true; 16492 if ( pstate != EFindSqlStateType.stnormal ) 16493 { 16494 if ( (lccurrentsqlstatement != null) ) 16495 { 16496 16497 } 16498 } 16499 16500 if ( lcisnewsql ) 16501 ret = new TInsertSqlStatement(pdbvendor); 16502 16503 break; 16504 } 16505 case sstupdate: 16506 { 16507 boolean lcisnewsql = true; 16508 if ( pstate != EFindSqlStateType.stnormal ) 16509 { 16510 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16511 if ( (lcprevsolidtoken != null) ) 16512 { // 16513 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 16514 lcisnewsql = false; 16515 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 16516 lcisnewsql = false; 16517 } 16518 16519 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 16520 if ( (lcnextsolidtoken != null) ) 16521 { 16522 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 16523 { 16524 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 16525 if ( k == 0 ) lcisnewsql = false; 16526 } 16527 } 16528 16529 16530 if ( (lccurrentsqlstatement != null) ) 16531 { 16532 } 16533 } 16534 16535 if ( lcisnewsql ) 16536 { 16537 ret = new TUpdateSqlStatement(pdbvendor); 16538 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 16539 } 16540 break; 16541 } 16542 case sstdelete: 16543 { 16544 boolean lcisnewsql = true; 16545 16546 if ( pstate != EFindSqlStateType.stnormal ) 16547 { 16548 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16549 if ( (lcprevsolidtoken != null) ) 16550 { 16551 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 16552 lcisnewsql = false; 16553 } 16554 16555 if ( (lccurrentsqlstatement != null) ) 16556 { 16557 } 16558 } 16559 16560 if ( lcisnewsql ) 16561 ret = new TDeleteSqlStatement(pdbvendor); 16562 16563 break; 16564 } 16565 case sstmerge: 16566 { 16567 ret = new TMergeSqlStatement(pdbvendor); 16568 ret.sqlstatementtype = gnewsqlstatementtype; 16569 break; 16570 } 16571 case sstcommit: 16572 case sstEnd: 16573 { 16574 ret = new TCommitStmt(pdbvendor); 16575 ret.sqlstatementtype = gnewsqlstatementtype; 16576 break; 16577 } 16578 case sstrollback: 16579 { 16580 ret = new TRollbackStmt(pdbvendor); 16581 ret.sqlstatementtype = gnewsqlstatementtype; 16582 break; 16583 } 16584 case sstsavepoint: 16585 { 16586 ret = new TSavepointStmt(pdbvendor); 16587 ret.sqlstatementtype = gnewsqlstatementtype; 16588 break; 16589 } 16590 case sstRevoke: 16591 { 16592 ret = new TRevokeStmt(pdbvendor); 16593 ret.sqlstatementtype = gnewsqlstatementtype; 16594 break; 16595 } 16596 case sstGrant: 16597 { 16598 ret = new TGrantStmt(pdbvendor); 16599 ret.sqlstatementtype = gnewsqlstatementtype; 16600 break; 16601 } 16602 case sstTruncate: 16603 { 16604 ret = new TTruncateStatement(pdbvendor); 16605 ret.sqlstatementtype = gnewsqlstatementtype; 16606 break; 16607 } 16608 case sstcreatetable: 16609 { 16610 ret = new TCreateTableSqlStatement(pdbvendor); 16611 break; 16612 } 16613 case sstcreateview: 16614 { 16615 ret = new TCreateViewSqlStatement(pdbvendor); 16616 break; 16617 } 16618 case sstcreateindex: 16619 { 16620 ret = new TCreateIndexSqlStatement(pdbvendor); 16621 break; 16622 } 16623 case sstcreatedatabase: 16624 { 16625 ret = new TCreateDatabaseSqlStatement(pdbvendor); 16626 break; 16627 } 16628 case sstdroptable: 16629 { 16630 ret = new TDropTableSqlStatement(pdbvendor); 16631 break; 16632 } 16633 case sstdropview: 16634 { 16635 ret = new TDropViewSqlStatement(pdbvendor); 16636 break; 16637 } 16638 case sstdropindex: 16639 { 16640 ret = new TDropIndexSqlStatement(pdbvendor); 16641 break; 16642 } 16643 case sstaltertable: 16644 { 16645 ret = new TAlterTableStatement(pdbvendor); 16646 break; 16647 } 16648 case sstaltersession: 16649 { 16650 ret = new TAlterSessionStatement(pdbvendor); 16651 break; 16652 } 16653 case sstcreateprocedure: 16654 { 16655 ret = new TCreateProcedureStmt(pdbvendor); 16656 break; 16657 } 16658 case sstCommentOn: 16659 { 16660 ret = new TCommentOnSqlStmt(pdbvendor); 16661 break; 16662 } 16663 case sstcreatesequence: 16664 { 16665 ret = new TCreateSequenceStmt(pdbvendor); 16666 break; 16667 } 16668 case sstcreatefunction: 16669 ret = new TVerticaCreateFunction(pdbvendor); 16670 break; 16671 case sstaltersequence: 16672 ret = new TAlterSequenceStatement(pdbvendor); 16673 break; 16674 case sstAlterAccessPolicy: 16675 ret = new TAlterAccessPolicy(pdbvendor); 16676 break; 16677 case sstAlterAuthentication: 16678 ret = new TAlterAuthentication(pdbvendor); 16679 break; 16680 case sstalterdatabase: 16681 ret = new TAlterDatabaseStmt(pdbvendor); 16682 break; 16683 case sstAlterFaultGroup: 16684 ret = new TAlterFaultGroup(pdbvendor); 16685 break; 16686 case sstalterfunction: 16687 ret = new TAlterFunctionStmt(pdbvendor); 16688 break; 16689 case sstAlterLibrary: 16690 ret = new TAlterLibraryStmt(pdbvendor); 16691 break; 16692 case sstAlterNode: 16693 ret = new TAlterNode(pdbvendor); 16694 break; 16695 case sstAlterNetworkInterface: 16696 ret = new TAlterNetworkInterface(pdbvendor); 16697 break; 16698 case sstAlterProjection: 16699 ret = new TAlterProjectionRename(pdbvendor); 16700 break; 16701 case sstAlterProfile: 16702 ret = new TAlterProfile(pdbvendor); 16703 break; 16704 case sstAlterResourcePool: 16705 ret = new TAlterResourcePool(pdbvendor); 16706 break; 16707 case sstAlterRole: 16708 ret = new TAlterRoleStmt(pdbvendor); 16709 break; 16710 case sstAlterSchema: 16711 ret = new TAlterSchemaStmt(pdbvendor); 16712 break; 16713 case sstAlterSubnet: 16714 ret = new TAlterSubnet(pdbvendor); 16715 break; 16716 case sstBegin: 16717 case sstStartTransaction: 16718 ret = new TBeginTran(pdbvendor); 16719 break; 16720 case sstReleaseSavepoint: 16721 ret = new TReleaseSavepointStmt(pdbvendor); 16722 break; 16723 case sstconnect: 16724 ret = new TConnectStmt(pdbvendor); 16725 break; 16726 case sstCreateAccessPolicy: 16727 ret = new TCreateAccessPolicy(pdbvendor); 16728 break; 16729 case sstCreateAuthentication: 16730 ret = new TCreateAuthentication(pdbvendor); 16731 break; 16732 case sstCreateFaultGroup: 16733 ret = new TCreateFaultGroup(pdbvendor); 16734 break; 16735 case sstCreateHCatalogSchema: 16736 ret = new TCreateHCatalogSchema(pdbvendor); 16737 break; 16738 case sstCreateSubnet: 16739 ret = new TCreateSubnet(pdbvendor); 16740 break; 16741 case sstcreateuser: 16742 ret = new TCreateUserStmt(pdbvendor); 16743 break; 16744 case sstDisconnect: 16745 ret = new TDisconnectStmt(pdbvendor); 16746 break; 16747 case sstDropAccessPolicy: 16748 ret = new TDropAccessPolicy(pdbvendor); 16749 break; 16750 case sstDropAggregateFunction: 16751 ret = new TDropAggregateFunction(pdbvendor); 16752 break; 16753 case sstDropAuthentication: 16754 ret = new TDropAuthentication(pdbvendor); 16755 break; 16756 case sstDropFaultGroup: 16757 ret = new TDropFaultGroup(pdbvendor); 16758 break; 16759 case sstdropfunction: 16760 ret = new TDropFunctionStmt(pdbvendor); 16761 break; 16762 case sstDropLibrary: 16763 ret = new TDropLibraryStmt(pdbvendor); 16764 break; 16765 case sstDropNetworkInterface: 16766 ret = new TDropNetworkInterface(pdbvendor); 16767 break; 16768 case sstdropprocedure: 16769 ret = new TDropProcedureStmt(pdbvendor); 16770 break; 16771 case sstDropProjection: 16772 ret = new TDropProjectionStmt(pdbvendor); 16773 break; 16774 case sstDropResourcePool: 16775 ret = new TDropResourcePool(pdbvendor); 16776 break; 16777 case sstdroprole: 16778 ret = new TDropRoleStmt(pdbvendor); 16779 break; 16780 case sstdropschema: 16781 ret = new TDropSchemaSqlStatement(pdbvendor); 16782 break; 16783 case sstdropsequence: 16784 ret = new TDropSequenceStmt(pdbvendor); 16785 break; 16786 case sstDropSubnet: 16787 ret = new TDropSubnet(pdbvendor); 16788 break; 16789 case sstDropTextIndex: 16790 ret = new TDropTextIndex(pdbvendor); 16791 break; 16792 case sstDropTransformFunction: 16793 ret = new TDropTransformFunction(pdbvendor); 16794 break; 16795 case sstdropuser: 16796 ret = new TDropUserStmt(pdbvendor); 16797 break; 16798 case sstExplain: 16799 { 16800 ret = new TExplainPlan(pdbvendor); 16801 break; 16802 } 16803 case sstExportToVertica: 16804 ret = new TExportToVertica(pdbvendor); 16805 break; 16806 case sstProfile: 16807 ret = new TProfileStmt(pdbvendor); 16808 break; 16809 case sstset: 16810 ret = new TVerticaSetStmt(pdbvendor); 16811 break; 16812 case sstShow: 16813 ret = new TVerticaShow(pdbvendor); 16814 break; 16815 case sstcall: 16816 ret = new TCallStatement(pdbvendor); 16817 break; 16818 default: 16819 { 16820 ret = new TUnknownSqlStatement(pdbvendor); 16821 ret.sqlstatementtype = gnewsqlstatementtype; 16822 break; 16823 } 16824 } // case 16825 16826 return ret; 16827 } 16828 16829 16830 TCustomSqlStatement iscouchbase(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 16831 TCustomSqlStatement ret = null; 16832 16833 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 16834 16835 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 16836 || (pcst.tokencode == TBaseType.cmtslashstar) 16837 || (pcst.tokencode == TBaseType.lexspace) 16838 || (pcst.tokencode == TBaseType.lexnewline) 16839 || (pcst.tokentype == ETokenType.ttsemicolon) ) 16840 { 16841 return null; 16842 } 16843 16844 int lcpos = pcst.posinlist; 16845 TSourceTokenList lcsourcetokenlist = pcst.container; 16846 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 16847 16848 //subquery after semicolon or at first line 16849 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 16850 { 16851 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 16852 if ( k >0 ) 16853 { 16854 ret = new TSelectSqlStatement(pdbvendor); 16855 } 16856 16857 return ret; 16858 } 16859 16860 //cte 16861 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 16862 { 16863 ret = findcte(pcst,pdbvendor); 16864 if ( (ret != null) ) return ret; 16865 } 16866 16867 gnewsqlstatementtype = findcouchbasecmd(pcst); 16868 16869 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16870 switch (gnewsqlstatementtype) { // 16871 case sstinvalid: 16872 { 16873 ret = null; 16874 16875 if ( pstate == EFindSqlStateType.stnormal ) 16876 { 16877 if ( pcst.tokencode == TBaseType.label_begin ) 16878 { 16879 ret = new TCommonBlock(pdbvendor); 16880 gnewsqlstatementtype = ret.sqlstatementtype; 16881 } 16882 else if ( pcst.tokencode == TBaseType.rrw_declare ) 16883 { 16884 ret = new TCommonBlock(pdbvendor); 16885 gnewsqlstatementtype = ret.sqlstatementtype; 16886 } 16887 else if ( pcst.tokencode == TBaseType.rrw_begin ) 16888 { 16889 ret = new TCommonBlock(pdbvendor); 16890 gnewsqlstatementtype = ret.sqlstatementtype; 16891 } 16892 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 16893 { 16894 ret = new TPlsqlCreateProcedure(pdbvendor); 16895 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 16896 gnewsqlstatementtype = ret.sqlstatementtype; 16897 } 16898 else if ( pcst.tokencode == TBaseType.rrw_function ) 16899 { 16900 ret = new TPlsqlCreateFunction(pdbvendor); 16901 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 16902 gnewsqlstatementtype = ret.sqlstatementtype; 16903 } 16904 else if ( pcst.tokencode == TBaseType.rrw_package ) 16905 { 16906 ret = new TPlsqlCreatePackage(pdbvendor); 16907 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 16908 gnewsqlstatementtype = ret.sqlstatementtype; 16909 } 16910 } 16911 break; 16912 } 16913 case sstselect: 16914 { 16915 boolean lcisnewsql = true; 16916 16917 if ( pstate != EFindSqlStateType.stnormal ) 16918 { 16919 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16920 if ( (lcprevsolidtoken != null) ) 16921 { 16922 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 16923 lcisnewsql = false; //subqery 16924 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 16925 lcisnewsql = false; 16926 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 16927 lcisnewsql = false; 16928 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 16929 lcisnewsql = false; 16930 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 16931 lcisnewsql = false; 16932 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 16933 lcisnewsql = false; 16934 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 16935 { 16936 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 16937 lcisnewsql = false; 16938 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 16939 lcisnewsql = false; 16940 } 16941 16942 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 16943 { 16944 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 16945 if ( (lcpprevsolidtoken != null) ) 16946 { 16947 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 16948 lcisnewsql = false; 16949 } 16950 } 16951 16952 } 16953 16954 16955 if ( (lccurrentsqlstatement != null) ) 16956 { 16957 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 16958 lcisnewsql = false; 16959 } 16960 16961 } 16962 16963 if ( lcisnewsql ) 16964 ret = new TSelectSqlStatement(pdbvendor); 16965 16966 break; 16967 } 16968 case sstinsert: 16969 { 16970 boolean lcisnewsql = true; 16971 if ( pstate != EFindSqlStateType.stnormal ) 16972 { 16973 if ( (lccurrentsqlstatement != null) ) 16974 { 16975 16976 } 16977 } 16978 16979 if ( lcisnewsql ) 16980 ret = new TInsertSqlStatement(pdbvendor); 16981 16982 break; 16983 } 16984 case sstupdate: 16985 { 16986 boolean lcisnewsql = true; 16987 if ( pstate != EFindSqlStateType.stnormal ) 16988 { 16989 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16990 if ( (lcprevsolidtoken != null) ) 16991 { // 16992 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 16993 lcisnewsql = false; 16994 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 16995 lcisnewsql = false; 16996 } 16997 16998 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 16999 if ( (lcnextsolidtoken != null) ) 17000 { 17001 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 17002 { 17003 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 17004 if ( k == 0 ) lcisnewsql = false; 17005 } 17006 } 17007 17008 17009 if ( (lccurrentsqlstatement != null) ) 17010 { 17011 } 17012 } 17013 17014 if ( lcisnewsql ) 17015 { 17016 ret = new TUpdateSqlStatement(pdbvendor); 17017 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 17018 } 17019 break; 17020 } 17021 case sstdelete: 17022 { 17023 boolean lcisnewsql = true; 17024 17025 if ( pstate != EFindSqlStateType.stnormal ) 17026 { 17027 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 17028 if ( (lcprevsolidtoken != null) ) 17029 { 17030 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 17031 lcisnewsql = false; 17032 } 17033 17034 if ( (lccurrentsqlstatement != null) ) 17035 { 17036 } 17037 } 17038 17039 if ( lcisnewsql ) 17040 ret = new TDeleteSqlStatement(pdbvendor); 17041 17042 break; 17043 } 17044 case sstmerge: 17045 { 17046 ret = new TMergeSqlStatement(pdbvendor); 17047 ret.sqlstatementtype = gnewsqlstatementtype; 17048 break; 17049 } 17050 case sstcreateindex: 17051 { 17052 ret = new TCreateIndexSqlStatement(pdbvendor); 17053 break; 17054 } 17055 case sstdropindex: 17056 { 17057 ret = new TDropIndexSqlStatement(pdbvendor); 17058 break; 17059 } 17060 case sstBuildIndex: 17061 ret = new TTBuildIndexesStmt(pdbvendor); 17062 break; 17063 case sstinfer: 17064 ret = new TInferKeyspaceStmt(pdbvendor); 17065 break; 17066 case sstupsert: 17067 ret = new TUpsertStmt(pdbvendor); 17068 break; 17069 case sstExplain: 17070 { 17071 ret = new TExplainPlan(pdbvendor); 17072 break; 17073 } 17074 case sstprepare: 17075 { 17076 ret = new TExplainPlan(pdbvendor); 17077 ret.sqlstatementtype = ESqlStatementType.sstprepare; 17078 break; 17079 } 17080 case sstExecutePreparedStmt: 17081 ret = new TExecuteSqlStatement(pdbvendor); 17082 break; 17083 default: 17084 { 17085 ret = new TUnknownSqlStatement(pdbvendor); 17086 ret.sqlstatementtype = gnewsqlstatementtype; 17087 break; 17088 } 17089 } // case 17090 17091 return ret; 17092 } 17093 17094 /** 17095 * Generic method for yacc parsers to find SQL command type. 17096 * Delegates to vendor-specific implementations where available. 17097 * Added temporarily for revert testing - uses token's dbvendor field. 17098 */ 17099 public ESqlStatementType findCmdUsedByYacc(TSourceToken token) { 17100 EDbVendor vendor = token.getDbvendor(); 17101 if (vendor == null) { 17102 return ESqlStatementType.sstinvalid; 17103 } 17104 17105 // Delegate to vendor-specific methods where they exist 17106 switch (vendor) { 17107 case dbvmssql: 17108 return findmssqlcmdusedbyyacc(token); 17109 case dbvsybase: 17110 return findsybasecmdusedbyyacc(token); 17111 // For other vendors, use generic command finding 17112 default: 17113 TSqlCmdList cmdList = getSqlCmdList(vendor); 17114 if (cmdList == null || cmdList.size() == 0) { 17115 return ESqlStatementType.sstunknown; 17116 } 17117 // Use generic finddbcmd for vendors without specific yacc methods 17118 return finddbcmd(token, cmdList); 17119 } 17120 } 17121 17122}