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,sybaseasecmds,sqlanywherecmds,sybaseiqcmds,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 dbvsybasease: 115 if (sybaseasecmds.size() == 0) {initsybaseasecmds();} 116 sqlCmdList = sybaseasecmds; 117 break; 118 case dbvsqlanywhere: 119 if (sqlanywherecmds.size() == 0) {initsqlanywherecmds();} 120 sqlCmdList = sqlanywherecmds; 121 break; 122 case dbvsybaseiq: 123 if (sybaseiqcmds.size() == 0) {initsybaseiqcmds();} 124 sqlCmdList = sybaseiqcmds; 125 break; 126 case dbvinformix: 127 if (informixcmds.size() == 0) {initinformixcmds();} 128 sqlCmdList = informixcmds; 129 break; 130 case dbvhive: 131 if (hivecmds.size() == 0) {inithivecmds();} 132 sqlCmdList = hivecmds; 133 break; 134 case dbvimpala: 135 if (hivecmds.size() == 0) {inithivecmds(); 136 } 137 sqlCmdList = hivecmds; 138 break; 139 case dbvgreenplum: 140 if (greenplumcmds.size() == 0) {initgreenplumcmds(); 141 } 142 sqlCmdList = greenplumcmds; 143 break; 144 case dbvhana: 145 if (hanacmds.size() == 0) {inithanacmds(); 146 } 147 sqlCmdList = hanacmds; 148 break; 149 case dbvvertica: 150 if (verticacmds.size() == 0) {initverticacmds(); 151 } 152 sqlCmdList = verticacmds; 153 break; 154 case dbvcouchbase: 155 if (couchbasecmds.size() == 0) {initcouchbasecmds(); 156 } 157 sqlCmdList = couchbasecmds; 158 break; 159 case dbvsnowflake: 160 if (snowflakecmds.size() == 0) {initsnowflakecmds(); 161 } 162 sqlCmdList = snowflakecmds; 163 break; 164 case dbvbigquery: 165 if (bigquerycmds.size() == 0) {initbigquerycmds(); 166 } 167 sqlCmdList = bigquerycmds; 168 break; 169 case dbvsparksql: 170 if (sparksqlcmds.size() == 0) {initsparksqlcmds(); 171 } 172 sqlCmdList = sparksqlcmds; 173 break; 174 case dbvpresto: 175 if (prestocmds.size() == 0) {initprestocmds(); 176 } 177 sqlCmdList = prestocmds; 178 break; 179 case dbvathena: 180 if (athenacmds.size() == 0) {initathenacmds(); 181 } 182 sqlCmdList = athenacmds; 183 break; 184 case dbvdatabricks: 185 if (databrickscmds.size() == 0) {initdatabrickscmds(); 186 } 187 sqlCmdList = databrickscmds; 188 break; 189 case dbvgaussdb: 190 if (gaussdbcmds.size() == 0) {initgaussdbcmds(); 191 } 192 sqlCmdList = gaussdbcmds; 193 break; 194 } 195 return sqlCmdList; 196 } 197 198 ESqlStatementType gnewsqlstatementtype; 199 200 // int mssqlcmdscurrentcount,oraclecmdscurrentcount,db2cmdscurrentcount,mysqlcmdscurrentcount,mdxcmdscurrentcount ; 201 202 public TSqlCmds(){ 203// mssqlcmdscurrentcount = 0; 204// oraclecmdscurrentcount = 0; 205// db2cmdscurrentcount = 0; 206// mysqlcmdscurrentcount = 0; 207// mdxcmdscurrentcount = 0; 208 mssqlcmds = new TSqlCmdList(); 209 sybasecmds = new TSqlCmdList(); 210 sybaseasecmds = new TSqlCmdList(); 211 sqlanywherecmds = new TSqlCmdList(); 212 sybaseiqcmds = new TSqlCmdList(); 213 oraclecmds = new TSqlCmdList(); 214 db2cmds = new TSqlCmdList(); 215 mysqlcmds = new TSqlCmdList(); 216 accesscmds = new TSqlCmdList(); 217 mdxcmds = new TSqlCmdList(); 218 teradatacmds = new TSqlCmdList(); 219 postgresqlcmds = new TSqlCmdList(); 220 netezzacmds = new TSqlCmdList(); 221 informixcmds = new TSqlCmdList(); 222 hivecmds = new TSqlCmdList(); 223 greenplumcmds = new TSqlCmdList(); 224 redshiftcmds = new TSqlCmdList(); 225 hanacmds = new TSqlCmdList(); 226 verticacmds = new TSqlCmdList(); 227 couchbasecmds = new TSqlCmdList(); 228 snowflakecmds = new TSqlCmdList(); 229 bigquerycmds = new TSqlCmdList(); 230 sparksqlcmds = new TSqlCmdList(); 231 prestocmds = new TSqlCmdList(); 232 athenacmds = new TSqlCmdList(); 233 databrickscmds = new TSqlCmdList(); 234 gaussdbcmds = new TSqlCmdList(); 235 } 236 237 void addcmds(EDbVendor dbVendor, ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5,String ptoken6,String ptoken7){ 238 TSqlCmd sc = new TSqlCmd(); 239 sc.sqlstatementtype = psqlstatementtype; 240 sc.token1 = ptoken1; 241 sc.token2 = ptoken2; 242 sc.token3 = ptoken3; 243 sc.token4 = ptoken4; 244 sc.token5 = ptoken5; 245 sc.token6 = ptoken6; 246 sc.token7 = ptoken7; 247 switch(dbVendor){ 248 case dbvmssql: 249 if (sc.token1 > TBaseType.rrw_abort){ 250 switch (sc.token1){ 251 case TBaseType.rrw_sqlserver_throw: 252 sc.token1Str = "throw"; 253 break; 254 default: 255 break; 256 } 257 } 258 mssqlcmds.add(sc); 259 break; 260 case dbvoracle: 261 oraclecmds.add(sc); 262 break; 263 case dbvdameng: 264 oraclecmds.add(sc); 265 break; 266 case dbvmysql: 267 if (sc.token1 > TBaseType.rrw_abort){ 268 switch (sc.token1){ 269 case TBaseType.rrw_mysql_delimiter: 270 sc.token1Str = "delimiter"; 271 break; 272 case TBaseType.rrw_mysql_desc: 273 sc.token1Str = "desc"; 274 break; 275 default: 276 break; 277 } 278 } 279 mysqlcmds.add(sc); 280 break; 281 case dbvoceanbase: 282 // Phase 1: route to MySQL command list — see getSqlCmdList() 283 // case dbvoceanbase for rationale. 284 if (sc.token1 > TBaseType.rrw_abort){ 285 switch (sc.token1){ 286 case TBaseType.rrw_mysql_delimiter: 287 sc.token1Str = "delimiter"; 288 break; 289 case TBaseType.rrw_mysql_desc: 290 sc.token1Str = "desc"; 291 break; 292 default: 293 break; 294 } 295 } 296 mysqlcmds.add(sc); 297 break; 298 case dbvdb2: 299 db2cmds.add(sc); 300 break; 301 case dbvmdx: 302 mdxcmds.add(sc); 303 break; 304 case dbvteradata: 305 if (sc.token1 > TBaseType.rrw_abort){ 306 switch (sc.token1){ 307 case TBaseType.rrw_teradata_wait: 308 sc.token1Str = "wait"; 309 break; 310 case TBaseType.rrw_teradata_using: 311 sc.token1Str = "using"; 312 break; 313 case TBaseType.rrw_teradata_upd: 314 sc.token1Str = "update"; 315 break; 316 case TBaseType.rrw_teradata_sel: 317 sc.token1Str = "select"; 318 break; 319 case TBaseType.rrw_teradata_restart: 320 sc.token1Str = "restart"; 321 break; 322 case TBaseType.rrw_teradata_position: 323 sc.token1Str = "position"; 324 break; 325 case TBaseType.rrw_teradata_modify: 326 sc.token1Str = "modify"; 327 break; 328 case TBaseType.rrw_teradata_logon: 329 sc.token1Str = "logon"; 330 break; 331 case TBaseType.rrw_teradata_locking: 332 sc.token1Str = "locking"; 333 break; 334 case TBaseType.rrw_teradata_ins: 335 sc.token1Str = "insert"; 336 break; 337 case TBaseType.rrw_teradata_help: 338 sc.token1Str = "help"; 339 break; 340 case TBaseType.rrw_teradata_give: 341 sc.token1Str = "give"; 342 break; 343 case TBaseType.rrw_teradata_echo: 344 sc.token1Str = "echo"; 345 break; 346 case TBaseType.rrw_teradata_dump: 347 sc.token1Str = "dump"; 348 break; 349 case TBaseType.rrw_teradata_diagnostic: 350 sc.token1Str = "diagnostic"; 351 break; 352 case TBaseType.rrw_teradata_del: 353 sc.token1Str = "delete"; 354 break; 355 case TBaseType.rrw_teradata_cv: 356 sc.token1Str = "create view"; 357 break; 358 case TBaseType.rrw_teradata_collect: 359 sc.token1Str = "collect"; 360 break; 361 case TBaseType.rrw_teradata_cm: 362 sc.token1Str = "create macro"; 363 break; 364 default: 365 break; 366 } 367 } 368 teradatacmds.add(sc); 369 break; 370 case dbvpostgresql: 371 if (sc.token1 > TBaseType.rrw_abort){ 372 switch (sc.token1){ 373 case TBaseType.rrw_postgresql_cluster: 374 sc.token1Str = "cluster"; 375 break; 376 case TBaseType.rrw_postgresql_copy: 377 sc.token1Str = "copy"; 378 break; 379 case TBaseType.rrw_postgresql_discard: 380 sc.token1Str = "discard"; 381 break; 382 case TBaseType.rrw_postgresql_listen: 383 sc.token1Str = "listen"; 384 break; 385 case TBaseType.rrw_postgresql_notify: 386 sc.token1Str = "notify"; 387 break; 388 case TBaseType.rrw_postgresql_reassign: 389 sc.token1Str = "reassign"; 390 break; 391 case TBaseType.rrw_postgresql_reindex: 392 sc.token1Str = "reindex"; 393 break; 394 case TBaseType.rrw_postgresql_security: 395 sc.token1Str = "security"; 396 break; 397 case TBaseType.rrw_postgresql_unlisten: 398 sc.token1Str = "unlisten"; 399 break; 400 default: 401 break; 402 } 403 } 404 postgresqlcmds.add(sc); 405 break; 406 case dbvredshift: 407 if (sc.token1 > TBaseType.rrw_abort){ 408 switch (sc.token1){ 409 case TBaseType.rrw_redshift_cancel: 410 sc.token1Str = "cancel"; 411 break; 412 case TBaseType.rrw_redshift_copy: 413 sc.token1Str = "copy"; 414 break; 415 case TBaseType.rrw_redshift_unload: 416 sc.token1Str = "unload"; 417 break; 418 case TBaseType.rrw_redshift_vacuum: 419 sc.token1Str = "vacuum"; 420 break; 421 default: 422 break; 423 } 424 } 425 redshiftcmds.add(sc); 426 break; 427 case dbvnetezza: 428 if (sc.token1 > TBaseType.rrw_abort){ 429 switch (sc.token1){ 430 case TBaseType.rrw_netezza_copy: 431 sc.token1Str = "copy"; 432 break; 433 case TBaseType.rrw_netezza_generate: 434 sc.token1Str = "generate"; 435 break; 436 case TBaseType.rrw_netezza_groom: 437 sc.token1Str = "groom"; 438 break; 439 default: 440 break; 441 } 442 } 443 netezzacmds.add(sc); 444 break; 445 case dbvsybase: 446 447 if (sc.token1 > TBaseType.rrw_abort){ 448 switch (sc.token1){ 449 case TBaseType.rrw_sybase_dump: 450 sc.token1Str = "dump"; 451 break; 452 default: 453 break; 454 } 455 } 456 sybasecmds.add(sc); 457 break; 458 case dbvsybasease: 459 460 if (sc.token1 > TBaseType.rrw_abort){ 461 switch (sc.token1){ 462 case TBaseType.rrw_sybase_dump: 463 sc.token1Str = "dump"; 464 break; 465 default: 466 break; 467 } 468 } 469 sybaseasecmds.add(sc); 470 break; 471 case dbvsqlanywhere: 472 473 if (sc.token1 > TBaseType.rrw_abort){ 474 switch (sc.token1){ 475 case TBaseType.rrw_sybase_dump: 476 sc.token1Str = "dump"; 477 break; 478 default: 479 break; 480 } 481 } 482 sqlanywherecmds.add(sc); 483 break; 484 case dbvsybaseiq: 485 486 if (sc.token1 > TBaseType.rrw_abort){ 487 switch (sc.token1){ 488 case TBaseType.rrw_sybase_dump: 489 sc.token1Str = "dump"; 490 break; 491 default: 492 break; 493 } 494 } 495 sybaseiqcmds.add(sc); 496 break; 497 case dbvinformix: 498 if (sc.token1 > TBaseType.rrw_abort){ 499 switch (sc.token1){ 500 case TBaseType.rrw_informix_connect_to: 501 sc.token1Str = "connect to"; 502 break; 503 case TBaseType.rrw_informix_info: 504 sc.token1Str = "info"; 505 break; 506 case TBaseType.rrw_informix_output: 507 sc.token1Str = "output"; 508 break; 509 case TBaseType.rrw_informix_put: 510 sc.token1Str = "put"; 511 break; 512 case TBaseType.rrw_informix_unload: 513 sc.token1Str = "unload"; 514 break; 515 case TBaseType.rrw_informix_whenever: 516 sc.token1Str = "whenever"; 517 break; 518 default: 519 break; 520 } 521 } 522 informixcmds.add(sc); 523 break; 524 case dbvhive: 525 if (sc.token1 > TBaseType.rrw_abort){ 526 switch (sc.token1){ 527 case TBaseType.rrw_hive_desc: 528 sc.token1Str = "desc"; 529 break; 530 case TBaseType.rrw_hive_export: 531 sc.token1Str = "export"; 532 break; 533 case TBaseType.rrw_hive_import: 534 sc.token1Str = "import"; 535 break; 536 case TBaseType.rrw_hive_msck: 537 sc.token1Str = "msck"; 538 break; 539 default: 540 break; 541 } 542 } 543 hivecmds.add(sc); 544 break; 545 case dbvimpala: 546 hivecmds.add(sc); 547 break; 548 case dbvgreenplum: 549 if (sc.token1 > TBaseType.rrw_abort){ 550 switch (sc.token1){ 551 case TBaseType.rrw_greenplum_cluster: 552 sc.token1Str = "cluster"; 553 break; 554 case TBaseType.rrw_greenplum_copy: 555 sc.token1Str = "copy"; 556 break; 557 case TBaseType.rrw_greenplum_reassign: 558 sc.token1Str = "reassign"; 559 break; 560 case TBaseType.rrw_greenplum_reindex: 561 sc.token1Str = "reindex"; 562 break; 563 case TBaseType.rrw_greenplum_vacuum: 564 sc.token1Str = "vacuum"; 565 break; 566 case TBaseType.rrw_greenplum_analyse: 567 sc.token1Str = "analyse"; 568 break; 569 default: 570 break; 571 } 572 } 573 greenplumcmds.add(sc); 574 break; 575 case dbvhana: 576 if (sc.token1 > TBaseType.rrw_abort){ 577 switch (sc.token1){ 578 case TBaseType.rrw_hana_unset: 579 sc.token1Str = "unset"; 580 break; 581 case TBaseType.rrw_hana_upsert: 582 sc.token1Str = "upsert"; 583 break; 584 case TBaseType.rrw_hana_import: 585 sc.token1Str = "import"; 586 break; 587 case TBaseType.rrw_hana_export: 588 sc.token1Str = "export"; 589 break; 590 case TBaseType.rrw_hana_recover: 591 sc.token1Str = "recover"; 592 break; 593 case TBaseType.rrw_hana_unload: 594 sc.token1Str = "unload"; 595 break; 596 default: 597 break; 598 } 599 } 600 hanacmds.add(sc); 601 break; 602 case dbvvertica: 603 verticacmds.add(sc); 604 break; 605 case dbvcouchbase: 606 couchbasecmds.add(sc); 607 break; 608 case dbvsnowflake: 609 snowflakecmds.add(sc); 610 break; 611 case dbvbigquery: 612 bigquerycmds.add(sc); 613 break; 614 case dbvsparksql: 615 sparksqlcmds.add(sc); 616 break; 617 case dbvpresto: 618 prestocmds.add(sc); 619 break; 620 case dbvathena: 621 athenacmds.add(sc); 622 break; 623 case dbvdatabricks: 624 databrickscmds.add(sc); 625 break; 626 case dbvgaussdb: 627 gaussdbcmds.add(sc); 628 break; 629 } 630 } 631 632 void addmssqlcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 633 addcmds(EDbVendor.dbvmssql,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 634 } 635 636void addsybasecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 637 addcmds(EDbVendor.dbvsybase,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 638} 639 640void addsybaseiqcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 641 addcmds(EDbVendor.dbvsybaseiq,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 642} 643 644void addsqlanywherecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 645 addcmds(EDbVendor.dbvsqlanywhere,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 646} 647 648void addsybaseasecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 649 addcmds(EDbVendor.dbvsybasease,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 650} 651 652void addpostgresqlcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 653 addcmds(EDbVendor.dbvpostgresql,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 654} 655 656 void addgaussdbcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 657 addcmds(EDbVendor.dbvgaussdb,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 658 } 659 660void addredshiftcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 661 addcmds(EDbVendor.dbvredshift,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 662} 663 664 void addnetezzacmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 665 addcmds(EDbVendor.dbvnetezza,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 666} 667 668 669void addoraclecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 670 addcmds(EDbVendor.dbvoracle,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 671} 672 673void addhivecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 674 addcmds(EDbVendor.dbvhive,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 675} 676 677void addmysqlcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 678 addcmds(EDbVendor.dbvmysql,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 679} 680 681void addsparksqlcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 682 addcmds(EDbVendor.dbvsparksql,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 683} 684 685void addprestocmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 686 addcmds(EDbVendor.dbvpresto,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 687} 688 689void addathenacmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 690 addcmds(EDbVendor.dbvathena,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 691} 692 693void adddatabrickscmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 694 addcmds(EDbVendor.dbvdatabricks,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 695} 696 697 698void adddb2cmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 699 addcmds(EDbVendor.dbvdb2,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 700} 701 702void addmdxcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 703 addcmds(EDbVendor.dbvmdx,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 704} 705 706void addteradatacmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 707 addcmds(EDbVendor.dbvteradata,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 708} 709 710void addinformixcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 711 addcmds(EDbVendor.dbvinformix,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 712} 713 714void addgreenplumcmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 715 addcmds(EDbVendor.dbvgreenplum,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 716} 717 718void addhanacmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 719 addcmds(EDbVendor.dbvhana,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 720} 721 722void addverticacmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 723 addcmds(EDbVendor.dbvvertica,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 724} 725 726void addcouchbasecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 727 addcmds(EDbVendor.dbvcouchbase,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 728} 729 730void addsnowflakecmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 731 addcmds(EDbVendor.dbvsnowflake,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 732 } 733 734void addbigquerycmds(ESqlStatementType psqlstatementtype, int ptoken1, String ptoken2, String ptoken3, String ptoken4, String ptoken5, String ptoken6, String ptoken7){ 735 addcmds(EDbVendor.dbvbigquery,psqlstatementtype,ptoken1,ptoken2,ptoken3,ptoken4,ptoken5,ptoken6,ptoken7); 736} 737 738ESqlStatementType finddbcmd(TSourceToken ptoken, TSqlCmdList pdbcmds ){ 739 ESqlStatementType ret = ESqlStatementType.sstinvalid; 740 if (ptoken.tokentype != ETokenType.ttkeyword){return ret;} 741 int lcchecktokens = 0; 742 743 // Look up initial command array index in hash using first token code 744 745 int startIndex = pdbcmds.getStartIndex(ptoken.tokencode); 746 if (startIndex == -1) 747 return ret; 748 749 for(int i=startIndex; i<pdbcmds.size();i++){ 750 if ( ((TSqlCmd)pdbcmds.get(i)).token1 != ptoken.tokencode) 751 { 752 if (lcchecktokens > 0 ) {break;} 753 else 754 continue; 755 } 756 else 757 { 758 if (lcchecktokens < 1) 759 {lcchecktokens = 1;} 760 } 761 762 // first cmd tokentext is same, then check second 763 if ((((TSqlCmd)pdbcmds.get(i)).token2 == "") || (((TSqlCmd)pdbcmds.get(i)).token2 == " ") ) 764 { 765 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 766 if (((TSqlCmd)pdbcmds.get(i)).token2 == "") 767 break; 768 } 769 770 int k; 771 TSourceToken lcnextsolidtoken = nextsolidtoken(ptoken); 772 if (lcnextsolidtoken == null) break; 773 if ((((TSqlCmd)pdbcmds.get(i)).token2 == "*"))// && (lcchecktokens < 2) ) // can match any string 774 { 775 k = 0; 776 } 777 else { 778 k = TBaseType.mycomparetext(lcnextsolidtoken.toString() ,((TSqlCmd)pdbcmds.get(i)).token2); 779 } 780 if (k != 0) 781 { 782 if (lcchecktokens > 1) break; 783 else 784 continue; 785 } 786 else if (k == 0) 787 { 788 if (lcchecktokens < 2) 789 lcchecktokens = 2; 790 } 791 792 // second cmd tokentext is same, then check third 793 if ((((TSqlCmd)pdbcmds.get(i)).token3 == "") || (((TSqlCmd)pdbcmds.get(i)).token3 == " ")) 794 { 795 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 796 if (((TSqlCmd)pdbcmds.get(i)).token3 == "") 797 break; 798 } 799 800 TSourceToken lcnnextsolidtoken = nextsolidtoken(lcnextsolidtoken); 801 if (lcnnextsolidtoken == null) break; 802 if ((((TSqlCmd)pdbcmds.get(i)).token3 == "*"))// && (lcchecktokens < 3)) // can match any string 803 k = 0; 804 else 805 { 806 k = TBaseType.mycomparetext(lcnnextsolidtoken.toString(), ((TSqlCmd)pdbcmds.get(i)).token3); 807 } 808 if (k != 0) 809 { 810 if (lcchecktokens > 2) {break;} 811 else 812 continue; 813 } 814 else 815 { 816 if (lcchecktokens < 3) 817 {lcchecktokens = 3;} 818 } 819 820 // third cmd tokentext is same, then check fourth 821 if ((((TSqlCmd)pdbcmds.get(i)).token4 == "") || (((TSqlCmd)pdbcmds.get(i)).token4 == " ")) 822 { 823 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 824 if (((TSqlCmd)pdbcmds.get(i)).token4 == "") 825 break; 826 } 827 828 TSourceToken lcnnnextsolidtoken = nextsolidtoken(lcnnextsolidtoken); 829 if (lcnnnextsolidtoken == null) { break;} 830 if ((((TSqlCmd)(pdbcmds.get(i))).token4 == "*"))// && (lcchecktokens < 4)) // can match any string 831 {k = 0;} 832 else 833 {k = TBaseType.mycomparetext(lcnnnextsolidtoken.getAstext(),((TSqlCmd)pdbcmds.get(i)).token4);} 834 835 if (k != 0 ) 836 { 837 if (lcchecktokens > 3) break; 838 else 839 continue; 840 } 841 else 842 { 843 if (lcchecktokens < 4) 844 lcchecktokens = 4; 845 } 846 847 // fourth cmd tokentext is same, then check fiveth 848 if ((((TSqlCmd)pdbcmds.get(i)).token5 == "") || (((TSqlCmd)pdbcmds.get(i)).token5 == " ") ) 849 { 850 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 851 if (((TSqlCmd)pdbcmds.get(i)).token5 == "") 852 break; 853 } 854 855 TSourceToken lcnnnnextsolidtoken = nextsolidtoken(lcnnnextsolidtoken); 856 if (lcnnnnextsolidtoken == null) break; 857 if ((((TSqlCmd)pdbcmds.get(i)).token5 == "*") )//&& (lcchecktokens < 5) ) // can match any string 858 { k = 0;} 859 else 860 { k = TBaseType.mycomparetext(lcnnnnextsolidtoken.getAstext(), ((TSqlCmd)pdbcmds.get(i)).token5);} 861 if ( k != 0) 862 { 863 if (lcchecktokens > 4) break; 864 else 865 continue; 866 } 867 else 868 { 869 if (lcchecktokens < 5) 870 lcchecktokens = 5; 871 } 872 873 // fiveth cmd tokentext is same, then check sixth 874 if ((((TSqlCmd)pdbcmds.get(i)).token6 == "") || (((TSqlCmd)pdbcmds.get(i)).token6 == " ")) 875 { 876 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 877 if (((TSqlCmd)pdbcmds.get(i)).token6 == "") 878 break; 879 } 880 881 TSourceToken lcnnnnnextsolidtoken = nextsolidtoken(lcnnnnextsolidtoken); 882 if (lcnnnnnextsolidtoken == null) break; 883 if ((((TSqlCmd)pdbcmds.get(i)).token6 == "*"))// && (lcchecktokens < 6)) // can match any string 884 {k = 0;} 885 else 886 { k = TBaseType.mycomparetext(lcnnnnnextsolidtoken.getAstext(),((TSqlCmd)pdbcmds.get(i)).token6);} 887 if (k != 0) 888 { 889 if (lcchecktokens > 5) break; 890 else 891 continue; 892 } 893 else 894 { 895 if (lcchecktokens < 6) 896 lcchecktokens = 6; 897 } 898 899 // sixth cmd tokentext is same, then check seventh 900 if ((((TSqlCmd)pdbcmds.get(i)).token7 == "") || (((TSqlCmd)pdbcmds.get(i)).token7 == " ")) 901 { 902 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 903 if(((TSqlCmd)pdbcmds.get(i)).token7 == "") 904 break; 905 } 906 907 TSourceToken lcnnnnnnextsolidtoken = nextsolidtoken(lcnnnnnextsolidtoken); 908 if (lcnnnnnnextsolidtoken == null) break; 909 if ((((TSqlCmd)pdbcmds.get(i)).token7 == "*"))// && (lcchecktokens < 7)) // can match any string 910 {k = 0;} 911 else 912 { k = TBaseType.mycomparetext(lcnnnnnnextsolidtoken.getAstext(),((TSqlCmd)pdbcmds.get(i)).token7);} 913 if (k != 0) 914 { 915 if (lcchecktokens > 6 ) break; 916 else 917 continue; 918 } 919 else 920 { 921 if (lcchecktokens < 7) 922 {lcchecktokens = 7;} 923 ret = ((TSqlCmd)pdbcmds.get(i)).sqlstatementtype; 924 break; 925 } 926 927 928 } //for 929 return ret; 930} 931 932TSourceToken nextsolidtoken(TSourceToken ptoken){ 933 TSourceToken ret = null; 934 if (ptoken.container == null) {return ret;} 935 ret = ptoken.container.nextsolidtoken(ptoken,1,false); 936 937 return ret; 938} 939 940void initteradatacmds(){ 941 942 addteradatacmds(ESqlStatementType.sstteradataabort, TBaseType.rrw_abort, " "," "," "," "," "," "); 943 addteradatacmds(ESqlStatementType.sstteradataalterconstraint, TBaseType.rrw_alter,"constraint"," "," "," "," "," "); 944 addteradatacmds(ESqlStatementType.sstteradataalterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 945 addteradatacmds(ESqlStatementType.sstteradataalterfunction, TBaseType.rrw_alter,"specific","function"," "," "," "," "); 946 addteradatacmds(ESqlStatementType.sstteradataaltermethod, TBaseType.rrw_alter,"method"," "," "," "," "," "); 947 addteradatacmds(ESqlStatementType.sstteradataaltermethod, TBaseType.rrw_alter,"constructor","method"," "," "," "," "); 948 addteradatacmds(ESqlStatementType.sstteradataaltermethod, TBaseType.rrw_alter,"instance","method"," "," "," "," "); 949 addteradatacmds(ESqlStatementType.sstteradataaltermethod, TBaseType.rrw_alter,"specific","method"," "," "," "," "); 950 addteradatacmds(ESqlStatementType.sstteradataalterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 951 addteradatacmds(ESqlStatementType.sstteradataalterreplicationgroup, TBaseType.rrw_alter,"replication","group"," "," "," "," "); 952 addteradatacmds(ESqlStatementType.sstteradataaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 953 addteradatacmds(ESqlStatementType.sstteradataaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 954 addteradatacmds(ESqlStatementType.sstteradataaltertype, TBaseType.rrw_alter,"type"," "," "," "," "," "); 955 addteradatacmds(ESqlStatementType.sstteradataalterzone, TBaseType.rrw_alter,"zone"," "," "," "," "," "); 956 957 addteradatacmds(ESqlStatementType.sstteradatabegindeclaresection, TBaseType.rrw_begin,"delcare","section"," "," "," "," "); 958 addteradatacmds(ESqlStatementType.sstteradatabeginlogging, TBaseType.rrw_begin,"logging"," "," "," "," "," "); 959 addteradatacmds(ESqlStatementType.sstteradatabeginquerylogging, TBaseType.rrw_begin,"query","logging"," "," "," "," "); 960 addteradatacmds(ESqlStatementType.sstteradatabegintransaction, TBaseType.rrw_begin,"transaction"," "," "," "," "," "); 961 addteradatacmds(ESqlStatementType.sstteradatabegintransaction, TBaseType.rrw_bt," "," "," "," "," "," "); 962 addteradatacmds(ESqlStatementType.sstteradatabeginrequest, TBaseType.rrw_begin,"request"," "," "," "," "," "); 963 964 addteradatacmds(ESqlStatementType.sstteradatacall, TBaseType.rrw_call," "," "," "," "," "," "); 965 addteradatacmds(ESqlStatementType.sstteradatacheckworkload, TBaseType.rrw_check,"workload"," "," "," "," "," "); 966 addteradatacmds(ESqlStatementType.sstteradatacheckpoint, TBaseType.rrw_checkpoint," "," "," "," "," "," "); 967 addteradatacmds(ESqlStatementType.sstteradataclose, TBaseType.rrw_close," "," "," "," "," "," "); 968 969 addteradatacmds(ESqlStatementType.sstteradatacreatemacro, TBaseType.rrw_teradata_cm," "," "," "," "," "," "); 970 971 addteradatacmds(ESqlStatementType.sstteradatacollectdemographics, TBaseType.rrw_teradata_collect,"demographics"," "," "," "," "," "); 972 973 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"statistics"," "," "," "," "," "); 974 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"stats"," "," "," "," "," "); 975 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"stat"," "," "," "," "," "); 976 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"summary","statistics"," "," "," "," "); 977 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"summary","stats"," "," "," "," "); 978 addteradatacmds(ESqlStatementType.sstteradatacollectstatistics, TBaseType.rrw_teradata_collect,"summary","stat"," "," "," "," "); 979 980 981 addteradatacmds(ESqlStatementType.sstteradatacomment, TBaseType.rrw_comment," "," "," "," "," "," "); 982 addteradatacmds(ESqlStatementType.sstteradatacommit, TBaseType.rrw_commit," "," "," "," "," "," "); 983 addteradatacmds(ESqlStatementType.sstteradataconnect, TBaseType.rrw_connect," "," "," "," "," "," "); 984 addteradatacmds(ESqlStatementType.sstteradatacreateauthorization, TBaseType.rrw_create,"authorization"," "," "," "," "," "); 985 addteradatacmds(ESqlStatementType.sstteradatacreatecast, TBaseType.rrw_create,"cast"," "," "," "," "," "); 986 addteradatacmds(ESqlStatementType.sstteradatacreateconstraint, TBaseType.rrw_create,"constraint"," "," "," "," "," "); 987 addteradatacmds(ESqlStatementType.sstteradatacreateglop, TBaseType.rrw_create,"glop"," "," "," "," "," "); 988 989 addteradatacmds(ESqlStatementType.sstteradatacreatemethod, TBaseType.rrw_create,"constructor","method"," "," "," "," "); 990 991 addteradatacmds(ESqlStatementType.sstteradatacreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 992 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"error","table"," "," "," "," "); 993 addteradatacmds(ESqlStatementType.sstteradatacreaterole, TBaseType.rrw_create,"external","role"," "," "," "," "); 994 995 addteradatacmds(ESqlStatementType.sstteradatacreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 996 997 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","multiset","table"," "," "); 998 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","set","table"," "," "); 999 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","table"," "," "," "); 1000 1001 addteradatacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"hash","index"," "," "," "," "); 1002 addteradatacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 1003 1004 addteradatacmds(ESqlStatementType.sstteradatacreatemethod, TBaseType.rrw_create,"instance","method"," "," "," "," "); 1005 1006 addteradatacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"join","index"," "," "," "," "); 1007 1008 addteradatacmds(ESqlStatementType.sstteradatacreatemacro, TBaseType.rrw_create,"macro"," "," "," "," "," "); 1009 1010 addteradatacmds(ESqlStatementType.sstteradatacreatemethod, TBaseType.rrw_create,"method"," "," "," "," "," "); 1011 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"multiset","global","temporary","table"," "," "); 1012 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"multiset","table"," "," "," "," "); 1013 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"multiset","volatile","table"," "," "," "); 1014 1015 addteradatacmds(ESqlStatementType.sstteradatacreateordering, TBaseType.rrw_create,"ordering"," "," "," "," "," "); 1016 1017 addteradatacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create,"proc"," "," "," "," "," "); 1018 addteradatacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 1019 1020 addteradatacmds(ESqlStatementType.sstteradatacreateprofile, TBaseType.rrw_create,"profile"," "," "," "," "," "); 1021 1022 addteradatacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"recursive","view"," "," "," "," "); 1023 1024 addteradatacmds(ESqlStatementType.sstteradatacreatereplicationgroup, TBaseType.rrw_create,"replication","group"," "," "," "," "); 1025 addteradatacmds(ESqlStatementType.sstteradatacreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 1026 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"set","global","temporary","table"," "," "); 1027 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"set","table"," "," "," "," "); 1028 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"set","volatile","table"," "," "," "); 1029 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 1030 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"temporary","table"," "," "," "," "); 1031 1032 addteradatacmds(ESqlStatementType.sstteradatacreatetransform, TBaseType.rrw_create,"transform"," "," "," "," "," "); 1033 1034 addteradatacmds(ESqlStatementType.sstteradatacreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 1035 1036 addteradatacmds(ESqlStatementType.sstteradatacreatetype, TBaseType.rrw_create,"type"," "," "," "," "," "); 1037 1038 addteradatacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 1039 1040 addteradatacmds(ESqlStatementType.sstteradatacreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 1041 1042 addteradatacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 1043 1044 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"volatile","multiset","table"," "," "," "); 1045 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"volatile","table"," "," "," "," "); 1046 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"volatile","set","table"," "," "," "); 1047 1048 addteradatacmds(ESqlStatementType.sstcreatezone, TBaseType.rrw_create,"zone"," "," "," "," "," "); 1049 1050 addteradatacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_ct," "," "," "," "," "," "); 1051 1052 addteradatacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_teradata_cv," "," "," "," "," "," "); 1053 1054 addteradatacmds(ESqlStatementType.sstteradatadatabase, TBaseType.rrw_database," "," "," "," "," "," "); 1055 1056 addteradatacmds(ESqlStatementType.sstteradatadeclarecursor, TBaseType.rrw_declare,"cursor"," "," "," "," "," "); 1057 addteradatacmds(ESqlStatementType.sstteradatadeclarecursor, TBaseType.rrw_declare,"*","cursor"," "," "," "," "); 1058 1059 addteradatacmds(ESqlStatementType.sstteradatadeclarestatement, TBaseType.rrw_declare,"statement"," "," "," "," "," "); 1060 1061 addteradatacmds(ESqlStatementType.sstteradatadeclaretable, TBaseType.rrw_declare,"table"," "," "," "," "," "); 1062 1063 addteradatacmds(ESqlStatementType.sstdelete, TBaseType.rrw_teradata_del," "," "," "," "," "," "); 1064 1065 addteradatacmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 1066 1067 addteradatacmds(ESqlStatementType.sstteradatadeletedatabase, TBaseType.rrw_delete,"database"," "," "," "," "," "); 1068 1069 addteradatacmds(ESqlStatementType.sstteradatadeleteuser, TBaseType.rrw_delete,"user"," "," "," "," "," "); 1070 1071 addteradatacmds(ESqlStatementType.sstteradatadescribe, TBaseType.rrw_describe," "," "," "," "," "," "); 1072 1073 addteradatacmds(ESqlStatementType.sstteradatadiagnostic, TBaseType.rrw_teradata_diagnostic," "," "," "," "," "," "); 1074 1075 addteradatacmds(ESqlStatementType.sstteradatadropauthorization, TBaseType.rrw_drop,"authorization"," "," "," "," "," "); 1076 1077 addteradatacmds(ESqlStatementType.sstteradatadropcast, TBaseType.rrw_drop,"cast"," "," "," "," "," "); 1078 addteradatacmds(ESqlStatementType.sstteradatadropconstraint, TBaseType.rrw_drop,"constraint"," "," "," "," "," "); 1079 addteradatacmds(ESqlStatementType.sstteradatadropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 1080 addteradatacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop,"error","table"," "," "," "," "); 1081 addteradatacmds(ESqlStatementType.sstteradatadroprole, TBaseType.rrw_drop,"external","role"," "," "," "," "); 1082 1083 addteradatacmds(ESqlStatementType.sstteradatadropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 1084 1085 addteradatacmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop,"hash","index"," "," "," "," "); 1086 addteradatacmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 1087 addteradatacmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop,"join","index"," "," "," "," "); 1088 1089 addteradatacmds(ESqlStatementType.sstteradatadropmacro, TBaseType.rrw_drop,"macro"," "," "," "," "," "); 1090 1091 addteradatacmds(ESqlStatementType.sstteradatadropordering, TBaseType.rrw_drop,"ordering"," "," "," "," "," "); 1092 1093 addteradatacmds(ESqlStatementType.sstteradatadropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 1094 1095 addteradatacmds(ESqlStatementType.sstteradatadropprofile, TBaseType.rrw_drop,"profile"," "," "," "," "," "); 1096 1097 addteradatacmds(ESqlStatementType.sstteradatadropreplicationgroup, TBaseType.rrw_drop,"replication","group"," "," "," "," "); 1098 1099 addteradatacmds(ESqlStatementType.sstteradatadroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 1100 1101 addteradatacmds(ESqlStatementType.sstteradatadropfunction, TBaseType.rrw_drop,"specific","function"," "," "," "," "); 1102 1103 addteradatacmds(ESqlStatementType.sstteradatadropstatistics, TBaseType.rrw_drop,"stat"," "," "," "," "," "); 1104 addteradatacmds(ESqlStatementType.sstteradatadropstatistics, TBaseType.rrw_drop,"statistics"," "," "," "," "," "); 1105 addteradatacmds(ESqlStatementType.sstteradatadropstatistics, TBaseType.rrw_drop,"stats"," "," "," "," "," "); 1106 1107 addteradatacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 1108 addteradatacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop,"temporary","table"," "," "," "," "); 1109 1110 addteradatacmds(ESqlStatementType.sstteradatadroptransform, TBaseType.rrw_drop,"transform"," "," "," "," "," "); 1111 1112 addteradatacmds(ESqlStatementType.sstteradatadroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 1113 1114 addteradatacmds(ESqlStatementType.sstteradatadroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 1115 addteradatacmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop,"unique","index"," "," "," "," "); 1116 1117 addteradatacmds(ESqlStatementType.sstteradatadropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 1118 1119 addteradatacmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 1120 1121 addteradatacmds(ESqlStatementType.sstteradatadropzone, TBaseType.rrw_drop,"zone"," "," "," "," "," "); 1122 1123 addteradatacmds(ESqlStatementType.sstteradatadumpexplain, TBaseType.rrw_teradata_dump,"explain"," "," "," "," "," "); 1124 1125 addteradatacmds(ESqlStatementType.sstteradataecho, TBaseType.rrw_teradata_echo," "," "," "," "," "," "); 1126 1127 addteradatacmds(ESqlStatementType.sstteradataenddeclaresection, TBaseType.rrw_end,"declare","section"," "," "," "," "); 1128 1129 addteradatacmds(ESqlStatementType.sstteradataendlogging, TBaseType.rrw_end,"logging"," "," "," "," "," "); 1130 1131 addteradatacmds(ESqlStatementType.sstteradataendquerylogging, TBaseType.rrw_end,"query","logging"," "," "," "," "); 1132 1133 addteradatacmds(ESqlStatementType.sstteradataendtransaction, TBaseType.rrw_end,"transaction"," "," "," "," "," "); 1134 1135 addteradatacmds(ESqlStatementType.sstteradataendtransaction, TBaseType.rrw_et," "," "," "," "," "," "); 1136 addteradatacmds(ESqlStatementType.sstteradataendrequest, TBaseType.rrw_end,"request"," "," "," "," "," "); 1137 1138 addteradatacmds(ESqlStatementType.sstteradataexecute, TBaseType.rrw_execute," "," "," "," "," "," "); 1139 1140 addteradatacmds(ESqlStatementType.sstteradataexecute, TBaseType.rrw_exec," "," "," "," "," "," "); 1141 1142 addteradatacmds(ESqlStatementType.sstteradataexecuteimmediate, TBaseType.rrw_execute,"immediate"," "," "," "," "," "); 1143 1144 addteradatacmds(ESqlStatementType.sstteradataExit, TBaseType.rrw_teradata_exit," "," "," "," "," "," "); 1145 1146 addteradatacmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 1147 1148 1149 addteradatacmds(ESqlStatementType.sstteradatafetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 1150 1151 addteradatacmds(ESqlStatementType.sstteradatagetcrash, TBaseType.rrw_get,"crash"," "," "," "," "," "); 1152 1153 addteradatacmds(ESqlStatementType.sstgetdiagnostics, TBaseType.rrw_get,"diagnostics"," "," "," "," "," "); 1154 1155 addteradatacmds(ESqlStatementType.sstteradatagive, TBaseType.rrw_teradata_give," "," "," "," "," "," "); 1156 1157 addteradatacmds(ESqlStatementType.sstteradatagrant, TBaseType.rrw_grant," "," "," "," "," "," "); 1158 1159 addteradatacmds(ESqlStatementType.sstteradatahelp, TBaseType.rrw_teradata_help," "," "," "," "," "," "); 1160 1161 addteradatacmds(ESqlStatementType.sstteradatainclude, TBaseType.rrw_include," "," "," "," "," "," "); 1162 1163 addteradatacmds(ESqlStatementType.sstinsert, TBaseType.rrw_teradata_ins," "," "," "," "," "," "); 1164 1165 addteradatacmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 1166 1167 addteradatacmds(ESqlStatementType.sstteradatainsertexplain, TBaseType.rrw_insert,"explain"," "," "," "," "," "); 1168 1169 addteradatacmds(ESqlStatementType.sstteradatalabel, TBaseType.rrw_teradata_label," "," "," "," "," "," "); 1170 addteradatacmds(ESqlStatementType.sstteradatalock, TBaseType.rrw_lock," "," "," "," "," "," "); 1171 addteradatacmds(ESqlStatementType.sstteradatalock, TBaseType.rrw_teradata_locking," "," "," "," "," "," "); 1172 addteradatacmds(ESqlStatementType.sstteradatalogon, TBaseType.rrw_teradata_logon," "," "," "," "," "," "); 1173 1174 addteradatacmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 1175 1176 addteradatacmds(ESqlStatementType.sstteradatamodifydatabase, TBaseType.rrw_teradata_modify,"database"," "," "," "," "," "); 1177 1178 addteradatacmds(ESqlStatementType.sstteradatamodifyprofile, TBaseType.rrw_teradata_modify,"profile"," "," "," "," "," "); 1179 1180 addteradatacmds(ESqlStatementType.sstteradatamodifyuser, TBaseType.rrw_teradata_modify,"user"," "," "," "," "," "); 1181 1182 addteradatacmds(ESqlStatementType.sstteradataopen, TBaseType.rrw_open," "," "," "," "," "," "); 1183 1184 addteradatacmds(ESqlStatementType.sstteradataposition, TBaseType.rrw_teradata_position," "," "," "," "," "," "); 1185 1186 addteradatacmds(ESqlStatementType.sstteradataprepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 1187 1188 addteradatacmds(ESqlStatementType.sstteradatareleaseLock, TBaseType.rrw_release,"lock"," "," "," "," "," "); 1189 1190 addteradatacmds(ESqlStatementType.sstteradatarenamefunction, TBaseType.rrw_rename,"function"," "," "," "," "," "); 1191 addteradatacmds(ESqlStatementType.sstteradatarenamemacro, TBaseType.rrw_rename,"macro"," "," "," "," "," "); 1192 addteradatacmds(ESqlStatementType.sstteradatarenameprocedure, TBaseType.rrw_rename,"procedure"," "," "," "," "," "); 1193 addteradatacmds(ESqlStatementType.sstteradatarenametable, TBaseType.rrw_rename,"table"," "," "," "," "," "); 1194 addteradatacmds(ESqlStatementType.sstteradatarenametrigger, TBaseType.rrw_rename,"trigger"," "," "," "," "," "); 1195 addteradatacmds(ESqlStatementType.sstteradatarenameview, TBaseType.rrw_rename,"view"," "," "," "," "," "); 1196 1197 addteradatacmds(ESqlStatementType.sstteradatareplacecast, TBaseType.rrw_replace,"cast"," "," "," "," "," "); 1198 1199 addteradatacmds(ESqlStatementType.sstteradatareplacemethod, TBaseType.rrw_replace,"constructor","method"," "," "," "," "); 1200 1201 addteradatacmds(ESqlStatementType.sstteradatareplacefunction, TBaseType.rrw_replace,"function"," "," "," "," "," "); 1202 1203 addteradatacmds(ESqlStatementType.sstteradatareplacemethod, TBaseType.rrw_replace,"instance","method"," "," "," "," "); 1204 1205 addteradatacmds(ESqlStatementType.sstteradatareplacemacro, TBaseType.rrw_replace,"macro"," "," "," "," "," "); 1206 1207 addteradatacmds(ESqlStatementType.sstteradatareplacemethod, TBaseType.rrw_replace,"method"," "," "," "," "," "); 1208 1209 addteradatacmds(ESqlStatementType.sstteradatareplaceordering, TBaseType.rrw_replace,"ordering"," "," "," "," "," "); 1210 1211 addteradatacmds(ESqlStatementType.sstteradatareplaceprocedure, TBaseType.rrw_replace,"procedure"," "," "," "," "," "); 1212 1213 addteradatacmds(ESqlStatementType.sstteradatareplacemethod, TBaseType.rrw_replace,"specific","method"," "," "," "," "); 1214 1215 addteradatacmds(ESqlStatementType.sstteradatareplacetransform, TBaseType.rrw_replace,"transform"," "," "," "," "," "); 1216 1217 addteradatacmds(ESqlStatementType.sstteradatacreatetrigger, TBaseType.rrw_replace,"trigger"," "," "," "," "," "); 1218 1219 addteradatacmds(ESqlStatementType.sstteradatareplaceview, TBaseType.rrw_replace,"view"," "," "," "," "," "); 1220 addteradatacmds(ESqlStatementType.sstteradatareplaceview, TBaseType.rrw_replace,"recursive","view"," "," "," "," "); 1221 1222 addteradatacmds(ESqlStatementType.sstteradatarestartindexanalysis, TBaseType.rrw_teradata_restart,"index","analysis"," "," "," "," "); 1223 1224 addteradatacmds(ESqlStatementType.sstteradatarevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 1225 1226 // addteradatacmds(ESqlStatementType.sstteradatarewind, TBaseType.rrw_rewind," "," "," "," "," "," "); 1227 1228 addteradatacmds(ESqlStatementType.sstteradatarollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 1229 1230 addteradatacmds(ESqlStatementType.sstselect, TBaseType.rrw_teradata_sel," "," "," "," "," "," "); 1231 addteradatacmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 1232 1233 //addteradatacmds(ESqlStatementType.sstsetbuffersize, TBaseType.rrw_set,"buffersize"," "," "," "," "," "); 1234 addteradatacmds(ESqlStatementType.sstteradatasetrole, TBaseType.rrw_set,"role"," "," "," "," "," "); 1235 1236 addteradatacmds(ESqlStatementType.sstteradatasetsession, TBaseType.rrw_set,"session"," "," "," "," "," "); 1237 addteradatacmds(ESqlStatementType.sstteradatasetsession, TBaseType.rrw_ss," "," "," "," "," "," "); 1238// addteradatacmds(ESqlStatementType.sstteradatasetsessionaccount, TBaseType.rrw_set,"session","account"," "," "," "," "); 1239 1240 addteradatacmds(ESqlStatementType.sstteradatasettimezone, TBaseType.rrw_set,"time","zone"," "," "," "," "); 1241 1242 addteradatacmds(ESqlStatementType.sstteradatashow, TBaseType.rrw_show," "," "," "," "," "," "); 1243 1244 addteradatacmds(ESqlStatementType.sstteradatashowmethod, TBaseType.rrw_show,"constructor","method"," "," "," "," "); 1245 1246 addteradatacmds(ESqlStatementType.sstteradatashowfunction, TBaseType.rrw_show,"function"," "," "," "," "," "); 1247 1248 addteradatacmds(ESqlStatementType.sstteradatashowindex, TBaseType.rrw_show,"hash","index"," "," "," "," "); 1249 1250 addteradatacmds(ESqlStatementType.sstteradatashowmethod, TBaseType.rrw_show,"instance","method"," "," "," "," "); 1251 1252 addteradatacmds(ESqlStatementType.sstteradatashowindex, TBaseType.rrw_show,"join","index"," "," "," "," "); 1253 1254 addteradatacmds(ESqlStatementType.sstteradatashowmacro, TBaseType.rrw_show,"macro"," "," "," "," "," "); 1255 1256 addteradatacmds(ESqlStatementType.sstteradatashowmethod, TBaseType.rrw_show,"method"," "," "," "," "," "); 1257 1258 addteradatacmds(ESqlStatementType.sstteradatashowprocedure, TBaseType.rrw_show,"procedure"," "," "," "," "," "); 1259 1260 addteradatacmds(ESqlStatementType.sstteradatashowreplicationgroup, TBaseType.rrw_show,"replication","group"," "," "," "," "); 1261 1262 addteradatacmds(ESqlStatementType.sstteradatashowfunction, TBaseType.rrw_show,"specific","function"," "," "," "," "); 1263 addteradatacmds(ESqlStatementType.sstteradatashowmethod, TBaseType.rrw_show,"specific","method"," "," "," "," "); 1264 1265 addteradatacmds(ESqlStatementType.sstteradatashowtable, TBaseType.rrw_show,"table "," "," "," "," "," "); 1266 addteradatacmds(ESqlStatementType.sstteradatashowtable, TBaseType.rrw_show,"temporary","table"," "," "," "," "); 1267 1268 addteradatacmds(ESqlStatementType.sstteradatashowtrigger, TBaseType.rrw_show,"trigger"," "," "," "," "," "); 1269 addteradatacmds(ESqlStatementType.sstteradatashowtype, TBaseType.rrw_show,"type"," "," "," "," "," "); 1270 addteradatacmds(ESqlStatementType.sstteradatashowview, TBaseType.rrw_show,"view"," "," "," "," "," "); 1271 1272 //addteradatacmds(ESqlStatementType.sstteradatatest, TBaseType.rrw_test," "," "," "," "," "," "); 1273 addteradatacmds(ESqlStatementType.sstupdate, TBaseType.rrw_teradata_upd," "," "," "," "," "," "); 1274 addteradatacmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 1275 1276 addteradatacmds(ESqlStatementType.sstteradatausing, TBaseType.rrw_teradata_using," "," "," "," "," "," "); 1277 1278 addteradatacmds(ESqlStatementType.sstteradatawait, TBaseType.rrw_teradata_wait," "," "," "," "," "," "); 1279 //addteradatacmds(ESqlStatementType.sstteradatawhenever, TBaseType.rrw_whenever," "," "," "," "," "," "); 1280 1281} 1282 1283 void inithivecmds(){ 1284 addhivecmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database"," "," "," "," "," "); 1285 addhivecmds(ESqlStatementType.sstalterindex, TBaseType.rrw_alter, "index"," "," "," "," "," "); 1286 addhivecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1287 addhivecmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view"," "," "," "," "," "); 1288 addhivecmds(ESqlStatementType.sstanalyzeTable, TBaseType.rrw_analyze, "table"," "," "," "," "," "); 1289 1290 1291 addhivecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database"," "," "," "," "," "); 1292 addhivecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external","table"," "," "," "," "); 1293 addhivecmds(ESqlStatementType.ssthiveCreateFunction, TBaseType.rrw_create, "function"," "," "," "," "," "); 1294 addhivecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "index"," "," "," "," "," "); 1295 addhivecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"materialized","view"," "," "," "," "); 1296 1297 addhivecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","view"," "," "," "); 1298 addhivecmds(ESqlStatementType.ssthiveCreateRole, TBaseType.rrw_create, "role"," "," "," "," "," "); 1299 addhivecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "schema"," "," "," "," "," "); 1300 addhivecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table"," "," "," "," "," "); 1301 addhivecmds(ESqlStatementType.ssthiveCreateFunction, TBaseType.rrw_create, "temporary","function"," "," "," "," "); 1302 addhivecmds(ESqlStatementType.sstCreateMacro, TBaseType.rrw_create, "temporary","macro"," "," "," "," "); 1303 addhivecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary","table"," "," "," "," "); 1304 addhivecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "transactional","table"," "," "," "," "); 1305 addhivecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view"," "," "," "," "," "); 1306 1307 addhivecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 1308 addhivecmds(ESqlStatementType.ssthiveDesc, TBaseType.rrw_hive_desc, " "," "," "," "," "," "); 1309 1310 addhivecmds(ESqlStatementType.ssthiveDesc, TBaseType.rrw_describe, " "," "," "," "," "," "); 1311 1312 addhivecmds(ESqlStatementType.ssthiveDropDatabase, TBaseType.rrw_drop, "database"," "," "," "," "," "); 1313 addhivecmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index"," "," "," "," "," "); 1314 addhivecmds(ESqlStatementType.ssthiveDropRole, TBaseType.rrw_drop, "role"," "," "," "," "," "); 1315 addhivecmds(ESqlStatementType.ssthiveDropDatabase, TBaseType.rrw_drop, "schema"," "," "," "," "," "); 1316 addhivecmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," "," "," "," "," "); 1317 addhivecmds(ESqlStatementType.ssthiveDropFunciton, TBaseType.rrw_drop, "temporary","function"," "," "," "," "); 1318 addhivecmds(ESqlStatementType.sstDropMacro, TBaseType.rrw_drop, "temporary","macro"," "," "," "," "); 1319 addhivecmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," "," "," "," "," "); 1320 1321 addhivecmds(ESqlStatementType.ssthiveExplain, TBaseType.rrw_explain, " "," "," "," "," "," "); 1322 1323 addhivecmds(ESqlStatementType.ssthiveExportTable, TBaseType.rrw_hive_export, "table"," "," "," "," "," "); 1324 1325 addhivecmds(ESqlStatementType.ssthiveGrant, TBaseType.rrw_grant, " "," "," "," "," "," "); 1326 addhivecmds(ESqlStatementType.ssthiveGrantRole, TBaseType.rrw_grant, "role"," "," "," "," "," "); 1327 1328 addhivecmds(ESqlStatementType.ssthiveImportTable, TBaseType.rrw_hive_import, "external","table"," "," "," "," "); 1329 addhivecmds(ESqlStatementType.ssthiveImportTable, TBaseType.rrw_hive_import, "from"," "," "," "," "," "); 1330 addhivecmds(ESqlStatementType.ssthiveImportTable, TBaseType.rrw_hive_import, "table"," "," "," "," "," "); 1331 1332 addhivecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1333 1334 1335 addhivecmds(ESqlStatementType.ssthiveLoad, TBaseType.rrw_load, "data"," "," "," "," "," "); 1336 1337 addhivecmds(ESqlStatementType.ssthiveLockTable, TBaseType.rrw_lock, "table"," "," "," "," "," "); 1338 1339 //merge 1340 addhivecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 1341 1342 addhivecmds(ESqlStatementType.sstmsck, TBaseType.rrw_hive_msck, " "," "," "," "," "," "); 1343 1344 addhivecmds(ESqlStatementType.ssthiveRevoke, TBaseType.rrw_revoke, " "," "," "," "," "," "); 1345 addhivecmds(ESqlStatementType.ssthiveRevokeRole, TBaseType.rrw_revoke, "role"," "," "," "," "," "); 1346 1347 addhivecmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " "," "," "," "," "," "); 1348 addhivecmds(ESqlStatementType.ssthiveSet, TBaseType.rrw_set, " "," "," "," "," "," "); 1349 addhivecmds(ESqlStatementType.ssthiveShow, TBaseType.rrw_show, " "," "," "," "," "," "); 1350 addhivecmds(ESqlStatementType.ssthiveShowGrants, TBaseType.rrw_show, "grant"," "," "," "," "," "); 1351 addhivecmds(ESqlStatementType.ssthiveShowRoleGrants, TBaseType.rrw_show, "role","grant"," "," "," "," "); 1352 1353 addhivecmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate, "table"," "," "," "," "," "); 1354 1355 addhivecmds(ESqlStatementType.ssthiveUnlockTable, TBaseType.rrw_unlock, "table"," "," "," "," "," "); 1356 addhivecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 1357 addhivecmds(ESqlStatementType.sstupsert, TBaseType.rrw_hive_upsert, " ", " ", " ", " ", " ", " "); 1358 addhivecmds(ESqlStatementType.ssthiveSwitchDatabase, TBaseType.rrw_use, " "," "," "," "," "," "); 1359 } 1360 1361 void initdatabrickscmds(){ 1362 adddatabrickscmds(ESqlStatementType.sstaddAchieve, TBaseType.rrw_add, "archive"," "," "," "," "," "); 1363 adddatabrickscmds(ESqlStatementType.sstaddAchieve, TBaseType.rrw_add, "archives"," "," "," "," "," "); 1364 adddatabrickscmds(ESqlStatementType.sstaltercatalog, TBaseType.rrw_alter, "catalog"," "," "," "," "," "); 1365 adddatabrickscmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database"," "," "," "," "," "); 1366 adddatabrickscmds(ESqlStatementType.sstalterlocation, TBaseType.rrw_alter, "external","location"," "," "," "," "); 1367 adddatabrickscmds(ESqlStatementType.sstAlterGroup, TBaseType.rrw_alter, "group"," "," "," "," "," "); 1368 adddatabrickscmds(ESqlStatementType.sstalterprovider, TBaseType.rrw_alter, "provider"," "," "," "," "," "); 1369 adddatabrickscmds(ESqlStatementType.sstalterrecipient, TBaseType.rrw_alter, "recipient"," "," "," "," "," "); 1370 adddatabrickscmds(ESqlStatementType.sstAlterSchema, TBaseType.rrw_alter, "schema"," "," "," "," "," "); 1371 adddatabrickscmds(ESqlStatementType.sstAltershare, TBaseType.rrw_alter, "share"," "," "," "," "," "); 1372 adddatabrickscmds(ESqlStatementType.sstaltercredental, TBaseType.rrw_alter, "storage","credential"," "," "," "," "); 1373 adddatabrickscmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1374 adddatabrickscmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view"," "," "," "," "," "); 1375 adddatabrickscmds(ESqlStatementType.sstAnalyzeTable, TBaseType.rrw_analyze, "table"," "," "," "," "," "); 1376 adddatabrickscmds(ESqlStatementType.sstAnalyzeTable, TBaseType.rrw_analyze, "tables"," "," "," "," "," "); 1377 adddatabrickscmds(ESqlStatementType.sstCacheSelect, TBaseType.rrw_cache, "select"," "," "," "," "," "); 1378 adddatabrickscmds(ESqlStatementType.sstClearCache, TBaseType.rrw_clear, "cache"," "," "," "," "," "); 1379 adddatabrickscmds(ESqlStatementType.sstCommentOn, TBaseType.rrw_comment, "on"," "," "," "," "," "); 1380 adddatabrickscmds(ESqlStatementType.sstConvertToDelta, TBaseType.rrw_databricks_convert, "to","delta"," "," "," "," "); 1381 adddatabrickscmds(ESqlStatementType.sstCopyInto, TBaseType.rrw_databricks_copy, "into"," "," "," "," "," "); 1382 adddatabrickscmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "bloomfilter","index"," "," "," "," "); 1383 adddatabrickscmds(ESqlStatementType.sstcreatecatalog, TBaseType.rrw_create, "catalog"," "," "," "," "," "); 1384 adddatabrickscmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database"," "," "," "," "," "); 1385 adddatabrickscmds(ESqlStatementType.sstCreateExternallocation, TBaseType.rrw_create, "external","location"," "," "," "," "); 1386 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function"," "," "," "," "," "); 1387 adddatabrickscmds(ESqlStatementType.sstCreategroup, TBaseType.rrw_create, "group"," "," "," "," "," "); 1388 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","function"," "," "," "); 1389 adddatabrickscmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or","replace","table"," "," "," "); 1390 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","temp","function"," "," "); 1391 adddatabrickscmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","temp","view"," "," "); 1392 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","temporary","function"," "," "); 1393 adddatabrickscmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","temporary","view"," "," "); 1394 adddatabrickscmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","view"," "," ", " "); 1395 adddatabrickscmds(ESqlStatementType.sstcreaterecipient, TBaseType.rrw_create, "recipient"," "," "," "," "," "); 1396 adddatabrickscmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "schema"," "," "," "," "," "); 1397 adddatabrickscmds(ESqlStatementType.sstcreateshare, TBaseType.rrw_create, "share"," "," "," "," "," "); 1398 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temp","function"," "," "," "," "); 1399 adddatabrickscmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temporary","function"," "," "," "," "); 1400 adddatabrickscmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "role"," "," "," "," "," "); 1401 adddatabrickscmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "schema"," "," "," "," "," "); 1402 adddatabrickscmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table"," "," "," "," "," "); 1403 adddatabrickscmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view"," "," "," "," "," "); 1404 adddatabrickscmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, "from"," "," "," "," "," "); 1405 adddatabrickscmds(ESqlStatementType.sstDeny, TBaseType.rrw_deny, " "," "," "," "," "," "); 1406 adddatabrickscmds(ESqlStatementType.sstdescribe, TBaseType.rrw_databricks_desc, " "," "," "," "," "," "); 1407 adddatabrickscmds(ESqlStatementType.sstdescribeCatalog, TBaseType.rrw_databricks_desc, "catalog"," "," "," "," "," "); 1408 adddatabrickscmds(ESqlStatementType.sstdescribeFunction, TBaseType.rrw_databricks_desc, "function"," "," "," "," "," "); 1409 adddatabrickscmds(ESqlStatementType.sstdescribeProvider, TBaseType.rrw_databricks_desc, "provider"," "," "," "," "," "); 1410 adddatabrickscmds(ESqlStatementType.sstdescribeQuery, TBaseType.rrw_databricks_desc, "query"," "," "," "," "," "); 1411 adddatabrickscmds(ESqlStatementType.sstdescribeRecipient, TBaseType.rrw_databricks_desc, "recipient"," "," "," "," "," "); 1412 adddatabrickscmds(ESqlStatementType.sstdescribeSchema, TBaseType.rrw_databricks_desc, "schema"," "," "," "," "," "); 1413 adddatabrickscmds(ESqlStatementType.sstdescribeShare, TBaseType.rrw_databricks_desc, "share"," "," "," "," "," "); 1414 adddatabrickscmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_databricks_desc, "table"," "," "," "," "," "); 1415 adddatabrickscmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe, " "," "," "," "," "," "); 1416 adddatabrickscmds(ESqlStatementType.sstdescribeCatalog, TBaseType.rrw_describe, "catalog"," "," "," "," "," "); 1417 adddatabrickscmds(ESqlStatementType.sstdescribeDatabase, TBaseType.rrw_describe, "database"," "," "," "," "," "); 1418 adddatabrickscmds(ESqlStatementType.sstdescribeLocation, TBaseType.rrw_describe, "external","location"," "," "," "," "); 1419 adddatabrickscmds(ESqlStatementType.sstdescribeFunction, TBaseType.rrw_describe, "function"," "," "," "," "," "); 1420 adddatabrickscmds(ESqlStatementType.sstdescribeProvider, TBaseType.rrw_describe, "provider"," "," "," "," "," "); 1421 adddatabrickscmds(ESqlStatementType.sstdescribeQuery, TBaseType.rrw_describe, "query"," "," "," "," "," "); 1422 adddatabrickscmds(ESqlStatementType.sstdescribeRecipient, TBaseType.rrw_describe, "recipient"," "," "," "," "," "); 1423 adddatabrickscmds(ESqlStatementType.sstdescribeSchema, TBaseType.rrw_describe, "schema"," "," "," "," "," "); 1424 adddatabrickscmds(ESqlStatementType.sstdescribeShare, TBaseType.rrw_describe, "share"," "," "," "," "," "); 1425 adddatabrickscmds(ESqlStatementType.sstdescribeCredential, TBaseType.rrw_describe, "storage","credential"," "," "," "," "); 1426 adddatabrickscmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_describe, "table"," "," "," "," "," "); 1427 adddatabrickscmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "bloomfilter","index"," "," "," "," "); 1428 adddatabrickscmds(ESqlStatementType.sstdropcatalog, TBaseType.rrw_drop, "catalog"," "," "," "," "," "); 1429 adddatabrickscmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database"," "," "," "," "," "); 1430 adddatabrickscmds(ESqlStatementType.sstdroplocation, TBaseType.rrw_drop, "external","location"," "," "," "," "); 1431 adddatabrickscmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function"," "," "," "," "," "); 1432 adddatabrickscmds(ESqlStatementType.sstDropGroup, TBaseType.rrw_drop, "group"," "," "," "," "," "); 1433 adddatabrickscmds(ESqlStatementType.sstdropprovider, TBaseType.rrw_drop, "provider"," "," "," "," "," "); 1434 adddatabrickscmds(ESqlStatementType.sstdroprecipient, TBaseType.rrw_drop, "recipient"," "," "," "," "," "); 1435 adddatabrickscmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema"," "," "," "," "," "); 1436 adddatabrickscmds(ESqlStatementType.sstdropshare, TBaseType.rrw_drop, "share"," "," "," "," "," "); 1437 adddatabrickscmds(ESqlStatementType.sstdropcredential, TBaseType.rrw_drop, "storage","credential"," "," "," "," "); 1438 adddatabrickscmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "temp","function"," "," "," "," "); 1439 adddatabrickscmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "temporary","function"," "," "," "," "); 1440 adddatabrickscmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," "," "," "," "," "); 1441 adddatabrickscmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," "," "," "," "," "); 1442 adddatabrickscmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " "," "," "," "," "," "); 1443 adddatabrickscmds(ESqlStatementType.sstmsckrepairtable, TBaseType.rrw_databricks_fsck, "repair"," "," "," "," "," "); 1444 adddatabrickscmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " "," "," "," "," "," "); 1445 adddatabrickscmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, "select","on","share"," "," "," "); 1446 adddatabrickscmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1447 adddatabrickscmds(ESqlStatementType.sstList, TBaseType.rrw_databricks_list, " "," "," "," "," "," "); 1448 adddatabrickscmds(ESqlStatementType.sstLoadData, TBaseType.rrw_load, "data"," "," "," "," "," "); 1449 adddatabrickscmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, "into"," "," "," "," "," "); 1450 adddatabrickscmds(ESqlStatementType.sstmsckrepairtable, TBaseType.rrw_databricks_msck, "repair"," "," "," "," "," "); 1451 adddatabrickscmds(ESqlStatementType.sstmsckrepairtable, TBaseType.rrw_databricks_msck, "repair","table"," "," "," "," "); 1452 adddatabrickscmds(ESqlStatementType.sstOptimize, TBaseType.rrw_optimize, " "," "," "," "," "," "); 1453 adddatabrickscmds(ESqlStatementType.sstRefresh, TBaseType.rrw_refresh, " "," "," "," "," "," "); 1454 adddatabrickscmds(ESqlStatementType.sstRefreshFunction, TBaseType.rrw_refresh, "function"," "," "," "," "," "); 1455 adddatabrickscmds(ESqlStatementType.sstRefreshTable, TBaseType.rrw_refresh, "table"," "," "," "," "," "); 1456 adddatabrickscmds(ESqlStatementType.sstReorgTable, TBaseType.rrw_databricks_reorg, "table"," "," "," "," "," "); 1457 adddatabrickscmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_replace, "table"," "," "," "," "," "); 1458 adddatabrickscmds(ESqlStatementType.sstReset, TBaseType.rrw_reset, " "," "," "," "," "," "); 1459 adddatabrickscmds(ESqlStatementType.sstRestoreTable, TBaseType.rrw_restore, " "," "," "," "," "," "); 1460 adddatabrickscmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " "," "," "," "," "," "); 1461 adddatabrickscmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, "select","on","share"," "," "," "); 1462 adddatabrickscmds(ESqlStatementType.sstset, TBaseType.rrw_set, " "," "," "," "," "," "); 1463 adddatabrickscmds(ESqlStatementType.sstUseCatalog, TBaseType.rrw_set, "catalog"," "," "," "," "," "); 1464 adddatabrickscmds(ESqlStatementType.sstset, TBaseType.rrw_set, "time","zone"," "," "," "," "); 1465 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "all","functions"," "," "," "," "); 1466 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "all","in","share"," "," "," "); 1467 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "catalogs"," "," "," "," "," "); 1468 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "columns"," "," "," "," "," "); 1469 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","table"," "," "," "," "); 1470 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "external","locations"," "," "," "," "); 1471 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "functions"," "," "," "," "," "); 1472 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "grants"," "," "," "," "," "); 1473 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "grants","on","share"," "," "," "); 1474 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "grants","to","recipient"," "," "," "); 1475 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "groups"," "," "," "," "," "); 1476 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "partitions"," "," "," "," "," "); 1477 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "providers"," "," "," "," "," "); 1478 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "recipients"," "," "," "," "," "); 1479 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "schemas"," "," "," "," "," "); 1480 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "shares"," "," "," "," "," "); 1481 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "storage","credentials"," "," "," "," "); 1482 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "system","functions"," "," "," "," "); 1483 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "table","extended"," "," "," "," "); 1484 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "tables"," "," "," "," "," "); 1485 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "tblproperties"," "," "," "," "," "); 1486 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "user","functions"," "," "," "," "); 1487 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "users"," "," "," "," "," "); 1488 adddatabrickscmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "views"," "," "," "," "," "); 1489 adddatabrickscmds(ESqlStatementType.sstsync, TBaseType.rrw_databricks_sync, "schema"," "," "," "," "," "); 1490 adddatabrickscmds(ESqlStatementType.sstsync, TBaseType.rrw_databricks_sync, "table"," "," "," "," "," "); 1491 adddatabrickscmds(ESqlStatementType.ssttruncatetable, TBaseType.rrw_truncate, "table"," "," "," "," "," "); 1492 adddatabrickscmds(ESqlStatementType.sstUnCacheTable, TBaseType.rrw_databricks_uncache, "table"," "," "," "," "," "); 1493 adddatabrickscmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " "," "," "," "," "," "); 1494 adddatabrickscmds(ESqlStatementType.sstUseSchema, TBaseType.rrw_use, " "," "," "," "," "," "); 1495 adddatabrickscmds(ESqlStatementType.sstUseCatalog, TBaseType.rrw_use, "catalog"," "," "," "," "," "); 1496 adddatabrickscmds(ESqlStatementType.sstUseSchema, TBaseType.rrw_use, "database"," "," "," "," "," "); 1497 adddatabrickscmds(ESqlStatementType.sstUseSchema, TBaseType.rrw_use, "schema"," "," "," "," "," "); 1498 adddatabrickscmds(ESqlStatementType.sstVacuum, TBaseType.rrw_databricks_vacuum, " "," "," "," "," "," "); 1499 1500 adddatabrickscmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " "," "," "," "," "," "); 1501 1502 adddatabrickscmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " "," "," "," "," "," "); 1503 adddatabrickscmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1504 adddatabrickscmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare, " "," "," "," "," "," "); 1505 adddatabrickscmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_replace, "table"," "," "," "," "," "); 1506 adddatabrickscmds(ESqlStatementType.sstResetSession, TBaseType.rrw_reset, "session"," "," "," "," "," "); 1507 adddatabrickscmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " "," "," "," "," "," "); 1508 adddatabrickscmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " "," "," "," "," "," "); 1509 adddatabrickscmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " "," "," "," "," "," "); 1510 adddatabrickscmds(ESqlStatementType.sstset, TBaseType.rrw_set, "role"," "," "," "," "," "); 1511 adddatabrickscmds(ESqlStatementType.sstset, TBaseType.rrw_set, "session"," "," "," "," "," "); 1512 1513 adddatabrickscmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction"," "," "," "," "," "); 1514 1515 } 1516 void initprestocmds(){ 1517 addprestocmds(ESqlStatementType.sstalterfunction, TBaseType.rrw_alter, "function"," "," "," "," "," "); 1518 addprestocmds(ESqlStatementType.sstAlterSchema, TBaseType.rrw_alter, "schema"," "," "," "," "," "); 1519 addprestocmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1520 addprestocmds(ESqlStatementType.sstAnalyzeTable, TBaseType.rrw_analyze, " "," "," "," "," "," "); 1521 addprestocmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " "," "," "," "," "," "); 1522 addprestocmds(ESqlStatementType.sstcommit, TBaseType.rrw_commit, " "," "," "," "," "," "); 1523 addprestocmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function"," "," "," "," "," "); 1524 addprestocmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","function"," "," "," "); 1525 addprestocmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temporary","function"," "," "," "," "); 1526 addprestocmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "role"," "," "," "," "," "); 1527 addprestocmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "schema"," "," "," "," "," "); 1528 addprestocmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table"," "," "," "," "," "); 1529 addprestocmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view"," "," "," "," "," "); 1530 addprestocmds(ESqlStatementType.sstpostgresqlDeallocate, TBaseType.rrw_deallocate, "prepare"," "," "," "," "," "); 1531 addprestocmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " "," "," "," "," "," "); 1532 addprestocmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe, " "," "," "," "," "," "); 1533 addprestocmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function"," "," "," "," "," "); 1534 addprestocmds(ESqlStatementType.sstdroprole, TBaseType.rrw_drop, "role"," "," "," "," "," "); 1535 addprestocmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema"," "," "," "," "," "); 1536 addprestocmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," "," "," "," "," "); 1537 addprestocmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," "," "," "," "," "); 1538 addprestocmds(ESqlStatementType.sstExecute, TBaseType.rrw_execute, " "," "," "," "," "," "); 1539 addprestocmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " "," "," "," "," "," "); 1540 addprestocmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " "," "," "," "," "," "); 1541 addprestocmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1542 addprestocmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare, " "," "," "," "," "," "); 1543 addprestocmds(ESqlStatementType.sstResetSession, TBaseType.rrw_reset, "session"," "," "," "," "," "); 1544 addprestocmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " "," "," "," "," "," "); 1545 addprestocmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " "," "," "," "," "," "); 1546 addprestocmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " "," "," "," "," "," "); 1547 addprestocmds(ESqlStatementType.sstset, TBaseType.rrw_set, "role"," "," "," "," "," "); 1548 addprestocmds(ESqlStatementType.sstset, TBaseType.rrw_set, "session"," "," "," "," "," "); 1549 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "catalogs"," "," "," "," "," "); 1550 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "columns"," "," "," "," "," "); 1551 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","function"," "," "," "," "); 1552 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","table"," "," "," "," "); 1553 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","view"," "," "," "," "); 1554 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "current","roles"," "," "," "," "); 1555 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "functions"," "," "," "," "," "); 1556 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "grants"," "," "," "," "," "); 1557 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "role","grants"," "," "," "," "); 1558 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "roles"," "," "," "," "," "); 1559 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "schemas"," "," "," "," "," "); 1560 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "session"," "," "," "," "," "); 1561 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "stats"," "," "," "," "," "); 1562 addprestocmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "tables"," "," "," "," "," "); 1563 addprestocmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction"," "," "," "," "," "); 1564 addprestocmds(ESqlStatementType.sstUse, TBaseType.rrw_use, " "," "," "," "," "," "); 1565 addprestocmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " "," "," "," "," "," "); 1566 } 1567 1568 void initathenacmds(){ 1569 addathenacmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database"," "," "," "," "," "); 1570 addathenacmds(ESqlStatementType.sstalterfunction, TBaseType.rrw_alter, "function"," "," "," "," "," "); 1571 addathenacmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "schema"," "," "," "," "," "); 1572 addathenacmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1573 addathenacmds(ESqlStatementType.sstAnalyzeTable, TBaseType.rrw_analyze, " "," "," "," "," "," "); 1574 addathenacmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " "," "," "," "," "," "); 1575 addathenacmds(ESqlStatementType.sstcommit, TBaseType.rrw_commit, " "," "," "," "," "," "); 1576 addathenacmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database"," "," "," "," "," "); 1577 addathenacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function"," "," "," "," "," "); 1578 addathenacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","function"," "," "," "); 1579 addathenacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temporary","function"," "," "," "," "); 1580 addathenacmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "role"," "," "," "," "," "); 1581 addathenacmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "schema"," "," "," "," "," "); 1582 addathenacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table"," "," "," "," "," "); 1583 addathenacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external","table"," "," "," "," "); 1584 addathenacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view"," "," "," "," "," "); 1585 addathenacmds(ESqlStatementType.sstpostgresqlDeallocate, TBaseType.rrw_deallocate, "prepare"," "," "," "," "," "); 1586 addathenacmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " "," "," "," "," "," "); 1587 addathenacmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe, " "," "," "," "," "," "); 1588 addathenacmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database"," "," "," "," "," "); 1589 addathenacmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function"," "," "," "," "," "); 1590 addathenacmds(ESqlStatementType.sstdroprole, TBaseType.rrw_drop, "role"," "," "," "," "," "); 1591 addathenacmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "schema"," "," "," "," "," "); 1592 addathenacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," "," "," "," "," "); 1593 addathenacmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," "," "," "," "," "); 1594 addathenacmds(ESqlStatementType.sstExecute, TBaseType.rrw_execute, " "," "," "," "," "," "); 1595 addathenacmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " "," "," "," "," "," "); 1596 addathenacmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " "," "," "," "," "," "); 1597 addathenacmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1598 addathenacmds(ESqlStatementType.sstmsck, TBaseType.rrw_athena_msck, " "," "," "," "," "," "); 1599 addathenacmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare, " "," "," "," "," "," "); 1600 addathenacmds(ESqlStatementType.sstResetSession, TBaseType.rrw_reset, "session"," "," "," "," "," "); 1601 addathenacmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " "," "," "," "," "," "); 1602 addathenacmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " "," "," "," "," "," "); 1603 addathenacmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " "," "," "," "," "," "); 1604 addathenacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "role"," "," "," "," "," "); 1605 addathenacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "session"," "," "," "," "," "); 1606 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "catalogs"," "," "," "," "," "); 1607 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "columns"," "," "," "," "," "); 1608 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","function"," "," "," "," "); 1609 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","table"," "," "," "," "); 1610 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "create","view"," "," "," "," "); 1611 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "current","roles"," "," "," "," "); 1612 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "databases"," "," "," "," "," "); 1613 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "functions"," "," "," "," "," "); 1614 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "grants"," "," "," "," "," "); 1615 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "partitions"," "," "," "," "," "); 1616 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "role","grants"," "," "," "," "); 1617 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "roles"," "," "," "," "," "); 1618 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "schemas"," "," "," "," "," "); 1619 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "session"," "," "," "," "," "); 1620 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "stats"," "," "," "," "," "); 1621 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "tables"," "," "," "," "," "); 1622 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "tblproperties"," "," "," "," "," "); 1623 addathenacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, "views"," "," "," "," "," "); 1624 addathenacmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction"," "," "," "," "," "); 1625 addathenacmds(ESqlStatementType.sstunload, TBaseType.rrw_athena_unload, " ", " ", " ", " ", " ", " "); 1626 addathenacmds(ESqlStatementType.sstUse, TBaseType.rrw_use, " "," "," "," "," "," "); 1627 addathenacmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " "," "," "," "," "," "); 1628 } 1629 1630 void initsparksqlcmds(){ 1631 addsparksqlcmds(ESqlStatementType.sstAddFile, TBaseType.rrw_add, "file"," "," "," "," "," "); 1632 addsparksqlcmds(ESqlStatementType.sstAddJar, TBaseType.rrw_add, "jar"," "," "," "," "," "); 1633 addsparksqlcmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database"," "," "," "," "," "); 1634 addsparksqlcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1635 addsparksqlcmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view"," "," "," "," "," "); 1636 addsparksqlcmds(ESqlStatementType.sstanalyzeTable, TBaseType.rrw_analyze, "table"," "," "," "," "," "); 1637 addsparksqlcmds(ESqlStatementType.sstCacheTable, TBaseType.rrw_cache, "table"," "," "," "," "," "); 1638 addsparksqlcmds(ESqlStatementType.sstCacheTable, TBaseType.rrw_cache, "lazy","table"," "," "," "," "); 1639 addsparksqlcmds(ESqlStatementType.sstClearCache, TBaseType.rrw_clear, "cache"," "," "," "," "," "); 1640 addsparksqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external","table"," "," "," "," "); 1641 addsparksqlcmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database"," "," "," "," "," "); 1642 addsparksqlcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function"," "," "," "," "," "); 1643 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "global","temporary","view"," "," "," "); 1644 addsparksqlcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","function"," "," "," "); 1645 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","global","temporary","view"," "); 1646 addsparksqlcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or","replace","temporary","function"," "," "); 1647 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","temporary","view"," "," "); 1648 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or","replace","view"," "," "," "); 1649 addsparksqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table"," "," "," "," "," "); 1650 addsparksqlcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temporary","function"," "," "," "," "); 1651 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "temporary","view"," "," "," "," "); 1652 addsparksqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view"," "," "," "," "," "); 1653 addsparksqlcmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_spark_desc, " "," "," "," "," "," "); 1654 addsparksqlcmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_describe, " "," "," "," "," "," "); 1655 addsparksqlcmds(ESqlStatementType.sstdescribeDatabase, TBaseType.rrw_spark_desc, "database"," "," "," "," "," "); 1656 addsparksqlcmds(ESqlStatementType.sstdescribeFunction, TBaseType.rrw_spark_desc, "function"," "," "," "," "," "); 1657 addsparksqlcmds(ESqlStatementType.sstdescribeQuery, TBaseType.rrw_spark_desc, "query"," "," "," "," "," "); 1658 addsparksqlcmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_spark_desc, "table"," "," "," "," "," "); 1659 addsparksqlcmds(ESqlStatementType.sstdescribeFunction, TBaseType.rrw_describe, "function"," "," "," "," "," "); 1660 addsparksqlcmds(ESqlStatementType.sstdescribeDatabase, TBaseType.rrw_describe, "database"," "," "," "," "," "); 1661 addsparksqlcmds(ESqlStatementType.sstdescribeQuery, TBaseType.rrw_describe, "query"," "," "," "," "," "); 1662 addsparksqlcmds(ESqlStatementType.sstdescribeTable, TBaseType.rrw_describe, "table"," "," "," "," "," "); 1663 addsparksqlcmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "schema"," "," "," "," "," "); 1664 addsparksqlcmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database"," "," "," "," "," "); 1665 addsparksqlcmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function"," "," "," "," "," "); 1666 addsparksqlcmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "temporary","function"," "," "," "," "); 1667 addsparksqlcmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," "," "," "," "," "); 1668 addsparksqlcmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," "," "," "," "," "); 1669 addsparksqlcmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " "," "," "," "," "," "); 1670 addsparksqlcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 1671 addsparksqlcmds(ESqlStatementType.sstListFile, TBaseType.rrw_spark_list, "file"," "," "," "," "," "); 1672 addsparksqlcmds(ESqlStatementType.sstListJar, TBaseType.rrw_spark_list, "jar"," "," "," "," "," "); 1673 addsparksqlcmds(ESqlStatementType.sstLoadData, TBaseType.rrw_load, "data"," "," "," "," "," "); 1674 addsparksqlcmds(ESqlStatementType.sstmsck, TBaseType.rrw_spark_msck, "repair","table"," "," "," "," "); 1675 addsparksqlcmds(ESqlStatementType.sstRefresh, TBaseType.rrw_refresh, " "," "," "," "," "," "); 1676 addsparksqlcmds(ESqlStatementType.sstRefreshFunction, TBaseType.rrw_refresh, "function"," "," "," "," "," "); 1677 addsparksqlcmds(ESqlStatementType.sstRefreshTable, TBaseType.rrw_refresh, "table"," "," "," "," "," "); 1678 addsparksqlcmds(ESqlStatementType.sstReset, TBaseType.rrw_reset, " "," "," "," "," "," "); 1679 addsparksqlcmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " "," "," "," "," "," "); 1680 addsparksqlcmds(ESqlStatementType.sstset, TBaseType.rrw_set, " "," "," "," "," "," "); 1681 addsparksqlcmds(ESqlStatementType.sstSetTimeZone, TBaseType.rrw_set, "time","zone"," "," "," "," "); 1682 addsparksqlcmds(ESqlStatementType.sstShowColumns, TBaseType.rrw_show, "columns"," "," "," "," "," "); 1683 addsparksqlcmds(ESqlStatementType.sstShowCreateTable, TBaseType.rrw_show, "create","table"," "," "," "," "); 1684 addsparksqlcmds(ESqlStatementType.sstShowDatabases, TBaseType.rrw_show, "databases"," "," "," "," "," "); 1685 addsparksqlcmds(ESqlStatementType.sstShowFunctions, TBaseType.rrw_show, "functions"," "," "," "," "," "); 1686 addsparksqlcmds(ESqlStatementType.sstShowPartitions, TBaseType.rrw_show, "partitions"," "," "," "," "," "); 1687 addsparksqlcmds(ESqlStatementType.sstShowTableExtended, TBaseType.rrw_show, "table","extended"," "," "," "," "); 1688 addsparksqlcmds(ESqlStatementType.sstShowTables, TBaseType.rrw_show, "tables"," "," "," "," "," "); 1689 addsparksqlcmds(ESqlStatementType.sstShowTblProperties, TBaseType.rrw_show, "tblproperties"," "," "," "," "," "); 1690 addsparksqlcmds(ESqlStatementType.sstShowUser, TBaseType.rrw_show, "user"," "," "," "," "," "); 1691 addsparksqlcmds(ESqlStatementType.sstShowViews, TBaseType.rrw_show, "views"," "," "," "," "," "); 1692 addsparksqlcmds(ESqlStatementType.ssttruncatetable, TBaseType.rrw_truncate, "table"," "," "," "," "," "); 1693 addsparksqlcmds(ESqlStatementType.sstrepairtable, TBaseType.rrw_repair, "table"," "," "," "," "," "); 1694 addsparksqlcmds(ESqlStatementType.sstUnCacheTable, TBaseType.rrw_spark_uncache, "table"," "," "," "," "," "); 1695 addsparksqlcmds(ESqlStatementType.sstUse, TBaseType.rrw_use, " "," "," "," "," "," "); 1696 1697 } 1698 1699 void initmysqlcmds(){ 1700// cmd must be sort alphabetically 1701 addmysqlcmds(ESqlStatementType.sstmysqlalterview, TBaseType.rrw_alter, "algorithm"," "," "," "," "," "); 1702 addmysqlcmds(ESqlStatementType.sstmysqlalterdatabase, TBaseType.rrw_alter, "database"," "," "," "," "," "); 1703 addmysqlcmds(ESqlStatementType.sstmysqlalterfunction, TBaseType.rrw_alter, "function"," "," "," "," "," "); 1704 addmysqlcmds(ESqlStatementType.sstmysqlalterprocedure, TBaseType.rrw_alter, "procedure"," "," "," "," "," "); 1705 addmysqlcmds(ESqlStatementType.sstmysqlalterview, TBaseType.rrw_alter, "sql","security","definer","view"," "," "); 1706 addmysqlcmds(ESqlStatementType.sstmysqlalterview, TBaseType.rrw_alter, "sql","security","invoker","view"," "," "); 1707 addmysqlcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table"," "," "," "," "," "); 1708 addmysqlcmds(ESqlStatementType.sstmysqlalterview, TBaseType.rrw_alter, "view"," "," "," "," "," "); 1709 addmysqlcmds(ESqlStatementType.sstmysqlanalyzetable, TBaseType.rrw_analyze, "table"," "," "," "," "," "); 1710 addmysqlcmds(ESqlStatementType.sstmysqlbackuptable, TBaseType.rrw_backup, "table"," "," "," "," "," "); 1711 addmysqlcmds(ESqlStatementType.sstmysqlstarttransaction, TBaseType.rrw_begin, " "," "," "," "," "," "); 1712 addmysqlcmds(ESqlStatementType.sstmysqlcacheindex, TBaseType.rrw_cache, "index"," "," "," "," "," "); 1713 addmysqlcmds(ESqlStatementType.sstmysqlcall, TBaseType.rrw_call," "," "," "," "," "," "); 1714 addmysqlcmds(ESqlStatementType.sstmysqlcase, TBaseType.rrw_case," "," "," "," "," "," "); 1715 addmysqlcmds(ESqlStatementType.sstmysqlchangemasterto, TBaseType.rrw_change,"master", "to"," "," "," "," "); 1716 addmysqlcmds(ESqlStatementType.sstmysqlchecktable, TBaseType.rrw_check,"table"," "," "," "," "," "); 1717 addmysqlcmds(ESqlStatementType.sstmysqlchecktable, TBaseType.rrw_check,"tables"," "," "," "," "," "); 1718 addmysqlcmds(ESqlStatementType.sstmysqlchecksumtable, TBaseType.rrw_checksum,"table"," "," "," "," "," "); 1719 addmysqlcmds(ESqlStatementType.sstmysqlclose, TBaseType.rrw_close," "," "," "," "," "," "); 1720 addmysqlcmds(ESqlStatementType.sstmysqlcommit, TBaseType.rrw_commit," "," "," "," "," "," "); 1721 addmysqlcmds(ESqlStatementType.sstmysqlcreatefunction, TBaseType.rrw_create,"aggregate","function"," "," "," "," "); 1722 addmysqlcmds(ESqlStatementType.sstmysqlcreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 1723 addmysqlcmds(ESqlStatementType.sstmysqlcreatefunction, TBaseType.rrw_create,"definer", "=", "current_user", "function"," "," "); 1724 addmysqlcmds(ESqlStatementType.sstmysqlcreateprocedure, TBaseType.rrw_create,"definer", "=", "current_user", "procedure"," "," "); 1725 addmysqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"definer", "=", "current_user", "trigger"," "," "); 1726 addmysqlcmds(ESqlStatementType.sstmysqlcreateprocedure, TBaseType.rrw_create,"definer", "=","*","procedure"," "," "); 1727 addmysqlcmds(ESqlStatementType.sstmysqlcreatefunction, TBaseType.rrw_create,"definer", "=","*","function"," "," "); 1728 addmysqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"definer", "=","*","trigger"," "," "); 1729 addmysqlcmds(ESqlStatementType.sstmysqlcreatefunction, TBaseType.rrw_create,"definer", "=","*","*","*","function"); 1730 addmysqlcmds(ESqlStatementType.sstmysqlcreateprocedure, TBaseType.rrw_create,"definer", "=","*","*","*","procedure"); 1731 addmysqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"definer", "=","*","*","*","trigger"); 1732 addmysqlcmds(ESqlStatementType.sstmysqlcreateindex, TBaseType.rrw_create,"fulltext","index"," "," "," "," "); 1733 addmysqlcmds(ESqlStatementType.sstmysqlcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 1734 addmysqlcmds(ESqlStatementType.sstmysqlcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 1735 addmysqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"or","replace","table"," "," "," "); 1736 addmysqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"or","replace","view"," "," "," "); 1737 addmysqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"or","replace","*","*","*","view"); 1738 addmysqlcmds(ESqlStatementType.sstmysqlcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 1739 addmysqlcmds(ESqlStatementType.sstmysqlcreateindex, TBaseType.rrw_create,"spatial","index"," "," "," "," "); 1740 addmysqlcmds(ESqlStatementType.sstmysqlcreatedatabase, TBaseType.rrw_create,"schema"," "," "," "," "," "); 1741 addmysqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 1742 addmysqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"temp","table"," "," "," "," "); 1743 addmysqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"temporary","table"," "," "," "," "); 1744 addmysqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 1745 addmysqlcmds(ESqlStatementType.sstmysqlcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 1746 addmysqlcmds(ESqlStatementType.sstmysqlcreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 1747 addmysqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 1748 addmysqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"*","*","*","*","*","view"); 1749 addmysqlcmds(ESqlStatementType.sstmysqldeallocateprepare, TBaseType.rrw_deallocate,"prepare"," "," "," "," "," "); 1750 addmysqlcmds(ESqlStatementType.sstmysqldeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 1751 addmysqlcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 1752 addmysqlcmds(ESqlStatementType.sstmysqldelimiter, TBaseType.rrw_mysql_delimiter," "," "," "," "," "," "); 1753 addmysqlcmds(ESqlStatementType.sstdescribe, TBaseType.rrw_mysql_desc," "," "," "," "," "," "); 1754 addmysqlcmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe," "," "," "," "," "," "); 1755 addmysqlcmds(ESqlStatementType.sstmysqldo, TBaseType.rrw_do," "," "," "," "," "," "); 1756 addmysqlcmds(ESqlStatementType.sstmysqldropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 1757 addmysqlcmds(ESqlStatementType.sstmysqldropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 1758 addmysqlcmds(ESqlStatementType.sstmysqldropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 1759 addmysqlcmds(ESqlStatementType.sstmysqldropprepare, TBaseType.rrw_drop,"prepare"," "," "," "," "," "); 1760 addmysqlcmds(ESqlStatementType.sstmysqldropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 1761 addmysqlcmds(ESqlStatementType.sstmysqldropdatabase, TBaseType.rrw_drop,"schema"," "," "," "," "," "); 1762 addmysqlcmds(ESqlStatementType.sstmysqldroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 1763 addmysqlcmds(ESqlStatementType.sstmysqldroptable, TBaseType.rrw_drop,"tables"," "," "," "," "," "); 1764 addmysqlcmds(ESqlStatementType.sstmysqldroptable, TBaseType.rrw_drop,"temporary","table"," "," "," "," "); 1765 addmysqlcmds(ESqlStatementType.sstmysqldroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 1766 addmysqlcmds(ESqlStatementType.sstmysqldropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 1767 addmysqlcmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 1768 addmysqlcmds(ESqlStatementType.sstmysqlexecute, TBaseType.rrw_execute," "," "," "," "," "," "); 1769 addmysqlcmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain," "," "," "," "," "," "); 1770 addmysqlcmds(ESqlStatementType.sstmysqlfetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 1771 addmysqlcmds(ESqlStatementType.sstmysqlflush, TBaseType.rrw_flush," "," "," "," "," "," "); 1772 addmysqlcmds(ESqlStatementType.sstmysqlgrant, TBaseType.rrw_grant," "," "," "," "," "," "); 1773 addmysqlcmds(ESqlStatementType.sstmysqlhandler, TBaseType.rrw_handler," "," "," "," "," "," "); 1774 addmysqlcmds(ESqlStatementType.sstmysqlifstmt, TBaseType.rrw_if," "," "," "," "," "," "); 1775 addmysqlcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 1776 addmysqlcmds(ESqlStatementType.sstmysqliterate, TBaseType.rrw_iterate," "," "," "," "," "," "); 1777 addmysqlcmds(ESqlStatementType.sstmysqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 1778 addmysqlcmds(ESqlStatementType.sstmysqlleave, TBaseType.rrw_leave," "," "," "," "," "," "); 1779 addmysqlcmds(ESqlStatementType.sstmysqlloaddatafrommaster, TBaseType.rrw_load,"data", "from", "master"," "," "," "); 1780 addmysqlcmds(ESqlStatementType.sstmysqlloaddatainfile, TBaseType.rrw_load,"data", "infile"," "," "," "," "); 1781 addmysqlcmds(ESqlStatementType.sstmysqlloaddatainfile, TBaseType.rrw_load,"data", "local","infile"," "," "," "); 1782 addmysqlcmds(ESqlStatementType.sstmysqlloadindexintocache, TBaseType.rrw_load,"index", "into", "cache"," "," "," "); 1783 addmysqlcmds(ESqlStatementType.sstmysqlloadtable, TBaseType.rrw_load,"table"," "," "," "," "," "); 1784 addmysqlcmds(ESqlStatementType.sstmysqllocktable, TBaseType.rrw_lock,"table"," "," "," "," "," "); 1785 addmysqlcmds(ESqlStatementType.sstmysqllocktable, TBaseType.rrw_lock,"tables"," "," "," "," "," "); 1786 addmysqlcmds(ESqlStatementType.sstmysqlloop, TBaseType.rrw_loop," "," "," "," "," "," "); 1787 addmysqlcmds(ESqlStatementType.sstmysqlopen, TBaseType.rrw_open," "," "," "," "," "," "); 1788 addmysqlcmds(ESqlStatementType.sstmysqloptimizetable, TBaseType.rrw_optimize,"local","table"," "," "," "," "); 1789 addmysqlcmds(ESqlStatementType.sstmysqloptimizetable, TBaseType.rrw_optimize,"no_write_to_binlog","table"," "," "," "," "); 1790 addmysqlcmds(ESqlStatementType.sstmysqloptimizetable, TBaseType.rrw_optimize,"table"," "," "," "," "," "); 1791 addmysqlcmds(ESqlStatementType.sstmysqlprepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 1792 addmysqlcmds(ESqlStatementType.sstmysqlpurgelogs, TBaseType.rrw_purge,"binary","logs"," "," "," "," "); 1793 addmysqlcmds(ESqlStatementType.sstmysqlpurgelogs, TBaseType.rrw_purge,"logs"," "," "," "," "," "); 1794 addmysqlcmds(ESqlStatementType.sstmysqlpurgelogs, TBaseType.rrw_purge,"master","logs"," "," "," "," "); 1795 addmysqlcmds(ESqlStatementType.sstmysqlreleasesavepoint,TBaseType. rrw_release,"savepoint"," "," "," "," "," "); 1796 addmysqlcmds(ESqlStatementType.sstmysqlrenametable, TBaseType.rrw_rename,"table"," "," "," "," "," "); 1797 addmysqlcmds(ESqlStatementType.sstmysqlrenameuser, TBaseType.rrw_rename,"user"," "," "," "," "," "); 1798 addmysqlcmds(ESqlStatementType.sstmysqlrepairtable,TBaseType.rrw_repair,"local","table"," "," "," "," "); 1799 addmysqlcmds(ESqlStatementType.sstmysqlrepairtable, TBaseType.rrw_repair,"no_write_to_binlog","table"," "," "," "," "); 1800 addmysqlcmds(ESqlStatementType.sstmysqlrepairtable, TBaseType.rrw_repair,"table"," "," "," "," "," "); 1801 addmysqlcmds(ESqlStatementType.sstmysqlrepeat, TBaseType.rrw_repeat," "," "," "," "," "," "); 1802 addmysqlcmds(ESqlStatementType.sstmysqlreplace, TBaseType.rrw_replace," "," "," "," "," "," "); 1803 addmysqlcmds(ESqlStatementType.sstmysqlreset, TBaseType.rrw_reset," "," "," "," "," "," "); 1804 addmysqlcmds(ESqlStatementType.sstmysqlresetmaster, TBaseType.rrw_reset,"master"," "," "," "," "," "); 1805 addmysqlcmds(ESqlStatementType.sstmysqlresetslave, TBaseType.rrw_reset,"slave"," "," "," "," "," "); 1806 addmysqlcmds(ESqlStatementType.sstmysqlrestoretable, TBaseType.rrw_restore,"table"," "," "," "," "," "); 1807 addmysqlcmds(ESqlStatementType.sstmysqlrevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 1808 addmysqlcmds(ESqlStatementType.sstmysqlrollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 1809 addmysqlcmds(ESqlStatementType.sstmysqlsavepoint, TBaseType.rrw_savepoint," "," "," "," "," "," "); 1810 addmysqlcmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 1811 addmysqlcmds(ESqlStatementType.sstmysqlset, TBaseType.rrw_set," "," "," "," "," "," "); 1812 addmysqlcmds(ESqlStatementType.sstmysqlsetautocommit, TBaseType.rrw_set,"autocommit"," "," "," "," "," "); 1813 addmysqlcmds(ESqlStatementType.sstmysqldelimiter, TBaseType.rrw_set,"delimiter"," "," "," "," "," "); 1814 addmysqlcmds(ESqlStatementType.sstmysqlsetglobalsql_slave_skip_counter, TBaseType.rrw_set,"global", "sql_slave_skip_counter"," "," "," "," "); 1815 addmysqlcmds(ESqlStatementType.sstmysqlsettransaction, TBaseType.rrw_set,"global","transaction"," "," "," "," "); 1816 addmysqlcmds(ESqlStatementType.sstmysqlset, TBaseType.rrw_set,"PASSWORD"," "," "," "," "," "); 1817 addmysqlcmds(ESqlStatementType.sstmysqlsettransaction, TBaseType.rrw_set,"session","transaction"," "," "," "," "); 1818 addmysqlcmds(ESqlStatementType.sstmysqlsetsql_log_bin, TBaseType.rrw_set,"sql_log_bin"," "," "," "," "," "); 1819 addmysqlcmds(ESqlStatementType.sstmysqlsettransaction, TBaseType.rrw_set,"transaction"," "," "," "," "," "); 1820 addmysqlcmds(ESqlStatementType.sstmysqlshowlogs, TBaseType.rrw_show,"bdb","logs"," "," "," "," "); 1821 addmysqlcmds(ESqlStatementType.sstmysqlshowbinlogevents, TBaseType.rrw_show,"binlog", "events"," "," "," "," "); 1822 addmysqlcmds(ESqlStatementType.sstmysqlshowcharacterset, TBaseType.rrw_show,"character", "set"," "," "," "," "); 1823 addmysqlcmds(ESqlStatementType.sstmysqlshowcharacterset, TBaseType.rrw_show,"charset", " "," "," "," "," "); 1824 addmysqlcmds(ESqlStatementType.sstmysqlshowcollation, TBaseType.rrw_show,"collation"," "," "," "," "," "); 1825 addmysqlcmds(ESqlStatementType.sstmysqlshowcolumns, TBaseType.rrw_show,"columns"," "," "," "," "," "); 1826 addmysqlcmds(ESqlStatementType.sstmysqlshowwarnings, TBaseType.rrw_show,"count"," "," "," "," "," "); 1827 addmysqlcmds(ESqlStatementType.sstmysqlshowcreateschema, TBaseType.rrw_show,"create", "schema"," "," "," "," "); 1828 addmysqlcmds(ESqlStatementType.sstmysqlshowcreatedatabase, TBaseType.rrw_show,"create", "database"," "," "," "," "); 1829 addmysqlcmds(ESqlStatementType.sstmysqlshowcreatefunction, TBaseType.rrw_show,"create","function"," "," "," "," "); 1830 addmysqlcmds(ESqlStatementType.sstmysqlshowcreateprocedure, TBaseType.rrw_show,"create","procedure"," "," "," "," "); 1831 addmysqlcmds(ESqlStatementType.sstmysqlshowcreatetable, TBaseType.rrw_show,"create","table"," "," "," "," "); 1832 addmysqlcmds(ESqlStatementType.sstmysqlshowcreateview, TBaseType.rrw_show,"create","view"," "," "," "," "); 1833 addmysqlcmds(ESqlStatementType.sstmysqlshowdatabases, TBaseType.rrw_show,"databases"," "," "," "," "," "); 1834 addmysqlcmds(ESqlStatementType.sstmysqlshowengine, TBaseType.rrw_show,"engine"," "," "," "," "," "); 1835 addmysqlcmds(ESqlStatementType.sstmysqlshowengines, TBaseType.rrw_show,"engines"," "," "," "," "," "); 1836 addmysqlcmds(ESqlStatementType.sstmysqlshowerrors, TBaseType.rrw_show,"errors"," "," "," "," "," "); 1837 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"extend","index"," "," "," "," "); 1838 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"extend","indexes"," "," "," "," "); 1839 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"extend","keys"," "," "," "," "); 1840 addmysqlcmds(ESqlStatementType.sstmysqlshowfields, TBaseType.rrw_show,"fields"," "," "," "," "," "); 1841 addmysqlcmds(ESqlStatementType.sstmysqlshowcolumns, TBaseType.rrw_show,"full","columns"," "," "," "," "); 1842 addmysqlcmds(ESqlStatementType.sstmysqlshowfields, TBaseType.rrw_show,"full","fields"," "," "," "," "); 1843 addmysqlcmds(ESqlStatementType.sstmysqlshowprocesslist, TBaseType.rrw_show,"full","processlist"," "," "," "," "); 1844 addmysqlcmds(ESqlStatementType.sstmysqlshowtables, TBaseType.rrw_show,"full","tables"," "," "," "," "); 1845 addmysqlcmds(ESqlStatementType.sstmysqlshowfunctionstatus, TBaseType.rrw_show,"function", "status"," "," "," "," "); 1846 addmysqlcmds(ESqlStatementType.sstmysqlshowstatus, TBaseType.rrw_show,"global","status"," "," "," "," "); 1847 addmysqlcmds(ESqlStatementType.sstmysqlshowvariables, TBaseType.rrw_show,"global","variables"," "," "," "," "); 1848 addmysqlcmds(ESqlStatementType.sstmysqlshowgrants, TBaseType.rrw_show,"grants"," "," "," "," "," "); 1849 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"index"," "," "," "," "," "); 1850 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"indexes"," "," "," "," "," "); 1851 addmysqlcmds(ESqlStatementType.sstmysqlshowinnodbstatus, TBaseType.rrw_show,"innodb", "status"," "," "," "," "); 1852 addmysqlcmds(ESqlStatementType.sstmysqlshowindex, TBaseType.rrw_show,"keys"," "," "," "," "," "); 1853 addmysqlcmds(ESqlStatementType.sstmysqlshowlogs, TBaseType.rrw_show,"logs"," "," "," "," "," "); 1854 addmysqlcmds(ESqlStatementType.sstmysqlshowmasterlogs, TBaseType.rrw_show,"master", "logs"," "," "," "," "); 1855 addmysqlcmds(ESqlStatementType.sstmysqlshowmasterstatus, TBaseType.rrw_show,"master", "status"," "," "," "," "); 1856 addmysqlcmds(ESqlStatementType.sstmysqlshowtables, TBaseType.rrw_show,"open","tables"," "," "," "," "); 1857 addmysqlcmds(ESqlStatementType.sstmysqlshowplugins, TBaseType.rrw_show,"plugins"," "," "," "," "," "); 1858 addmysqlcmds(ESqlStatementType.sstmysqlshowprivileges, TBaseType.rrw_show,"privileges"," "," "," "," "," "); 1859 addmysqlcmds(ESqlStatementType.sstmysqlshowfunctionstatus, TBaseType.rrw_show,"procedure", "status"," "," "," "," "); 1860 addmysqlcmds(ESqlStatementType.sstmysqlshowprocesslist, TBaseType.rrw_show,"processlist"," "," "," "," "," "); 1861 addmysqlcmds(ESqlStatementType.sstmysqlshowprofile, TBaseType.rrw_show,"profile"," "," "," "," "," "); 1862 addmysqlcmds(ESqlStatementType.sstmysqlshowprofiles, TBaseType.rrw_show,"profiles"," "," "," "," "," "); 1863 addmysqlcmds(ESqlStatementType.sstmysqlshowreplicaStatus, TBaseType.rrw_show,"replica","status"," "," "," "," "); 1864 addmysqlcmds(ESqlStatementType.sstmysqlshowstatus, TBaseType.rrw_show,"session","status"," "," "," "," "); 1865 addmysqlcmds(ESqlStatementType.sstmysqlshowvariables, TBaseType.rrw_show,"session","variables"," "," "," "," "); 1866 addmysqlcmds(ESqlStatementType.sstmysqlshowslavehosts, TBaseType.rrw_show,"slave", "hosts"," "," "," "," "); 1867 addmysqlcmds(ESqlStatementType.sstmysqlshowslavestatus, TBaseType.rrw_show,"slave", "status"," "," "," "," "); 1868 addmysqlcmds(ESqlStatementType.sstmysqlshowstatus, TBaseType.rrw_show,"status"," "," "," "," "," "); 1869 addmysqlcmds(ESqlStatementType.sstmysqlshowengines, TBaseType.rrw_show,"storage","engines"," "," "," "," "); 1870 addmysqlcmds(ESqlStatementType.sstmysqlshowtablestatus, TBaseType.rrw_show,"table", "status"," "," "," "," "); 1871 addmysqlcmds(ESqlStatementType.sstmysqlshowtables, TBaseType.rrw_show,"tables"," "," "," "," "," "); 1872 addmysqlcmds(ESqlStatementType.sstmysqlshowtriggers, TBaseType.rrw_show,"triggers"," "," "," "," "," "); 1873 addmysqlcmds(ESqlStatementType.sstmysqlshowvariables, TBaseType.rrw_show,"variables"," "," "," "," "," "); 1874 addmysqlcmds(ESqlStatementType.sstmysqlshowwarnings, TBaseType.rrw_show,"warnings"," "," "," "," "," "); 1875 addmysqlcmds(ESqlStatementType.sstmysqlsignal, TBaseType.rrw_signal," "," "," "," "," "," "); 1876 addmysqlcmds(ESqlStatementType.sstmysqlstartslave, TBaseType.rrw_start,"slave"," "," "," "," "," "); 1877 addmysqlcmds(ESqlStatementType.sstmysqlstarttransaction, TBaseType.rrw_start,"transaction"," "," "," "," "," "); 1878 addmysqlcmds(ESqlStatementType.sstmysqlstopslave, TBaseType.rrw_stop,"slave"," "," "," "," "," "); 1879 addmysqlcmds(ESqlStatementType.sstmysqltruncate, TBaseType.rrw_truncate," "," "," "," "," "," "); 1880 addmysqlcmds(ESqlStatementType.sstmysqlunlocktable, TBaseType.rrw_unlock,"tables"," "," "," "," "," "); 1881 addmysqlcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 1882 addmysqlcmds(ESqlStatementType.sstmysqluse, TBaseType.rrw_use," "," "," "," "," "," "); 1883 addmysqlcmds(ESqlStatementType.sstmysqlwhile, TBaseType.rrw_while," "," "," "," "," "," "); 1884 1885} 1886 1887void initmdxcmds(){ 1888// cmd must be sort alphabetically 1889 addmdxcmds(ESqlStatementType.sstmdxaltercube, TBaseType.rrw_alter,"cube"," "," "," "," "," "); 1890 addmdxcmds(ESqlStatementType.sstmdxalterdimension, TBaseType.rrw_alter,"dimension"," "," "," "," "," "); 1891 addmdxcmds(ESqlStatementType.sstmdxcalculate, TBaseType.rrw_calculate," "," "," "," "," "," "); 1892 addmdxcmds(ESqlStatementType.sstmdxcall, TBaseType.rrw_call," "," "," "," "," "," "); 1893 addmdxcmds(ESqlStatementType.sstmdxcase, TBaseType.rrw_case," "," "," "," "," "," "); 1894 addmdxcmds(ESqlStatementType.sstmdxclearcalculations, TBaseType.rrw_clear,"calculations"," "," "," "," "," "); 1895 addmdxcmds(ESqlStatementType.sstmdxcreateaction, TBaseType.rrw_create,"action"," "," "," "," "," "); 1896 addmdxcmds(ESqlStatementType.sstmdxcreatemember, TBaseType.rrw_create,"calculated","member"," "," "," "," "); 1897 addmdxcmds(ESqlStatementType.sstmdxcreatecellcalculation, TBaseType.rrw_create,"cell","calculation"," "," "," "," "); 1898 addmdxcmds(ESqlStatementType.sstmdxcreatedimensionmember, TBaseType.rrw_create,"dimension","member"," "," "," "," "); 1899 addmdxcmds(ESqlStatementType.sstmdxcreateglobalcube, TBaseType.rrw_create,"global","cube"," "," "," "," "); 1900 addmdxcmds(ESqlStatementType.sstmdxcreateset, TBaseType.rrw_create,"hidden","set"," "," "," "," "); 1901 addmdxcmds(ESqlStatementType.sstmdxcreatemeasure, TBaseType.rrw_create,"measure"," "," "," "," "," "); 1902 addmdxcmds(ESqlStatementType.sstmdxcreatemember, TBaseType.rrw_create,"member"," "," "," "," "," "); 1903 addmdxcmds(ESqlStatementType.sstmdxcreatemember, TBaseType.rrw_create,"session","calculated","memeber"," "," "," "); 1904 addmdxcmds(ESqlStatementType.sstmdxcreatesessioncube, TBaseType.rrw_create,"session","cube"," "," "," "," "); 1905 addmdxcmds(ESqlStatementType.sstmdxcreatedimensionmember, TBaseType.rrw_create,"session","dimension","member"," "," "," "); 1906 addmdxcmds(ESqlStatementType.sstmdxcreateset, TBaseType.rrw_create,"session","hidden","set"," "," "," "); 1907 addmdxcmds(ESqlStatementType.sstmdxcreatemember, TBaseType.rrw_create,"session","memeber"," "," "," "," "); 1908 addmdxcmds(ESqlStatementType.sstmdxcreateset, TBaseType.rrw_create,"session","set"," "," "," "," "); 1909 addmdxcmds(ESqlStatementType.sstmdxcreateset, TBaseType.rrw_create,"set"," "," "," "," "," "); 1910 addmdxcmds(ESqlStatementType.sstmdxcreatesubcube, TBaseType.rrw_create,"subcube"," "," "," "," "," "); 1911 addmdxcmds(ESqlStatementType.sstmdxdrillthrough, TBaseType.rrw_drillthrough," "," "," "," "," "," "); 1912 addmdxcmds(ESqlStatementType.sstmdxdropaction, TBaseType.rrw_drop,"action"," "," "," "," "," "); 1913 addmdxcmds(ESqlStatementType.sstmdxdropmember, TBaseType.rrw_drop,"calculated","member"," "," "," "," "); 1914 addmdxcmds(ESqlStatementType.sstmdxdropcellcalculation, TBaseType.rrw_drop,"cell","calcution"," "," "," "," "); 1915 addmdxcmds(ESqlStatementType.sstmdxdropdimensionmember, TBaseType.rrw_drop,"dimension","member"," "," "," "," "); 1916 addmdxcmds(ESqlStatementType.sstmdxdropmember, TBaseType.rrw_drop,"member"," "," "," "," "," "); 1917 addmdxcmds(ESqlStatementType.sstmdxdropmember, TBaseType.rrw_drop,"session","member"," "," "," "," "); 1918 addmdxcmds(ESqlStatementType.sstmdxdropmember, TBaseType.rrw_drop,"session","calculated","member"," "," "," "); 1919 addmdxcmds(ESqlStatementType.sstmdxdropcellcalculation, TBaseType.rrw_drop,"session","cell","calcution"," "," "," "); 1920 addmdxcmds(ESqlStatementType.sstmdxdropset, TBaseType.rrw_drop,"set"," "," "," "," "," "); 1921 addmdxcmds(ESqlStatementType.sstmdxdropsubcube, TBaseType.rrw_drop,"subcube"," "," "," "," "," "); 1922 addmdxcmds(ESqlStatementType.sstmdxexisting, TBaseType.rrw_existing," "," "," "," "," "," "); 1923 addmdxcmds(ESqlStatementType.sstmdxfreeze, TBaseType.rrw_freeze," "," "," "," "," "," "); 1924 addmdxcmds(ESqlStatementType.sstmdxif, TBaseType.rrw_if," "," "," "," "," "," "); 1925 addmdxcmds(ESqlStatementType.sstmdxrefreshcube, TBaseType.rrw_refresh,"cube"," "," "," "," "," "); 1926 addmdxcmds(ESqlStatementType.sstmdxscope, TBaseType.rrw_scope," "," "," "," "," "," "); 1927 addmdxcmds(ESqlStatementType.sstmdxselect, TBaseType.rrw_select," "," "," "," "," "," "); 1928 addmdxcmds(ESqlStatementType.sstmdxupdate, TBaseType.rrw_update," "," "," "," "," "," "); 1929 1930} 1931 1932void initsybasecmds(){ 1933// cmd must be sort alphabetically 1934 addsybasecmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"counter","signature"," "," "," "," "); 1935 addsybasecmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"signature"," "," "," "," "," "); 1936//alter 1937 addsybasecmds(ESqlStatementType.sstmssqlalterapplicationrole, TBaseType.rrw_alter,"application","role"," "," "," "," "); 1938 addsybasecmds(ESqlStatementType.sstmssqlalterassembly, TBaseType.rrw_alter,"assembly"," "," "," "," "," "); 1939 addsybasecmds(ESqlStatementType.sstmssqlalterasymmetrickey, TBaseType.rrw_alter,"asymmetric","key"," "," "," "," "); 1940 addsybasecmds(ESqlStatementType.sstmssqlalterauthorization, TBaseType.rrw_alter,"authorization"," "," "," "," "," "); 1941 addsybasecmds(ESqlStatementType.sstmssqlaltercertificate, TBaseType.rrw_alter,"certificate"," "," "," "," "," "); 1942 addsybasecmds(ESqlStatementType.sstmssqlaltercredential, TBaseType.rrw_alter,"credential"," "," "," "," "," "); 1943 addsybasecmds(ESqlStatementType.sstmssqlalterdatabase, TBaseType.rrw_alter,"database"," "," "," "," "," "); 1944 addsybasecmds(ESqlStatementType.sstsybasealterdbspace, TBaseType.rrw_alter,"dbspace"," "," "," "," "," "); 1945 addsybasecmds(ESqlStatementType.sstsybasealterdomain, TBaseType.rrw_alter,"domain"," "," "," "," "," "); 1946 addsybasecmds(ESqlStatementType.sstmssqlalterendpoint, TBaseType.rrw_alter,"endpoint"," "," "," "," "," "); 1947 addsybasecmds(ESqlStatementType.sstmssqlalterfulltextcatalog, TBaseType.rrw_alter,"fulltext","catalog"," "," "," "," "); 1948 addsybasecmds(ESqlStatementType.sstmssqlalterfulltextindex, TBaseType.rrw_alter,"fulltext","index"," "," "," "," "); 1949 addsybasecmds(ESqlStatementType.sstmssqlalterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 1950 addsybasecmds(ESqlStatementType.sstmssqlalterindex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 1951 addsybasecmds(ESqlStatementType.sstmssqlalterlogin, TBaseType.rrw_alter,"login"," "," "," "," "," "); 1952 addsybasecmds(ESqlStatementType.sstmssqlaltermasterkey, TBaseType.rrw_alter,"master","key"," "," "," "," "); 1953 addsybasecmds(ESqlStatementType.sstmssqlaltermessagetype, TBaseType.rrw_alter,"message","type"," "," "," "," "); 1954 addsybasecmds(ESqlStatementType.sstmssqlalterpartitionfunction, TBaseType.rrw_alter,"partition","function"," "," "," "," "); 1955 addsybasecmds(ESqlStatementType.sstmssqlalterpartitionscheme, TBaseType.rrw_alter,"partition","scheme"," "," "," "," "); 1956 addsybasecmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"proc"," "," "," "," "," "); 1957 addsybasecmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 1958 addsybasecmds(ESqlStatementType.sstmssqlalterqueue, TBaseType.rrw_alter,"queue"," "," "," "," "," "); 1959 addsybasecmds(ESqlStatementType.sstmssqlalterremoteservicebinding, TBaseType.rrw_alter,"remote","service","binding"," "," "," "); 1960 addsybasecmds(ESqlStatementType.sstmssqlalterrole, TBaseType.rrw_alter,"role"," "," "," "," "," "); 1961 addsybasecmds(ESqlStatementType.sstmssqlalterroute, TBaseType.rrw_alter,"route"," "," "," "," "," "); 1962 addsybasecmds(ESqlStatementType.sstmssqlalterschema, TBaseType.rrw_alter,"schema"," "," "," "," "," "); 1963 addsybasecmds(ESqlStatementType.sstsybasealterserver, TBaseType.rrw_alter,"server"," "," "," "," "," "); 1964 addsybasecmds(ESqlStatementType.sstmssqlalterservice, TBaseType.rrw_alter,"service"," "," "," "," "," "); 1965 addsybasecmds(ESqlStatementType.sstmssqlalterservicemasterkey, TBaseType.rrw_alter,"service","master","key"," "," "," "); 1966 addsybasecmds(ESqlStatementType.sstmssqlaltersymmetrickey, TBaseType.rrw_alter,"symmetric","key"," "," "," "," "); 1967 addsybasecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 1968 addsybasecmds(ESqlStatementType.sstmssqlaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 1969 addsybasecmds(ESqlStatementType.sstmssqlalteruser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 1970 addsybasecmds(ESqlStatementType.sstmssqlalterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 1971 addsybasecmds(ESqlStatementType.sstmssqlalterxmlschemacollection, TBaseType.rrw_alter,"xml","schema","collection"," "," "," "); 1972//backup 1973 addsybasecmds(ESqlStatementType.sstmssqlbackupdatabase, TBaseType.rrw_backup,"database"," "," "," "," "," "); 1974 addsybasecmds(ESqlStatementType.sstmssqlbackupcertificate, TBaseType.rrw_backup,"certificate"," "," "," "," "," "); 1975 addsybasecmds(ESqlStatementType.sstmssqlbackuplog, TBaseType.rrw_backup,"log"," "," "," "," "," "); 1976 addsybasecmds(ESqlStatementType.sstmssqlbackupmasterkey, TBaseType.rrw_backup,"master","key"," "," "," "," "); 1977 addsybasecmds(ESqlStatementType.sstmssqlbackupservicemasterkey, TBaseType.rrw_backup,"service","master","key"," "," "," "); 1978//begin 1979 addsybasecmds(ESqlStatementType.sstmssqlbegincatch, TBaseType.rrw_begin,"catch"," "," "," "," "," "); 1980 addsybasecmds(ESqlStatementType.sstmssqlbeginconversationtimer, TBaseType.rrw_begin,"conversation","timer"," "," "," "," "); 1981 addsybasecmds(ESqlStatementType.sstmssqlbegindialog, TBaseType.rrw_begin,"dialog"," "," "," "," "," "); 1982 addsybasecmds(ESqlStatementType.sstmssqlbegindistributed, TBaseType.rrw_begin,"distributed"," "," "," "," "," "); 1983 addsybasecmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"tran"," "," "," "," "," "); 1984 addsybasecmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"transaction"," "," "," "," "," "); 1985 addsybasecmds(ESqlStatementType.sstmssqlbegintry, TBaseType.rrw_begin,"try"," "," "," "," "," "); 1986//break 1987 addsybasecmds(ESqlStatementType.sstbreak, TBaseType.rrw_break," "," "," "," "," "," "); 1988//bulk insert 1989 addsybasecmds(ESqlStatementType.sstmssqlbulkinsert, TBaseType.rrw_bulk,"insert"," "," "," "," "," "); 1990 1991 addsybasecmds(ESqlStatementType.sstcall, TBaseType.rrw_call," "," "," "," "," "," "); 1992 1993//checkpoint 1994 addsybasecmds(ESqlStatementType.sstmssqlcheckpoint, TBaseType.rrw_checkpoint," "," "," "," "," "," "); 1995//close 1996 addsybasecmds(ESqlStatementType.sstmssqlclose, TBaseType.rrw_close," "," "," "," "," "," "); 1997 addsybasecmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"all", "symmetric", "keys"," "," "," "); 1998 addsybasecmds(ESqlStatementType.sstmssqlclosemasterkey, TBaseType.rrw_close,"master", "key"," "," "," "," "); 1999 addsybasecmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"symmetric", "key"," "," "," "," "); 2000//commit 2001 addsybasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit," "," "," "," "," "," "); 2002 addsybasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"work"," "," "," "," "," "); 2003 addsybasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"tran"," "," "," "," "," "); 2004 addsybasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"transaction"," "," "," "," "," "); 2005//continue 2006 addsybasecmds(ESqlStatementType.sstmssqlcontinue, TBaseType.rrw_continue," "," "," "," "," "," "); 2007//create 2008 addsybasecmds(ESqlStatementType.sstmssqlcreateaggregate, TBaseType.rrw_create,"aggregate"," "," "," "," "," "); 2009 addsybasecmds(ESqlStatementType.sstmssqlcreateapplicationrole, TBaseType.rrw_create,"application", "role"," "," "," "," "); 2010 addsybasecmds(ESqlStatementType.sstmssqlcreateassembly, TBaseType.rrw_create,"assembly"," "," "," "," "," "); 2011 addsybasecmds(ESqlStatementType.sstmssqlcreateasymmetrickey, TBaseType.rrw_create,"asymmetric", "key"," "," "," "," "); 2012 addsybasecmds(ESqlStatementType.sstmssqlcreatecertificate, TBaseType.rrw_create,"certificate"," "," "," "," "," "); 2013 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"clustered","index"," "," "," "," "); 2014 addsybasecmds(ESqlStatementType.sstmssqlcreatecontract, TBaseType.rrw_create,"contract"," "," "," "," "," "); 2015 addsybasecmds(ESqlStatementType.sstmssqlcreatecredential, TBaseType.rrw_create,"credential"," "," "," "," "," "); 2016 addsybasecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 2017 addsybasecmds(ESqlStatementType.sstsybasecreatedbspace, TBaseType.rrw_create,"dbspace"," "," "," "," "," "); 2018 addsybasecmds(ESqlStatementType.sstsybasecreatedomain, TBaseType.rrw_create,"domain"," "," "," "," "," "); 2019 addsybasecmds(ESqlStatementType.sstmssqlcreatedefault, TBaseType.rrw_create,"default"," "," "," "," "," "); 2020 addsybasecmds(ESqlStatementType.sstmssqlcreateendpoint, TBaseType.rrw_create,"endpoint"," "," "," "," "," "); 2021 addsybasecmds(ESqlStatementType.sstmssqlcreateeventnotification, TBaseType.rrw_create,"event", "notification"," "," "," "," "); 2022 addsybasecmds(ESqlStatementType.sstsybasecreateexistingtable, TBaseType.rrw_create,"existing","table"," "," "," "," "); 2023 addsybasecmds(ESqlStatementType.sstsybasecreateexternlogin, TBaseType.rrw_create,"externlogin"," "," "," "," "," "); 2024 addsybasecmds(ESqlStatementType.sstmssqlcreatefulltextcatalog, TBaseType.rrw_create,"fulltext", "catalog"," "," "," "," "); 2025 addsybasecmds(ESqlStatementType.sstmssqlcreatefulltextindex, TBaseType.rrw_create,"fulltext", "index"," "," "," "," "); 2026 addsybasecmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 2027 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 2028 addsybasecmds(ESqlStatementType.sstsybasecreatejoinindex, TBaseType.rrw_create,"join","index"," "," "," "," "); 2029 addsybasecmds(ESqlStatementType.sstmssqlcreatelogin, TBaseType.rrw_create,"login"," "," "," "," "," "); 2030 addsybasecmds(ESqlStatementType.sstmssqlcreatemasterkey, TBaseType.rrw_create,"master","key"," "," "," "," "); 2031 addsybasecmds(ESqlStatementType.sstmssqlcreatemessagetype, TBaseType.rrw_create,"message","type"," "," "," "," "); 2032 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"nonclustered","index"," "," "," "," "); 2033 addsybasecmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"or","replace","function"," "," "," "); 2034 addsybasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","replace","proc"," "," "," "); 2035 addsybasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","replace","procedure"," "," "," "); 2036 addsybasecmds(ESqlStatementType.sstmssqlcreatepartitionfunction, TBaseType.rrw_create,"partition","function"," "," "," "," "); 2037 addsybasecmds(ESqlStatementType.sstmssqlcreatepartitionscheme, TBaseType.rrw_create,"partition","scheme"," "," "," "," "); 2038 addsybasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"proc"," "," "," "," "," "); 2039 addsybasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 2040 addsybasecmds(ESqlStatementType.sstmssqlcreatequeue, TBaseType.rrw_create,"queue"," "," "," "," "," "); 2041 addsybasecmds(ESqlStatementType.sstmssqlcreateremoteservicebinding, TBaseType.rrw_create,"remote", "service", "binding"," "," "," "); 2042 addsybasecmds(ESqlStatementType.sstmssqlcreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 2043 addsybasecmds(ESqlStatementType.sstmssqlcreateroute, TBaseType.rrw_create,"route"," "," "," "," "," "); 2044 addsybasecmds(ESqlStatementType.sstmssqlcreaterule, TBaseType.rrw_create,"rule"," "," "," "," "," "); 2045 addsybasecmds(ESqlStatementType.sstmssqlcreateschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 2046 addsybasecmds(ESqlStatementType.sstsybasecreateserver, TBaseType.rrw_create,"server"," "," "," "," "," "); 2047 addsybasecmds(ESqlStatementType.sstmssqlcreateservice, TBaseType.rrw_create,"service"," "," "," "," "," "); 2048 addsybasecmds(ESqlStatementType.sstmssqlcreatestatistics, TBaseType.rrw_create,"statistics"," "," "," "," "," "); 2049 addsybasecmds(ESqlStatementType.sstmssqlcreatesymmetrickey, TBaseType.rrw_create,"symmetric", "key"," "," "," "," "); 2050 addsybasecmds(ESqlStatementType.sstmssqlcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 2051 addsybasecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 2052 addsybasecmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 2053 addsybasecmds(ESqlStatementType.sstmssqlcreatetype, TBaseType.rrw_create,"type"," "," "," "," "," "); 2054 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"cmp","index"," "," "," "," "); 2055 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"date","index"," "," "," "," "); 2056 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"dttm","index"," "," "," "," "); 2057 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"hg","index"," "," "," "," "); 2058 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"hng","index"," "," "," "," "); 2059 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"lf","index"," "," "," "," "); 2060 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"time","index"," "," "," "," "); 2061 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"wd","index"," "," "," "," "); 2062 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","clustered","index"," "," "," "); 2063 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 2064 addsybasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","nonclustered","index"," "," "," "); 2065 addsybasecmds(ESqlStatementType.sstmssqlcreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 2066 addsybasecmds(ESqlStatementType.sstsybasecreatevariable, TBaseType.rrw_create,"variable"," "," "," "," "," "); 2067 addsybasecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 2068 addsybasecmds(ESqlStatementType.sstmssqlcreatexmlschemacollection, TBaseType.rrw_create,"xml", "schema", "collection"," "," "," "); 2069// DBCC 2070 addsybasecmds(ESqlStatementType.sstmssqldbcc, TBaseType.rrw_dbcc," "," "," "," "," "," "); 2071//DEALLOCATE 2072 addsybasecmds(ESqlStatementType.sstmssqldeallocate, TBaseType.rrw_deallocate," "," "," "," "," "," "); 2073//DECLARE 2074 addsybasecmds(ESqlStatementType.sstsybasedeallocatedescriptor, TBaseType.rrw_deallocate,"descriptor"," "," "," "," "," "); 2075 addsybasecmds(ESqlStatementType.sstmssqldeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 2076//DELETE 2077 addsybasecmds(ESqlStatementType.sstsybasedeclarelocaltemptable, TBaseType.rrw_declare,"local","temporary","table"," "," "," "); 2078 addsybasecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 2079 2080//DELETE statistics 2081 addsybasecmds(ESqlStatementType.sstsybaseDeleteStatistics, TBaseType.rrw_delete,"shared","statistics"," "," "," "," "); 2082 addsybasecmds(ESqlStatementType.sstsybaseDeleteStatistics, TBaseType.rrw_delete,"statistics"," "," "," "," "," "); 2083 2084//DENY 2085 addsybasecmds(ESqlStatementType.sstmssqldeny, TBaseType.rrw_deny," "," "," "," "," "," "); 2086//DISABLE TRIGGER 2087 addsybasecmds(ESqlStatementType.sstmssqldisabletrigger, TBaseType.rrw_disable,"trigger"," "," "," "," "," "); 2088//drop 2089 addsybasecmds(ESqlStatementType.sstmssqldropaggregate, TBaseType.rrw_drop,"aggregate"," "," "," "," "," "); 2090 addsybasecmds(ESqlStatementType.sstmssqldropapplicationrole, TBaseType.rrw_drop,"application", "role"," "," "," "," "); 2091 addsybasecmds(ESqlStatementType.sstmssqldropassembly, TBaseType.rrw_drop,"assembly"," "," "," "," "," "); 2092 addsybasecmds(ESqlStatementType.sstmssqldropasymmetrickey, TBaseType.rrw_drop,"asymmetric", "key"," "," "," "," "); 2093 addsybasecmds(ESqlStatementType.sstmssqldropcertificate, TBaseType.rrw_drop,"certificate"," "," "," "," "," "); 2094 addsybasecmds(ESqlStatementType.sstsybasedropconnection, TBaseType.rrw_drop,"connection"," "," "," "," "," "); 2095 addsybasecmds(ESqlStatementType.sstmssqldropcontract, TBaseType.rrw_drop,"contract"," "," "," "," "," "); 2096 addsybasecmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"counter", "signature"," "," "," "," "); 2097 addsybasecmds(ESqlStatementType.sstmssqldropcredential, TBaseType.rrw_drop,"credential"," "," "," "," "," "); 2098 addsybasecmds(ESqlStatementType.sstmssqldropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 2099 addsybasecmds(ESqlStatementType.sstmssqldropdefault, TBaseType.rrw_drop,"default"," "," "," "," "," "); 2100 addsybasecmds(ESqlStatementType.sstmssqldropendpoint, TBaseType.rrw_drop,"endpoint"," "," "," "," "," "); 2101 addsybasecmds(ESqlStatementType.sstmssqldropeventnotification, TBaseType.rrw_drop,"event", "notification"," "," "," "," "); 2102 addsybasecmds(ESqlStatementType.sstsybasedropexternlogin, TBaseType.rrw_drop,"externlogin"," "," "," "," "," "); 2103 addsybasecmds(ESqlStatementType.sstmssqldropfulltextcatalog, TBaseType.rrw_drop,"fulltext", "catalog"," "," "," "," "); 2104 addsybasecmds(ESqlStatementType.sstmssqldropfulltextindex, TBaseType.rrw_drop,"fulltext", "index"," "," "," "," "); 2105 addsybasecmds(ESqlStatementType.sstmssqldropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 2106 addsybasecmds(ESqlStatementType.sstmssqldropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 2107 addsybasecmds(ESqlStatementType.sstmssqldroplogin, TBaseType.rrw_drop,"login"," "," "," "," "," "); 2108 addsybasecmds(ESqlStatementType.sstmssqldropmasterkey, TBaseType.rrw_drop,"master", "key"," "," "," "," "); 2109 addsybasecmds(ESqlStatementType.sstmssqldropmessagetype, TBaseType.rrw_drop,"message", "type"," "," "," "," "); 2110 addsybasecmds(ESqlStatementType.sstmssqldroppartitionfunction, TBaseType.rrw_drop,"partition", "function"," "," "," "," "); 2111 addsybasecmds(ESqlStatementType.sstmssqldroppartitionscheme, TBaseType.rrw_drop,"partition", "scheme"," "," "," "," "); 2112 addsybasecmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"proc"," "," "," "," "," "); 2113 addsybasecmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 2114 addsybasecmds(ESqlStatementType.sstmssqldropqueue, TBaseType.rrw_drop,"queue"," "," "," "," "," "); 2115 addsybasecmds(ESqlStatementType.sstmssqldropremoteservicebinding, TBaseType.rrw_drop,"remote", "service", "binding"," "," "," "); 2116 addsybasecmds(ESqlStatementType.sstmssqldroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 2117 addsybasecmds(ESqlStatementType.sstmssqldroproute, TBaseType.rrw_drop,"route"," "," "," "," "," "); 2118 addsybasecmds(ESqlStatementType.sstmssqldroprule, TBaseType.rrw_drop,"rule"," "," "," "," "," "); 2119 addsybasecmds(ESqlStatementType.sstmssqldropschema, TBaseType.rrw_drop,"schema"," "," "," "," "," "); 2120 addsybasecmds(ESqlStatementType.sstsybasedropserver, TBaseType.rrw_drop,"server"," "," "," "," "," "); 2121 addsybasecmds(ESqlStatementType.sstmssqldropservice, TBaseType.rrw_drop,"service"," "," "," "," "," "); 2122 addsybasecmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"signature"," "," "," "," "," "); 2123 addsybasecmds(ESqlStatementType.sstsybasedropstatement, TBaseType.rrw_drop,"statement"," "," "," "," "," "); 2124 addsybasecmds(ESqlStatementType.sstmssqldropstatistics, TBaseType.rrw_drop,"statistics"," "," "," "," "," "); 2125 addsybasecmds(ESqlStatementType.sstmssqldropsymmetrickey, TBaseType.rrw_drop,"symmetric", "key"," "," "," "," "); 2126 addsybasecmds(ESqlStatementType.sstmssqldropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 2127 addsybasecmds(ESqlStatementType.sstmssqldroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 2128 addsybasecmds(ESqlStatementType.sstmssqldroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 2129 addsybasecmds(ESqlStatementType.sstmssqldroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 2130 addsybasecmds(ESqlStatementType.sstmssqldropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 2131 addsybasecmds(ESqlStatementType.sstsybasedropvariable, TBaseType.rrw_drop,"variable"," "," "," "," "," "); 2132 addsybasecmds(ESqlStatementType.sstmssqldropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 2133 addsybasecmds(ESqlStatementType.sstmssqldropxmlschemacollection, TBaseType.rrw_drop,"xml", "schema", "collection"," "," "," "); 2134 2135 addsybasecmds(ESqlStatementType.sstsybasedumpTran, TBaseType.rrw_sybase_dump,"tran"," "," "," "," "," "); 2136 addsybasecmds(ESqlStatementType.sstsybasedumpTran, TBaseType.rrw_sybase_dump,"transaction"," "," "," "," "," "); 2137 addsybasecmds(ESqlStatementType.sstsybaseallocatedescriptor, TBaseType.rrw_allocate,"descriptor"," "," "," "," "," "); 2138 addsybasecmds(ESqlStatementType.sstcomment, TBaseType.rrw_comment," "," "," "," "," "," "); 2139 addsybasecmds(ESqlStatementType.sstconnect, TBaseType.rrw_connect," "," "," "," "," "," "); 2140 addsybasecmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe," "," "," "," "," "," "); 2141 addsybasecmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 2142 addsybasecmds(ESqlStatementType.sstsybasegetdescriptor, TBaseType.rrw_get,"descriptor"," "," "," "," "," "); 2143 addsybasecmds(ESqlStatementType.sstsybasestartdatabase, TBaseType.rrw_start,"database"," "," "," "," "," "); 2144 addsybasecmds(ESqlStatementType.sstsybasestartengine, TBaseType.rrw_start,"engine"," "," "," "," "," "); 2145 addsybasecmds(ESqlStatementType.sstsybasestopdatabase, TBaseType.rrw_stop,"database"," "," "," "," "," "); 2146 addsybasecmds(ESqlStatementType.sstsybasestopengine, TBaseType.rrw_stop,"engine"," "," "," "," "," "); 2147 addsybasecmds(ESqlStatementType.sstsybaseforwardto, TBaseType.rrw_sybase_forward,"to"," "," "," "," "," "); 2148 addsybasecmds(ESqlStatementType.sstsybaseinstalljava, TBaseType.rrw_sybase_install,"java"," "," "," "," "," "); 2149 addsybasecmds(ESqlStatementType.sstsybaseiqutilities, TBaseType.rrw_sybase_iq,"utilities"," "," "," "," "," "); 2150 addsybasecmds(ESqlStatementType.sstsybasemessage, TBaseType.rrw_sybase_message," "," "," "," "," "," "); 2151 addsybasecmds(ESqlStatementType.sstsybaseoutput, TBaseType.rrw_sybase_output,"to"," "," "," "," "," "); 2152 addsybasecmds(ESqlStatementType.sstsybaseput, TBaseType.rrw_sybase_put," "," "," "," "," "," "); 2153 addsybasecmds(ESqlStatementType.sstsybaseread, TBaseType.rrw_sybase_read," "," "," "," "," "," "); 2154 addsybasecmds(ESqlStatementType.sstsybaseremovejava, TBaseType.rrw_sybase_remove,"java"," "," "," "," "," "); 2155 addsybasecmds(ESqlStatementType.sstsybasesynchronizejoinindex, TBaseType.rrw_sybase_synchronize,"join","index"," "," "," "," "); 2156 addsybasecmds(ESqlStatementType.sstsybasetriggerevent, TBaseType.rrw_sybase_trigger,"event"," "," "," "," "," "); 2157//if 2158 addsybasecmds(ESqlStatementType.sstmssqlif, TBaseType.rrw_if," "," "," "," "," "," "); 2159//enable trigger 2160 addsybasecmds(ESqlStatementType.sstmssqlenabletrigger, TBaseType.rrw_enable,"trigger"," "," "," "," "," "); 2161//END CONVERSATION 2162// addsybasecmds(ESqlStatementType.sstMssqlEndCatch,TBaseType.rrw_end,'catch'); 2163 addsybasecmds(ESqlStatementType.sstmssqlendconversation, TBaseType.rrw_end,"conversation"," "," "," "," "," "); 2164// addsybasecmds(ESqlStatementType.sstMssqlEndTry,TBaseType.rrw_end,'try'); 2165//exec 2166//exec as 2167 addsybasecmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_exec," "," "," "," "," "," "); 2168 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","caller"," "," "," "," "); 2169 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","login"," "," "," "," "); 2170 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","user"," "," "," "," "); 2171 addsybasecmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_execute, " "," "," "," "," "," "); 2172 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","caller"," "," "," "," "); 2173 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","login"," "," "," "," "); 2174 addsybasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","user"," "," "," "," "); 2175//fetch 2176 addsybasecmds(ESqlStatementType.sstmssqlfetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 2177//go 2178 addsybasecmds(ESqlStatementType.sstmssqlgo, TBaseType.rrw_go," "," "," "," "," "," "); 2179//goto 2180 addsybasecmds(ESqlStatementType.sstmssqlgoto, TBaseType.rrw_goto," "," "," "," "," "," "); 2181//GRANT 2182 addsybasecmds(ESqlStatementType.sstmssqlgrant, TBaseType.rrw_grant," "," "," "," "," "," "); 2183//GRANT 2184 addsybasecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 2185 2186 addsybasecmds(ESqlStatementType.sstsybaseInsertBulk, TBaseType.rrw_insert,"bulk"," "," "," "," "," "); 2187//KILL 2188 addsybasecmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 2189//KILL 2190 addsybasecmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 2191 addsybasecmds(ESqlStatementType.sstmssqlkillquerynotificationsubscription, TBaseType.rrw_kill,"kill", "query", "notification", "subscription"," "," "); 2192 addsybasecmds(ESqlStatementType.sstmssqlkillstats, TBaseType.rrw_kill,"stats"," "," "," "," "," "); 2193 2194 addsybasecmds(ESqlStatementType.sstload,TBaseType.rrw_load,"table"," "," "," "," "," "); 2195// 2196 addsybasecmds(ESqlStatementType.sstsybaselocktable,TBaseType.rw_locktable,"table"," "," "," "," "," "); 2197//MOVE CONVERSATION 2198 addsybasecmds(ESqlStatementType.sstmssqlmoveconversation, TBaseType.rrw_move,"conversation"," "," "," "," "," "); 2199//merge 2200 addsybasecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 2201//open 2202 addsybasecmds(ESqlStatementType.sstmssqlopen, TBaseType.rrw_open," "," "," "," "," "," "); 2203 addsybasecmds(ESqlStatementType.sstmssqlopenmasterkey, TBaseType.rrw_open,"master", "key"," "," "," "," "); 2204 addsybasecmds(ESqlStatementType.sstmssqlopensymmetrickey, TBaseType.rrw_open,"symmetric", "key"," "," "," "," "); 2205//PRINT 2206 addsybasecmds(ESqlStatementType.sstmssqlprint, TBaseType.rrw_print," "," "," "," "," "," "); 2207//RAISERROR 2208 addsybasecmds(ESqlStatementType.sstmssqlraiserror, TBaseType.rrw_raiserror," "," "," "," "," "," "); 2209//READTEXT 2210 addsybasecmds(ESqlStatementType.sstmssqlreadtext, TBaseType.rrw_readtext," "," "," "," "," "," "); 2211//RECEIVE 2212 addsybasecmds(ESqlStatementType.sstmssqlreceive, TBaseType.rrw_receive," "," "," "," "," "," "); 2213//RECONFIGURE 2214 addsybasecmds(ESqlStatementType.sstmssqlreconfigure, TBaseType.rrw_reconfigure," "," "," "," "," "," "); 2215//RESTORE 2216 addsybasecmds(ESqlStatementType.sstmssqlrestoredatabase, TBaseType.rrw_restore,"database"," "," "," "," "," "); 2217 addsybasecmds(ESqlStatementType.sstmssqlrestorefilelistonly, TBaseType.rrw_restore,"filelistonly"," "," "," "," "," "); 2218 addsybasecmds(ESqlStatementType.sstmssqlrestoreheaderonly, TBaseType.rrw_restore,"headeronly"," "," "," "," "," "); 2219 addsybasecmds(ESqlStatementType.sstmssqlrestorelabelonly, TBaseType.rrw_restore,"labelonly"," "," "," "," "," "); 2220 addsybasecmds(ESqlStatementType.sstmssqlrestorelog, TBaseType.rrw_restore,"log"," "," "," "," "," "); 2221 addsybasecmds(ESqlStatementType.sstmssqlrestoremasterkey, TBaseType.rrw_restore,"master","key"," "," "," "," "); 2222 addsybasecmds(ESqlStatementType.sstmssqlrestorerewindonly, TBaseType.rrw_restore,"rewindonly"," "," "," "," "," "); 2223 addsybasecmds(ESqlStatementType.sstmssqlrestoreservicemasterkey, TBaseType.rrw_restore,"service","master","key"," "," "," "); 2224 addsybasecmds(ESqlStatementType.sstmssqlrestoreverifyonly, TBaseType.rrw_restore,"verifyonly"," "," "," "," "," "); 2225//RETURN 2226 addsybasecmds(ESqlStatementType.sstmssqlreturn, TBaseType.rrw_return," "," "," "," "," "," "); 2227//REVERT 2228 addsybasecmds(ESqlStatementType.sstmssqlrevert, TBaseType.rrw_revert," "," "," "," "," "," "); 2229//REVOKE 2230 addsybasecmds(ESqlStatementType.sstmssqlrevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 2231//ROLLBACK 2232 addsybasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 2233 addsybasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"tran"," "," "," "," "," "); 2234 addsybasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"transaction"," "," "," "," "," "); 2235 addsybasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"work"," "," "," "," "," "); 2236//SAVE 2237 addsybasecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save," "," "," "," "," "," "); 2238 addsybasecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"tran"," "," "," "," "," "); 2239 addsybasecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"transaction"," "," "," "," "," "); 2240//SELECT 2241 addsybasecmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 2242//SEND ON CONVERSATION 2243 addsybasecmds(ESqlStatementType.sstmssqlsendonconversation, TBaseType.rrw_send,"on","conversation"," "," "," "," "); 2244//SET 2245 addsybasecmds(ESqlStatementType.sstmssqlset, TBaseType.rrw_set," "," "," "," "," "," "); 2246//SET 2247 addsybasecmds(ESqlStatementType.sstmssqlsetuser,TBaseType.rrw_setuser," "," "," "," "," "," "); 2248//SHUTDOWN 2249 addsybasecmds(ESqlStatementType.sstmssqlshutdown, TBaseType.rrw_shutdown," "," "," "," "," "," "); 2250//SIGN 2251// addsybasecmds(ESqlStatementType.sstmssqlsign, rrw_sign," "," "," "," "," "," "); 2252//TRUNCATE TABLE 2253 addsybasecmds(ESqlStatementType.sstmssqltruncatetable, TBaseType.rrw_truncate,"table"," "," "," "," "," "); 2254//UPDATE 2255 addsybasecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 2256//UPDATE all STATISTICS 2257 addsybasecmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"all","statistics"," "," "," "," "); 2258//UPDATE index STATISTICS 2259 addsybasecmds(ESqlStatementType.sstsybaseupdateindexstatistics, TBaseType.rrw_update,"index","statistics"," "," "," "," "); 2260//UPDATE STATISTICS 2261 addsybasecmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"statistics"," "," "," "," "," "); 2262//UPDATETEXT 2263 addsybasecmds(ESqlStatementType.sstmssqlupdatetext, TBaseType.rrw_updatetext," "," "," "," "," "," "); 2264//USE 2265 addsybasecmds(ESqlStatementType.sstmssqluse, TBaseType.rrw_use," "," "," "," "," "," "); 2266//WAITFOR 2267 addsybasecmds(ESqlStatementType.sstmssqlwaitfor, TBaseType.rrw_waitfor," "," "," "," "," "," "); 2268//WHILE 2269 addsybasecmds(ESqlStatementType.sstmssqlwhile, TBaseType.rrw_while," "," "," "," "," "," "); 2270//WITH, don't recongize here, let isMssqlSql do it 2271// addsybasecmds(ESqlStatementType.sstMssqlCTE,rrw_WITH,' '); 2272//WITH XMLNAMESPACES 2273 addsybasecmds(ESqlStatementType.sstmssqlwithxmlnamespaces, TBaseType.rrw_with,"xmlnamespaces"," "," "," "," "," "); 2274//WRITETEXT 2275 addsybasecmds(ESqlStatementType.sstsybaseWritetext, TBaseType.rrw_writetext," "," "," "," "," "," "); 2276 2277} 2278 2279void initmssqlcmds(){ 2280// cmd must be sort alphabetically 2281 addmssqlcmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"counter","signature"," "," "," "," "); 2282 addmssqlcmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"signature"," "," "," "," "," "); 2283//alter 2284 addmssqlcmds(ESqlStatementType.sstmssqlalterapplicationrole, TBaseType.rrw_alter,"application","role"," "," "," "," "); 2285 addmssqlcmds(ESqlStatementType.sstmssqlalterassembly, TBaseType.rrw_alter,"assembly"," "," "," "," "," "); 2286 addmssqlcmds(ESqlStatementType.sstmssqlalterasymmetrickey, TBaseType.rrw_alter,"asymmetric","key"," "," "," "," "); 2287 addmssqlcmds(ESqlStatementType.sstmssqlalterauthorization, TBaseType.rrw_alter,"authorization"," "," "," "," "," "); 2288 addmssqlcmds(ESqlStatementType.sstmssqlaltercertificate, TBaseType.rrw_alter,"certificate"," "," "," "," "," "); 2289 addmssqlcmds(ESqlStatementType.sstmssqlaltercredential, TBaseType.rrw_alter,"credential"," "," "," "," "," "); 2290 addmssqlcmds(ESqlStatementType.sstmssqlalterdatabase, TBaseType.rrw_alter,"database"," "," "," "," "," "); 2291 addmssqlcmds(ESqlStatementType.sstmssqlalterendpoint, TBaseType.rrw_alter,"endpoint"," "," "," "," "," "); 2292 addmssqlcmds(ESqlStatementType.sstmssqlalterfulltextcatalog, TBaseType.rrw_alter,"fulltext","catalog"," "," "," "," "); 2293 addmssqlcmds(ESqlStatementType.sstmssqlalterfulltextindex, TBaseType.rrw_alter,"fulltext","index"," "," "," "," "); 2294 addmssqlcmds(ESqlStatementType.sstmssqlalterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 2295 addmssqlcmds(ESqlStatementType.sstmssqlalterindex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 2296 addmssqlcmds(ESqlStatementType.sstmssqlalterlogin, TBaseType.rrw_alter,"login"," "," "," "," "," "); 2297 addmssqlcmds(ESqlStatementType.sstmssqlaltermasterkey, TBaseType.rrw_alter,"master","key"," "," "," "," "); 2298 addmssqlcmds(ESqlStatementType.sstmssqlaltermessagetype, TBaseType.rrw_alter,"message","type"," "," "," "," "); 2299 addmssqlcmds(ESqlStatementType.sstmssqlalterpartitionfunction, TBaseType.rrw_alter,"partition","function"," "," "," "," "); 2300 addmssqlcmds(ESqlStatementType.sstmssqlalterpartitionscheme, TBaseType.rrw_alter,"partition","scheme"," "," "," "," "); 2301 addmssqlcmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"proc"," "," "," "," "," "); 2302 addmssqlcmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 2303 addmssqlcmds(ESqlStatementType.sstmssqlalterqueue, TBaseType.rrw_alter,"queue"," "," "," "," "," "); 2304 addmssqlcmds(ESqlStatementType.sstmssqlalterremoteservicebinding, TBaseType.rrw_alter,"remote","service","binding"," "," "," "); 2305 addmssqlcmds(ESqlStatementType.sstmssqlalterrole, TBaseType.rrw_alter,"role"," "," "," "," "," "); 2306 addmssqlcmds(ESqlStatementType.sstmssqlalterroute, TBaseType.rrw_alter,"route"," "," "," "," "," "); 2307 addmssqlcmds(ESqlStatementType.sstmssqlalterschema, TBaseType.rrw_alter,"schema"," "," "," "," "," "); 2308 addmssqlcmds(ESqlStatementType.sstmssqlAlterSecurityPolicy, TBaseType.rrw_alter, "security", "policy", " ", " ", " ", " "); 2309 addmssqlcmds(ESqlStatementType.sstaltersequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 2310 addmssqlcmds(ESqlStatementType.sstmssqlalterservice, TBaseType.rrw_alter,"service"," "," "," "," "," "); 2311 addmssqlcmds(ESqlStatementType.sstmssqlalterservicemasterkey, TBaseType.rrw_alter,"service","master","key"," "," "," "); 2312 addmssqlcmds(ESqlStatementType.sstmssqlaltersymmetrickey, TBaseType.rrw_alter,"symmetric","key"," "," "," "," "); 2313 addmssqlcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 2314 addmssqlcmds(ESqlStatementType.sstmssqlaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 2315 addmssqlcmds(ESqlStatementType.sstmssqlalteruser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 2316 addmssqlcmds(ESqlStatementType.sstmssqlalterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 2317 addmssqlcmds(ESqlStatementType.sstmssqlalterxmlschemacollection, TBaseType.rrw_alter,"xml","schema","collection"," "," "," "); 2318//backup 2319 addmssqlcmds(ESqlStatementType.sstmssqlbackupcertificate, TBaseType.rrw_backup,"certificate"," "," "," "," "," "); 2320 addmssqlcmds(ESqlStatementType.sstmssqlbackupdatabase, TBaseType.rrw_backup,"database"," "," "," "," "," "); 2321 addmssqlcmds(ESqlStatementType.sstmssqlbackuplog, TBaseType.rrw_backup,"log"," "," "," "," "," "); 2322 addmssqlcmds(ESqlStatementType.sstmssqlbackupmasterkey, TBaseType.rrw_backup,"master","key"," "," "," "," "); 2323 addmssqlcmds(ESqlStatementType.sstmssqlbackupservicemasterkey, TBaseType.rrw_backup,"service","master","key"," "," "," "); 2324//begin 2325 addmssqlcmds(ESqlStatementType.sstmssqlbegincatch, TBaseType.rrw_begin,"catch"," "," "," "," "," "); 2326 addmssqlcmds(ESqlStatementType.sstmssqlbeginconversationtimer, TBaseType.rrw_begin,"conversation","timer"," "," "," "," "); 2327 addmssqlcmds(ESqlStatementType.sstmssqlbegindialog, TBaseType.rrw_begin,"dialog"," "," "," "," "," "); 2328 addmssqlcmds(ESqlStatementType.sstmssqlbegindistributed, TBaseType.rrw_begin,"distributed"," "," "," "," "," "); 2329 addmssqlcmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"tran"," "," "," "," "," "); 2330 addmssqlcmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"transaction"," "," "," "," "," "); 2331 addmssqlcmds(ESqlStatementType.sstmssqlbegintry, TBaseType.rrw_begin,"try"," "," "," "," "," "); 2332//break 2333 addmssqlcmds(ESqlStatementType.sstbreak, TBaseType.rrw_break," "," "," "," "," "," "); 2334//bulk insert 2335 addmssqlcmds(ESqlStatementType.sstmssqlbulkinsert, TBaseType.rrw_bulk,"insert"," "," "," "," "," "); 2336//checkpoint 2337 addmssqlcmds(ESqlStatementType.sstmssqlcheckpoint, TBaseType.rrw_checkpoint," "," "," "," "," "," "); 2338//close 2339 addmssqlcmds(ESqlStatementType.sstmssqlclose, TBaseType.rrw_close," "," "," "," "," "," "); 2340 addmssqlcmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"all", "symmetric", "keys"," "," "," "); 2341 addmssqlcmds(ESqlStatementType.sstmssqlclosemasterkey, TBaseType.rrw_close,"master", "key"," "," "," "," "); 2342 addmssqlcmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"symmetric", "key"," "," "," "," "); 2343//commit 2344 addmssqlcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit," "," "," "," "," "," "); 2345 addmssqlcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"work"," "," "," "," "," "); 2346 addmssqlcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"tran"," "," "," "," "," "); 2347 addmssqlcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"transaction"," "," "," "," "," "); 2348//continue 2349 addmssqlcmds(ESqlStatementType.sstmssqlcontinue, TBaseType.rrw_continue," "," "," "," "," "," "); 2350// copy into 2351 addmssqlcmds(ESqlStatementType.sstCopyInto, TBaseType.rrw_sqlserver_copyinto,"into"," "," "," "," "," "); 2352//create 2353 addmssqlcmds(ESqlStatementType.sstmssqlcreateaggregate, TBaseType.rrw_create,"aggregate"," "," "," "," "," "); 2354 addmssqlcmds(ESqlStatementType.sstmssqlcreateapplicationrole, TBaseType.rrw_create,"application", "role"," "," "," "," "); 2355 addmssqlcmds(ESqlStatementType.sstmssqlcreateassembly, TBaseType.rrw_create,"assembly"," "," "," "," "," "); 2356 addmssqlcmds(ESqlStatementType.sstmssqlcreateasymmetrickey, TBaseType.rrw_create,"asymmetric", "key"," "," "," "," "); 2357 addmssqlcmds(ESqlStatementType.sstmssqlcreatecertificate, TBaseType.rrw_create,"certificate"," "," "," "," "," "); 2358 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"clustered","columnstore","index"," "," "," "); 2359 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"clustered","index"," "," "," "," "); 2360 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"columnstore","index"," "," "," "," "); 2361 addmssqlcmds(ESqlStatementType.sstmssqlcreatecontract, TBaseType.rrw_create,"contract"," "," "," "," "," "); 2362 addmssqlcmds(ESqlStatementType.sstcreatecredential, TBaseType.rrw_create,"credential"," "," "," "," "," "); 2363 addmssqlcmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 2364 addmssqlcmds(ESqlStatementType.sstmssqlcreatedatabaseencryptionkey, TBaseType.rrw_create,"database","encryption","key"," "," "," "); 2365 addmssqlcmds(ESqlStatementType.sstmssqlcreateselectivexmlindex, TBaseType.rrw_create,"selective","xml","index"," "," "," "); 2366 addmssqlcmds(ESqlStatementType.sstmssqlcreatejsonindex, TBaseType.rrw_create,"json","index"," "," "," "," "); 2367 addmssqlcmds(ESqlStatementType.sstmssqlcreatevectorindex, TBaseType.rrw_create,"vector","index"," "," "," "," "); 2368 addmssqlcmds(ESqlStatementType.sstmssqlrenameobject, TBaseType.rrw_rename,"object"," "," "," "," "," "); 2369 addmssqlcmds(ESqlStatementType.sstmssqlcreateremotetableasselect, TBaseType.rrw_create,"remote","table"," "," "," "," "); 2370 addmssqlcmds(ESqlStatementType.sstcreatecredential, TBaseType.rrw_create,"database","scoped","credential"," "," "," "); 2371 addmssqlcmds(ESqlStatementType.sstmssqlcreatedefault, TBaseType.rrw_create,"default"," "," "," "," "," "); 2372 addmssqlcmds(ESqlStatementType.sstmssqlcreateendpoint, TBaseType.rrw_create,"endpoint"," "," "," "," "," "); 2373 addmssqlcmds(ESqlStatementType.sstmssqlcreateeventnotification, TBaseType.rrw_create,"event", "notification"," "," "," "," "); 2374 addmssqlcmds(ESqlStatementType.sstmssqlcreateeventsession, TBaseType.rrw_create,"event", "session"," "," "," "," "); 2375 addmssqlcmds(ESqlStatementType.sstmssqlcreateevexternalDataSource, TBaseType.rrw_create,"external", "data","source"," "," "," "); 2376 addmssqlcmds(ESqlStatementType.sstCreateFileFormat, TBaseType.rrw_create,"external","file","format"," "," "," "); 2377 addmssqlcmds(ESqlStatementType.sstmssqlcreateevexternalLanguage, TBaseType.rrw_create,"external", "language"," "," "," "," "); 2378 addmssqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"external","table"," "," "," "," "); 2379 addmssqlcmds(ESqlStatementType.sstmssqlcreatefulltextcatalog, TBaseType.rrw_create,"fulltext", "catalog"," "," "," "," "); 2380 addmssqlcmds(ESqlStatementType.sstmssqlcreatefulltextindex, TBaseType.rrw_create,"fulltext", "index"," "," "," "," "); 2381 addmssqlcmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 2382 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 2383 addmssqlcmds(ESqlStatementType.sstmssqlcreatelogin, TBaseType.rrw_create,"login"," "," "," "," "," "); 2384 addmssqlcmds(ESqlStatementType.sstmssqlcreatemasterkey, TBaseType.rrw_create,"master","key"," "," "," "," "); 2385 addmssqlcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"materialized","view"," "," "," "," "); 2386 2387 addmssqlcmds(ESqlStatementType.sstmssqlcreatemessagetype, TBaseType.rrw_create,"message","type"," "," "," "," "); 2388 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"nonclustered","columnstore","index"," "," "," "); 2389 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"nonclustered","index"," "," "," "," "); 2390 2391 addmssqlcmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"or","alter","function"," "," "," "); 2392 2393 addmssqlcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","alter","proc"," "," "," "); 2394 addmssqlcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","alter","procedure"," "," "," "); 2395 2396 addmssqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"or","alter","view"," "," "," "); 2397 addmssqlcmds(ESqlStatementType.sstmssqlcreatepartitionfunction, TBaseType.rrw_create,"partition","function"," "," "," "," "); 2398 addmssqlcmds(ESqlStatementType.sstmssqlcreatepartitionscheme, TBaseType.rrw_create,"partition","scheme"," "," "," "," "); 2399 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"primary","xml","index"," "," "," "); 2400 addmssqlcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"proc"," "," "," "," "," "); 2401 addmssqlcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 2402 addmssqlcmds(ESqlStatementType.sstmssqlcreatequeue, TBaseType.rrw_create,"queue"," "," "," "," "," "); 2403 addmssqlcmds(ESqlStatementType.sstmssqlcreateremoteservicebinding, TBaseType.rrw_create,"remote", "service", "binding"," "," "," "); 2404 addmssqlcmds(ESqlStatementType.sstmssqlcreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 2405 addmssqlcmds(ESqlStatementType.sstmssqlcreateroute, TBaseType.rrw_create,"route"," "," "," "," "," "); 2406 addmssqlcmds(ESqlStatementType.sstmssqlcreaterule, TBaseType.rrw_create,"rule"," "," "," "," "," "); 2407 addmssqlcmds(ESqlStatementType.sstmssqlcreateschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 2408 addmssqlcmds(ESqlStatementType.sstmssqlCreateSecurityPolicy, TBaseType.rrw_create, "security", "policy", " ", " ", " ", " "); 2409 addmssqlcmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 2410 addmssqlcmds(ESqlStatementType.sstmssqlcreateservice, TBaseType.rrw_create,"service"," "," "," "," "," "); 2411 addmssqlcmds(ESqlStatementType.sstmssqlcreatestatistics, TBaseType.rrw_create,"statistics"," "," "," "," "," "); 2412 addmssqlcmds(ESqlStatementType.sstmssqlcreatesymmetrickey, TBaseType.rrw_create,"symmetric", "key"," "," "," "," "); 2413 addmssqlcmds(ESqlStatementType.sstmssqlcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 2414 addmssqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 2415 addmssqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 2416 addmssqlcmds(ESqlStatementType.sstmssqlcreatetype, TBaseType.rrw_create,"type"," "," "," "," "," "); 2417 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","clustered","index"," "," "," "); 2418 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 2419 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","nonclustered","index"," "," "," "); 2420 addmssqlcmds(ESqlStatementType.sstmssqlcreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 2421 addmssqlcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 2422 addmssqlcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"xml","index"," "," "," "," "); 2423 addmssqlcmds(ESqlStatementType.sstmssqlcreatexmlschemacollection, TBaseType.rrw_create,"xml", "schema", "collection"," "," "," "); 2424// DBCC 2425 addmssqlcmds(ESqlStatementType.sstmssqldbcc, TBaseType.rrw_dbcc," "," "," "," "," "," "); 2426//DEALLOCATE 2427 addmssqlcmds(ESqlStatementType.sstmssqldeallocate, TBaseType.rrw_deallocate," "," "," "," "," "," "); 2428//DECLARE 2429 addmssqlcmds(ESqlStatementType.sstmssqldeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 2430//DELETE 2431 addmssqlcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 2432//DENY 2433 addmssqlcmds(ESqlStatementType.sstmssqldeny, TBaseType.rrw_deny," "," "," "," "," "," "); 2434//DISABLE TRIGGER 2435 addmssqlcmds(ESqlStatementType.sstmssqldisabletrigger, TBaseType.rrw_disable,"trigger"," "," "," "," "," "); 2436//drop 2437 addmssqlcmds(ESqlStatementType.sstmssqldropaggregate, TBaseType.rrw_drop,"aggregate"," "," "," "," "," "); 2438 addmssqlcmds(ESqlStatementType.sstmssqldropapplicationrole, TBaseType.rrw_drop,"application", "role"," "," "," "," "); 2439 addmssqlcmds(ESqlStatementType.sstmssqldropassembly, TBaseType.rrw_drop,"assembly"," "," "," "," "," "); 2440 addmssqlcmds(ESqlStatementType.sstmssqldropasymmetrickey, TBaseType.rrw_drop,"asymmetric", "key"," "," "," "," "); 2441 addmssqlcmds(ESqlStatementType.sstmssqldropcertificate, TBaseType.rrw_drop,"certificate"," "," "," "," "," "); 2442 addmssqlcmds(ESqlStatementType.sstmssqldropcontract, TBaseType.rrw_drop,"contract"," "," "," "," "," "); 2443 addmssqlcmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"counter", "signature"," "," "," "," "); 2444 addmssqlcmds(ESqlStatementType.sstmssqldropcredential, TBaseType.rrw_drop,"credential"," "," "," "," "," "); 2445 addmssqlcmds(ESqlStatementType.sstmssqldropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 2446 addmssqlcmds(ESqlStatementType.sstmssqldropdefault, TBaseType.rrw_drop,"default"," "," "," "," "," "); 2447 addmssqlcmds(ESqlStatementType.sstmssqldropendpoint, TBaseType.rrw_drop,"endpoint"," "," "," "," "," "); 2448 addmssqlcmds(ESqlStatementType.sstmssqldropeventnotification, TBaseType.rrw_drop,"event", "notification"," "," "," "," "); 2449 addmssqlcmds(ESqlStatementType.sstmssqldropeventsession, TBaseType.rrw_drop,"event", "session"," "," "," "," "); 2450 addmssqlcmds(ESqlStatementType.sstmssqldropfulltextcatalog, TBaseType.rrw_drop,"fulltext", "catalog"," "," "," "," "); 2451 addmssqlcmds(ESqlStatementType.sstmssqldropfulltextindex, TBaseType.rrw_drop,"fulltext", "index"," "," "," "," "); 2452 addmssqlcmds(ESqlStatementType.sstmssqldropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 2453 addmssqlcmds(ESqlStatementType.sstmssqldropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 2454 addmssqlcmds(ESqlStatementType.sstmssqldroplogin, TBaseType.rrw_drop,"login"," "," "," "," "," "); 2455 addmssqlcmds(ESqlStatementType.sstmssqldropmasterkey, TBaseType.rrw_drop,"master", "key"," "," "," "," "); 2456 addmssqlcmds(ESqlStatementType.sstmssqldropmessagetype, TBaseType.rrw_drop,"message", "type"," "," "," "," "); 2457 addmssqlcmds(ESqlStatementType.sstmssqldroppartitionfunction, TBaseType.rrw_drop,"partition", "function"," "," "," "," "); 2458 addmssqlcmds(ESqlStatementType.sstmssqldroppartitionscheme, TBaseType.rrw_drop,"partition", "scheme"," "," "," "," "); 2459 addmssqlcmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"proc"," "," "," "," "," "); 2460 addmssqlcmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 2461 addmssqlcmds(ESqlStatementType.sstmssqldropqueue, TBaseType.rrw_drop,"queue"," "," "," "," "," "); 2462 addmssqlcmds(ESqlStatementType.sstmssqldropremoteservicebinding, TBaseType.rrw_drop,"remote", "service", "binding"," "," "," "); 2463 addmssqlcmds(ESqlStatementType.sstmssqldroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 2464 addmssqlcmds(ESqlStatementType.sstmssqldroproute, TBaseType.rrw_drop,"route"," "," "," "," "," "); 2465 addmssqlcmds(ESqlStatementType.sstmssqldroprule, TBaseType.rrw_drop,"rule"," "," "," "," "," "); 2466 addmssqlcmds(ESqlStatementType.sstmssqldropschema, TBaseType.rrw_drop,"schema"," "," "," "," "," "); 2467 addmssqlcmds(ESqlStatementType.sstmssqlDropSecurityPolicy, TBaseType.rrw_drop, "security", "policy", " ", " ", " ", " "); 2468 addmssqlcmds(ESqlStatementType.sstdropsequence, TBaseType.rrw_drop,"sequence"," "," "," "," "," "); 2469 addmssqlcmds(ESqlStatementType.sstmssqldropservice, TBaseType.rrw_drop,"service"," "," "," "," "," "); 2470 addmssqlcmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"signature"," "," "," "," "," "); 2471 addmssqlcmds(ESqlStatementType.sstmssqldropstatistics, TBaseType.rrw_drop,"statistics"," "," "," "," "," "); 2472 addmssqlcmds(ESqlStatementType.sstmssqldropsymmetrickey, TBaseType.rrw_drop,"symmetric", "key"," "," "," "," "); 2473 addmssqlcmds(ESqlStatementType.sstmssqldropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 2474 addmssqlcmds(ESqlStatementType.sstmssqldroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 2475 addmssqlcmds(ESqlStatementType.sstmssqldroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 2476 addmssqlcmds(ESqlStatementType.sstmssqldroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 2477 addmssqlcmds(ESqlStatementType.sstmssqldropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 2478 addmssqlcmds(ESqlStatementType.sstmssqldropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 2479 addmssqlcmds(ESqlStatementType.sstmssqldropxmlschemacollection, TBaseType.rrw_drop,"xml", "schema", "collection"," "," "," "); 2480//enable trigger 2481 addmssqlcmds(ESqlStatementType.sstmssqlenabletrigger, TBaseType.rrw_enable,"trigger"," "," "," "," "," "); 2482//END CONVERSATION 2483// AddMssqlCmds(ESqlStatementType.sstMssqlEndCatch,TBaseType.rrw_end,'catch'); 2484 addmssqlcmds(ESqlStatementType.sstmssqlendconversation, TBaseType.rrw_end,"conversation"," "," "," "," "," "); 2485// AddMssqlCmds(ESqlStatementType.sstMssqlEndTry,TBaseType.rrw_end,'try'); 2486//exec 2487//exec as 2488 addmssqlcmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_exec," "," "," "," "," "," "); 2489 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","caller"," "," "," "," "); 2490 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","login"," "," "," "," "); 2491 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","user"," "," "," "," "); 2492 addmssqlcmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_execute, " "," "," "," "," "," "); 2493 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","caller"," "," "," "," "); 2494 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","login"," "," "," "," "); 2495 addmssqlcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","user"," "," "," "," "); 2496//fetch 2497 addmssqlcmds(ESqlStatementType.sstmssqlfetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 2498//go 2499 addmssqlcmds(ESqlStatementType.sstmssqlgo, TBaseType.rrw_go," "," "," "," "," "," "); 2500//goto 2501 addmssqlcmds(ESqlStatementType.sstmssqlgoto, TBaseType.rrw_goto," "," "," "," "," "," "); 2502//GRANT 2503 addmssqlcmds(ESqlStatementType.sstmssqlgrant, TBaseType.rrw_grant," "," "," "," "," "," "); 2504 2505//if 2506 addmssqlcmds(ESqlStatementType.sstmssqlif, TBaseType.rrw_if," "," "," "," "," "," "); 2507 2508//GRANT 2509 addmssqlcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 2510 addmssqlcmds(ESqlStatementType.sstmssqlinsertbulk, TBaseType.rrw_insert,"bulk"," "," "," "," "," "); 2511//KILL 2512 addmssqlcmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 2513//KILL 2514 addmssqlcmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 2515 addmssqlcmds(ESqlStatementType.sstmssqlkillquerynotificationsubscription, TBaseType.rrw_kill,"kill", "query", "notification", "subscription"," "," "); 2516 addmssqlcmds(ESqlStatementType.sstmssqlkillstats, TBaseType.rrw_kill,"stats"," "," "," "," "," "); 2517 2518// 2519 addmssqlcmds(ESqlStatementType.sstsybaselocktable,TBaseType.rw_locktable,"table"," "," "," "," "," "); 2520//MOVE CONVERSATION 2521 addmssqlcmds(ESqlStatementType.sstmssqlmoveconversation, TBaseType.rrw_move,"conversation"," "," "," "," "," "); 2522//merge 2523 addmssqlcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 2524//open 2525 addmssqlcmds(ESqlStatementType.sstmssqlopen, TBaseType.rrw_open," "," "," "," "," "," "); 2526 addmssqlcmds(ESqlStatementType.sstmssqlopenmasterkey, TBaseType.rrw_open,"master", "key"," "," "," "," "); 2527 addmssqlcmds(ESqlStatementType.sstmssqlopensymmetrickey, TBaseType.rrw_open,"symmetric", "key"," "," "," "," "); 2528//PRINT 2529 addmssqlcmds(ESqlStatementType.sstmssqlprint, TBaseType.rrw_print," "," "," "," "," "," "); 2530//RAISERROR 2531 addmssqlcmds(ESqlStatementType.sstmssqlraiserror, TBaseType.rrw_raiserror," "," "," "," "," "," "); 2532//READTEXT 2533 addmssqlcmds(ESqlStatementType.sstmssqlreadtext, TBaseType.rrw_readtext," "," "," "," "," "," "); 2534//RECEIVE 2535 addmssqlcmds(ESqlStatementType.sstmssqlreceive, TBaseType.rrw_receive," "," "," "," "," "," "); 2536//RECONFIGURE 2537 addmssqlcmds(ESqlStatementType.sstmssqlreconfigure, TBaseType.rrw_reconfigure," "," "," "," "," "," "); 2538//RESTORE 2539 addmssqlcmds(ESqlStatementType.sstmssqlrestoredatabase, TBaseType.rrw_restore,"database"," "," "," "," "," "); 2540 addmssqlcmds(ESqlStatementType.sstmssqlrestorefilelistonly, TBaseType.rrw_restore,"filelistonly"," "," "," "," "," "); 2541 addmssqlcmds(ESqlStatementType.sstmssqlrestoreheaderonly, TBaseType.rrw_restore,"headeronly"," "," "," "," "," "); 2542 addmssqlcmds(ESqlStatementType.sstmssqlrestorelabelonly, TBaseType.rrw_restore,"labelonly"," "," "," "," "," "); 2543 addmssqlcmds(ESqlStatementType.sstmssqlrestorelog, TBaseType.rrw_restore,"log"," "," "," "," "," "); 2544 addmssqlcmds(ESqlStatementType.sstmssqlrestoremasterkey, TBaseType.rrw_restore,"master","key"," "," "," "," "); 2545 addmssqlcmds(ESqlStatementType.sstmssqlrestorerewindonly, TBaseType.rrw_restore,"rewindonly"," "," "," "," "," "); 2546 addmssqlcmds(ESqlStatementType.sstmssqlrestoreservicemasterkey, TBaseType.rrw_restore,"service","master","key"," "," "," "); 2547 addmssqlcmds(ESqlStatementType.sstmssqlrestoreverifyonly, TBaseType.rrw_restore,"verifyonly"," "," "," "," "," "); 2548//RETURN 2549 addmssqlcmds(ESqlStatementType.sstmssqlreturn, TBaseType.rrw_return," "," "," "," "," "," "); 2550//REVERT 2551 addmssqlcmds(ESqlStatementType.sstmssqlrevert, TBaseType.rrw_revert," "," "," "," "," "," "); 2552//REVOKE 2553 addmssqlcmds(ESqlStatementType.sstmssqlrevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 2554//ROLLBACK 2555 addmssqlcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 2556 addmssqlcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"tran"," "," "," "," "," "); 2557 addmssqlcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"transaction"," "," "," "," "," "); 2558 addmssqlcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"work"," "," "," "," "," "); 2559//SAVE 2560 addmssqlcmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save," "," "," "," "," "," "); 2561 addmssqlcmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"tran"," "," "," "," "," "); 2562 addmssqlcmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"transaction"," "," "," "," "," "); 2563//SELECT 2564 addmssqlcmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 2565//SEND ON CONVERSATION 2566 addmssqlcmds(ESqlStatementType.sstmssqlsendonconversation, TBaseType.rrw_send,"on","conversation"," "," "," "," "); 2567//SET 2568 addmssqlcmds(ESqlStatementType.sstmssqlset, TBaseType.rrw_set," "," "," "," "," "," "); 2569//SET rowcount 2570 addmssqlcmds(ESqlStatementType.sstmssqlsetrowcount, TBaseType.rrw_set,"rowcount"," "," "," "," "," "); 2571//SET 2572 addmssqlcmds(ESqlStatementType.sstmssqlsetuser,TBaseType.rrw_setuser," "," "," "," "," "," "); 2573//SHUTDOWN 2574 addmssqlcmds(ESqlStatementType.sstmssqlshutdown, TBaseType.rrw_shutdown," "," "," "," "," "," "); 2575//SIGN 2576// addmssqlcmds(ESqlStatementType.sstmssqlsign, rrw_sign," "," "," "," "," "," "); 2577 2578//throw 2579 addmssqlcmds(ESqlStatementType.sstmssqlthrow, TBaseType.rrw_sqlserver_throw," "," "," "," "," "," "); 2580 2581//TRUNCATE TABLE 2582 addmssqlcmds(ESqlStatementType.sstmssqltruncatetable, TBaseType.rrw_truncate,"table"," "," "," "," "," "); 2583//UPDATE 2584 addmssqlcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 2585//UPDATE STATISTICS 2586 addmssqlcmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"statistics"," "," "," "," "," "); 2587//UPDATETEXT 2588 addmssqlcmds(ESqlStatementType.sstmssqlupdatetext, TBaseType.rrw_updatetext," "," "," "," "," "," "); 2589//USE 2590 addmssqlcmds(ESqlStatementType.sstmssqluse, TBaseType.rrw_use," "," "," "," "," "," "); 2591//WAITFOR 2592 addmssqlcmds(ESqlStatementType.sstmssqlwaitfor, TBaseType.rrw_waitfor," "," "," "," "," "," "); 2593//WHILE 2594 addmssqlcmds(ESqlStatementType.sstmssqlwhile, TBaseType.rrw_while," "," "," "," "," "," "); 2595//WITH, don't recongize here, let isMssqlSql do it 2596// AddMssqlCmds(ESqlStatementType.sstMssqlCTE,rrw_WITH,' '); 2597//WITH XMLNAMESPACES 2598 // addmssqlcmds(ESqlStatementType.sstmssqlwithxmlnamespaces, TBaseType.rrw_with,"xmlnamespaces"," "," "," "," "," "); 2599//WRITETEXT 2600 addmssqlcmds(ESqlStatementType.sstmssqlwritetext, TBaseType.rrw_writetext," "," "," "," "," "," "); 2601 2602} 2603 2604void initdb2cmds(){ 2605// cmd must be sort alphabetically 2606 adddb2cmds(ESqlStatementType.sstdb2allocatecursor, TBaseType.rrw_allocate,"cursor"," "," "," "," "," "); 2607 adddb2cmds(ESqlStatementType.sstdb2alterbufferpool, TBaseType.rrw_alter,"bufferpool"," "," "," "," "," "); 2608 adddb2cmds(ESqlStatementType.sstdb2alterdatabasepartitiongroup, TBaseType.rrw_alter,"database", "partition", "group"," "," "," "); 2609 adddb2cmds(ESqlStatementType.sstdb2alterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 2610 adddb2cmds(ESqlStatementType.sstdb2altermethod, TBaseType.rrw_alter,"method"," "," "," "," "," "); 2611 adddb2cmds(ESqlStatementType.sstdb2alternickname, TBaseType.rrw_alter,"nickname"," "," "," "," "," "); 2612 adddb2cmds(ESqlStatementType.sstdb2alterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 2613 adddb2cmds(ESqlStatementType.sstdb2altersequence, TBaseType.rrw_alter,"sequence"," "," "," "," "," "); 2614 adddb2cmds(ESqlStatementType.sstdb2alterserver, TBaseType.rrw_alter,"server"," "," "," "," "," "); 2615 adddb2cmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 2616 adddb2cmds(ESqlStatementType.sstdb2altertablespace, TBaseType.rrw_alter,"tablespace"," "," "," "," "," "); 2617 adddb2cmds(ESqlStatementType.sstdb2altertype, TBaseType.rrw_alter,"type"," "," "," "," "," "); 2618 adddb2cmds(ESqlStatementType.sstdb2alterusermapping, TBaseType.rrw_alter,"user","mapping"," "," "," "," "); 2619 adddb2cmds(ESqlStatementType.sstdb2alterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 2620 adddb2cmds(ESqlStatementType.sstdb2alterwrapper, TBaseType.rrw_alter,"wrapper"," "," "," "," "," "); 2621 adddb2cmds(ESqlStatementType.sstdb2associatelocators, TBaseType.rrw_associate,"locators"," "," "," "," "," "); 2622 adddb2cmds(ESqlStatementType.sstdb2begindeclaresection, TBaseType.rrw_begin,"declare", "section"," "," "," "," "); 2623 adddb2cmds(ESqlStatementType.sstdb2call, TBaseType.rrw_call," "," "," "," "," "," "); 2624 adddb2cmds(ESqlStatementType.sstdb2case, TBaseType.rrw_case," "," "," "," "," "," "); 2625 adddb2cmds(ESqlStatementType.sstdb2close, TBaseType.rrw_close," "," "," "," "," "," "); 2626 adddb2cmds(ESqlStatementType.sstdb2comment, TBaseType.rrw_comment," "," "," "," "," "," "); 2627 adddb2cmds(ESqlStatementType.sstdb2commit, TBaseType.rrw_commit," "," "," "," "," "," "); 2628 adddb2cmds(ESqlStatementType.sstdb2connect, TBaseType.rrw_connect," "," "," "," "," "," "); 2629 adddb2cmds(ESqlStatementType.sstdb2createalias, TBaseType.rrw_create,"alias"," "," "," "," "," "); 2630 adddb2cmds(ESqlStatementType.sstcreateauditpolicy, TBaseType.rrw_create,"audit","policy"," "," "," "," "); 2631 adddb2cmds(ESqlStatementType.sstdb2createbufferpool, TBaseType.rrw_create,"bufferpool"," "," "," "," "," "); 2632 adddb2cmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create,"database", " ", " "," "," "," "); 2633 adddb2cmds(ESqlStatementType.sstdb2createdatabasepartitiongroup, TBaseType.rrw_create,"database", "partition", "group"," "," "," "); 2634 adddb2cmds(ESqlStatementType.sstdb2createdistincttype, TBaseType.rrw_create,"distinct", "type"," "," "," "," "); 2635 adddb2cmds(ESqlStatementType.sstdb2createeventmonitor, TBaseType.rrw_create,"eventmonitor"," "," "," "," "," "); 2636 adddb2cmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 2637 adddb2cmds(ESqlStatementType.sstdb2createfunctionmapping, TBaseType.rrw_create,"function", "mapping"," "," "," "," "); 2638 adddb2cmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","table"," "," "," "); 2639 adddb2cmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 2640 adddb2cmds(ESqlStatementType.sstdb2createindexextension, TBaseType.rrw_create,"index", "extension"," "," "," "," "); 2641 adddb2cmds(ESqlStatementType.sstcreateTablespace, TBaseType.rrw_create,"large","tablespace"," "," "," "," "); 2642 adddb2cmds(ESqlStatementType.sstdb2createmethod, TBaseType.rrw_create,"method"," "," "," "," "," "); 2643 adddb2cmds(ESqlStatementType.sstdb2createnickname, TBaseType.rrw_create,"nickname"," "," "," "," "," "); 2644 adddb2cmds(ESqlStatementType.sstdb2createalias, TBaseType.rrw_create,"or","replace","alias"," "," "," "); 2645 adddb2cmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create,"or","replace","function"," "," "," "); 2646 adddb2cmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create,"or","replace","procedure"," "," "," "); 2647 adddb2cmds(ESqlStatementType.sstdb2createalias, TBaseType.rrw_create,"or","replace","public","alias"," "," "); 2648 adddb2cmds(ESqlStatementType.sstdb2createtrigger, TBaseType.rrw_create,"or","replace","trigger"," "," "," "); 2649 adddb2cmds(ESqlStatementType.sstdb2createvariable, TBaseType.rrw_create,"or","replace","variable"," "," "," "); 2650 adddb2cmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"or","replace","view"," "," "," "); 2651 adddb2cmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 2652 adddb2cmds(ESqlStatementType.sstdb2createalias, TBaseType.rrw_create,"public","alias"," "," "," "," "); 2653 adddb2cmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create,"public","synonym"," "," "," "," "); 2654 adddb2cmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 2655 adddb2cmds(ESqlStatementType.sstdb2createschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 2656 adddb2cmds(ESqlStatementType.sstdb2createsequence, TBaseType.rrw_create,"sequence"," "," "," "," "," "); 2657 adddb2cmds(ESqlStatementType.sstdb2createserver, TBaseType.rrw_create,"server"," "," "," "," "," "); 2658 adddb2cmds(ESqlStatementType.sstdb2createstogroup, TBaseType.rrw_create,"stogroup"," "," "," "," "," "); 2659 adddb2cmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"summary","table"," "," "," "," "); 2660 adddb2cmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 2661 adddb2cmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 2662 adddb2cmds(ESqlStatementType.sstcreateTablespace, TBaseType.rrw_create,"tablespace"," "," "," "," "," "); 2663 adddb2cmds(ESqlStatementType.sstdb2createtransform, TBaseType.rrw_create,"transform"," "," "," "," "," "); 2664 adddb2cmds(ESqlStatementType.sstdb2createtrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 2665 adddb2cmds(ESqlStatementType.sstdb2createtype, TBaseType.rrw_create,"type"," "," "," "," "," "); 2666 adddb2cmds(ESqlStatementType.sstdb2createtypemapping, TBaseType.rrw_create,"type", "mapping"," "," "," "," "); 2667 adddb2cmds(ESqlStatementType.sstdb2createusermapping, TBaseType.rrw_create,"user", "mapping"," "," "," "," "); 2668 adddb2cmds(ESqlStatementType.sstdb2createvariable, TBaseType.rrw_create,"variable"," "," "," "," "," "); 2669 adddb2cmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 2670 adddb2cmds(ESqlStatementType.sstdb2createwrapper, TBaseType.rrw_create,"wrapper"," "," "," "," "," "); 2671 adddb2cmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"*","index"," "," "," "," "); 2672 adddb2cmds(ESqlStatementType.sstdb2declareglobaltemporarytable, TBaseType.rrw_declare, "global", "temporary", "table"," "," "," "); 2673 adddb2cmds(ESqlStatementType.sstdb2declarecursor, TBaseType.rrw_declare,"*","cursor"," "," "," "," "); 2674 adddb2cmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 2675 adddb2cmds(ESqlStatementType.sstdb2describe, TBaseType.rrw_describe," "," "," "," "," "," "); 2676 adddb2cmds(ESqlStatementType.sstdb2disconnect, TBaseType.rrw_disconnect," "," "," "," "," "," "); 2677 adddb2cmds(ESqlStatementType.sstdb2drop, TBaseType.rrw_drop," "," "," "," "," "," "); 2678 adddb2cmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 2679 adddb2cmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 2680 adddb2cmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 2681 adddb2cmds(ESqlStatementType.sstdb2enddeclaresection, TBaseType.rrw_end,"declare","section"," "," "," "," "); 2682 adddb2cmds(ESqlStatementType.sstdb2execute, TBaseType.rrw_execute," "," "," "," "," "," "); 2683 adddb2cmds(ESqlStatementType.sstdb2executeimmediate, TBaseType.rrw_execute,"immediate"," "," "," "," "," "); 2684 adddb2cmds(ESqlStatementType.sstdb2explain, TBaseType.rrw_explain," "," "," "," "," "," "); 2685 adddb2cmds(ESqlStatementType.sstdb2fetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 2686 adddb2cmds(ESqlStatementType.sstdb2flusheventmonitor, TBaseType.rrw_flush, "event", "monitor"," "," "," "," "); 2687 adddb2cmds(ESqlStatementType.sstdb2flushpackagecache, TBaseType.rrw_flush,"package", "cache"," "," "," "," "); 2688 adddb2cmds(ESqlStatementType.sstdb2for, TBaseType.rrw_for," "," "," "," "," "," "); 2689 adddb2cmds(ESqlStatementType.sstdb2freelocator, TBaseType.rrw_free,"locator"," "," "," "," "," "); 2690 adddb2cmds(ESqlStatementType.sstgetdiagnostics, TBaseType.rrw_get,"diagnostics"," "," "," "," "," "); 2691 adddb2cmds(ESqlStatementType.sstdb2goto, TBaseType.rrw_goto," "," "," "," "," "," "); 2692 adddb2cmds(ESqlStatementType.sstdb2grant, TBaseType.rrw_grant," "," "," "," "," "," "); 2693 adddb2cmds(ESqlStatementType.sstdb2if, TBaseType.rrw_if," "," "," "," "," "," "); 2694 adddb2cmds(ESqlStatementType.sstdb2include, TBaseType.rrw_include," "," "," "," "," "," "); 2695 adddb2cmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 2696 adddb2cmds(ESqlStatementType.sstdb2iterate, TBaseType.rrw_iterate," "," "," "," "," "," "); 2697 adddb2cmds(ESqlStatementType.sstdb2labelOn, TBaseType.rrw_db2_label,"on"," "," "," "," "," "); 2698 adddb2cmds(ESqlStatementType.sstdb2leave, TBaseType.rrw_leave," "," "," "," "," "," "); 2699 adddb2cmds(ESqlStatementType.sstdb2locktable, TBaseType.rrw_lock,"table"," "," "," "," "," "); 2700 adddb2cmds(ESqlStatementType.sstdb2loop, TBaseType.rrw_loop," "," "," "," "," "," "); 2701 adddb2cmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 2702 adddb2cmds(ESqlStatementType.sstdb2open, TBaseType.rrw_open," "," "," "," "," "," "); 2703 adddb2cmds(ESqlStatementType.sstdb2prepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 2704 adddb2cmds(ESqlStatementType.sstdb2refreshtable, TBaseType.rrw_refresh,"table"," "," "," "," "," "); 2705 adddb2cmds(ESqlStatementType.sstdb2release, TBaseType.rrw_release," "," "," "," "," "," "); 2706 adddb2cmds(ESqlStatementType.sstdb2releasesavepoint, TBaseType.rrw_release,"savepoint"," "," "," "," "," "); 2707 adddb2cmds(ESqlStatementType.sstdb2rename, TBaseType.rrw_rename," "," "," "," "," "," "); 2708 adddb2cmds(ESqlStatementType.sstdb2renametablespace, TBaseType.rrw_rename,"tablespace"," "," "," "," "," "); 2709 adddb2cmds(ESqlStatementType.sstdb2repeat, TBaseType.rrw_repeat," "," "," "," "," "," "); 2710 adddb2cmds(ESqlStatementType.sstdb2resignal, TBaseType.rrw_resignal," "," "," "," "," "," "); 2711 adddb2cmds(ESqlStatementType.sstdb2return, TBaseType.rrw_return," "," "," "," "," "," "); 2712 adddb2cmds(ESqlStatementType.sstdb2revoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 2713 adddb2cmds(ESqlStatementType.sstdb2rollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 2714 adddb2cmds(ESqlStatementType.sstRunStats, TBaseType.rrw_db2_runstats," "," "," "," "," "," "); 2715 adddb2cmds(ESqlStatementType.sstdb2savepoint, TBaseType.rrw_savepoint," "," "," "," "," "," "); 2716 adddb2cmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 2717 adddb2cmds(ESqlStatementType.sstdb2setconnection, TBaseType.rrw_set,"connection"," "," "," "," "," "); 2718 adddb2cmds(ESqlStatementType.sstdb2set, TBaseType.rrw_set," "," "," "," "," "," "); 2719 adddb2cmds(ESqlStatementType.sstdb2setconnection, TBaseType.rrw_set,"connection"," "," "," "," "," "); 2720 adddb2cmds(ESqlStatementType.sstdb2setcurrentdefaulttransformgroup, TBaseType.rrw_set,"current default transform group"," "," "," "," "," "); 2721 adddb2cmds(ESqlStatementType.sstdb2setcurrentdegree, TBaseType.rrw_set,"current", "degree"," "," "," "," "); 2722 adddb2cmds(ESqlStatementType.sstdb2setcurrentexplainmode, TBaseType.rrw_set,"current", "explain", "mode"," "," "," "); 2723 adddb2cmds(ESqlStatementType.sstdb2setcurrentexplainsnapshot, TBaseType.rrw_set,"current", "explain", "snapshot"," "," "," "); 2724 adddb2cmds(ESqlStatementType.sstdb2setcurrentisolation, TBaseType.rrw_set,"current", "isolation"," "," "," "," "); 2725 adddb2cmds(ESqlStatementType.sstdb2setcurrentlocktimeout, TBaseType.rrw_set,"current", "lock", "timeout"," "," "," "); 2726 adddb2cmds(ESqlStatementType.sstdb2setcurrentmaintainedtabletypesforoptimization, TBaseType.rrw_set,"current", "maintained", "table", "types"," "," "); 2727 adddb2cmds(ESqlStatementType.sstdb2setcurrentpackagepath, TBaseType.rrw_set,"current", "package", "path"," "," "," "); 2728 adddb2cmds(ESqlStatementType.sstdb2setcurrentpackageset, TBaseType.rrw_set,"current", "packageset"," "," "," "," "); 2729 adddb2cmds(ESqlStatementType.sstdb2setcurrentqueryoptimization, TBaseType.rrw_set,"current", "query", "optimization"," "," "," "); 2730 adddb2cmds(ESqlStatementType.sstdb2setcurrentrefreshage, TBaseType.rrw_set,"current", "refresh", "age"," "," "," "); 2731 adddb2cmds(ESqlStatementType.sstdb2setschema, TBaseType.rrw_set,"current","schema"," "," "," "," "); 2732 adddb2cmds(ESqlStatementType.sstdb2setencryptionpassword, TBaseType.rrw_set,"encryption", "password"," "," "," "," "); 2733 adddb2cmds(ESqlStatementType.sstdb2seteventmonitorstate, TBaseType.rrw_set,"event", "monitor", "state"," "," "," "); 2734 adddb2cmds(ESqlStatementType.sstdb2setintegrity, TBaseType.rrw_set,"integrity"," "," "," "," "," "); 2735 adddb2cmds(ESqlStatementType.sstdb2setpassthru, TBaseType.rrw_set,"passthru"," "," "," "," "," "); 2736 adddb2cmds(ESqlStatementType.sstdb2setpath, TBaseType.rrw_set,"path"," "," "," "," "," "); 2737 adddb2cmds(ESqlStatementType.sstdb2setschema, TBaseType.rrw_set,"schema"," "," "," "," "," "); 2738 adddb2cmds(ESqlStatementType.sstdb2setserveroption, TBaseType.rrw_set,"server", "option"," "," "," "," "); 2739 adddb2cmds(ESqlStatementType.sstdb2setsessionauthorization, TBaseType.rrw_set,"session", "authorization"," "," "," "," "); 2740 adddb2cmds(ESqlStatementType.sstdb2signal, TBaseType.rrw_signal," "," "," "," "," "," "); 2741 adddb2cmds(ESqlStatementType.sstdb2terminate, TBaseType.rrw_terminate," "," "," "," "," "," "); 2742//TRUNCATE TABLE 2743 adddb2cmds(ESqlStatementType.ssttruncatetable, TBaseType.rrw_truncate," "," "," "," "," "," "); 2744 2745 adddb2cmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 2746 adddb2cmds(ESqlStatementType.sstdb2updateCommand, TBaseType.rrw_update,"command"," "," "," "," "," "); 2747// AddDB2Cmds(sstDB2VALUES,rrw_VALUES); 2748// AddDB2Cmds(sstDB2WHENEVER,rrw_WHENEVER); 2749 adddb2cmds(ESqlStatementType.sstdb2while, TBaseType.rrw_while," "," "," "," "," "," "); 2750 2751} 2752 2753void initnetezzacmds(){ 2754 addnetezzacmds(ESqlStatementType.sstAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 2755 addnetezzacmds(ESqlStatementType.sstnetezzaAlterDatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 2756 addnetezzacmds(ESqlStatementType.sstnetezzaAlterGroup, TBaseType.rrw_alter, "group", " ", " ", " ", " ", " "); 2757 addnetezzacmds(ESqlStatementType.sstnetezzaAlterHistoryConfiguration, TBaseType.rrw_alter, "history", " ", " ", " ", " ", " "); 2758 addnetezzacmds(ESqlStatementType.sstnetezzaAlterSequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 2759 addnetezzacmds(ESqlStatementType.sstaltersession, TBaseType.rrw_alter, "session", " ", " ", " ", " ", " "); 2760 addnetezzacmds(ESqlStatementType.sstAlterSynonym, TBaseType.rrw_alter, "synonym", " ", " ", " ", " ", " "); 2761 addnetezzacmds(ESqlStatementType.sstnetezzaAlterTable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 2762 addnetezzacmds(ESqlStatementType.sstnetezzaAlterUser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 2763 addnetezzacmds(ESqlStatementType.sstnetezzaAlterView, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 2764 addnetezzacmds(ESqlStatementType.sstnetezzaAlterView, TBaseType.rrw_alter, "views", " ", " ", " ", " ", " "); 2765 addnetezzacmds(ESqlStatementType.sstnetezzaBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 2766 addnetezzacmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 2767 addnetezzacmds(ESqlStatementType.sstnetezzaComment, TBaseType.rrw_comment, " ", " ", " ", " ", " ", " "); 2768 addnetezzacmds(ESqlStatementType.sstnetezzaCommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 2769 addnetezzacmds(ESqlStatementType.sstnetezzaCopy, TBaseType.rrw_netezza_copy, " ", " ", " ", " ", " ", " "); 2770 addnetezzacmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 2771 addnetezzacmds(ESqlStatementType.sstnetezzaCreateExternalTable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 2772 addnetezzacmds(ESqlStatementType.sstnetezzaCreateGruop, TBaseType.rrw_create, "group", " ", " ", " ", " ", " "); 2773 addnetezzacmds(ESqlStatementType.sstnetezzaCreateHistoryConfiguration, TBaseType.rrw_create, "history", "configuration", " ", " ", " ", " "); 2774 addnetezzacmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "materialized", "view", " ", " ", " ", " "); 2775 addnetezzacmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "or", "replace", "materialized", "view", " ", " "); 2776 addnetezzacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "or", "replace", "procedure", " ", " ", " "); 2777 addnetezzacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 2778 addnetezzacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 2779 addnetezzacmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 2780 addnetezzacmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create, "synonym", " ", " ", " ", " ", " "); 2781 addnetezzacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 2782 addnetezzacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 2783 addnetezzacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 2784 addnetezzacmds(ESqlStatementType.sstnetezzaCreateUser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 2785 addnetezzacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 2786// addnetezzacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "volatile", "table", " ", " ", " ", " "); 2787 addnetezzacmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete , " ", " ", " ", " ", " ", " "); 2788 addnetezzacmds(ESqlStatementType.sstnetezzaDropConnection, TBaseType.rrw_drop, "connection", " ", " ", " ", " ", " "); 2789 addnetezzacmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 2790 addnetezzacmds(ESqlStatementType.sstnetezzaDropGroup, TBaseType.rrw_drop, "group", " ", " ", " ", " ", " "); 2791 addnetezzacmds(ESqlStatementType.sstnetezzaDropHistoryConfiguration, TBaseType.rrw_drop, "history", "configuration", " ", " ", " ", " "); 2792 addnetezzacmds(ESqlStatementType.sstdropprocedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 2793 addnetezzacmds(ESqlStatementType.sstnetezzaDropSchema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 2794 addnetezzacmds(ESqlStatementType.sstnetezzaDropSequence, TBaseType.rrw_drop, "sequence", " ", " ", " ", " ", " "); 2795 addnetezzacmds(ESqlStatementType.sstnetezzaDropSession, TBaseType.rrw_drop, "session", " ", " ", " ", " ", " "); 2796 addnetezzacmds(ESqlStatementType.sstdropsynonym, TBaseType.rrw_drop, "synonym", " ", " ", " ", " ", " "); 2797 addnetezzacmds(ESqlStatementType.sstnetezzaDropTable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 2798 addnetezzacmds(ESqlStatementType.sstnetezzaDropUser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 2799 addnetezzacmds(ESqlStatementType.sstnetezzaDropView, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 2800 addnetezzacmds(ESqlStatementType.sstexecutestmt, TBaseType.rrw_exec, " ", " ", " ", " ", " ", " "); 2801 addnetezzacmds(ESqlStatementType.sstexecutestmt, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 2802 addnetezzacmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 2803 addnetezzacmds(ESqlStatementType.sstnetezzaGenerateStatistics, TBaseType.rrw_netezza_generate, "express", "statistics", " ", " ", " ", " "); 2804 addnetezzacmds(ESqlStatementType.sstnetezzaGenerateStatistics, TBaseType.rrw_netezza_generate, "statistics", " ", " ", " ", " ", " "); 2805 addnetezzacmds(ESqlStatementType.sstnetezzaGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 2806 addnetezzacmds(ESqlStatementType.sstnetezzaGroomTable, TBaseType.rrw_netezza_groom, "table", " ", " ", " ", " ", " "); 2807 addnetezzacmds(ESqlStatementType.sstlocktable, TBaseType.rrw_lock, "table", " ", " ", " ", " ", " "); 2808 addnetezzacmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 2809 addnetezzacmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, " ", " ", " ", " ", " ", " "); 2810 addnetezzacmds(ESqlStatementType.sstnetezzaReset, TBaseType.rrw_reset, " ", " ", " ", " ", " ", " "); 2811 addnetezzacmds(ESqlStatementType.sstnetezzaRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 2812 addnetezzacmds(ESqlStatementType.sstnetezzaRollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 2813 addnetezzacmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 2814 addnetezzacmds(ESqlStatementType.sstnetezzaSet, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 2815 addnetezzacmds(ESqlStatementType.sstSetCatalog, TBaseType.rrw_set, "catalog", " ", " ", " ", " ", " "); 2816 addnetezzacmds(ESqlStatementType.sstSetSchema, TBaseType.rrw_set, "schema", " ", " ", " ", " ", " "); 2817 addnetezzacmds(ESqlStatementType.sstnetezzaShow, TBaseType.rrw_show, " ", " ", " ", " ", " ", " "); 2818 addnetezzacmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 2819 addnetezzacmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 2820} 2821 void initgaussdbcmds(){ 2822// cmd must be sorted alphabetically 2823 addgaussdbcmds(ESqlStatementType.sstpostgresqlabort, TBaseType.rrw_abort, " ", " ", " ", " ", " ", " "); 2824 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterAggregate, TBaseType.rrw_alter, "aggregate", " ", " ", " ", " ", " "); 2825 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterCollation, TBaseType.rrw_alter, "collation", " ", " ", " ", " ", " "); 2826 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterConversion, TBaseType.rrw_alter, "conversion", " ", " ", " ", " ", " "); 2827 addgaussdbcmds(ESqlStatementType.sstpostgresqlalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 2828 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterDefaultPrivileges, TBaseType.rrw_alter, "default", "privileges", " ", " ", " ", " "); 2829 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterDomain, TBaseType.rrw_alter, "domain", " ", " ", " ", " ", " "); 2830 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterEventTrigger, TBaseType.rrw_alter, "event", "trigger", " ", " ", " ", " "); 2831 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterExtension, TBaseType.rrw_alter, "extension", " ", " ", " ", " ", " "); 2832 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterForeignDataWrapper, TBaseType.rrw_alter, "foreign", "data", "wrapper", " ", " ", " "); 2833 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterForeignTable, TBaseType.rrw_alter, "foreign", "Table", " ", " ", " ", " "); 2834 2835 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 2836 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterGroup, TBaseType.rrw_alter, "group", " ", " ", " ", " ", " "); 2837 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterIndex, TBaseType.rrw_alter, "index", " ", " ", " ", " ", " "); 2838 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "language", " ", " ", " ", " ", " "); 2839 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterLargeObject, TBaseType.rrw_alter, "large", "object", " ", " ", " ", " "); 2840 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterMaterializedView, TBaseType.rrw_alter, "materialized", "view", " ", " ", " ", " "); 2841 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterOperator, TBaseType.rrw_alter, "operator", " ", " ", " ", " ", " "); 2842 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterOperatorClass, TBaseType.rrw_alter, "operator", "class", " ", " ", " ", " "); 2843 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterOperatorFamily, TBaseType.rrw_alter, "operator", "family", " ", " ", " ", " "); 2844 addgaussdbcmds(ESqlStatementType.sstAlterPackage, TBaseType.rrw_alter, "package", " ", " ", " ", " ", " "); 2845 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterPolicy, TBaseType.rrw_alter, "policy", " ", " ", " ", " ", " "); 2846 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "procedural", "language", " ", " ", " ", " "); 2847 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterProcedure, TBaseType.rrw_alter, "procedure", " ", " ", " ", " ", " "); 2848 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterPublication, TBaseType.rrw_alter, "publication", " ", " ", " ", " ", " "); 2849 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 2850 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterRoutine, TBaseType.rrw_alter, "routine", " ", " ", " ", " ", " "); 2851 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterRule, TBaseType.rrw_alter, "rule", " ", " ", " ", " ", " "); 2852 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 2853 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterSequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 2854 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterServer, TBaseType.rrw_alter, "server", " ", " ", " ", " ", " "); 2855 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterStatistics, TBaseType.rrw_alter, "statistics", " ", " ", " ", " ", " "); 2856 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterSubscription, TBaseType.rrw_alter, "subscription", " ", " ", " ", " ", " "); 2857 addgaussdbcmds(ESqlStatementType.sstAlterSynonym, TBaseType.rrw_alter, "synonym", " ", " ", " ", " ", " "); 2858 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterSystem, TBaseType.rrw_alter, "system", " ", " ", " ", " ", " "); 2859 2860 addgaussdbcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 2861 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTablespace, TBaseType.rrw_alter, "tablespace", " ", " ", " ", " ", " "); 2862 2863 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTextSearchConfiguration, TBaseType.rrw_alter, "text", "search", "configuration", " ", " ", " "); 2864 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTextSearchDictionary, TBaseType.rrw_alter, "text", "search", "dictionary", " ", " ", " "); 2865 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTextSearchParser, TBaseType.rrw_alter, "text", "search", "parser", " ", " ", " "); 2866 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTextSearchTemplate, TBaseType.rrw_alter, "text", "search", "template", " ", " ", " "); 2867 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterTrigger, TBaseType.rrw_alter, "trigger", " ", " ", " ", " ", " "); 2868 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterType, TBaseType.rrw_alter, "type", " ", " ", " ", " ", " "); 2869 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterUser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 2870 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterUserMapping, TBaseType.rrw_alter, "user", "mapping", " ", " ", " ", " "); 2871 addgaussdbcmds(ESqlStatementType.sstpostgresqlAlterView, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 2872 addgaussdbcmds(ESqlStatementType.sstpostgresqlAnalyze, TBaseType.rrw_analyze, " ", " ", " ", " ", " ", " "); 2873 2874 // begin is recognized in isgaussdb() method. 2875 // addgaussdbcmds(ESqlStatementType.sstpostgresqlBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 2876 2877 addgaussdbcmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 2878 2879 addgaussdbcmds(ESqlStatementType.sstpostgresqlCheckpoint, TBaseType.rrw_checkpoint, " ", " ", " ", " ", " ", " "); 2880 addgaussdbcmds(ESqlStatementType.sstpostgresqlClose, TBaseType.rrw_close, " ", " ", " ", " ", " ", " "); 2881 2882 addgaussdbcmds(ESqlStatementType.sstpostgresqlCluster, TBaseType.rrw_postgresql_cluster, " ", " ", " ", " ", " ", " "); 2883 2884 addgaussdbcmds(ESqlStatementType.sstpostgresqlComment, TBaseType.rrw_comment, " ", " ", " ", " ", " ", " "); 2885 2886 addgaussdbcmds(ESqlStatementType.sstpostgresqlCommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 2887 addgaussdbcmds(ESqlStatementType.sstpostgresqlCommitPrepared, TBaseType.rrw_commit, "prepared", " ", " ", " ", " ", " "); 2888 addgaussdbcmds(ESqlStatementType.sstpostgresqlCopy, TBaseType.rrw_postgresql_copy, " ", " ", " ", " ", " ", " "); 2889 2890 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateAccessMethod, TBaseType.rrw_create, "access", "method", " ", " ", " ", " "); 2891 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateAggregate, TBaseType.rrw_create, "aggregate", " ", " ", " ", " ", " "); 2892 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateAssertion, TBaseType.rrw_create, "assertion", " ", " ", " ", " ", " "); 2893 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateCast, TBaseType.rrw_create, "cast", " ", " ", " ", " ", " "); 2894 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateCollation, TBaseType.rrw_create, "collation", " ", " ", " ", " ", " "); 2895 2896 addgaussdbcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "constraint", "trigger", " ", " ", " ", " "); 2897 2898 addgaussdbcmds(ESqlStatementType.sstpostgresqlConversion, TBaseType.rrw_create, "conversion", " ", " ", " ", " ", " "); 2899 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateDatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 2900 addgaussdbcmds(ESqlStatementType.sstpostgresqlConversion, TBaseType.rrw_create, "default", "conversion", " ", " ", " ", " "); 2901 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateDomain, TBaseType.rrw_create, "domain", " ", " ", " ", " ", " "); 2902 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateEventTrigger, TBaseType.rrw_create, "event", "trigger", " ", " ", " ", " "); 2903 addgaussdbcmds(ESqlStatementType.sstcreateExtension, TBaseType.rrw_create, "extension", " ", " ", " ", " ", " "); 2904 2905 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateForeignDataWrapper, TBaseType.rrw_create, "foreign", "data", "wrapper", " ", " ", " "); 2906 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateForeignTable, TBaseType.rrw_create, "foreign", "table", " ", " ", " ", " "); 2907 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 2908 2909 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "global", "index", " ", " ", " ", " "); 2910 2911 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temp", "table", " ", " ", " "); 2912 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temporary", "table", " ", " ", " "); 2913 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "unlocked", "table", " ", " ", " "); 2914 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "global", "unique", "index", " ", " ", " "); 2915 2916 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateGroup, TBaseType.rrw_create, "group", " ", " ", " ", " ", " "); 2917 2918 addgaussdbcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "incremental", "materialized", "view", " ", " ", " "); 2919 2920 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "index", " ", " ", " ", " ", " "); 2921 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "language", " ", " ", " ", " ", " "); 2922 2923 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temp", "table", " ", " ", " "); 2924 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temporary", "table", " ", " ", " "); 2925 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "unlocked", "table", " ", " ", " "); 2926 2927 addgaussdbcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "materialized", "view", " ", " ", " ", " "); 2928 2929 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateOperator, TBaseType.rrw_create, "operator", " ", " ", " ", " ", " "); 2930 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateOperatorClass, TBaseType.rrw_create, "operator", "class", " ", " ", " ", " "); 2931 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateOperatorFimaly, TBaseType.rrw_create, "operator", "family", " ", " ", " ", " "); 2932 2933 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "or", "replace", "function", " ", " ", " "); 2934 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "language", " ", " ", " "); 2935 2936 addgaussdbcmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"or","replace","package"," "," "," "); 2937 addgaussdbcmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"or","replace","package","body"," "," "); 2938 2939 2940 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "procedural", "language", " ", " "); 2941 addgaussdbcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "or", "replace", "procedure", " ", " ", " "); 2942 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "or", "replace", "role ", " ", " ", " "); 2943 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateRule, TBaseType.rrw_create, "or", "replace", "rule ", " ", " ", " "); 2944 addgaussdbcmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create,"or","replace","synonym"," "," "," "); 2945 2946 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temp", "view", " ", " "); 2947 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temporary", "view", " ", " "); 2948 addgaussdbcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "or", "replace", "trigger", " ", " ", " "); 2949 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "trusted", "language", " ", " "); 2950 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "trusted", "procedural", "language", " "); 2951 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 2952 2953 addgaussdbcmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"package"," "," "," "," "," "); 2954 addgaussdbcmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"package","body"," "," "," "," "); 2955 2956 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreatePolicy, TBaseType.rrw_create, "policy", " ", " ", " ", " ", " "); 2957 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "procedural", "language", " ", " ", " ", " "); 2958 addgaussdbcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 2959 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreatePublication, TBaseType.rrw_create, "publication", " ", " ", " ", " ", " "); 2960 2961 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "role", " ", " ", " ", " ", " "); 2962 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateRule, TBaseType.rrw_create, "rule", " ", " ", " ", " ", " "); 2963 2964 2965 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSchema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 2966 2967 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 2968 2969 2970 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateServer, TBaseType.rrw_create, "server", " ", " ", " ", " ", " "); 2971 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateStatistics, TBaseType.rrw_create, "statistics", " ", " ", " ", " ", " "); 2972 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSubscription, TBaseType.rrw_create, "subscription", " ", " ", " ", " ", " "); 2973 addgaussdbcmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 2974 2975 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 2976 2977 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTablespace, TBaseType.rrw_create, "tablespace", " ", " ", " ", " ", " "); 2978 2979 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temp", "sequence", " ", " ", " ", " "); 2980 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 2981 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temp", "view", " ", " ", " ", " "); 2982 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temporary", "sequence", " ", " ", " ", " "); 2983 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 2984 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temporary", "view", " ", " ", " ", " "); 2985 2986 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTextSearchConfiguration, TBaseType.rrw_create, "text", "search", "configuration", " ", " ", " "); 2987 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTextSearchDictionary, TBaseType.rrw_create, "text", "search", "dictionary", " ", " ", " "); 2988 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTextSearchParser, TBaseType.rrw_create, "text", "search", "parser", " ", " ", " "); 2989 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTextSearchTemplate, TBaseType.rrw_create, "text", "search", "template", " ", " ", " "); 2990 2991 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateTransform, TBaseType.rrw_create, "transform", " ", " ", " ", " ", " "); 2992 addgaussdbcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "trigger", " ", " ", " ", " ", " "); 2993 2994 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "trusted", "language", " ", " ", " ", " "); 2995 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "trusted", "procedural", "language", " ", " ", " "); 2996 2997 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateType, TBaseType.rrw_create, "type", " ", " ", " ", " ", " "); 2998 2999 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "unlocked", "table", " ", " ", " ", " "); 3000 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "unlogged", "sequence", " ", " ", " ", " "); 3001 addgaussdbcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "unlogged", "table", " ", " ", " ", " "); 3002 3003 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateUser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 3004 3005 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateUserMapping, TBaseType.rrw_create, "user", "mapping", " ", " ", " ", " "); 3006 3007 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 3008 3009 addgaussdbcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "unique", "index", " ", " ", " ", " "); 3010 3011 3012 addgaussdbcmds(ESqlStatementType.sstpostgresqlDeallocate, TBaseType.rrw_deallocate, " ", " ", " ", " ", " ", " "); 3013 3014 addgaussdbcmds(ESqlStatementType.sstpostgresqlDeclare, TBaseType.rrw_declare, " ", " ", " ", " ", " ", " "); 3015 3016 addgaussdbcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 3017 3018 addgaussdbcmds(ESqlStatementType.sstpostgresqlDiscard, TBaseType.rrw_postgresql_discard, " ", " ", " ", " ", " ", " "); 3019 3020 addgaussdbcmds(ESqlStatementType.sstpostgresqlDo, TBaseType.rrw_do, " ", " ", " ", " ", " ", " "); 3021 3022 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropAccessMethod, TBaseType.rrw_drop, "access", "method", " ", " ", " ", " "); 3023 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropAggregate, TBaseType.rrw_drop, "aggregate", " ", " ", " ", " ", " "); 3024 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropAssertion, TBaseType.rrw_drop, "assertion", " ", " ", " ", " ", " "); 3025 3026 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropCast, TBaseType.rrw_drop, "cast", " ", " ", " ", " ", " "); 3027 3028 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropCollation, TBaseType.rrw_drop, "collation", " ", " ", " ", " ", " "); 3029 3030 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropConversion, TBaseType.rrw_drop, "conversion", " ", " ", " ", " ", " "); 3031 3032 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropDatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 3033 3034 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropDomain, TBaseType.rrw_drop, "domain", " ", " ", " ", " ", " "); 3035 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropEventTrigger, TBaseType.rrw_drop, "event", "trigger", " ", " ", " ", " "); 3036 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropExtension, TBaseType.rrw_drop, "extension", " ", " ", " ", " ", " "); 3037 3038 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropForeignDataWrapper, TBaseType.rrw_drop, "foreign", "data", "wrapper", " ", " ", " "); 3039 3040 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropForeignTable, TBaseType.rrw_drop, "foreign", "table", " ", " ", " ", " "); 3041 3042 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropFunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 3043 3044 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropGroup, TBaseType.rrw_drop, "group", " ", " ", " ", " ", " "); 3045 3046 addgaussdbcmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index", " ", " ", " ", " ", " "); 3047 3048 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "language", " ", " ", " ", " ", " "); 3049 3050 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropMaterializedView, TBaseType.rrw_drop, "materialized", "view", " ", " ", " ", " "); 3051 3052 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropOperator, TBaseType.rrw_drop, "operator", " ", " ", " ", " ", " "); 3053 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropOperatorClass, TBaseType.rrw_drop, "operator", "class", " ", " ", " ", " "); 3054 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropOperatorFamily, TBaseType.rrw_drop, "operator", "family ", " ", " ", " ", " "); 3055 3056 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropOwned, TBaseType.rrw_drop, "owned", " ", " ", " ", " ", " "); 3057 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropPolicy, TBaseType.rrw_drop, "policy", " ", " ", " ", " ", " "); 3058 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "procedural", "language", " ", " ", " ", " "); 3059 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropProcedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 3060 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropPublication, TBaseType.rrw_drop, "publication", " ", " ", " ", " ", " "); 3061 3062 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropRole, TBaseType.rrw_drop, "role", " ", " ", " ", " ", " "); 3063 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropRoutine, TBaseType.rrw_drop, "routine", " ", " ", " ", " ", " "); 3064 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropRule, TBaseType.rrw_drop, "rule", " ", " ", " ", " ", " "); 3065 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropSchema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 3066 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropSequence, TBaseType.rrw_drop, "sequence", " ", " ", " ", " ", " "); 3067 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropServer, TBaseType.rrw_drop, "server", " ", " ", " ", " ", " "); 3068 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropStatistics, TBaseType.rrw_drop, "statistics", " ", " ", " ", " ", " "); 3069 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropSubscription, TBaseType.rrw_drop, "subscription", " ", " ", " ", " ", " "); 3070 addgaussdbcmds(ESqlStatementType.sstdropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 3071 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 3072 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTablespace, TBaseType.rrw_drop, "tablespace", " ", " ", " ", " ", " "); 3073 3074 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTextSearchConfiguration, TBaseType.rrw_drop, "text", "search", "configuration", " ", " ", " "); 3075 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTextSearchDictionary, TBaseType.rrw_drop, "text", "search", "dictionary", " ", " ", " "); 3076 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTextSearchParser, TBaseType.rrw_drop, "text", "search", "parser", " ", " ", " "); 3077 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTextSearchTemplate, TBaseType.rrw_drop, "text", "search", "template", " ", " ", " "); 3078 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTransform, TBaseType.rrw_drop, "transform", " ", " ", " ", " ", " "); 3079 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropTrigger, TBaseType.rrw_drop, "trigger", " ", " ", " ", " ", " "); 3080 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropType, TBaseType.rrw_drop, "type", " ", " ", " ", " ", " "); 3081 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropUser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 3082 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropUserMapping, TBaseType.rrw_drop, "user", "mapping", " ", " ", " ", " "); 3083 addgaussdbcmds(ESqlStatementType.sstpostgresqlDropView, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 3084 3085 addgaussdbcmds(ESqlStatementType.sstpostgresqlEnd, TBaseType.rrw_end, " ", " ", " ", " ", " ", " "); 3086 3087 addgaussdbcmds(ESqlStatementType.sstpostgresqlExecute, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 3088 3089 addgaussdbcmds(ESqlStatementType.sstpostgresqlExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 3090 3091 addgaussdbcmds(ESqlStatementType.sstFetchFrom, TBaseType.rrw_fetch, " ", " ", " ", " ", " ", " "); 3092 3093 addgaussdbcmds(ESqlStatementType.sstpostgresqlGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 3094 addgaussdbcmds(ESqlStatementType.sstPostgresqlImport, TBaseType.rrw_postgresql_import, "foreign", "schema", " ", " ", " ", " "); 3095 addgaussdbcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 3096 3097 addgaussdbcmds(ESqlStatementType.sstpostgresqlListen, TBaseType.rrw_postgresql_listen, " ", " ", " ", " ", " ", " "); 3098 3099 addgaussdbcmds(ESqlStatementType.sstpostgresqlLoad, TBaseType.rrw_load, " ", " ", " ", " ", " ", " "); 3100 3101 addgaussdbcmds(ESqlStatementType.sstpostgresqlLock, TBaseType.rrw_lock, " ", " ", " ", " ", " ", " "); 3102 addgaussdbcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 3103 3104 addgaussdbcmds(ESqlStatementType.sstpostgresqlMove, TBaseType.rrw_move, " ", " ", " ", " ", " ", " "); 3105 3106 addgaussdbcmds(ESqlStatementType.sstpostgresqlNotify, TBaseType.rrw_postgresql_notify, " ", " ", " ", " ", " ", " "); 3107 3108 addgaussdbcmds(ESqlStatementType.sstPostgresqlBlock, TBaseType.rrw_plpgsql_function_delimiter, " ", " ", " ", " ", " ", " "); 3109 3110 3111 addgaussdbcmds(ESqlStatementType.sstpostgresqlPrepare, TBaseType.rrw_prepare, " ", " ", " ", " ", " ", " "); 3112 3113 addgaussdbcmds(ESqlStatementType.sstpostgresqlPrepareTransaction, TBaseType.rrw_prepare, "transaction", " ", " ", " ", " ", " "); 3114 3115 addgaussdbcmds(ESqlStatementType.sstpostgresqlReassignOwned, TBaseType.rrw_postgresql_reassign, "owned", " ", " ", " ", " ", " "); 3116 3117 addgaussdbcmds(ESqlStatementType.sstpostgresqlRefreshMaterializedView, TBaseType.rrw_refresh, "incremental","materialized", "view", " ", " ", " "); 3118 addgaussdbcmds(ESqlStatementType.sstpostgresqlRefreshMaterializedView, TBaseType.rrw_refresh, "materialized", "view", " ", " ", " ", " "); 3119 3120 addgaussdbcmds(ESqlStatementType.sstReindex, TBaseType.rrw_postgresql_reindex, " ", " ", " ", " ", " ", " "); 3121 3122 addgaussdbcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, " ", " ", " ", " ", " ", " "); 3123 addgaussdbcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, "savepoint", " ", " ", " ", " ", " "); 3124 3125 addgaussdbcmds(ESqlStatementType.sstpostgresqlReset, TBaseType.rrw_reset, " ", " ", " ", " ", " ", " "); 3126 3127 addgaussdbcmds(ESqlStatementType.sstpostgresqlRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 3128 3129 addgaussdbcmds(ESqlStatementType.sstpostgresqlRollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 3130 addgaussdbcmds(ESqlStatementType.sstpostgresqlRollbackPrepared, TBaseType.rrw_rollback, "prepared", " ", " ", " ", " ", " "); 3131 addgaussdbcmds(ESqlStatementType.sstpostgresqlRollbackToSavepoint, TBaseType.rrw_rollback, "to", "savepoint", " ", " ", " ", " "); 3132 addgaussdbcmds(ESqlStatementType.sstsavepoint, TBaseType.rrw_savepoint, " ", " ", " ", " ", " ", " "); 3133 3134 addgaussdbcmds(ESqlStatementType.sstpostgresqlSecurityLabel, TBaseType.rrw_postgresql_security, "label", " ", " ", " ", " ", " "); 3135 3136 3137 addgaussdbcmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 3138 3139 addgaussdbcmds(ESqlStatementType.sstpostgresqlSet, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 3140 3141 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetConstraints, TBaseType.rrw_set, "constraints", " ", " ", " ", " ", " "); 3142 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "local", "role", " ", " ", " ", " "); 3143 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "local", "session", "authorization", " ", " ", " "); 3144 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "role", " ", " ", " ", " ", " "); 3145 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetSearchPath, TBaseType.rrw_set, "search_path", " ", " ", " ", " ", " "); 3146 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "authorization", " ", " ", " ", " "); 3147 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "session", "characteristics", "as", "transaction", " ", " "); 3148 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "session", "role", " ", " ", " ", " "); 3149 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "session", "authorization", " ", " ", " "); 3150 3151 addgaussdbcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "transaction", " ", " ", " ", " ", " "); 3152 addgaussdbcmds(ESqlStatementType.sstpostgresqlShow, TBaseType.rrw_show, " ", " ", " ", " ", " ", " "); 3153 addgaussdbcmds(ESqlStatementType.sstpostgresqlShowSearchPath, TBaseType.rrw_show, "search_path", " ", " ", " ", " ", " "); 3154 // addgaussdbcmds(ESqlStatementType.sstpostgresqlStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 3155 addgaussdbcmds(ESqlStatementType.sstPostgresqlTable, TBaseType.rrw_table, " ", " ", " ", " ", " ", " "); 3156 addgaussdbcmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 3157 addgaussdbcmds(ESqlStatementType.sstpostgresqlTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 3158 3159 addgaussdbcmds(ESqlStatementType.sstpostgresqlUnlisten, TBaseType.rrw_postgresql_unlisten, " ", " ", " ", " ", " ", " "); 3160 3161 addgaussdbcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 3162 addgaussdbcmds(ESqlStatementType.sstVacuum, TBaseType.rrw_postgresql_vacuum, " ", " ", " ", " ", " ", " "); 3163 addgaussdbcmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " ", " ", " ", " ", " ", " "); 3164 3165 } 3166 3167 void initpostgresqlcmds(){ 3168// cmd must be sorted alphabetically 3169 addpostgresqlcmds(ESqlStatementType.sstpostgresqlabort, TBaseType.rrw_abort, " ", " ", " ", " ", " ", " "); 3170 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterAggregate, TBaseType.rrw_alter, "aggregate", " ", " ", " ", " ", " "); 3171 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterCollation, TBaseType.rrw_alter, "collation", " ", " ", " ", " ", " "); 3172 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterConversion, TBaseType.rrw_alter, "conversion", " ", " ", " ", " ", " "); 3173 addpostgresqlcmds(ESqlStatementType.sstpostgresqlalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 3174 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterDefaultPrivileges, TBaseType.rrw_alter, "default", "privileges", " ", " ", " ", " "); 3175 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterDomain, TBaseType.rrw_alter, "domain", " ", " ", " ", " ", " "); 3176 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterEventTrigger, TBaseType.rrw_alter, "event", "trigger", " ", " ", " ", " "); 3177 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterExtension, TBaseType.rrw_alter, "extension", " ", " ", " ", " ", " "); 3178 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterForeignDataWrapper, TBaseType.rrw_alter, "foreign", "data", "wrapper", " ", " ", " "); 3179 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterForeignTable, TBaseType.rrw_alter, "foreign", "Table", " ", " ", " ", " "); 3180 3181 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 3182 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterGroup, TBaseType.rrw_alter, "group", " ", " ", " ", " ", " "); 3183 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterIndex, TBaseType.rrw_alter, "index", " ", " ", " ", " ", " "); 3184 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "language", " ", " ", " ", " ", " "); 3185 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterLargeObject, TBaseType.rrw_alter, "large", "object", " ", " ", " ", " "); 3186 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterMaterializedView, TBaseType.rrw_alter, "materialized", "view", " ", " ", " ", " "); 3187 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterOperator, TBaseType.rrw_alter, "operator", " ", " ", " ", " ", " "); 3188 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterOperatorClass, TBaseType.rrw_alter, "operator", "class", " ", " ", " ", " "); 3189 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterOperatorFamily, TBaseType.rrw_alter, "operator", "family", " ", " ", " ", " "); 3190 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterPolicy, TBaseType.rrw_alter, "policy", " ", " ", " ", " ", " "); 3191 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "procedural", "language", " ", " ", " ", " "); 3192 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterProcedure, TBaseType.rrw_alter, "procedure", " ", " ", " ", " ", " "); 3193 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterPublication, TBaseType.rrw_alter, "publication", " ", " ", " ", " ", " "); 3194 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 3195 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterRoutine, TBaseType.rrw_alter, "routine", " ", " ", " ", " ", " "); 3196 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterRule, TBaseType.rrw_alter, "rule", " ", " ", " ", " ", " "); 3197 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 3198 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterSequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 3199 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterServer, TBaseType.rrw_alter, "server", " ", " ", " ", " ", " "); 3200 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterStatistics, TBaseType.rrw_alter, "statistics", " ", " ", " ", " ", " "); 3201 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterSubscription, TBaseType.rrw_alter, "subscription", " ", " ", " ", " ", " "); 3202 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterSystem, TBaseType.rrw_alter, "system", " ", " ", " ", " ", " "); 3203 3204 addpostgresqlcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 3205 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTablespace, TBaseType.rrw_alter, "tablespace", " ", " ", " ", " ", " "); 3206 3207 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTextSearchConfiguration, TBaseType.rrw_alter, "text", "search", "configuration", " ", " ", " "); 3208 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTextSearchDictionary, TBaseType.rrw_alter, "text", "search", "dictionary", " ", " ", " "); 3209 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTextSearchParser, TBaseType.rrw_alter, "text", "search", "parser", " ", " ", " "); 3210 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTextSearchTemplate, TBaseType.rrw_alter, "text", "search", "template", " ", " ", " "); 3211 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterTrigger, TBaseType.rrw_alter, "trigger", " ", " ", " ", " ", " "); 3212 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterType, TBaseType.rrw_alter, "type", " ", " ", " ", " ", " "); 3213 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterUser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 3214 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterUserMapping, TBaseType.rrw_alter, "user", "mapping", " ", " ", " ", " "); 3215 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAlterView, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 3216 addpostgresqlcmds(ESqlStatementType.sstpostgresqlAnalyze, TBaseType.rrw_analyze, " ", " ", " ", " ", " ", " "); 3217 3218 addpostgresqlcmds(ESqlStatementType.sstpostgresqlBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 3219 3220 addpostgresqlcmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 3221 3222 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCheckpoint, TBaseType.rrw_checkpoint, " ", " ", " ", " ", " ", " "); 3223 addpostgresqlcmds(ESqlStatementType.sstpostgresqlClose, TBaseType.rrw_close, " ", " ", " ", " ", " ", " "); 3224 3225 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCluster, TBaseType.rrw_postgresql_cluster, " ", " ", " ", " ", " ", " "); 3226 3227 addpostgresqlcmds(ESqlStatementType.sstpostgresqlComment, TBaseType.rrw_comment, " ", " ", " ", " ", " ", " "); 3228 3229 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 3230 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCommitPrepared, TBaseType.rrw_commit, "prepared", " ", " ", " ", " ", " "); 3231 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCopy, TBaseType.rrw_postgresql_copy, " ", " ", " ", " ", " ", " "); 3232 3233 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateAccessMethod, TBaseType.rrw_create, "access", "method", " ", " ", " ", " "); 3234 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateAggregate, TBaseType.rrw_create, "aggregate", " ", " ", " ", " ", " "); 3235 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateAssertion, TBaseType.rrw_create, "assertion", " ", " ", " ", " ", " "); 3236 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateCast, TBaseType.rrw_create, "cast", " ", " ", " ", " ", " "); 3237 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateCollation, TBaseType.rrw_create, "collation", " ", " ", " ", " ", " "); 3238 3239 addpostgresqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "constraint", "trigger", " ", " ", " ", " "); 3240 3241 addpostgresqlcmds(ESqlStatementType.sstpostgresqlConversion, TBaseType.rrw_create, "conversion", " ", " ", " ", " ", " "); 3242 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateDatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 3243 addpostgresqlcmds(ESqlStatementType.sstpostgresqlConversion, TBaseType.rrw_create, "default", "conversion", " ", " ", " ", " "); 3244 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateDomain, TBaseType.rrw_create, "domain", " ", " ", " ", " ", " "); 3245 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateEventTrigger, TBaseType.rrw_create, "event", "trigger", " ", " ", " ", " "); 3246 addpostgresqlcmds(ESqlStatementType.sstcreateExtension, TBaseType.rrw_create, "extension", " ", " ", " ", " ", " "); 3247 3248 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateForeignDataWrapper, TBaseType.rrw_create, "foreign", "data", "wrapper", " ", " ", " "); 3249 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateForeignTable, TBaseType.rrw_create, "foreign", "table", " ", " ", " ", " "); 3250 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 3251 3252 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temp", "table", " ", " ", " "); 3253 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temporary", "table", " ", " ", " "); 3254 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "unlocked", "table", " ", " ", " "); 3255 3256 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateGroup, TBaseType.rrw_create, "group", " ", " ", " ", " ", " "); 3257 3258 3259 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "index", " ", " ", " ", " ", " "); 3260 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "language", " ", " ", " ", " ", " "); 3261 3262 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temp", "table", " ", " ", " "); 3263 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temporary", "table", " ", " ", " "); 3264 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "unlocked", "table", " ", " ", " "); 3265 3266 addpostgresqlcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "materialized", "view", " ", " ", " ", " "); 3267 3268 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateOperator, TBaseType.rrw_create, "operator", " ", " ", " ", " ", " "); 3269 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateOperatorClass, TBaseType.rrw_create, "operator", "class", " ", " ", " ", " "); 3270 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateOperatorFimaly, TBaseType.rrw_create, "operator", "family", " ", " ", " ", " "); 3271 3272 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "or", "replace", "function", " ", " ", " "); 3273 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "language", " ", " ", " "); 3274 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "procedural", "language", " ", " "); 3275 addpostgresqlcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "or", "replace", "procedure", " ", " ", " "); 3276 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "or", "replace", "role ", " ", " ", " "); 3277 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateRule, TBaseType.rrw_create, "or", "replace", "rule ", " ", " ", " "); 3278 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temp", "view", " ", " "); 3279 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temporary", "view", " ", " "); 3280 addpostgresqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "or", "replace", "trigger", " ", " ", " "); 3281 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "trusted", "language", " ", " "); 3282 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "trusted", "procedural", "language", " "); 3283 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 3284 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreatePolicy, TBaseType.rrw_create, "policy", " ", " ", " ", " ", " "); 3285 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "procedural", "language", " ", " ", " ", " "); 3286 addpostgresqlcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 3287 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreatePublication, TBaseType.rrw_create, "publication", " ", " ", " ", " ", " "); 3288 3289 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "recursive", "view", " ", " ", " ", " "); 3290 3291 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "role", " ", " ", " ", " ", " "); 3292 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateRule, TBaseType.rrw_create, "rule", " ", " ", " ", " ", " "); 3293 3294 3295 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSchema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 3296 3297 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 3298 3299 3300 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateServer, TBaseType.rrw_create, "server", " ", " ", " ", " ", " "); 3301 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateStatistics, TBaseType.rrw_create, "statistics", " ", " ", " ", " ", " "); 3302 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSubscription, TBaseType.rrw_create, "subscription", " ", " ", " ", " ", " "); 3303 3304 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 3305 3306 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTablespace, TBaseType.rrw_create, "tablespace", " ", " ", " ", " ", " "); 3307 3308 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temp", "sequence", " ", " ", " ", " "); 3309 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 3310 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temp", "view", " ", " ", " ", " "); 3311 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temporary", "sequence", " ", " ", " ", " "); 3312 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 3313 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temporary", "view", " ", " ", " ", " "); 3314 3315 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTextSearchConfiguration, TBaseType.rrw_create, "text", "search", "configuration", " ", " ", " "); 3316 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTextSearchDictionary, TBaseType.rrw_create, "text", "search", "dictionary", " ", " ", " "); 3317 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTextSearchParser, TBaseType.rrw_create, "text", "search", "parser", " ", " ", " "); 3318 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTextSearchTemplate, TBaseType.rrw_create, "text", "search", "template", " ", " ", " "); 3319 3320 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateTransform, TBaseType.rrw_create, "transform", " ", " ", " ", " ", " "); 3321 addpostgresqlcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "trigger", " ", " ", " ", " ", " "); 3322 3323 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "trusted", "language", " ", " ", " ", " "); 3324 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "trusted", "procedural", "language", " ", " ", " "); 3325 3326 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateType, TBaseType.rrw_create, "type", " ", " ", " ", " ", " "); 3327 3328 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "unlocked", "table", " ", " ", " ", " "); 3329 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "unlogged", "sequence", " ", " ", " ", " "); 3330 addpostgresqlcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "unlogged", "table", " ", " ", " ", " "); 3331 3332 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateUser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 3333 3334 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateUserMapping, TBaseType.rrw_create, "user", "mapping", " ", " ", " ", " "); 3335 3336 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 3337 3338 addpostgresqlcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "unique", "index", " ", " ", " ", " "); 3339 3340 3341 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDeallocate, TBaseType.rrw_deallocate, " ", " ", " ", " ", " ", " "); 3342 3343 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDeclare, TBaseType.rrw_declare, " ", " ", " ", " ", " ", " "); 3344 3345 addpostgresqlcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 3346 3347 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDiscard, TBaseType.rrw_postgresql_discard, " ", " ", " ", " ", " ", " "); 3348 3349 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDo, TBaseType.rrw_do, " ", " ", " ", " ", " ", " "); 3350 3351 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropAccessMethod, TBaseType.rrw_drop, "access", "method", " ", " ", " ", " "); 3352 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropAggregate, TBaseType.rrw_drop, "aggregate", " ", " ", " ", " ", " "); 3353 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropAssertion, TBaseType.rrw_drop, "assertion", " ", " ", " ", " ", " "); 3354 3355 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropCast, TBaseType.rrw_drop, "cast", " ", " ", " ", " ", " "); 3356 3357 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropCollation, TBaseType.rrw_drop, "collation", " ", " ", " ", " ", " "); 3358 3359 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropConversion, TBaseType.rrw_drop, "conversion", " ", " ", " ", " ", " "); 3360 3361 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropDatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 3362 3363 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropDomain, TBaseType.rrw_drop, "domain", " ", " ", " ", " ", " "); 3364 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropEventTrigger, TBaseType.rrw_drop, "event", "trigger", " ", " ", " ", " "); 3365 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropExtension, TBaseType.rrw_drop, "extension", " ", " ", " ", " ", " "); 3366 3367 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTable, TBaseType.rrw_drop, "external", "table", " ", " ", " ", " "); 3368 3369 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropForeignDataWrapper, TBaseType.rrw_drop, "foreign", "data", "wrapper", " ", " ", " "); 3370 3371 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropForeignTable, TBaseType.rrw_drop, "foreign", "table", " ", " ", " ", " "); 3372 3373 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropFunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 3374 3375 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropGroup, TBaseType.rrw_drop, "group", " ", " ", " ", " ", " "); 3376 3377 addpostgresqlcmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index", " ", " ", " ", " ", " "); 3378 3379 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "language", " ", " ", " ", " ", " "); 3380 3381 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropMaterializedView, TBaseType.rrw_drop, "materialized", "view", " ", " ", " ", " "); 3382 3383 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropOperator, TBaseType.rrw_drop, "operator", " ", " ", " ", " ", " "); 3384 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropOperatorClass, TBaseType.rrw_drop, "operator", "class", " ", " ", " ", " "); 3385 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropOperatorFamily, TBaseType.rrw_drop, "operator", "family ", " ", " ", " ", " "); 3386 3387 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropOwned, TBaseType.rrw_drop, "owned", " ", " ", " ", " ", " "); 3388 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropPolicy, TBaseType.rrw_drop, "policy", " ", " ", " ", " ", " "); 3389 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "procedural", "language", " ", " ", " ", " "); 3390 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropProcedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 3391 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropPublication, TBaseType.rrw_drop, "publication", " ", " ", " ", " ", " "); 3392 3393 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropRole, TBaseType.rrw_drop, "role", " ", " ", " ", " ", " "); 3394 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropRoutine, TBaseType.rrw_drop, "routine", " ", " ", " ", " ", " "); 3395 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropRule, TBaseType.rrw_drop, "rule", " ", " ", " ", " ", " "); 3396 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropSchema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 3397 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropSequence, TBaseType.rrw_drop, "sequence", " ", " ", " ", " ", " "); 3398 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropServer, TBaseType.rrw_drop, "server", " ", " ", " ", " ", " "); 3399 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropStatistics, TBaseType.rrw_drop, "statistics", " ", " ", " ", " ", " "); 3400 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropSubscription, TBaseType.rrw_drop, "subscription", " ", " ", " ", " ", " "); 3401 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 3402 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTablespace, TBaseType.rrw_drop, "tablespace", " ", " ", " ", " ", " "); 3403 3404 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTextSearchConfiguration, TBaseType.rrw_drop, "text", "search", "configuration", " ", " ", " "); 3405 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTextSearchDictionary, TBaseType.rrw_drop, "text", "search", "dictionary", " ", " ", " "); 3406 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTextSearchParser, TBaseType.rrw_drop, "text", "search", "parser", " ", " ", " "); 3407 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTextSearchTemplate, TBaseType.rrw_drop, "text", "search", "template", " ", " ", " "); 3408 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTransform, TBaseType.rrw_drop, "transform", " ", " ", " ", " ", " "); 3409 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropTrigger, TBaseType.rrw_drop, "trigger", " ", " ", " ", " ", " "); 3410 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropType, TBaseType.rrw_drop, "type", " ", " ", " ", " ", " "); 3411 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropUser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 3412 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropUserMapping, TBaseType.rrw_drop, "user", "mapping", " ", " ", " ", " "); 3413 addpostgresqlcmds(ESqlStatementType.sstpostgresqlDropView, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 3414 3415 addpostgresqlcmds(ESqlStatementType.sstpostgresqlEnd, TBaseType.rrw_end, " ", " ", " ", " ", " ", " "); 3416 3417 addpostgresqlcmds(ESqlStatementType.sstpostgresqlExecute, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 3418 3419 addpostgresqlcmds(ESqlStatementType.sstpostgresqlExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 3420 3421 addpostgresqlcmds(ESqlStatementType.sstFetchFrom, TBaseType.rrw_fetch, " ", " ", " ", " ", " ", " "); 3422 3423 addpostgresqlcmds(ESqlStatementType.sstpostgresqlGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 3424 addpostgresqlcmds(ESqlStatementType.sstPostgresqlImport, TBaseType.rrw_postgresql_import, "foreign", "schema", " ", " ", " ", " "); 3425 addpostgresqlcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 3426 3427 addpostgresqlcmds(ESqlStatementType.sstpostgresqlListen, TBaseType.rrw_postgresql_listen, " ", " ", " ", " ", " ", " "); 3428 3429 addpostgresqlcmds(ESqlStatementType.sstpostgresqlLoad, TBaseType.rrw_load, " ", " ", " ", " ", " ", " "); 3430 3431 addpostgresqlcmds(ESqlStatementType.sstpostgresqlLock, TBaseType.rrw_lock, " ", " ", " ", " ", " ", " "); 3432 3433 addpostgresqlcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 3434 3435 addpostgresqlcmds(ESqlStatementType.sstpostgresqlMove, TBaseType.rrw_move, " ", " ", " ", " ", " ", " "); 3436 3437 addpostgresqlcmds(ESqlStatementType.sstpostgresqlNotify, TBaseType.rrw_postgresql_notify, " ", " ", " ", " ", " ", " "); 3438 3439 addpostgresqlcmds(ESqlStatementType.sstPostgresqlBlock, TBaseType.rrw_plpgsql_function_delimiter, " ", " ", " ", " ", " ", " "); 3440 3441 3442 addpostgresqlcmds(ESqlStatementType.sstpostgresqlPrepare, TBaseType.rrw_prepare, " ", " ", " ", " ", " ", " "); 3443 3444 addpostgresqlcmds(ESqlStatementType.sstpostgresqlPrepareTransaction, TBaseType.rrw_prepare, "transaction", " ", " ", " ", " ", " "); 3445 3446 addpostgresqlcmds(ESqlStatementType.sstpostgresqlReassignOwned, TBaseType.rrw_postgresql_reassign, "owned", " ", " ", " ", " ", " "); 3447 3448 addpostgresqlcmds(ESqlStatementType.sstpostgresqlRefreshMaterializedView, TBaseType.rrw_refresh, "materialized", "view", " ", " ", " ", " "); 3449 3450 addpostgresqlcmds(ESqlStatementType.sstReindex, TBaseType.rrw_postgresql_reindex, " ", " ", " ", " ", " ", " "); 3451 3452 addpostgresqlcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, " ", " ", " ", " ", " ", " "); 3453 addpostgresqlcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, "savepoint", " ", " ", " ", " ", " "); 3454 3455 addpostgresqlcmds(ESqlStatementType.sstpostgresqlReset, TBaseType.rrw_reset, " ", " ", " ", " ", " ", " "); 3456 3457 addpostgresqlcmds(ESqlStatementType.sstpostgresqlRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 3458 3459 addpostgresqlcmds(ESqlStatementType.sstpostgresqlRollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 3460 addpostgresqlcmds(ESqlStatementType.sstpostgresqlRollbackPrepared, TBaseType.rrw_rollback, "prepared", " ", " ", " ", " ", " "); 3461 addpostgresqlcmds(ESqlStatementType.sstpostgresqlRollbackToSavepoint, TBaseType.rrw_rollback, "to", "savepoint", " ", " ", " ", " "); 3462 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSavepoint, TBaseType.rrw_savepoint, " ", " ", " ", " ", " ", " "); 3463 3464 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSecurityLabel, TBaseType.rrw_postgresql_security, "label", " ", " ", " ", " ", " "); 3465 3466 3467 addpostgresqlcmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 3468 3469 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSet, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 3470 3471 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetConstraints, TBaseType.rrw_set, "constraints", " ", " ", " ", " ", " "); 3472 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "local", "role", " ", " ", " ", " "); 3473 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "local", "session", "authorization", " ", " ", " "); 3474 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "role", " ", " ", " ", " ", " "); 3475 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetSearchPath, TBaseType.rrw_set, "search_path", " ", " ", " ", " ", " "); 3476 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "authorization", " ", " ", " ", " "); 3477 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "session", "characteristics", "as", "transaction", " ", " "); 3478 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "session", "role", " ", " ", " ", " "); 3479 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "session", "authorization", " ", " ", " "); 3480 3481 addpostgresqlcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "transaction", " ", " ", " ", " ", " "); 3482 addpostgresqlcmds(ESqlStatementType.sstpostgresqlShow, TBaseType.rrw_show, " ", " ", " ", " ", " ", " "); 3483 addpostgresqlcmds(ESqlStatementType.sstpostgresqlShowSearchPath, TBaseType.rrw_show, "search_path", " ", " ", " ", " ", " "); 3484 // addpostgresqlcmds(ESqlStatementType.sstpostgresqlStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 3485 addpostgresqlcmds(ESqlStatementType.sstPostgresqlTable, TBaseType.rrw_table, " ", " ", " ", " ", " ", " "); 3486 addpostgresqlcmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 3487 addpostgresqlcmds(ESqlStatementType.sstpostgresqlTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 3488 3489 addpostgresqlcmds(ESqlStatementType.sstpostgresqlUnlisten, TBaseType.rrw_postgresql_unlisten, " ", " ", " ", " ", " ", " "); 3490 3491 addpostgresqlcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 3492 addpostgresqlcmds(ESqlStatementType.sstVacuum, TBaseType.rrw_postgresql_vacuum, " ", " ", " ", " ", " ", " "); 3493 addpostgresqlcmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " ", " ", " ", " ", " ", " "); 3494 3495 } 3496 3497 void initbigquerycmds() { 3498// cmd must be sorted alphabetically 3499 addbigquerycmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 3500 addbigquerycmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 3501 3502 addbigquerycmds(ESqlStatementType.sstBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 3503 addbigquerycmds(ESqlStatementType.sstbegintran, TBaseType.rrw_begin, "transaction", " ", " ", " ", " ", " "); 3504 3505 addbigquerycmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 3506 addbigquerycmds(ESqlStatementType.sst_casestmt, TBaseType.rrw_case, " ", " ", " ", " ", " ", " "); 3507 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 3508 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 3509 addbigquerycmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "materialized", "view", " ", " ", " ", " "); 3510 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "external", "table", " ", " "); 3511 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "temporary", "table", " ", " "); 3512 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace", "function", " ", " ", " "); 3513 addbigquerycmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create, "or", "replace", "materialized", "view", " ", " "); 3514 addbigquerycmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "or", "replace", "procedure", " ", " ", " "); 3515 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "table", " ", " ", " "); 3516 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace", "table", "function", " ", " "); 3517 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace", "temp", "function", " ", " "); 3518 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "temp", "table", " ", " "); 3519 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace", "temporary", "function", " ", " "); 3520 addbigquerycmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 3521 addbigquerycmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 3522 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 3523 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "table", "function", " ", " ", " ", " "); 3524 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temp", "function", " ", " ", " ", " "); 3525 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 3526 addbigquerycmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "temporary", "function", " ", " ", " ", " "); 3527 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 3528 addbigquerycmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "snapshot", "table", " ", " ", " ", " "); 3529 addbigquerycmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 3530 addbigquerycmds(ESqlStatementType.sstBigQueryDeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 3531 addbigquerycmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 3532 addbigquerycmds(ESqlStatementType.sstDropRowAccessPolicy, TBaseType.rrw_drop, "all","row", "access", "policies", " ", " "); 3533 addbigquerycmds(ESqlStatementType.sstDropAssignment, TBaseType.rrw_drop, "assignment", " ", " ", " ", " ", " "); 3534 addbigquerycmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "external", "table", " ", " ", " ", " "); 3535 addbigquerycmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 3536 addbigquerycmds(ESqlStatementType.sstDropMaterializedView, TBaseType.rrw_drop, "materialized", "view", " ", " ", " ", " "); 3537 addbigquerycmds(ESqlStatementType.sstdropprocedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 3538 addbigquerycmds(ESqlStatementType.sstDropReservation, TBaseType.rrw_drop, "reservation", " ", " ", " ", " ", " "); 3539 addbigquerycmds(ESqlStatementType.sstDropRowAccessPolicy, TBaseType.rrw_drop, "row", "access", "policy", " ", " ", " "); 3540 addbigquerycmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 3541 addbigquerycmds(ESqlStatementType.sstDropTableFunction, TBaseType.rrw_drop, "table", "function", " ", " ", " ", " "); 3542 addbigquerycmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 3543 addbigquerycmds(ESqlStatementType.sstDropSnapshotTable, TBaseType.rrw_drop, "snapshot", "table", " ", " ", " ", " "); 3544 addbigquerycmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 3545 3546 addbigquerycmds(ESqlStatementType.sstExecute, TBaseType.rrw_execute, "immediate"," "," "," "," "," "); 3547 3548 addbigquerycmds(ESqlStatementType.sstBigQueryExportData, TBaseType.rrw_bigquery_export, "data", " ", " ", " ", " ", " "); 3549 addbigquerycmds(ESqlStatementType.sstForStmt, TBaseType.rrw_for, " ", " ", " ", " ", " ", " "); 3550 addbigquerycmds(ESqlStatementType.sst_ifstmt, TBaseType.rrw_if, " ", " ", " ", " ", " ", " "); 3551 addbigquerycmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 3552 addbigquerycmds(ESqlStatementType.sst_loopstmt, TBaseType.rrw_loop, " ", " ", " ", " ", " ", " "); 3553 addbigquerycmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, " ", " ", " ", " ", " ", " "); 3554 addbigquerycmds(ESqlStatementType.sstRepeat, TBaseType.rrw_repeat, " ", " ", " ", " ", " ", " "); 3555 addbigquerycmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 3556 addbigquerycmds(ESqlStatementType.sstset, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 3557 addbigquerycmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 3558 addbigquerycmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 3559 addbigquerycmds(ESqlStatementType.sstWhilestmt, TBaseType.rrw_while, " ", " ", " ", " ", " ", " "); 3560 } 3561 3562void initsnowflakecmds(){ 3563// cmd must be sorted alphabetically 3564 addsnowflakecmds(ESqlStatementType.sstAlterAccount, TBaseType.rrw_alter, "account", " ", " ", " ", " ", " "); 3565 addsnowflakecmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 3566 addsnowflakecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "external", "table", " ", " ", " ", " "); 3567 addsnowflakecmds(ESqlStatementType.sstAlterFileFormat, TBaseType.rrw_alter, "file", "format", " ", " ", " ", " "); 3568 addsnowflakecmds(ESqlStatementType.sstalterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 3569 addsnowflakecmds(ESqlStatementType.sstAlterMaterializedView, TBaseType.rrw_alter,"materialized","view"," "," "," "," "); 3570 addsnowflakecmds(ESqlStatementType.sstAlterNetworkPolicy, TBaseType.rrw_alter, "network", "policy", " ", " ", " ", " "); 3571 addsnowflakecmds(ESqlStatementType.sstAlterPipe, TBaseType.rrw_alter, "pipe", " ", " ", " ", " ", " "); 3572 addsnowflakecmds(ESqlStatementType.sstAlterResourceMonitor, TBaseType.rrw_alter, "resource", "monitor", " ", " ", " ", " "); 3573 addsnowflakecmds(ESqlStatementType.sstAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 3574 addsnowflakecmds(ESqlStatementType.sstAlterTask, TBaseType.rrw_alter, "task", " ", " ", " ", " ", " "); 3575 addsnowflakecmds(ESqlStatementType.sstAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 3576 addsnowflakecmds(ESqlStatementType.sstaltersession, TBaseType.rrw_alter, "session", " ", " ", " ", " ", " "); 3577 addsnowflakecmds(ESqlStatementType.sstaltersequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 3578 addsnowflakecmds(ESqlStatementType.sstAlterShare, TBaseType.rrw_alter, "share", " ", " ", " ", " ", " "); 3579 addsnowflakecmds(ESqlStatementType.sstAlterStage, TBaseType.rrw_alter, "stage", " ", " ", " ", " ", " "); 3580 addsnowflakecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 3581 addsnowflakecmds(ESqlStatementType.sstalteruser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 3582 addsnowflakecmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 3583 addsnowflakecmds(ESqlStatementType.sstAlterWarehouse, TBaseType.rrw_alter, "warehouse", " ", " ", " ", " ", " "); 3584 3585 addsnowflakecmds(ESqlStatementType.sstBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 3586 addsnowflakecmds(ESqlStatementType.sstbegintran, TBaseType.rrw_snowflake_begin_transaction, " ", " ", " ", " ", " ", " "); 3587 3588 addsnowflakecmds(ESqlStatementType.sstbegintran, TBaseType.rrw_begin, "work", " ", " ", " ", " ", " "); 3589 addsnowflakecmds(ESqlStatementType.sstbegintran, TBaseType.rrw_begin, "transaction", " ", " ", " ", " ", " "); 3590 3591 addsnowflakecmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 3592 addsnowflakecmds(ESqlStatementType.sstcomment, TBaseType.rrw_comment, " ", " ", " ", " ", " ", " "); 3593 3594 addsnowflakecmds(ESqlStatementType.sstcommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 3595 addsnowflakecmds(ESqlStatementType.sstCopyInto, TBaseType.rrw_snowflake_copy, "into", " ", " ", " ", " ", " "); 3596 3597 addsnowflakecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 3598 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "dynamic", "table", " ", " ", " ", " "); 3599 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 3600 addsnowflakecmds(ESqlStatementType.sstCreateFileFormat, TBaseType.rrw_create, "file", "format", " ", " ", " ", " "); 3601 addsnowflakecmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 3602 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "table", " ", " ", " ", " "); 3603 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temp", "table", " ", " ", " "); 3604 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temporary", "table", " ", " ", " "); 3605 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "hybrid", "table", " ", " ", " ", " "); 3606 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "table", " ", " ", " ", " "); 3607 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temp", "table", " ", " ", " "); 3608 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temporary", "table", " ", " ", " "); 3609 addsnowflakecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"materialized","view"," "," "," "," "); 3610 addsnowflakecmds(ESqlStatementType.sstCreateNetworkPolicy, TBaseType.rrw_create, "network", "policy", " ", " ", " ", " "); 3611 addsnowflakecmds(ESqlStatementType.sstCreatePipe, TBaseType.rrw_create, "or", "replace", "pipe", " ", " ", " "); 3612 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "external", "table", " ", " "); 3613 addsnowflakecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "or", "replace", "database", " ", " ", " "); 3614 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "dynamic", "table", " ", " "); 3615 addsnowflakecmds(ESqlStatementType.sstCreateFileFormat, TBaseType.rrw_create, "or", "replace", "file", "format", " ", " "); 3616 addsnowflakecmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace", "function", " ", " ", " "); 3617 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "force", "view", " ", " "); 3618 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "global","temporary", "table", " "); 3619 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "hybrid", "table", " ", " "); 3620 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "local","temporary", "table", " "); 3621 addsnowflakecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"or", "replace","materialized","view"," "," "); 3622 addsnowflakecmds(ESqlStatementType.sstCreateNetworkPolicy, TBaseType.rrw_create, "or", "replace", "network", "policy", " ", " "); 3623 addsnowflakecmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create,"or", "replace", "procedure", " ", " ", " "); 3624 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "recursive", "view", " ", " "); 3625 3626 addsnowflakecmds(ESqlStatementType.sstCreateResourceMonitor, TBaseType.rrw_create, "or", "replace","resource", "monitor", " ", " "); 3627 addsnowflakecmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "or", "replace","role", " ", " ", " "); 3628 addsnowflakecmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "or", "replace","schema", " ", " ", " "); 3629 addsnowflakecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"or", "replace","secure","materialized","view"," "); 3630 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "secure", "view", " ", " "); 3631 addsnowflakecmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create, "or", "replace","sequence", " ", " ", " "); 3632 addsnowflakecmds(ESqlStatementType.sstCreateShare, TBaseType.rrw_create, "or", "replace","share", " ", " ", " "); 3633 addsnowflakecmds(ESqlStatementType.sstCreateStage, TBaseType.rrw_create, "or", "replace","stage", " ", " ", " "); 3634 addsnowflakecmds(ESqlStatementType.sstCreateStream, TBaseType.rrw_create, "or", "replace","stream", " ", " ", " "); 3635 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "table", " ", " ", " "); 3636 addsnowflakecmds(ESqlStatementType.sstCreateTask, TBaseType.rrw_create, "or", "replace", "task", " ", " ", " "); 3637 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "temp", "table", " ", " "); 3638 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "temp", "view", " ", " "); 3639 addsnowflakecmds(ESqlStatementType.sstCreateStage, TBaseType.rrw_create, "or", "replace","temporary", "stage", " ", " "); 3640 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "temporary", "table", " ", " "); 3641 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "temporary", "view", " ", " "); 3642 addsnowflakecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "or", "replace", "transient", "database", " ", " "); 3643 addsnowflakecmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "or", "replace", "transient", "schema", " ", " "); 3644 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "or", "replace", "transient", "table", " ", " "); 3645 addsnowflakecmds(ESqlStatementType.sstcreateuser, TBaseType.rrw_create, "or", "replace","user", " ", " ", " "); 3646 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 3647 addsnowflakecmds(ESqlStatementType.sstCreateWarehouse, TBaseType.rrw_create, "or", "replace", "warehouse", " ", " ", " "); 3648 addsnowflakecmds(ESqlStatementType.sstCreatePipe, TBaseType.rrw_create, "pipe", " ", " ", " ", " ", " "); 3649 addsnowflakecmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 3650 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "recursive", "view", " ", " ", " ", " "); 3651 addsnowflakecmds(ESqlStatementType.sstCreateResourceMonitor, TBaseType.rrw_create, "resource", "monitor", " ", " ", " ", " "); 3652 addsnowflakecmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "role", " ", " ", " ", " ", " "); 3653 addsnowflakecmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 3654 addsnowflakecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"secure","materialized","view"," "," "," "); 3655 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "secure", "view", " ", " ", " ", " "); 3656 addsnowflakecmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 3657 addsnowflakecmds(ESqlStatementType.sstCreateShare, TBaseType.rrw_create, "share", " ", " ", " ", " ", " "); 3658 addsnowflakecmds(ESqlStatementType.sstCreateStage, TBaseType.rrw_create, "stage", " ", " ", " ", " ", " "); 3659 addsnowflakecmds(ESqlStatementType.sstCreateStream, TBaseType.rrw_create, "stream", " ", " ", " ", " ", " "); 3660 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 3661 addsnowflakecmds(ESqlStatementType.sstCreateTask, TBaseType.rrw_create, "task", " ", " ", " ", " ", " "); 3662 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 3663 addsnowflakecmds(ESqlStatementType.sstCreateStage, TBaseType.rrw_create,"temporary", "stage", " ", " ", " ", " "); 3664 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 3665 addsnowflakecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "transient", "database", " ", " ", " ", " "); 3666 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "transient", "dynamic", "table", " ", " ", " "); 3667 addsnowflakecmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "transient","schema", " ", " ", " ", " "); 3668 addsnowflakecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "transient", "table", " ", " "," "," "); 3669 addsnowflakecmds(ESqlStatementType.sstcreateuser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 3670 addsnowflakecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 3671 addsnowflakecmds(ESqlStatementType.sstCreateWarehouse, TBaseType.rrw_create, "warehouse", " ", " ", " ", " ", " "); 3672 3673 addsnowflakecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 3674 3675 addsnowflakecmds(ESqlStatementType.sstDescFileFormat, TBaseType.rrw_snowflake_desc, "file", "format", " ", " ", " ", " "); 3676 addsnowflakecmds(ESqlStatementType.sstDescFunction, TBaseType.rrw_snowflake_desc, "function", " ", " ", " ", " ", " "); 3677 addsnowflakecmds(ESqlStatementType.sstDescNetworkPolicy, TBaseType.rrw_snowflake_desc, "network", "policy", " ", " ", " ", " "); 3678 addsnowflakecmds(ESqlStatementType.sstDescPipe, TBaseType.rrw_snowflake_desc, "pipe", " ", " ", " ", " ", " "); 3679 addsnowflakecmds(ESqlStatementType.sstDescResult, TBaseType.rrw_snowflake_desc, "result", " ", " ", " ", " ", " "); 3680 addsnowflakecmds(ESqlStatementType.sstDescShare, TBaseType.rrw_snowflake_desc, "share", " ", " ", " ", " ", " "); 3681 addsnowflakecmds(ESqlStatementType.sstDescStage, TBaseType.rrw_snowflake_desc, "stage", " ", " ", " ", " ", " "); 3682 addsnowflakecmds(ESqlStatementType.sstDescStorage, TBaseType.rrw_snowflake_desc, "storage", " ", " ", " ", " ", " "); 3683 addsnowflakecmds(ESqlStatementType.sstDescTable, TBaseType.rrw_snowflake_desc, "table", " ", " ", " ", " ", " "); 3684 addsnowflakecmds(ESqlStatementType.sstDescUser, TBaseType.rrw_snowflake_desc, "user", " ", " ", " ", " ", " "); 3685 addsnowflakecmds(ESqlStatementType.sstDescView, TBaseType.rrw_snowflake_desc, "view", " ", " ", " ", " ", " "); 3686 3687 addsnowflakecmds(ESqlStatementType.sstDescFileFormat, TBaseType.rrw_describe, "file", "format", " ", " ", " ", " "); 3688 addsnowflakecmds(ESqlStatementType.sstDescFunction, TBaseType.rrw_describe, "function", " ", " ", " ", " ", " "); 3689 addsnowflakecmds(ESqlStatementType.sstDescNetworkPolicy, TBaseType.rrw_describe, "network", "policy", " ", " ", " ", " "); 3690 addsnowflakecmds(ESqlStatementType.sstDescPipe, TBaseType.rrw_describe, "pipe", " ", " ", " ", " ", " "); 3691 addsnowflakecmds(ESqlStatementType.sstDescResult, TBaseType.rrw_describe, "result", " ", " ", " ", " ", " "); 3692 addsnowflakecmds(ESqlStatementType.sstDescShare, TBaseType.rrw_describe, "share", " ", " ", " ", " ", " "); 3693 addsnowflakecmds(ESqlStatementType.sstDescStage, TBaseType.rrw_describe, "stage", " ", " ", " ", " ", " "); 3694 addsnowflakecmds(ESqlStatementType.sstDescStorage, TBaseType.rrw_describe, "storage", " ", " ", " ", " ", " "); 3695 addsnowflakecmds(ESqlStatementType.sstDescTable, TBaseType.rrw_describe, "table", " ", " ", " ", " ", " "); 3696 addsnowflakecmds(ESqlStatementType.sstDescUser, TBaseType.rrw_describe, "user", " ", " ", " ", " ", " "); 3697 addsnowflakecmds(ESqlStatementType.sstDescView, TBaseType.rrw_describe, "view", " ", " ", " ", " ", " "); 3698 3699 addsnowflakecmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 3700 addsnowflakecmds(ESqlStatementType.sstDropFileFormat, TBaseType.rrw_drop, "file", "format", " ", " ", " ", " "); 3701 addsnowflakecmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 3702 addsnowflakecmds(ESqlStatementType.sstDropMaterializedView, TBaseType.rrw_drop, "materialized", "view", " ", " ", " ", " "); 3703 addsnowflakecmds(ESqlStatementType.sstDropNetworkPolicy, TBaseType.rrw_drop, "network", "policy", " ", " ", " ", " "); 3704 addsnowflakecmds(ESqlStatementType.sstDropPipe, TBaseType.rrw_drop, "pipe", " ", " ", " ", " ", " "); 3705 addsnowflakecmds(ESqlStatementType.sstdropprocedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 3706 addsnowflakecmds(ESqlStatementType.sstDropResourceMonitor, TBaseType.rrw_drop, "resource", "monitor", " ", " ", " ", " "); 3707 addsnowflakecmds(ESqlStatementType.sstdroprole, TBaseType.rrw_drop, "role", " ", " ", " ", " ", " "); 3708 addsnowflakecmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 3709 addsnowflakecmds(ESqlStatementType.sstDropShare, TBaseType.rrw_drop, "share", " ", " ", " ", " ", " "); 3710 addsnowflakecmds(ESqlStatementType.sstDropStage, TBaseType.rrw_drop, "stage", " ", " ", " ", " ", " "); 3711 addsnowflakecmds(ESqlStatementType.sstDropStream, TBaseType.rrw_drop, "stream", " ", " ", " ", " ", " "); 3712 addsnowflakecmds(ESqlStatementType.sstDropStreamlit, TBaseType.rrw_drop, "streamlit", " ", " ", " ", " ", " "); 3713 addsnowflakecmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 3714 3715 addsnowflakecmds(ESqlStatementType.sstdropuser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 3716 addsnowflakecmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 3717 addsnowflakecmds(ESqlStatementType.sstDropWarehouse, TBaseType.rrw_drop, "warehouse", " ", " ", " ", " ", " "); 3718 3719 addsnowflakecmds(ESqlStatementType.sstExecute, TBaseType.rrw_execute, "immediate"," "," "," "," "," "); 3720 3721 addsnowflakecmds(ESqlStatementType.sstGet, TBaseType.rrw_get, " ", " ", " ", " ", " ", " "); 3722 3723 addsnowflakecmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 3724 3725 addsnowflakecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 3726 3727 addsnowflakecmds(ESqlStatementType.sstList, TBaseType.rrw_snowflake_list, " ", " ", " ", " ", " ", " "); 3728 addsnowflakecmds(ESqlStatementType.sstList, TBaseType.rrw_snowflake_ls, " ", " ", " ", " ", " ", " "); 3729 3730 addsnowflakecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, " ", " ", " ", " ", " ", " "); 3731 3732 addsnowflakecmds(ESqlStatementType.sstSnowflakePseudoExprStmt, TBaseType.rrw_snowflake_pseudo_stmt_sign, " ", " ", " ", " ", " ", " "); 3733 addsnowflakecmds(ESqlStatementType.sstPut, TBaseType.rrw_snowflake_put, " ", " ", " ", " ", " ", " "); 3734 3735 addsnowflakecmds(ESqlStatementType.sstRemove, TBaseType.rrw_snowflake_remove, " ", " ", " ", " ", " ", " "); 3736 3737 addsnowflakecmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 3738 addsnowflakecmds(ESqlStatementType.sstRemove, TBaseType.rrw_snowflake_rm, " ", " ", " ", " ", " ", " "); 3739 addsnowflakecmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 3740 3741 3742 addsnowflakecmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 3743 3744 addsnowflakecmds(ESqlStatementType.sstset, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 3745 3746 addsnowflakecmds(ESqlStatementType.sstShowColumns, TBaseType.rrw_show, "columns", " ", " ", " ", " ", " "); 3747 addsnowflakecmds(ESqlStatementType.sstShowDatabases, TBaseType.rrw_show, "databases", " ", " ", " ", " ", " "); 3748 addsnowflakecmds(ESqlStatementType.sstShowFileFormats, TBaseType.rrw_show, "file", "formats", " ", " ", " ", " "); 3749 addsnowflakecmds(ESqlStatementType.sstShowFunctions, TBaseType.rrw_show, "functions", " ", " ", " ", " ", " "); 3750 addsnowflakecmds(ESqlStatementType.sstShowGrants, TBaseType.rrw_show, "grants", " ", " ", " ", " ", " "); 3751 addsnowflakecmds(ESqlStatementType.sstShowLocks, TBaseType.rrw_show, "locks", " ", " ", " ", " ", " "); 3752 addsnowflakecmds(ESqlStatementType.sstShowNetworkPolicies, TBaseType.rrw_show, "network", "policies", " ", " ", " ", " "); 3753 addsnowflakecmds(ESqlStatementType.sstShowObjects, TBaseType.rrw_show, "objects", " ", " ", " ", " ", " "); 3754 addsnowflakecmds(ESqlStatementType.sstShowParameters, TBaseType.rrw_show, "parameters", " ", " ", " ", " ", " "); 3755 addsnowflakecmds(ESqlStatementType.sstShowPipes, TBaseType.rrw_show, "pipes", " ", " ", " ", " ", " "); 3756 addsnowflakecmds(ESqlStatementType.sstShowProcedures, TBaseType.rrw_show, "procedures", " ", " ", " ", " ", " "); 3757 addsnowflakecmds(ESqlStatementType.sstShowResourceMonitors, TBaseType.rrw_show, "resource", "monitors", " ", " ", " ", " "); 3758 addsnowflakecmds(ESqlStatementType.sstShowRoles, TBaseType.rrw_show, "roles", " ", " ", " ", " ", " "); 3759 addsnowflakecmds(ESqlStatementType.sstShowSchemas, TBaseType.rrw_show, "schemas", " ", " ", " ", " ", " "); 3760 addsnowflakecmds(ESqlStatementType.sstShowSequences, TBaseType.rrw_show, "sequences", " ", " ", " ", " ", " "); 3761 addsnowflakecmds(ESqlStatementType.sstShowShares, TBaseType.rrw_show, "shares", " ", " ", " ", " ", " "); 3762 addsnowflakecmds(ESqlStatementType.sstShowStages, TBaseType.rrw_show, "stages", " ", " ", " ", " ", " "); 3763 addsnowflakecmds(ESqlStatementType.sstShowStreams, TBaseType.rrw_show, "streams", " ", " ", " ", " ", " "); 3764 addsnowflakecmds(ESqlStatementType.sstShowTables, TBaseType.rrw_show, "tables", " ", " ", " ", " ", " "); 3765 addsnowflakecmds(ESqlStatementType.sstShowTasks, TBaseType.rrw_show, "tasks", " ", " ", " ", " ", " "); 3766 addsnowflakecmds(ESqlStatementType.sstShowDatabases, TBaseType.rrw_show, "terse", "databases", " ", " ", " ", " "); 3767 addsnowflakecmds(ESqlStatementType.sstShowStreams, TBaseType.rrw_show, "terse", "streams", " ", " ", " ", " "); 3768 addsnowflakecmds(ESqlStatementType.sstShowTasks, TBaseType.rrw_show, "terse", "tasks", " ", " ", " ", " "); 3769 addsnowflakecmds(ESqlStatementType.sstShowTransactions, TBaseType.rrw_show, "transactions", " ", " ", " ", " ", " "); 3770 addsnowflakecmds(ESqlStatementType.sstShowUserFunctions, TBaseType.rrw_show, "user", "functions", " ", " ", " ", " "); 3771 addsnowflakecmds(ESqlStatementType.sstShowUsers, TBaseType.rrw_show, "users", " ", " ", " ", " ", " "); 3772 addsnowflakecmds(ESqlStatementType.sstShowVariables, TBaseType.rrw_show, "variables", " ", " ", " ", " ", " "); 3773 addsnowflakecmds(ESqlStatementType.sstShowViews, TBaseType.rrw_show, "views", " ", " ", " ", " ", " "); 3774 addsnowflakecmds(ESqlStatementType.sstShowWarehouses, TBaseType.rrw_show, "warehouses", " ", " ", " ", " ", " "); 3775 addsnowflakecmds(ESqlStatementType.sstbegintran, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 3776 addsnowflakecmds(ESqlStatementType.sstpostgresqlTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 3777 3778 addsnowflakecmds(ESqlStatementType.sstUndropDatabase, TBaseType.rrw_snowflake_undrop, "database", " ", " ", " ", " ", " "); 3779 addsnowflakecmds(ESqlStatementType.sstUndropSchema, TBaseType.rrw_snowflake_undrop, "schema", " ", " ", " ", " ", " "); 3780 addsnowflakecmds(ESqlStatementType.sstUndropTable, TBaseType.rrw_snowflake_undrop, "table", " ", " ", " ", " ", " "); 3781 3782 addsnowflakecmds(ESqlStatementType.sstunset, TBaseType.rrw_snowflake_unset, " ", " ", " ", " ", " ", " "); 3783 addsnowflakecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 3784 addsnowflakecmds(ESqlStatementType.sstUse, TBaseType.rrw_use, " ", " ", " ", " ", " ", " "); 3785 addsnowflakecmds(ESqlStatementType.sstUseSecondaryRoles, TBaseType.rrw_use, "secondary", "roles", " ", " ", " ", " "); 3786} 3787 3788void initredshiftcmds() { 3789// cmd must be sorted alphabetically 3790 addredshiftcmds(ESqlStatementType.sstredshiftAbort, TBaseType.rrw_abort, " ", " ", " ", " ", " ", " "); 3791 addredshiftcmds(ESqlStatementType.sstredshiftAbort, TBaseType.rrw_abort, "transaction", " ", " ", " ", " ", " "); 3792 addredshiftcmds(ESqlStatementType.sstredshiftAbort, TBaseType.rrw_abort, "work", " ", " ", " ", " ", " "); 3793 addredshiftcmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 3794 addredshiftcmds(ESqlStatementType.sstredshiftAlterGroup, TBaseType.rrw_alter, "group", " ", " ", " ", " ", " "); 3795 addredshiftcmds(ESqlStatementType.sstredshiftAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 3796 addredshiftcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 3797 addredshiftcmds(ESqlStatementType.sstredshiftAlterUser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 3798 addredshiftcmds(ESqlStatementType.sstredshiftAnalyze, TBaseType.rrw_analyze, " ", " ", " ", " ", " ", " "); 3799 addredshiftcmds(ESqlStatementType.sstredshiftAnalyzeCompression, TBaseType.rrw_analyze, "Compression", " ", " ", " ", " ", " "); 3800 addredshiftcmds(ESqlStatementType.sstredshiftBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 3801 addredshiftcmds(ESqlStatementType.sstredshiftCancel, TBaseType.rrw_redshift_cancel, " ", " ", " ", " ", " ", " "); 3802 addredshiftcmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 3803 3804 addredshiftcmds(ESqlStatementType.sstredshiftClose, TBaseType.rrw_close, " ", " ", " ", " ", " ", " "); 3805 addredshiftcmds(ESqlStatementType.sstredshiftComment, TBaseType.rrw_comment, "on", " ", " ", " ", " ", " "); 3806 addredshiftcmds(ESqlStatementType.sstredshiftCommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 3807 addredshiftcmds(ESqlStatementType.sstredshiftCopy, TBaseType.rrw_redshift_copy, " ", " ", " ", " ", " ", " "); 3808 addredshiftcmds(ESqlStatementType.sstredshiftCreateSchema, TBaseType.rrw_create, "external", "schema", " ", " ", " ", " "); 3809 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 3810 addredshiftcmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 3811 addredshiftcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 3812 addredshiftcmds(ESqlStatementType.sstredshiftCreateGroup, TBaseType.rrw_create, "group", " ", " ", " ", " ", " "); 3813 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "table", " ", " ", " ", " "); 3814 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local","temp", "table", " ", " ", " "); 3815 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local","temporary", "table", " ", " ", " "); 3816 addredshiftcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"materialized","view"," "," "," "," "); 3817 addredshiftcmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "or", "replace","function", " ", " ", " "); 3818 addredshiftcmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"or", "replace","materialized","view"," "," "); 3819 addredshiftcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "or", "replace","procedure", " ", " ", " "); 3820 addredshiftcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 3821 addredshiftcmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 3822 addredshiftcmds(ESqlStatementType.sstredshiftCreateSchema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 3823 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 3824 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 3825 addredshiftcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 3826 addredshiftcmds(ESqlStatementType.sstredshiftCreateUser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 3827 addredshiftcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 3828 addredshiftcmds(ESqlStatementType.sstredshiftDeallocate, TBaseType.rrw_deallocate, " ", " ", " ", " ", " ", " "); 3829 addredshiftcmds(ESqlStatementType.sstredshiftDeclare, TBaseType.rrw_declare, " ", " ", " ", " ", " ", " "); 3830 addredshiftcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 3831 addredshiftcmds(ESqlStatementType.sstredshiftDropDatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 3832 addredshiftcmds(ESqlStatementType.sstredshiftDropGroup, TBaseType.rrw_drop, "group", " ", " ", " ", " ", " "); 3833 addredshiftcmds(ESqlStatementType.sstredshiftDropSchema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 3834 addredshiftcmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 3835 addredshiftcmds(ESqlStatementType.sstredshiftDropUser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 3836 addredshiftcmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 3837 addredshiftcmds(ESqlStatementType.sstredshiftEnd, TBaseType.rrw_end, " ", " ", " ", " ", " ", " "); 3838 addredshiftcmds(ESqlStatementType.sstExecutePreparedStmt, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 3839 addredshiftcmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 3840 addredshiftcmds(ESqlStatementType.sstFetchFrom, TBaseType.rrw_fetch, " ", " ", " ", " ", " ", " "); 3841 addredshiftcmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 3842 addredshiftcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, "into", " ", " ", " ", " ", " "); 3843 addredshiftcmds(ESqlStatementType.sstredshiftLock, TBaseType.rrw_lock, " ", " ", " ", " ", " ", " "); 3844 addredshiftcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 3845 3846 addredshiftcmds(ESqlStatementType.sstredshiftPrepare, TBaseType.rrw_prepare, " ", " ", " ", " ", " ", " "); 3847 addredshiftcmds(ESqlStatementType.sstredshiftReset, TBaseType.rrw_reset, " ", " ", " ", " ", " ", " "); 3848 addredshiftcmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 3849 addredshiftcmds(ESqlStatementType.sstredshiftRollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 3850 addredshiftcmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 3851 addredshiftcmds(ESqlStatementType.sstredshiftSet, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 3852 addredshiftcmds(ESqlStatementType.sstredshiftSetSessionAuthorization, TBaseType.rrw_set, "Authorization", " ", " ", " ", " ", " "); 3853 addredshiftcmds(ESqlStatementType.sstredshiftSetSessionCharacteristics, TBaseType.rrw_set, "Characteristics", " ", " ", " ", " ", " "); 3854 addredshiftcmds(ESqlStatementType.sstredshiftSetSessionAuthorization, TBaseType.rrw_set, "local", "Authorization", " ", " ", " ", " "); 3855 addredshiftcmds(ESqlStatementType.sstredshiftShow, TBaseType.rrw_show, " ", " ", " ", " ", " ", " "); 3856 addredshiftcmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "Transaction", " ", " ", " ", " ", " "); 3857 addredshiftcmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 3858 addredshiftcmds(ESqlStatementType.sstredshiftUnload, TBaseType.rrw_redshift_unload, " ", " ", " ", " ", " ", " "); 3859 addredshiftcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 3860 addredshiftcmds(ESqlStatementType.sstredshiftVacuum, TBaseType.rrw_redshift_vacuum, " ", " ", " ", " ", " ", " "); 3861} 3862 3863void initgreenplumcmds(){ 3864// cmd must be sorted alphabetically 3865 addgreenplumcmds(ESqlStatementType.sstpostgresqlabort, TBaseType.rrw_abort, " ", " ", " ", " ", " ", " "); 3866 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterAggregate, TBaseType.rrw_alter, "aggregate", " ", " ", " ", " ", " "); 3867 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterCollation, TBaseType.rrw_alter, "collation", " ", " ", " ", " ", " "); 3868 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterConversion, TBaseType.rrw_alter, "conversion", " ", " ", " ", " ", " "); 3869 addgreenplumcmds(ESqlStatementType.sstpostgresqlalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 3870 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterDefaultPrivileges, TBaseType.rrw_alter, "default", "privileges", " ", " ", " ", " "); 3871 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterDomain, TBaseType.rrw_alter, "domain", " ", " ", " ", " ", " "); 3872 3873 addgreenplumcmds(ESqlStatementType.sstgreenplumAlterExternalTable, TBaseType.rrw_alter, "external", "table", " ", " ", " ", " "); 3874 addgreenplumcmds(ESqlStatementType.sstgreenplumAlterFilespace, TBaseType.rrw_alter, "filespace", " ", " ", " ", " ", " "); 3875 3876// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterEventTrigger, TBaseType.rrw_alter, "event", "trigger", " ", " ", " ", " "); 3877// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterExtension, TBaseType.rrw_alter, "extension", " ", " ", " ", " ", " "); 3878// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterForeignDataWrapper, TBaseType.rrw_alter, "foreign", "data", "wrapper", " ", " ", " "); 3879// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterForeignTable, TBaseType.rrw_alter, "foreign", "Table", " ", " ", " ", " "); 3880 3881 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 3882 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterGroup, TBaseType.rrw_alter, "group", " ", " ", " ", " ", " "); 3883 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterIndex, TBaseType.rrw_alter, "index", " ", " ", " ", " ", " "); 3884 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "language", " ", " ", " ", " ", " "); 3885// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterLargeObject, TBaseType.rrw_alter, "large", "object", " ", " ", " ", " "); 3886 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterMaterializedView, TBaseType.rrw_alter, "materialized", "view", " ", " ", " ", " "); 3887 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterOperator, TBaseType.rrw_alter, "operator", " ", " ", " ", " ", " "); 3888 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterOperatorClass, TBaseType.rrw_alter, "operator", "class", " ", " ", " ", " "); 3889 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterOperatorFamily, TBaseType.rrw_alter, "operator", "family", " ", " ", " ", " "); 3890 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterLanguage, TBaseType.rrw_alter, "procedural", "language", " ", " ", " ", " "); 3891 addgreenplumcmds(ESqlStatementType.sstgreenplumAlterProtocol, TBaseType.rrw_alter, "protocol", " ", " ", " ", " ", " "); 3892 addgreenplumcmds(ESqlStatementType.sstgreenplumAlterResourceQueue, TBaseType.rrw_alter, "resource", "queue", " ", " ", " ", " "); 3893 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 3894 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 3895 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterSequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 3896 //addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterServer, TBaseType.rrw_alter, "server", " ", " ", " ", " ", " "); 3897 addgreenplumcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 3898 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTablespace, TBaseType.rrw_alter, "tablespace", " ", " ", " ", " ", " "); 3899 3900// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTextSearchConfiguration, TBaseType.rrw_alter, "text", "search", "configuration", " ", " ", " "); 3901// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTextSearchDictionary, TBaseType.rrw_alter, "text", "search", "dictionary", " ", " ", " "); 3902// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTextSearchParser, TBaseType.rrw_alter, "text", "search", "parser", " ", " ", " "); 3903// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTextSearchTemplate, TBaseType.rrw_alter, "text", "search", "template", " ", " ", " "); 3904 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterTrigger, TBaseType.rrw_alter, "trigger", " ", " ", " ", " ", " "); 3905 3906 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterType, TBaseType.rrw_alter, "type", " ", " ", " ", " ", " "); 3907 addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterUser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 3908// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterUserMapping, TBaseType.rrw_alter, "user", "mapping", " ", " ", " ", " "); 3909// addgreenplumcmds(ESqlStatementType.sstpostgresqlAlterView, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 3910 addgreenplumcmds(ESqlStatementType.sstpostgresqlAnalyze, TBaseType.rrw_greenplum_analyse, " ", " ", " ", " ", " ", " "); 3911 addgreenplumcmds(ESqlStatementType.sstpostgresqlAnalyze, TBaseType.rrw_analyze, " ", " ", " ", " ", " ", " "); 3912 3913 addgreenplumcmds(ESqlStatementType.sstpostgresqlBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 3914 addgreenplumcmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 3915 3916 addgreenplumcmds(ESqlStatementType.sstpostgresqlCheckpoint, TBaseType.rrw_checkpoint, " ", " ", " ", " ", " ", " "); 3917 addgreenplumcmds(ESqlStatementType.sstpostgresqlClose, TBaseType.rrw_close, " ", " ", " ", " ", " ", " "); 3918 3919 addgreenplumcmds(ESqlStatementType.sstpostgresqlCluster, TBaseType.rrw_greenplum_cluster, " ", " ", " ", " ", " ", " "); 3920 3921 addgreenplumcmds(ESqlStatementType.sstpostgresqlComment, TBaseType.rrw_comment, "on", " ", " ", " ", " ", " "); 3922 3923 addgreenplumcmds(ESqlStatementType.sstpostgresqlCommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 3924 //addgreenplumcmds(ESqlStatementType.sstpostgresqlCommitPrepared, TBaseType.rrw_commit, "prepared", " ", " ", " ", " ", " "); 3925 addgreenplumcmds(ESqlStatementType.sstpostgresqlCopy, TBaseType.rrw_greenplum_copy, " ", " ", " ", " ", " ", " "); 3926 3927 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateAggregate, TBaseType.rrw_create, "aggregate", " ", " ", " ", " ", " "); 3928 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateCast, TBaseType.rrw_create, "cast", " ", " ", " ", " ", " "); 3929 3930 //addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateCollation, TBaseType.rrw_create, "collation", " ", " ", " ", " ", " "); 3931 3932 addgreenplumcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "constraint", "trigger", " ", " ", " ", " "); 3933 3934 addgreenplumcmds(ESqlStatementType.sstpostgresqlConversion, TBaseType.rrw_create, "conversion", " ", " ", " ", " ", " "); 3935 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateDatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 3936 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateDomain, TBaseType.rrw_create, "domain", " ", " ", " ", " ", " "); 3937 //addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateEventTrigger, TBaseType.rrw_create, "event", "trigger", " ", " ", " ", " "); 3938 addgreenplumcmds(ESqlStatementType.sstcreateExtension, TBaseType.rrw_create, "extension", " ", " ", " ", " ", " "); 3939 3940// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateForeignDataWrapper, TBaseType.rrw_create, "foreign", "data", "wrapper", " ", " ", " "); 3941// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateForeignTable, TBaseType.rrw_create, "foreign", "table", " ", " ", " ", " "); 3942 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 3943 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "temp", "table", " ", " ", " "); 3944 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "temporary", "table", " ", " ", " "); 3945 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "web", "table", " ", " ", " "); 3946 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "web", "temp", "table", " ", " "); 3947 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "external", "web", "temporary", "table", " ", " "); 3948 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateFilespace, TBaseType.rrw_create, "filespace", " ", " ", " ", " ", " "); 3949 3950 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 3951 3952 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temp", "table", " ", " ", " "); 3953 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temporary", "table", " ", " ", " "); 3954 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "unlocked", "table", " ", " ", " "); 3955 3956 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateGroup, TBaseType.rrw_create, "group", " ", " ", " ", " ", " "); 3957 3958 3959 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "index", " ", " ", " ", " ", " "); 3960 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "language", " ", " ", " ", " ", " "); 3961 3962 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temp", "table", " ", " ", " "); 3963 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temporary", "table", " ", " ", " "); 3964 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "unlocked", "table", " ", " ", " "); 3965 3966 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateMaterializedView, TBaseType.rrw_create, "materialized", "view", " ", " ", " ", " "); 3967 3968 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateOperator, TBaseType.rrw_create, "operator", " ", " ", " ", " ", " "); 3969// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateOperatorClass, TBaseType.rrw_create, "operator", "class", " ", " ", " ", " "); 3970// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateOperatorFimaly, TBaseType.rrw_create, "operator", "family", " ", " ", " ", " "); 3971 3972 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable", "external", "table", " ", " ", " "); 3973 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable", "external", "temp", "table", " ", " "); 3974 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable", "external", "temporary", "table", " ", " "); 3975 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable","external", "web", "table", " ", " "); 3976 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable","external", "web", "temp", "table", " "); 3977 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "readable","external", "web", "temporary", "table", " "); 3978 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable", "external", "table", " ", " ", " "); 3979 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable", "external", "temp", "table", " ", " "); 3980 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable", "external", "temporary", "table", " ", " "); 3981 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable","external", "web", "table", " ", " "); 3982 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable","external", "web", "temp", "table", " "); 3983 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable","external", "web", "temporary", "table", " "); 3984 3985 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateResourceQueue, TBaseType.rrw_create, "resource", "queue", " ", " ", " ", " "); 3986 3987 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateFunction, TBaseType.rrw_create, "or", "replace", "function", " ", " ", " "); 3988 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "language", " ", " ", " "); 3989 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "or", "replace", "role ", " ", " ", " "); 3990 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temp", "view", " ", " "); 3991 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "temporary", "view", " ", " "); 3992 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "or", "replace", "trusted", "language", " ", " "); 3993 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 3994 3995 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateRole, TBaseType.rrw_create, "role", " ", " ", " ", " ", " "); 3996 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateRule, TBaseType.rrw_create, "rule", " ", " ", " ", " ", " "); 3997 3998 3999 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateSchema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 4000 4001 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 4002 4003 4004 //addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateServer, TBaseType.rrw_create, "server", " ", " ", " ", " ", " "); 4005 4006 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 4007 4008 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateTablespace, TBaseType.rrw_create, "tablespace", " ", " ", " ", " ", " "); 4009 4010 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temp", "sequence", " ", " ", " ", " "); 4011 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temp", "table", " ", " ", " ", " "); 4012 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temp", "view", " ", " ", " ", " "); 4013 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateSequence, TBaseType.rrw_create, "temporary", "sequence", " ", " ", " ", " "); 4014 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "temporary", "table", " ", " ", " ", " "); 4015 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "temporary", "view", " ", " ", " ", " "); 4016 4017// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateTextSearchConfiguration, TBaseType.rrw_create, "text", "search", "configuration", " ", " ", " "); 4018// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateTextSearchDictionary, TBaseType.rrw_create, "text", "search", "dictionary", " ", " ", " "); 4019// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateTextSearchParser, TBaseType.rrw_create, "text", "search", "parser", " ", " ", " "); 4020// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateTextSearchTemplate, TBaseType.rrw_create, "text", "search", "template", " ", " ", " "); 4021 4022 addgreenplumcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "trigger", " ", " ", " ", " ", " "); 4023 4024 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateLanguage, TBaseType.rrw_create, "trusted", "language", " ", " ", " ", " "); 4025 4026 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateType, TBaseType.rrw_create, "type", " ", " ", " ", " ", " "); 4027 4028 addgreenplumcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "unlocked", "table", " ", " ", " ", " "); 4029 4030 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateUser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 4031 4032// addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateUserMapping, TBaseType.rrw_create, "user", "mapping", " ", " ", " ", " "); 4033 4034 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateView, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 4035 4036 addgreenplumcmds(ESqlStatementType.sstpostgresqlCreateIndex, TBaseType.rrw_create, "unique", "index", " ", " ", " ", " "); 4037 4038 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable", "external", "table", " ", " ", " "); 4039 addgreenplumcmds(ESqlStatementType.sstgreenplumCreateExternalTable, TBaseType.rrw_create, "writable", "external", "web", "table", " ", " "); 4040 4041 addgreenplumcmds(ESqlStatementType.sstpostgresqlDeallocate, TBaseType.rrw_deallocate, " ", " ", " ", " ", " ", " "); 4042 4043 addgreenplumcmds(ESqlStatementType.sstpostgresqlDeclare, TBaseType.rrw_declare, " ", " ", " ", " ", " ", " "); 4044 4045 addgreenplumcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 4046 4047// addgreenplumcmds(ESqlStatementType.sstpostgresqlDiscard, TBaseType.rrw_discard, " ", " ", " ", " ", " ", " "); 4048 addgreenplumcmds(ESqlStatementType.sstpostgresqlDo, TBaseType.rrw_do, " ", " ", " ", " ", " ", " "); 4049 4050 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropAggregate, TBaseType.rrw_drop, "aggregate", " ", " ", " ", " ", " "); 4051 4052 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropCast, TBaseType.rrw_drop, "cast", " ", " ", " ", " ", " "); 4053 4054// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropCollation, TBaseType.rrw_drop, "collation", " ", " ", " ", " ", " "); 4055 4056 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropConversion, TBaseType.rrw_drop, "conversion", " ", " ", " ", " ", " "); 4057 4058 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropDatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 4059 4060 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropDomain, TBaseType.rrw_drop, "domain", " ", " ", " ", " ", " "); 4061 4062 addgreenplumcmds(ESqlStatementType.sstgreenplumDropExternalTable, TBaseType.rrw_drop, "external", "table", " ", " ", " ", " "); 4063 4064 addgreenplumcmds(ESqlStatementType.sstgreenplumDropExternalTable, TBaseType.rrw_drop, "external", "web", "table", " ", " ", " "); 4065 4066 addgreenplumcmds(ESqlStatementType.sstgreenplumDropFilespace, TBaseType.rrw_drop, "filespace", " ", " ", " ", " ", " "); 4067 4068// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropExtension, TBaseType.rrw_drop, "extension", " ", " ", " ", " ", " "); 4069// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropForeignDataWrapper, TBaseType.rrw_drop, "foreign", "data", "wrapper", " ", " ", " "); 4070// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropForeignTable, TBaseType.rrw_drop, "foreign", "table", " ", " ", " ", " "); 4071 4072 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropFunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 4073 4074 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropGroup, TBaseType.rrw_drop, "group", " ", " ", " ", " ", " "); 4075 4076 addgreenplumcmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index", " ", " ", " ", " ", " "); 4077 4078 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "language", " ", " ", " ", " ", " "); 4079 4080 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropMaterializedView, TBaseType.rrw_drop, "materialized", "view", " ", " ", " ", " "); 4081 4082 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropOperator, TBaseType.rrw_drop, "operator", " ", " ", " ", " ", " "); 4083// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropOperatorClass, TBaseType.rrw_drop, "operator", "class", " ", " ", " ", " "); 4084// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropOperatorFamily, TBaseType.rrw_drop, "operator", "family ", " ", " ", " ", " "); 4085 4086 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropOwned, TBaseType.rrw_drop, "owned", " ", " ", " ", " ", " "); 4087 4088 4089 addgreenplumcmds(ESqlStatementType.sstgreenplumDropResourceQueue, TBaseType.rrw_drop, "resource", "queue", " ", " ", " ", " "); 4090 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropLanguage, TBaseType.rrw_drop, "procedural", "language", " ", " ", " ", " "); 4091 4092 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropRole, TBaseType.rrw_drop, "role", " ", " ", " ", " ", " "); 4093 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropRule, TBaseType.rrw_drop, "rule", " ", " ", " ", " ", " "); 4094 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropSchema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 4095 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropSequence, TBaseType.rrw_drop, "sequence", " ", " ", " ", " ", " "); 4096 //addgreenplumcmds(ESqlStatementType.sstpostgresqlDropServer, TBaseType.rrw_drop, "server", " ", " ", " ", " ", " "); 4097 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 4098 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTablespace, TBaseType.rrw_drop, "tablespace", " ", " ", " ", " ", " "); 4099 4100// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTextSearchConfiguration, TBaseType.rrw_drop, "text", "search", "configuration", " ", " ", " "); 4101// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTextSearchDictionary, TBaseType.rrw_drop, "text", "search", "dictionary", " ", " ", " "); 4102// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTextSearchParser, TBaseType.rrw_drop, "text", "search", "parser", " ", " ", " "); 4103// addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTextSearchTemplate, TBaseType.rrw_drop, "text", "search", "template", " ", " ", " "); 4104 4105 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropTrigger, TBaseType.rrw_drop, "trigger", " ", " ", " ", " ", " "); 4106 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropType, TBaseType.rrw_drop, "type", " ", " ", " ", " ", " "); 4107 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropUser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 4108 //addgreenplumcmds(ESqlStatementType.sstpostgresqlDropUserMapping, TBaseType.rrw_drop, "user", "mapping", " ", " ", " ", " "); 4109 addgreenplumcmds(ESqlStatementType.sstpostgresqlDropView, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 4110 4111 addgreenplumcmds(ESqlStatementType.sstpostgresqlEnd, TBaseType.rrw_end, " ", " ", " ", " ", " ", " "); 4112 4113 addgreenplumcmds(ESqlStatementType.sstpostgresqlExecute, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 4114 4115 addgreenplumcmds(ESqlStatementType.sstpostgresqlExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 4116 4117 addgreenplumcmds(ESqlStatementType.sstFetchFrom, TBaseType.rrw_fetch, " ", " ", " ", " ", " ", " "); 4118 4119 addgreenplumcmds(ESqlStatementType.sstpostgresqlGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 4120 4121 addgreenplumcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 4122 4123// addgreenplumcmds(ESqlStatementType.sstpostgresqlListen, TBaseType.rrw_listen, " ", " ", " ", " ", " ", " "); 4124 4125 addgreenplumcmds(ESqlStatementType.sstpostgresqlLoad, TBaseType.rrw_load, " ", " ", " ", " ", " ", " "); 4126 4127 addgreenplumcmds(ESqlStatementType.sstpostgresqlLock, TBaseType.rrw_lock, " ", " ", " ", " ", " ", " "); 4128 4129 addgreenplumcmds(ESqlStatementType.sstpostgresqlMove, TBaseType.rrw_move, " ", " ", " ", " ", " ", " "); 4130 4131 //addgreenplumcmds(ESqlStatementType.sstpostgresqlNotify, TBaseType.rrw_notify, " ", " ", " ", " ", " ", " "); 4132 4133 addgreenplumcmds(ESqlStatementType.sstpostgresqlPrepare, TBaseType.rrw_prepare, " ", " ", " ", " ", " ", " "); 4134 4135// addgreenplumcmds(ESqlStatementType.sstpostgresqlPrepareTransaction, TBaseType.rrw_prepare, "transaction", " ", " ", " ", " ", " "); 4136 4137 addgreenplumcmds(ESqlStatementType.sstpostgresqlReassignOwned, TBaseType.rrw_greenplum_reassign, "owned", " ", " ", " ", " ", " "); 4138 4139 addgreenplumcmds(ESqlStatementType.sstpostgresqlRefreshMaterializedView, TBaseType.rrw_refresh, "materialized", "view", " ", " ", " ", " "); 4140 4141 addgreenplumcmds(ESqlStatementType.sstpostgresqlReindex, TBaseType.rrw_greenplum_reindex, " ", " ", " ", " ", " ", " "); 4142 4143 addgreenplumcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, " ", " ", " ", " ", " ", " "); 4144 addgreenplumcmds(ESqlStatementType.sstpostgresqlReleaseSavepoint, TBaseType.rrw_release, "savepoint", " ", " ", " ", " ", " "); 4145 4146 addgreenplumcmds(ESqlStatementType.sstpostgresqlReset, TBaseType.rrw_reset, " ", " ", " ", " ", " ", " "); 4147 4148 addgreenplumcmds(ESqlStatementType.sstpostgresqlRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 4149 4150 addgreenplumcmds(ESqlStatementType.sstpostgresqlRollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 4151// addgreenplumcmds(ESqlStatementType.sstpostgresqlRollbackPrepared, TBaseType.rrw_rollback, "prepared", " ", " ", " ", " ", " "); 4152 4153 addgreenplumcmds(ESqlStatementType.sstpostgresqlSavepoint, TBaseType.rrw_savepoint, " ", " ", " ", " ", " ", " "); 4154 4155// addgreenplumcmds(ESqlStatementType.sstpostgresqlSecurityLabel, TBaseType.rrw_security, "label", " ", " ", " ", " ", " "); 4156 4157 addgreenplumcmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 4158 4159 addgreenplumcmds(ESqlStatementType.sstpostgresqlSet, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 4160 4161// addgreenplumcmds(ESqlStatementType.sstpostgresqlSetConstraints, TBaseType.rrw_set, "constraints", " ", " ", " ", " ", " "); 4162 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "local", "role", " ", " ", " ", " "); 4163 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "local", "session", "authorization", " ", " ", " "); 4164 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "role", " ", " ", " ", " ", " "); 4165 4166 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "authorization", " ", " ", " ", " "); 4167 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "session", "characteristics", "as", "transaction", " ", " "); 4168 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetRole, TBaseType.rrw_set, "session", "role", " ", " ", " ", " "); 4169 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetSessionAuthorization, TBaseType.rrw_set, "session", "session", "authorization", " ", " ", " "); 4170 4171 addgreenplumcmds(ESqlStatementType.sstpostgresqlSetTransaction, TBaseType.rrw_set, "transaction", " ", " ", " ", " ", " "); 4172 4173 addgreenplumcmds(ESqlStatementType.sstgreenplumShow, TBaseType.rrw_show, " ", " ", " ", " ", " ", " "); 4174 4175 addgreenplumcmds(ESqlStatementType.sstgreenplumStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 4176 4177 addgreenplumcmds(ESqlStatementType.sstpostgresqlTruncate, TBaseType.rrw_truncate, " ", " ", " ", " ", " ", " "); 4178 4179 //addgreenplumcmds(ESqlStatementType.sstpostgresqlUnlisten, TBaseType.rrw_unlisten, " ", " ", " ", " ", " ", " "); 4180 4181 addgreenplumcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 4182 4183 addgreenplumcmds(ESqlStatementType.sstgreenplumVacuum, TBaseType.rrw_greenplum_vacuum, " ", " ", " ", " ", " ", " "); 4184 addgreenplumcmds(ESqlStatementType.sstValues, TBaseType.rrw_values, " ", " ", " ", " ", " ", " "); 4185 4186} 4187 4188 4189void initoraclecmds(){ 4190// cmd must be sort alphabetically 4191 addoraclecmds(ESqlStatementType.sstoraclealtercluster, TBaseType.rrw_alter,"cluster"," "," "," "," "," "); 4192 addoraclecmds(ESqlStatementType.sstoraclealterdatabase, TBaseType.rrw_alter,"database"," "," "," "," "," "); 4193 addoraclecmds(ESqlStatementType.sstoraclealterdimension, TBaseType.rrw_alter,"dimension"," "," "," "," "," "); 4194 addoraclecmds(ESqlStatementType.sstoraclealterdiskgroup, TBaseType.rrw_alter,"diskgroup"," "," "," "," "," "); 4195 addoraclecmds(ESqlStatementType.sstoraclealterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 4196 addoraclecmds(ESqlStatementType.sstoraclealterindex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 4197 addoraclecmds(ESqlStatementType.sstoraclealterindextype, TBaseType.rrw_alter,"indextype"," "," "," "," "," "); 4198 addoraclecmds(ESqlStatementType.sstoraclealterjava, TBaseType.rrw_alter,"java"," "," "," "," "," "); 4199 addoraclecmds(ESqlStatementType.sstAlterMaterializedView, TBaseType.rrw_alter,"materialized","view"," "," "," "," "); 4200 addoraclecmds(ESqlStatementType.sstoraclealtermaterializedviewlog, TBaseType.rrw_alter,"materialized","view","log"," "," "," "); 4201 addoraclecmds(ESqlStatementType.sstoraclealteroperator, TBaseType.rrw_alter,"operator"," "," "," "," "," "); 4202 addoraclecmds(ESqlStatementType.sstoraclealteroutline, TBaseType.rrw_alter,"outline"," "," "," "," "," "); 4203 addoraclecmds(ESqlStatementType.sstoraclealterpackage, TBaseType.rrw_alter,"package"," "," "," "," "," "); 4204 addoraclecmds(ESqlStatementType.sstoraclealterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 4205 addoraclecmds(ESqlStatementType.sstoraclealterprofile, TBaseType.rrw_alter,"profile"," "," "," "," "," "); 4206 addoraclecmds(ESqlStatementType.sstoraclealterresourcecost, TBaseType.rrw_alter,"resource","cost"," "," "," "," "); 4207 addoraclecmds(ESqlStatementType.sstoraclealterrole, TBaseType.rrw_alter,"role"," "," "," "," "," "); 4208 addoraclecmds(ESqlStatementType.sstoraclealterrollbacksegment, TBaseType.rrw_alter,"rollback","segment"," "," "," "," "); 4209 addoraclecmds(ESqlStatementType.sstoraclealtersequence, TBaseType.rrw_alter,"sequence"," "," "," "," "," "); 4210 addoraclecmds(ESqlStatementType.sstoraclealtersession, TBaseType.rrw_alter,"session"," "," "," "," "," "); 4211 addoraclecmds(ESqlStatementType.sstoraclealtersystem, TBaseType.rrw_alter,"system"," "," "," "," "," "); 4212 addoraclecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 4213 addoraclecmds(ESqlStatementType.sstoraclealtertablespace, TBaseType.rrw_alter,"tablespace"," "," "," "," "," "); 4214 addoraclecmds(ESqlStatementType.sstaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 4215 addoraclecmds(ESqlStatementType.sstoraclealtertype, TBaseType.rrw_alter,"type"," "," "," "," "," "); 4216 addoraclecmds(ESqlStatementType.sstoraclealteruser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 4217 addoraclecmds(ESqlStatementType.sstoraclealterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 4218 addoraclecmds(ESqlStatementType.sstoracleanalyze, TBaseType.rrw_analyze," "," "," "," "," "," "); 4219 addoraclecmds(ESqlStatementType.sstoracleassociatestatistics, TBaseType.rrw_associate,"statistics"," "," "," "," "," "); 4220 addoraclecmds(ESqlStatementType.sstoracleaudit, TBaseType.rrw_audit," "," "," "," "," "," "); 4221 addoraclecmds(ESqlStatementType.sstoraclecall, TBaseType.rrw_call," "," "," "," "," "," "); 4222 addoraclecmds(ESqlStatementType.sstCommentOn, TBaseType.rrw_comment," "," "," "," "," "," "); 4223 addoraclecmds(ESqlStatementType.sstoraclecommit, TBaseType.rrw_commit," "," "," "," "," "," "); 4224 addoraclecmds(ESqlStatementType.sstoraclecreatetablespace, TBaseType.rrw_create,"bigfile","tablespace"," "," "," "," "); 4225 addoraclecmds(ESqlStatementType.sstoraclecreateindex, TBaseType.rrw_create,"bitmap","index"," "," "," "," "); 4226 addoraclecmds(ESqlStatementType.sstoraclecreatecluster, TBaseType.rrw_create,"cluster"," "," "," "," "," "); 4227 addoraclecmds(ESqlStatementType.sstoraclecreatecontext, TBaseType.rrw_create,"context"," "," "," "," "," "); 4228 addoraclecmds(ESqlStatementType.sstoraclecreatecontrolfile, TBaseType.rrw_create,"controlfile"," "," "," "," "," "); 4229 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"editionable","function"," "," "," "," "); 4230 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"editionable","package"," "," "," "," "); 4231 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"editionable","package","body"," "," "," "); 4232 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"editionable","procedure"," "," "," "," "); 4233 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"editioning","view"," "," "," "," "); 4234 addoraclecmds(ESqlStatementType.sstoraclecreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 4235 addoraclecmds(ESqlStatementType.sstoraclecreatedatabaselink, TBaseType.rrw_create,"database","link"," "," "," "," "); 4236 addoraclecmds(ESqlStatementType.sstoraclecreatedimension, TBaseType.rrw_create,"dimension"," "," "," "," "," "); 4237 addoraclecmds(ESqlStatementType.sstoraclecreatedirectory, TBaseType.rrw_create,"directory"," "," "," "," "," "); 4238 addoraclecmds(ESqlStatementType.sstoraclecreatediskgroup, TBaseType.rrw_create,"diskgroup"," "," "," "," "," "); 4239 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"force","view"," "," "," "," "); 4240 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 4241 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temp","table"," "," "," "); 4242 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","table"," "," "," "); 4243 addoraclecmds(ESqlStatementType.sstoraclecreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 4244 addoraclecmds(ESqlStatementType.sstoraclecreateindextype, TBaseType.rrw_create,"indextype"," "," "," "," "," "); 4245 addoraclecmds(ESqlStatementType.sstoraclecreatejava, TBaseType.rrw_create,"java"," "," "," "," "," "); 4246 addoraclecmds(ESqlStatementType.sstoraclecreatelibrary, TBaseType.rrw_create,"library"," "," "," "," "," "); 4247 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"local","temp","table"," "," "," "); 4248 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"local","temporary","table"," "," "," "); 4249 addoraclecmds(ESqlStatementType.sstcreatematerializedview, TBaseType.rrw_create,"materialized","view"," "," "," "," "); 4250 addoraclecmds(ESqlStatementType.sstoraclecreatematerializedviewlog, TBaseType.rrw_create, "materialized","view","log"," "," "," "); 4251 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"noforce","view"," "," "," "," "); 4252 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"noneditionable","function"," "," "," "," "); 4253 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"noneditionable","package"," "," "," "," "); 4254 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"noneditionable","package","body"," "," "," "); 4255 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"noneditionable","procedure"," "," "," "," "); 4256 addoraclecmds(ESqlStatementType.sstoraclecreateoperator, TBaseType.rrw_create,"operator"," "," "," "," "," "); 4257 addoraclecmds(ESqlStatementType.sstoraclecreatecontext, TBaseType.rrw_create,"or","replace","context"," "," "," "); 4258 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","editionable","editioning","view"," "); 4259 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"or","replace","editionable","function"," "," "); 4260 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"or","replace","editionable","package"," "," "); 4261 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"or","replace","editionable","package","body"," "); 4262 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"or","replace","editionable","procedure"," "," "); 4263 addoraclecmds(ESqlStatementType.sstplsql_createtrigger, TBaseType.rrw_create,"or","replace","editionable","trigger"," "," "); 4264 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","editionable","view"," "," "); 4265 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","editioning","view"," "," "); 4266 addoraclecmds(ESqlStatementType.sstoraclecreatedirectory, TBaseType.rrw_create,"or","replace","directory"," "," "," "); 4267 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","force","view"," "," "); 4268 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","force","editionable","view"," "); 4269 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","force","editionable","editioning","view"); 4270 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","force","editioning","view"," "); 4271 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","force","noneditionable","view"," "); 4272 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"or","replace","function"," "," "," "); 4273 addoraclecmds(ESqlStatementType.sstoraclecreatelibrary, TBaseType.rrw_create,"or","replace","library"," "," "," "); 4274 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","noforce","view"," "," "); 4275 addoraclecmds(ESqlStatementType.sstplsql_createfunction, TBaseType.rrw_create,"or","replace","noneditionable","function"," "," "); 4276 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"or","replace","noneditionable","package"," "," "); 4277 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"or","replace","noneditionable","package","body"," "); 4278 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"or","replace","noneditionable","procedure"," "," "); 4279 addoraclecmds(ESqlStatementType.sstoraclecreatesynonym, TBaseType.rrw_create,"or","replace","noneditionable","public","synonym"," "); 4280 addoraclecmds(ESqlStatementType.sstplsql_createtrigger, TBaseType.rrw_create,"or","replace","noneditionable","trigger"," "," "); 4281 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","noneditionable","view"," "," "); 4282 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"or","replace","package"," "," "," "); 4283 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"or","replace","package","body"," "," "); 4284 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"or","replace","procedure"," "," "," "); 4285 addoraclecmds(ESqlStatementType.sstoraclecreatesynonym, TBaseType.rrw_create,"or","replace","public","synonym"," "," "); 4286 addoraclecmds(ESqlStatementType.sstoraclecreatesynonym, TBaseType.rrw_create,"or","replace","synonym"," "," "," "); 4287 addoraclecmds(ESqlStatementType.sstplsql_createtrigger, TBaseType.rrw_create,"or","replace","trigger"," "," "," "); 4288 addoraclecmds(ESqlStatementType.sstplsql_createtype_placeholder, TBaseType.rrw_create,"or","replace","type"," "," "," "); 4289 addoraclecmds(ESqlStatementType.sstplsql_createtypebody, TBaseType.rrw_create,"or","replace","type","body"," "," "); 4290 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"or","replace","view"," "," "," "); 4291 addoraclecmds(ESqlStatementType.sstoraclecreateoutline, TBaseType.rrw_create,"outline"," "," "," "," "," "); 4292 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_create,"package"," "," "," "," "," "); 4293 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_create,"package","body"," "," "," "," "); 4294 addoraclecmds(ESqlStatementType.sstoraclecreatepfile, TBaseType.rrw_create,"pfile"," "," "," "," "," "); 4295 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"private","temporary","table"," "," "," "); 4296 addoraclecmds(ESqlStatementType.sstplsql_createprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 4297 addoraclecmds(ESqlStatementType.sstoraclecreateprofile, TBaseType.rrw_create,"profile"," "," "," "," "," "); 4298 addoraclecmds(ESqlStatementType.sstoraclecreatedatabaselink, TBaseType.rrw_create,"public","database","link"," "," "," "); 4299 addoraclecmds(ESqlStatementType.sstoraclecreatesynonym, TBaseType.rrw_create,"public","synonym"," "," "," "," "); 4300 addoraclecmds(ESqlStatementType.sstoraclecreaterestorepoint, TBaseType.rrw_create,"resotre","point"," "," "," "," "); 4301 addoraclecmds(ESqlStatementType.sstoraclecreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 4302 addoraclecmds(ESqlStatementType.sstoraclecreaterollbacksegment, TBaseType.rrw_create,"rollback","segment"," "," "," "," "); 4303 addoraclecmds(ESqlStatementType.sstoraclecreatedatabaselink, TBaseType.rrw_create,"shared","database","link"," "," "," "); 4304 addoraclecmds(ESqlStatementType.sstoraclecreatedatabaselink, TBaseType.rrw_create,"shared","public","database","link"," "," "); 4305 addoraclecmds(ESqlStatementType.sstoraclecreateschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 4306 addoraclecmds(ESqlStatementType.sstoraclecreatesequence, TBaseType.rrw_create,"sequence"," "," "," "," "," "); 4307 addoraclecmds(ESqlStatementType.sstoraclecreatetablespace, TBaseType.rrw_create,"smallfile","tablespace"," "," "," "," "); 4308 addoraclecmds(ESqlStatementType.sstoraclecreatespfile, TBaseType.rrw_create,"spfile"," "," "," "," "," "); 4309 addoraclecmds(ESqlStatementType.sstoraclecreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 4310 addoraclecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 4311 addoraclecmds(ESqlStatementType.sstoraclecreatetablespace, TBaseType.rrw_create,"tablespace"," "," "," "," "," "); 4312 addoraclecmds(ESqlStatementType.sstoraclecreatetablespace, TBaseType.rrw_create,"temporary","tablespace"," "," "," "," "); 4313 addoraclecmds(ESqlStatementType.sstplsql_createtrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 4314 addoraclecmds(ESqlStatementType.sstplsql_createtype_placeholder, TBaseType.rrw_create,"type"," "," "," "," "," "); 4315 addoraclecmds(ESqlStatementType.sstplsql_createtypebody, TBaseType.rrw_create,"type","body"," "," "," "," "); 4316 addoraclecmds(ESqlStatementType.sstoraclecreatetablespace, TBaseType.rrw_create,"undo","tablespace"," "," "," "," "); 4317 addoraclecmds(ESqlStatementType.sstoraclecreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 4318 addoraclecmds(ESqlStatementType.sstoraclecreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 4319 addoraclecmds(ESqlStatementType.sstoraclecreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 4320 addoraclecmds(ESqlStatementType.sstplsql_createpackage, TBaseType.rrw_custom,"package"," "," "," "," "," "); 4321 addoraclecmds(ESqlStatementType.sstoraclecreatepackagebody, TBaseType.rrw_custom,"package","body"," "," "," "," "); 4322 addoraclecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 4323 addoraclecmds(ESqlStatementType.sstoracledisassociatestatistics, TBaseType.rrw_disassociate, "statistics"," "," "," "," "," "); 4324 addoraclecmds(ESqlStatementType.sstoracledropcluster, TBaseType.rrw_drop,"cluster"," "," "," "," "," "); 4325 addoraclecmds(ESqlStatementType.sstoracledropcontext, TBaseType.rrw_drop,"context"," "," "," "," "," "); 4326 addoraclecmds(ESqlStatementType.sstoracledropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 4327 addoraclecmds(ESqlStatementType.sstoracledropdatabaselink, TBaseType.rrw_drop,"database","link"," "," "," "," "); 4328 addoraclecmds(ESqlStatementType.sstoracledropdimension, TBaseType.rrw_drop,"dimension"," "," "," "," "," "); 4329 addoraclecmds(ESqlStatementType.sstoracledropdirectory, TBaseType.rrw_drop,"directory"," "," "," "," "," "); 4330 addoraclecmds(ESqlStatementType.sstoracledropdiskgroup, TBaseType.rrw_drop,"diskgroup"," "," "," "," "," "); 4331 addoraclecmds(ESqlStatementType.sstoracledropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 4332 addoraclecmds(ESqlStatementType.sstoracledropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 4333 addoraclecmds(ESqlStatementType.sstoracledropindextype, TBaseType.rrw_drop,"indextype"," "," "," "," "," "); 4334 addoraclecmds(ESqlStatementType.sstoracledropjava, TBaseType.rrw_drop,"java"," "," "," "," "," "); 4335 addoraclecmds(ESqlStatementType.sstoracledroplibrary, TBaseType.rrw_drop,"library"," "," "," "," "," "); 4336 addoraclecmds(ESqlStatementType.sstoracledropmaterializedview, TBaseType.rrw_drop,"materialized","view"," "," "," "," "); 4337 addoraclecmds(ESqlStatementType.sstoracledropmaterializedviewlog, TBaseType.rrw_drop,"materialized","view","log"," "," "," "); 4338 addoraclecmds(ESqlStatementType.sstoracledropoperator, TBaseType.rrw_drop,"operator"," "," "," "," "," "); 4339 addoraclecmds(ESqlStatementType.sstoracledropoutline, TBaseType.rrw_drop,"outline"," "," "," "," "," "); 4340 addoraclecmds(ESqlStatementType.sstoracledroppackage, TBaseType.rrw_drop,"package"," "," "," "," "," "); 4341 addoraclecmds(ESqlStatementType.sstoracledropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 4342 addoraclecmds(ESqlStatementType.sstoracledropprofile, TBaseType.rrw_drop,"profile"," "," "," "," "," "); 4343 addoraclecmds(ESqlStatementType.sstoracledropdatabaselink, TBaseType.rrw_drop,"public","database","link"," "," "," "); 4344 addoraclecmds(ESqlStatementType.sstoracledropsynonym, TBaseType.rrw_drop,"public","synonym"," "," "," "," "); 4345 addoraclecmds(ESqlStatementType.sstoracledroprestorepoint, TBaseType.rrw_drop,"restore","point"," "," "," "," "); 4346 addoraclecmds(ESqlStatementType.sstoracledroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 4347 addoraclecmds(ESqlStatementType.sstoracledroprollbacksegment, TBaseType.rrw_drop,"rollback","segment"," "," "," "," "); 4348 addoraclecmds(ESqlStatementType.sstoracledropsequence, TBaseType.rrw_drop,"sequence"," "," "," "," "," "); 4349 addoraclecmds(ESqlStatementType.sstoracledropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 4350 addoraclecmds(ESqlStatementType.sstoracledroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 4351 addoraclecmds(ESqlStatementType.sstoracledroptablespace, TBaseType.rrw_drop,"tablespace"," "," "," "," "," "); 4352 addoraclecmds(ESqlStatementType.sstoracledroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 4353 addoraclecmds(ESqlStatementType.sstoracledroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 4354 addoraclecmds(ESqlStatementType.sstoracledroptypebody, TBaseType.rrw_drop,"type","body"," "," "," "," "); 4355 addoraclecmds(ESqlStatementType.sstoracledropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 4356 addoraclecmds(ESqlStatementType.sstoracledropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 4357 addoraclecmds(ESqlStatementType.sstoracleexecuteprocedure, TBaseType.rrw_execute," "," "," "," "," "," "); 4358 addoraclecmds(ESqlStatementType.sstplsql_execimmestmt, TBaseType.rrw_execute,"immediate"," "," "," "," "," "); 4359 addoraclecmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain,"plan"," "," "," "," "," "); 4360 addoraclecmds(ESqlStatementType.sstoracleflashbackdatabase, TBaseType.rrw_flashback,"database"," "," "," "," "," "); 4361 addoraclecmds(ESqlStatementType.sstoracleflashbacktable, TBaseType.rrw_flashback,"table"," "," "," "," "," "); 4362 addoraclecmds(ESqlStatementType.sstoraclegrant, TBaseType.rrw_grant," "," "," "," "," "," "); 4363 addoraclecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 4364 addoraclecmds(ESqlStatementType.sstoraclelocktable, TBaseType.rrw_lock,"table"," "," "," "," "," "); 4365 addoraclecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 4366 addoraclecmds(ESqlStatementType.sstoraclenoaudit, TBaseType.rrw_noaudit," "," "," "," "," "," "); 4367 addoraclecmds(ESqlStatementType.sstoraclepurge, TBaseType.rrw_purge," "," "," "," "," "," "); 4368 addoraclecmds(ESqlStatementType.sstoraclerename, TBaseType.rrw_rename," "," "," "," "," "," "); 4369 addoraclecmds(ESqlStatementType.sstoraclerevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 4370 addoraclecmds(ESqlStatementType.sstoraclerollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 4371 addoraclecmds(ESqlStatementType.sstoraclesavepoint, TBaseType.rrw_savepoint," "," "," "," "," "," "); 4372 addoraclecmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 4373 addoraclecmds(ESqlStatementType.sstoraclesetconstraint, TBaseType.rrw_set,"constraint"," "," "," "," "," "); 4374 addoraclecmds(ESqlStatementType.sstoraclesetconstraint, TBaseType.rrw_set,"constraints"," "," "," "," "," "); 4375 addoraclecmds(ESqlStatementType.sstoraclesetrole, TBaseType.rrw_set,"role"," "," "," "," "," "); 4376 addoraclecmds(ESqlStatementType.sstoraclesettransaction, TBaseType.rrw_set,"transaction"," "," "," "," "," "); 4377 addoraclecmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate," "," "," "," "," "," "); 4378 addoraclecmds(ESqlStatementType.sstplsql_createtype_placeholder, TBaseType.rrw_type2," "," "," "," "," "," "); 4379 addoraclecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 4380 4381} 4382 4383void initinformixcmds(){ 4384// cmd must be sort alphabetically 4385 addinformixcmds(ESqlStatementType.sstinformixAllocateCollection, TBaseType.rrw_allocate,"collection"," "," "," "," "," "); 4386 addinformixcmds(ESqlStatementType.sstinformixAllocateDescriptor, TBaseType.rrw_allocate,"descriptor"," "," "," "," "," "); 4387 addinformixcmds(ESqlStatementType.sstinformixAlterAccess_Method, TBaseType.rrw_alter,"access_method"," "," "," "," "," "); 4388 addinformixcmds(ESqlStatementType.sstinformixAlterFragment, TBaseType.rrw_alter,"fragment"," "," "," "," "," "); 4389 addinformixcmds(ESqlStatementType.sstinformixAlterFunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 4390 addinformixcmds(ESqlStatementType.sstinformixAlterIndex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 4391 addinformixcmds(ESqlStatementType.sstinformixAlterProcedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 4392 addinformixcmds(ESqlStatementType.sstinformixAlterRoutine, TBaseType.rrw_alter,"routine"," "," "," "," "," "); 4393 addinformixcmds(ESqlStatementType.sstinformixAlterSecurityLabelComponent, TBaseType.rrw_alter,"security","label","component"," "," "," "); 4394 addinformixcmds(ESqlStatementType.sstinformixAlterSequence, TBaseType.rrw_alter,"sequence"," "," "," "," "," "); 4395 addinformixcmds(ESqlStatementType.sstinformixAlterTable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 4396 addinformixcmds(ESqlStatementType.sstinformixAlterTrustedContext, TBaseType.rrw_alter,"trusted","context"," "," "," "," "); 4397 addinformixcmds(ESqlStatementType.sstinformixAlterUser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 4398 addinformixcmds(ESqlStatementType.sstinformixBegin, TBaseType.rrw_begin," "," "," "," "," "," "); 4399 addinformixcmds(ESqlStatementType.sstinformixClose, TBaseType.rrw_close," "," "," "," "," "," "); 4400 addinformixcmds(ESqlStatementType.sstinformixCloseDatabase, TBaseType.rrw_close,"database"," "," "," "," "," "); 4401 addinformixcmds(ESqlStatementType.sstinformixCommit, TBaseType.rrw_commit," "," "," "," "," "," "); 4402 addinformixcmds(ESqlStatementType.sstinformixConnect, TBaseType.rrw_informix_connect_to," "," "," "," "," "," "); 4403 addinformixcmds(ESqlStatementType.sstinformixCreateAccess_Method, TBaseType.rrw_create,"access_method"," "," "," "," "," "); 4404 addinformixcmds(ESqlStatementType.sstinformixCreateAggregate, TBaseType.rrw_create,"aggregate"," "," "," "," "," "); 4405 addinformixcmds(ESqlStatementType.sstinformixCreateCast, TBaseType.rrw_create,"cast"," "," "," "," "," "); 4406 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"cluster","index"," "," "," "," "); 4407 addinformixcmds(ESqlStatementType.sstinformixCreateDatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 4408 addinformixcmds(ESqlStatementType.sstinformixCreateFunction, TBaseType.rrw_create,"dba","function"," "," "," "," "); 4409 addinformixcmds(ESqlStatementType.sstinformixCreateProcedure, TBaseType.rrw_create,"dba","procedure"," "," "," "," "); 4410 addinformixcmds(ESqlStatementType.sstinformixCreateDefaultUser, TBaseType.rrw_create,"default","user"," "," "," "," "); 4411 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"distinct","cluster","index"," "," "," "); 4412 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"distinct","index"," "," "," "," "); 4413 addinformixcmds(ESqlStatementType.sstinformixCreateDistinctType, TBaseType.rrw_create,"distinct","type"," "," "," "," "); 4414 addinformixcmds(ESqlStatementType.sstinformixCreateExternalTable, TBaseType.rrw_create,"external","table"," "," "," "," "); 4415 addinformixcmds(ESqlStatementType.sstinformixCreateFunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 4416 addinformixcmds(ESqlStatementType.sstinformixCreateFunctionFrom, TBaseType.rrw_create,"function","from"," "," "," "," "); 4417 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"index"," "," "," "," "," "); 4418 addinformixcmds(ESqlStatementType.sstinformixCreateOpaqueType, TBaseType.rrw_create,"opaque","type"," "," "," "," "); 4419 addinformixcmds(ESqlStatementType.sstinformixCreateOpclass, TBaseType.rrw_create,"opclass"," "," "," "," "," "); 4420 addinformixcmds(ESqlStatementType.sstinformixCreateSynonym, TBaseType.rrw_create,"private","synonym"," "," "," "," "); 4421 addinformixcmds(ESqlStatementType.sstinformixCreateProcedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 4422 addinformixcmds(ESqlStatementType.sstinformixCreateProcedureFrom, TBaseType.rrw_create,"procedure","from"," "," "," "," "); 4423 addinformixcmds(ESqlStatementType.sstinformixCreateSynonym, TBaseType.rrw_create,"public","synonym"," "," "," "," "); 4424 addinformixcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"raw","table"," "," "," "," "); 4425 addinformixcmds(ESqlStatementType.sstinformixCreateRole, TBaseType.rrw_create,"role"," "," "," "," "," "); 4426 addinformixcmds(ESqlStatementType.sstinformixCreateRoutineFrom, TBaseType.rrw_create,"routine","from"," "," "," "," "); 4427 addinformixcmds(ESqlStatementType.sstinformixCreateRowType, TBaseType.rrw_create,"row","type"," "," "," "," "); 4428 addinformixcmds(ESqlStatementType.sstinformixCreateSchema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 4429 addinformixcmds(ESqlStatementType.sstinformixCreateSecurityLabel, TBaseType.rrw_create,"security","label"," "," "," "," "); 4430 addinformixcmds(ESqlStatementType.sstinformixCreateSecurityLabelComponent, TBaseType.rrw_create,"security","label","component"," "," "," "); 4431 addinformixcmds(ESqlStatementType.sstinformixCreateSecurityPolicy, TBaseType.rrw_create,"security","policy"," "," "," "," "); 4432 addinformixcmds(ESqlStatementType.sstinformixCreateSequence, TBaseType.rrw_create,"sequence"," "," "," "," "," "); 4433 addinformixcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"standard","table"," "," "," "," "); 4434 addinformixcmds(ESqlStatementType.sstinformixCreateSynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 4435 addinformixcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 4436 addinformixcmds(ESqlStatementType.sstinformixCreateTempTable, TBaseType.rrw_create,"temp","table"," "," "," "," "); 4437 addinformixcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 4438 addinformixcmds(ESqlStatementType.sstinformixCreateTrustedContext, TBaseType.rrw_create,"trusted","context"," "," "," "," "); 4439 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"unique","cluster","index"," "," "," "); 4440 addinformixcmds(ESqlStatementType.sstinformixCreateIndex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 4441 addinformixcmds(ESqlStatementType.sstinformixCreateUser, TBaseType.rrw_create,"user"," "," "," "," "," "); 4442 addinformixcmds(ESqlStatementType.sstinformixCreateView, TBaseType.rrw_create,"view"," "," "," "," "," "); 4443 addinformixcmds(ESqlStatementType.sstinformixCreateXaDatasource, TBaseType.rrw_create,"xadatasource"," "," "," "," "," "); 4444 addinformixcmds(ESqlStatementType.sstinformixCreateXaDatasourceType, TBaseType.rrw_create,"xadatasource","type"," "," "," "," "); 4445 //addinformixcmds(ESqlStatementType.sstinformixDatabase, TBaseType.rrw_database," "," "," "," "," "," "); 4446 addinformixcmds(ESqlStatementType.sstinformixDeallocateCollection, TBaseType.rrw_deallocate,"collection"," "," "," "," "," "); 4447 addinformixcmds(ESqlStatementType.sstinformixDeallocateDescriptor, TBaseType.rrw_deallocate, "descriptor"," "," "," "," "," "); 4448 addinformixcmds(ESqlStatementType.sstinformixDeallocateRow, TBaseType.rrw_deallocate,"row"," "," "," "," "," "); 4449 addinformixcmds(ESqlStatementType.sstinformixDeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 4450 addinformixcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 4451 addinformixcmds(ESqlStatementType.sstinformixDescribe, TBaseType.rrw_describe," "," "," "," "," "," "); 4452 addinformixcmds(ESqlStatementType.sstinformixDescribeInput, TBaseType.rrw_describe,"input"," "," "," "," "," "); 4453 addinformixcmds(ESqlStatementType.sstinformixDisconnect, TBaseType.rrw_disconnect," "," "," "," "," "," "); 4454 addinformixcmds(ESqlStatementType.sstinformixDropAccess_Method, TBaseType.rrw_drop,"access_method"," "," "," "," "," "); 4455 addinformixcmds(ESqlStatementType.sstinformixDropAggregate, TBaseType.rrw_drop,"aggregate"," "," "," "," "," "); 4456 addinformixcmds(ESqlStatementType.sstinformixDropCast, TBaseType.rrw_drop,"cast"," "," "," "," "," "); 4457 addinformixcmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 4458 addinformixcmds(ESqlStatementType.sstinformixDropFunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 4459 addinformixcmds(ESqlStatementType.sstinformixDropIndex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 4460 addinformixcmds(ESqlStatementType.sstinformixDropOpclass, TBaseType.rrw_drop,"opclass"," "," "," "," "," "); 4461 addinformixcmds(ESqlStatementType.sstinformixDropProcedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 4462 addinformixcmds(ESqlStatementType.sstinformixDropRole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 4463 addinformixcmds(ESqlStatementType.sstinformixDropRoutine, TBaseType.rrw_drop,"routine"," "," "," "," "," "); 4464 addinformixcmds(ESqlStatementType.sstinformixDropRowType, TBaseType.rrw_drop,"row","type"," "," "," "," "); 4465 addinformixcmds(ESqlStatementType.sstinformixDropSecurity, TBaseType.rrw_drop,"security"," "," "," "," "," "); 4466 addinformixcmds(ESqlStatementType.sstinformixDropSequence, TBaseType.rrw_drop,"sequence"," "," "," "," "," "); 4467 addinformixcmds(ESqlStatementType.sstinformixDropSynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 4468 addinformixcmds(ESqlStatementType.sstinformixDropTable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 4469 addinformixcmds(ESqlStatementType.sstinformixDropTrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 4470 addinformixcmds(ESqlStatementType.sstinformixDropTrustedContext, TBaseType.rrw_drop,"trusted","context"," "," "," "," "); 4471 addinformixcmds(ESqlStatementType.sstinformixDropType, TBaseType.rrw_drop,"type"," "," "," "," "," "); 4472 addinformixcmds(ESqlStatementType.sstinformixDropUser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 4473 addinformixcmds(ESqlStatementType.sstinformixDropView, TBaseType.rrw_drop,"view"," "," "," "," "," "); 4474 addinformixcmds(ESqlStatementType.sstinformixDropXaDatasource, TBaseType.rrw_drop,"xadatasource"," "," "," "," "," "); 4475 addinformixcmds(ESqlStatementType.sstinformixDropXaDatasourceType, TBaseType.rrw_drop,"xadatasource","type"," "," "," "," "); 4476 addinformixcmds(ESqlStatementType.sstinformixExecute, TBaseType.rrw_exec," "," "," "," "," "," "); 4477 addinformixcmds(ESqlStatementType.sstinformixExecute, TBaseType.rrw_execute," "," "," "," "," "," "); 4478 addinformixcmds(ESqlStatementType.sstinformixExecuteFunction, TBaseType.rrw_execute,"function"," "," "," "," "," "); 4479 addinformixcmds(ESqlStatementType.sstinformixExecuteImmediate, TBaseType.rrw_execute,"immediate"," "," "," "," "," "); 4480 addinformixcmds(ESqlStatementType.sstinformixExecuteProcedure, TBaseType.rrw_execute,"procedure"," "," "," "," "," "); 4481 addinformixcmds(ESqlStatementType.sstinformixFetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 4482 addinformixcmds(ESqlStatementType.sstinformixFlush, TBaseType.rrw_flush," "," "," "," "," "," "); 4483 addinformixcmds(ESqlStatementType.sstinformixFree, TBaseType.rrw_free," "," "," "," "," "," "); 4484 addinformixcmds(ESqlStatementType.sstinformixGetDescriptor, TBaseType.rrw_get,"descriptor"," "," "," "," "," "); 4485 addinformixcmds(ESqlStatementType.sstinformixGetDiagnostics, TBaseType.rrw_get,"diagnostics"," "," "," "," "," "); 4486 addinformixcmds(ESqlStatementType.sstinformixGrant, TBaseType.rrw_grant," "," "," "," "," "," "); 4487 addinformixcmds(ESqlStatementType.sstinformixGrantFragment, TBaseType.rrw_grant,"fragment"," "," "," "," "," "); 4488 addinformixcmds(ESqlStatementType.sstinformixInfo, TBaseType.rrw_informix_info," "," "," "," "," "," "); 4489 addinformixcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " "," "," "," "," "," "); 4490 addinformixcmds(ESqlStatementType.sstinformixLoad, TBaseType.rrw_load," "," "," "," "," "," "); 4491 addinformixcmds(ESqlStatementType.sstinformixLockTable, TBaseType.rrw_lock,"table"," "," "," "," "," "); 4492 addinformixcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 4493 addinformixcmds(ESqlStatementType.sstinformixOpen, TBaseType.rrw_open," "," "," "," "," "," "); 4494 addinformixcmds(ESqlStatementType.sstinformixOutput, TBaseType.rrw_informix_output," "," "," "," "," "," "); 4495 addinformixcmds(ESqlStatementType.sstinformixPrepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 4496 addinformixcmds(ESqlStatementType.sstinformixPut, TBaseType.rrw_informix_put," "," "," "," "," "," "); 4497 addinformixcmds(ESqlStatementType.sstinformixReleaseSavepoint, TBaseType.rrw_release,"savepoint"," "," "," "," "," "); 4498 addinformixcmds(ESqlStatementType.sstinformixRenameColumn, TBaseType.rrw_rename,"column"," "," "," "," "," "); 4499 addinformixcmds(ESqlStatementType.sstinformixRenameDatabase, TBaseType.rrw_rename,"database"," "," "," "," "," "); 4500 addinformixcmds(ESqlStatementType.sstinformixRenameIndex, TBaseType.rrw_rename,"index"," "," "," "," "," "); 4501 addinformixcmds(ESqlStatementType.sstinformixRenameSecurity, TBaseType.rrw_rename,"security"," "," "," "," "," "); 4502 addinformixcmds(ESqlStatementType.sstinformixRenameSequence, TBaseType.rrw_rename,"sequence"," "," "," "," "," "); 4503 addinformixcmds(ESqlStatementType.sstinformixRenameTable, TBaseType.rrw_rename,"table"," "," "," "," "," "); 4504 addinformixcmds(ESqlStatementType.sstinformixRenameTrustedContext, TBaseType.rrw_rename,"trusted","context"," "," "," "," "); 4505 addinformixcmds(ESqlStatementType.sstinformixRenameUser, TBaseType.rrw_rename,"user"," "," "," "," "," "); 4506 addinformixcmds(ESqlStatementType.sstinformixRevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 4507 addinformixcmds(ESqlStatementType.sstinformixRevokeFragment, TBaseType.rrw_revoke,"fragment"," "," "," "," "," "); 4508 addinformixcmds(ESqlStatementType.sstinformixRollbackWork, TBaseType.rrw_rollback," "," "," "," "," "," "); 4509 addinformixcmds(ESqlStatementType.sstinformixRollbackWork, TBaseType.rrw_rollback,"work"," "," "," "," "," "); 4510 addinformixcmds(ESqlStatementType.sstinformixSaveExternalDirectives, TBaseType.rrw_save,"external","directives"," "," "," "," "); 4511 addinformixcmds(ESqlStatementType.sstinformixSavepoint, TBaseType.rrw_savepoint," "," "," "," "," "," "); 4512 addinformixcmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 4513 addinformixcmds(ESqlStatementType.sstinformixSetAutofree, TBaseType.rrw_set,"autofree"," "," "," "," "," "); 4514 addinformixcmds(ESqlStatementType.sstinformixSetCollation, TBaseType.rrw_set,"collation"," "," "," "," "," "); 4515 addinformixcmds(ESqlStatementType.sstinformixSetConnection, TBaseType.rrw_set,"connection"," "," "," "," "," "); 4516 addinformixcmds(ESqlStatementType.sstinformixSetConstraints, TBaseType.rrw_set,"constraints"," "," "," "," "," "); 4517 addinformixcmds(ESqlStatementType.sstinformixSetDatabaseObject, TBaseType.rrw_set,"database","object"," "," "," "," "); 4518 addinformixcmds(ESqlStatementType.sstinformixSetDataskip, TBaseType.rrw_set,"dataskip"," "," "," "," "," "); 4519 addinformixcmds(ESqlStatementType.sstinformixSetDebugFile, TBaseType.rrw_set,"debug","file"," "," "," "," "); 4520 addinformixcmds(ESqlStatementType.sstinformixSetDeferred_Prepare, TBaseType.rrw_set,"defferred_prepare"," "," "," "," "," "); 4521 addinformixcmds(ESqlStatementType.sstinformixSetDescriptor, TBaseType.rrw_set,"descriptor"," "," "," "," "," "); 4522 addinformixcmds(ESqlStatementType.sstinformixSetEncryptionPassword, TBaseType.rrw_set,"encryption","password"," "," "," "," "); 4523 addinformixcmds(ESqlStatementType.sstinformixSetEnvironment, TBaseType.rrw_set,"environment"," "," "," "," "," "); 4524 addinformixcmds(ESqlStatementType.sstinformixSetExplain, TBaseType.rrw_set,"explain"," "," "," "," "," "); 4525 addinformixcmds(ESqlStatementType.sstinformixSetIndexes, TBaseType.rrw_set,"indexes"," "," "," "," "," "); 4526 addinformixcmds(ESqlStatementType.sstinformixSetIsolation, TBaseType.rrw_set,"isolation"," "," "," "," "," "); 4527 addinformixcmds(ESqlStatementType.sstinformixSetLockMode, TBaseType.rrw_set,"lock","mode"," "," "," "," "); 4528 addinformixcmds(ESqlStatementType.sstinformixSetLog, TBaseType.rrw_set,"log"," "," "," "," "," "); 4529 addinformixcmds(ESqlStatementType.sstinformixSetOptimization, TBaseType.rrw_set,"optimization"," "," "," "," "," "); 4530 addinformixcmds(ESqlStatementType.sstinformixSetPDQPriority, TBaseType.rrw_set,"pdqpriority"," "," "," "," "," "); 4531 addinformixcmds(ESqlStatementType.sstinformixSetRole, TBaseType.rrw_set,"role"," "," "," "," "," "); 4532 addinformixcmds(ESqlStatementType.sstinformixSetSessionAuthorization, TBaseType.rrw_set,"session","authorization"," "," "," "," "); 4533 addinformixcmds(ESqlStatementType.sstinformixSetStatementCache, TBaseType.rrw_set,"statement","cache"," "," "," "," "); 4534 addinformixcmds(ESqlStatementType.sstinformixSetTransaction, TBaseType.rrw_set,"transaction"," "," "," "," "," "); 4535 addinformixcmds(ESqlStatementType.sstinformixSetTransactionMode, TBaseType.rrw_set,"transaction","mode"," "," "," "," "); 4536 addinformixcmds(ESqlStatementType.sstinformixSetTriggers, TBaseType.rrw_set,"triggers"," "," "," "," "," "); 4537 addinformixcmds(ESqlStatementType.sstinformixSetUserPassword, TBaseType.rrw_set,"user","password"," "," "," "," "); 4538 addinformixcmds(ESqlStatementType.sstinformixStartViolationsTable, TBaseType.rrw_start,"violations","table"," "," "," "," "); 4539 addinformixcmds(ESqlStatementType.sstinformixStopViolationsTable, TBaseType.rrw_stop,"violations","table"," "," "," "," "); 4540 addinformixcmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate," "," "," "," "," "," "); 4541 addinformixcmds(ESqlStatementType.sstinformixUnload, TBaseType.rrw_informix_unload," "," "," "," "," "," "); 4542 addinformixcmds(ESqlStatementType.sstinformixUnlockTable, TBaseType.rrw_unlock,"table"," "," "," "," "," "); 4543 addinformixcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 4544 addinformixcmds(ESqlStatementType.sstinformixUpdateStatistics, TBaseType.rrw_update,"statistics"," "," "," "," "," "); 4545 addinformixcmds(ESqlStatementType.sstinformixWhenever, TBaseType.rrw_informix_whenever," "," "," "," "," "," "); 4546} 4547 public void initcouchbasecmds() { 4548 addcouchbasecmds(ESqlStatementType.sstBuildIndex, TBaseType.rrw_couchbase_build, "index"," ", " ", " ", " ", " "); 4549 addcouchbasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "index", " ", " ", " ", " ", " "); 4550 addcouchbasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "primary", "index", " ", " ", " ", " "); 4551 addcouchbasecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 4552 addcouchbasecmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index", " ", " ", " ", " ", " "); 4553 addcouchbasecmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "primary", "index", " ", " ", " ", " "); 4554 addcouchbasecmds(ESqlStatementType.sstExecutePreparedStmt, TBaseType.rrw_execute, " ", " ", " ", " ", " ", " "); 4555 addcouchbasecmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " ", " ", " ", " ", " ", " "); 4556 addcouchbasecmds(ESqlStatementType.sstinfer, TBaseType.rrw_couchbase_infer, " ", " ", " ", " ", " ", " "); 4557 addcouchbasecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 4558 addcouchbasecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, " ", " ", " ", " ", " ", " "); 4559 addcouchbasecmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare, " ", " ", " ", " ", " ", " "); 4560 addcouchbasecmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 4561 addcouchbasecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 4562 addcouchbasecmds(ESqlStatementType.sstupsert, TBaseType.rrw_couchbase_upsert, " ", " ", " ", " ", " ", " "); 4563 } 4564 4565 void initverticacmds(){ 4566 4567 addverticacmds(ESqlStatementType.sstActivateDirectedQuery, TBaseType.rrw_vertica_activate, "directed", "query", " ", " ", " ", " "); 4568 4569 addverticacmds(ESqlStatementType.sstAlterAccessPolicy, TBaseType.rrw_alter, "access", "policy", " ", " ", " ", " "); 4570 addverticacmds(ESqlStatementType.sstAlterAuthentication, TBaseType.rrw_alter, "authentication", " ", " ", " ", " ", " "); 4571 addverticacmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 4572 addverticacmds(ESqlStatementType.sstAlterFaultGroup, TBaseType.rrw_alter, "fault", "group", " ", " ", " ", " "); 4573 addverticacmds(ESqlStatementType.sstalterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 4574 addverticacmds(ESqlStatementType.sstAlterLibrary, TBaseType.rrw_alter, "library", " ", " ", " ", " ", " "); 4575 addverticacmds(ESqlStatementType.sstAlterNode, TBaseType.rrw_alter, "node", " ", " ", " ", " ", " "); 4576 addverticacmds(ESqlStatementType.sstAlterNetworkInterface, TBaseType.rrw_alter, "network", "interface", " ", " ", " ", " "); 4577 addverticacmds(ESqlStatementType.sstAlterProjection, TBaseType.rrw_alter, "projection", " ", " ", " ", " ", " "); 4578 addverticacmds(ESqlStatementType.sstAlterProfile, TBaseType.rrw_alter, "profile", " ", " ", " ", " ", " "); 4579 addverticacmds(ESqlStatementType.sstAlterResourcePool, TBaseType.rrw_alter, "resource", "pool", " ", " ", " ", " "); 4580 addverticacmds(ESqlStatementType.sstAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 4581 addverticacmds(ESqlStatementType.sstAlterSchema, TBaseType.rrw_alter, "schema", " ", " ", " ", " ", " "); 4582 addverticacmds(ESqlStatementType.sstaltersequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 4583 addverticacmds(ESqlStatementType.sstaltersession, TBaseType.rrw_alter, "session", " ", " ", " ", " ", " "); 4584 addverticacmds(ESqlStatementType.sstAlterSubnet, TBaseType.rrw_alter, "subnet", " ", " ", " ", " ", " "); 4585 addverticacmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 4586 addverticacmds(ESqlStatementType.sstalteruser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 4587 addverticacmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 4588 4589 addverticacmds(ESqlStatementType.sstBegin, TBaseType.rrw_begin, " ", " ", " ", " ", " ", " "); 4590 addverticacmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 4591 4592 addverticacmds(ESqlStatementType.sstCommentOn, TBaseType.rrw_comment, "on", " ", " ", " ", " ", " "); 4593 addverticacmds(ESqlStatementType.sstcommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 4594 addverticacmds(ESqlStatementType.sstconnect, TBaseType.rrw_connect, "to", " ", " ", " ", " ", " "); 4595 addverticacmds(ESqlStatementType.sstCopy, TBaseType.rrw_vertica_copy, " ", " ", " ", " ", " ", " "); 4596 4597 addverticacmds(ESqlStatementType.sstCreateAccessPolicy, TBaseType.rrw_create, "access", "policy", " ", " ", " ", " "); 4598 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "aggregate", "function", " ", " ", " ", " "); 4599 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "analytic", "function", " ", " ", " ", " "); 4600 addverticacmds(ESqlStatementType.sstCreateAuthentication, TBaseType.rrw_create, "authentication", " ", " ", " ", " ", " "); 4601 addverticacmds(ESqlStatementType.sstCreateDirectedQuery, TBaseType.rrw_create, "directed", "query", " ", " ", " ", " "); 4602 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "external", "table", " ", " ", " ", " "); 4603 addverticacmds(ESqlStatementType.sstCreateFaultGroup, TBaseType.rrw_create , "fault", "group", " ", " ", " ", " "); 4604 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "filter", " ", " ", " ", " ", " "); 4605 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flex", "table", " ", " ", " ", " "); 4606 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flex", "local", "temp", "table", " ", " "); 4607 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flex", "local", "temporary", "table", " ", " "); 4608 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flexible", "table", " ", " ", " ", " "); 4609 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flexible", "local", "temp", "table", " ", " "); 4610 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "flexible", "local", "temporary", "table", " ", " "); 4611 4612 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "function", " ", " ", " ", " ", " "); 4613 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "global", "temp", "table", " ", " ", " "); 4614 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "global", "temporary", "table", " ", " ", " "); 4615 addverticacmds(ESqlStatementType.sstCreateHCatalogSchema, TBaseType.rrw_create , "hcatalog", "schema", " ", " ", " ", " "); 4616 addverticacmds(ESqlStatementType.sstCreateLibrary, TBaseType.rrw_create, "library", " ", " ", " ", " ", " "); 4617 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "local", "temp", "table", " ", " ", " "); 4618 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "local", "temp", "view", " ", " ", " "); 4619 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "local", "temporary", "table", " ", " ", " "); 4620 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "local", "temporary", "view", " ", " ", " "); 4621 addverticacmds(ESqlStatementType.sstCreateLocation, TBaseType.rrw_create , "location", " ", " ", " ", " ", " "); 4622 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "managed", "external", "table", " ", " ", " "); 4623 addverticacmds(ESqlStatementType.sstCreateNetworkInterface, TBaseType.rrw_create, "network", "interface", " ", " ", " ", " "); 4624 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "or", "replace", "aggregate", "function", " ", " "); 4625 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "or", "replace", "function", " ", " ", " "); 4626 addverticacmds(ESqlStatementType.sstCreateLibrary, TBaseType.rrw_create , "or", "replace", "library", " ", " ", " "); 4627 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "or", "replace", "local", "temp", "view", " "); 4628 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "or", "replace", "local", "temporary", "view", " "); 4629 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "or", "replace", "view", " ", " ", " "); 4630 addverticacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create , "or", "replace", "procedure", " ", " ", " "); 4631 4632 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "parser", " ", " ", " ", " ", " "); 4633 addverticacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create , "procedure", " ", " ", " ", " ", " "); 4634 addverticacmds(ESqlStatementType.sstCreateProfile, TBaseType.rrw_create , "profile", " ", " ", " ", " ", " "); 4635 addverticacmds(ESqlStatementType.sstCreateProjection, TBaseType.rrw_create , "projection", " ", " ", " ", " ", " "); 4636 addverticacmds(ESqlStatementType.sstCreateResourcePool, TBaseType.rrw_create , "resource", "pool", " ", " ", " ", " "); 4637 addverticacmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create , "role", " ", " ", " ", " ", " "); 4638 addverticacmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create , "schema", " ", " ", " ", " ", " "); 4639 addverticacmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create , "sequence", " ", " ", " ", " ", " "); 4640 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "source", " ", " ", " ", " ", " "); 4641 addverticacmds(ESqlStatementType.sstCreateSubnet, TBaseType.rrw_create , "subnet", " ", " ", " ", " ", " "); 4642 4643 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "table", " ", " ", " ", " ", " "); 4644 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "temp", "table", " ", " ", " ", " "); 4645 addverticacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create , "temporary", "table", " ", " ", " ", " "); 4646 addverticacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create , "text", "index", " ", " ", " ", " "); 4647 addverticacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create , "transform", "function", " ", " ", " ", " "); 4648 addverticacmds(ESqlStatementType.sstcreateuser, TBaseType.rrw_create , "user", " ", " ", " ", " ", " "); 4649 addverticacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create , "view", " ", " ", " ", " ", " "); 4650 4651 addverticacmds(ESqlStatementType.sstDeActivateDirectedQuery, TBaseType.rrw_vertica_deactivate, "directed", "query", " ", " ", " ", " "); 4652 4653 addverticacmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete , " ", " ", " ", " ", " ", " "); 4654 addverticacmds(ESqlStatementType.sstDisconnect, TBaseType.rrw_disconnect , " ", " ", " ", " ", " ", " "); 4655 4656 addverticacmds(ESqlStatementType.sstDeActivateDirectedQuery, TBaseType.rrw_drop, "directed", "query", " ", " ", " ", " "); 4657 addverticacmds(ESqlStatementType.sstDropAccessPolicy, TBaseType.rrw_drop, "access","policy", " ", " ", " ", " "); 4658 addverticacmds(ESqlStatementType.sstDropAggregateFunction, TBaseType.rrw_drop, "aggregate","function", " ", " ", " ", " "); 4659 addverticacmds(ESqlStatementType.sstDropAuthentication, TBaseType.rrw_drop, "authentication"," ", " ", " ", " ", " "); 4660 4661 addverticacmds(ESqlStatementType.sstDropFaultGroup, TBaseType.rrw_drop, "fault","group", " ", " ", " ", " "); 4662 4663 addverticacmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function"," ", " ", " ", " ", " "); 4664 addverticacmds(ESqlStatementType.sstDropLibrary, TBaseType.rrw_drop, "library"," ", " ", " ", " ", " "); 4665 addverticacmds(ESqlStatementType.sstDropNetworkInterface, TBaseType.rrw_drop, "network","interface", " ", " ", " ", " "); 4666 addverticacmds(ESqlStatementType.sstdropprocedure, TBaseType.rrw_drop, "procedure"," ", " ", " ", " ", " "); 4667 addverticacmds(ESqlStatementType.sstDropProfile, TBaseType.rrw_drop, "profile"," ", " ", " ", " ", " "); 4668 addverticacmds(ESqlStatementType.sstDropProjection, TBaseType.rrw_drop, "projection"," ", " ", " ", " ", " "); 4669 addverticacmds(ESqlStatementType.sstDropResourcePool, TBaseType.rrw_drop, "resource","pool", " ", " ", " ", " "); 4670 addverticacmds(ESqlStatementType.sstdroprole, TBaseType.rrw_drop, "role"," ", " ", " ", " ", " "); 4671 addverticacmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema"," ", " ", " ", " ", " "); 4672 addverticacmds(ESqlStatementType.sstdropsequence, TBaseType.rrw_drop, "sequence"," ", " ", " ", " ", " "); 4673 addverticacmds(ESqlStatementType.sstDropSubnet, TBaseType.rrw_drop, "subnet"," ", " ", " ", " ", " "); 4674 addverticacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table"," ", " ", " ", " ", " "); 4675 addverticacmds(ESqlStatementType.sstDropTextIndex, TBaseType.rrw_drop, "text","index", " ", " ", " ", " "); 4676 addverticacmds(ESqlStatementType.sstDropTransformFunction, TBaseType.rrw_drop, "transform","function", " ", " ", " ", " "); 4677 addverticacmds(ESqlStatementType.sstdropuser, TBaseType.rrw_drop, "user"," ", " ", " ", " ", " "); 4678 addverticacmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view"," ", " ", " ", " ", " "); 4679 4680 addverticacmds(ESqlStatementType.sstEnd, TBaseType.rrw_end, " ", " "," ", " ", " ", " "); 4681 addverticacmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, " ", " "," ", " ", " ", " "); 4682 addverticacmds(ESqlStatementType.sstExportToVertica, TBaseType.rrw_vertica_export, "to", "vertica"," ", " ", " ", " "); 4683 addverticacmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " ", " "," ", " ", " ", " "); 4684 addverticacmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " "," ", " ", " ", " "); 4685 addverticacmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, " ", " "," ", " ", " ", " "); 4686 addverticacmds(ESqlStatementType.sstProfile, TBaseType.rrw_vertica_profile, " ", " "," ", " ", " ", " "); 4687 addverticacmds(ESqlStatementType.sstReleaseSavepoint, TBaseType.rrw_release, " ", " "," ", " ", " ", " "); 4688 addverticacmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " ", " "," ", " ", " ", " "); 4689 addverticacmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " ", " "," ", " ", " ", " "); 4690 addverticacmds(ESqlStatementType.sstsavepoint, TBaseType.rrw_savepoint, " ", " "," ", " ", " ", " "); 4691 addverticacmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " "," ", " ", " ", " "); 4692 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "datestyle", "to"," ", " ", " ", " "); 4693 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "escape_string_warning", "to"," ", " ", " ", " "); 4694 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "intervalstyle", "to"," ", " ", " ", " "); 4695 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "locale", " "," ", " ", " ", " "); 4696 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "role", " "," ", " ", " ", " "); 4697 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "search_path", " "," ", " ", " ", " "); 4698 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "session", " "," ", " ", " ", " "); 4699 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "standard_conforming_strings", " "," ", " ", " ", " "); 4700 addverticacmds(ESqlStatementType.sstset, TBaseType.rrw_set, "time", "zone"," ", " ", " ", " "); 4701 addverticacmds(ESqlStatementType.sstShow, TBaseType.rrw_show, " ", " "," ", " ", " ", " "); 4702 addverticacmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, " ", " "," ", " ", " ", " "); 4703 addverticacmds(ESqlStatementType.sstTruncate, TBaseType.rrw_truncate, "table", " "," ", " ", " ", " "); 4704 addverticacmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " "," ", " ", " ", " "); 4705 4706 4707 // addverticacmds(ESqlStatementType.sstGetDirectedQuery, TBaseType.rrw_get, "directed", "query", " ", " ", " ", " "); 4708 // addverticacmds(ESqlStatementType.sstSaveQuery, TBaseType.rrw_save, "query", " "," ", " ", " ", " "); 4709 4710 } 4711 4712 void inithanacmds(){ 4713//alter 4714 addhanacmds(ESqlStatementType.sstalterauditpolicy, TBaseType.rrw_alter, "audit", "policy", " ", " ", " ", " "); 4715 addhanacmds(ESqlStatementType.sstaltercredential, TBaseType.rrw_alter, "credential", " ", " ", " ", " ", " "); 4716 addhanacmds(ESqlStatementType.sstalterdatabase, TBaseType.rrw_alter, "database", " ", " ", " ", " ", " "); 4717 addhanacmds(ESqlStatementType.sstalterfulltextindex, TBaseType.rrw_alter, "fulltext", "index", " ", " ", " ", " "); 4718 addhanacmds(ESqlStatementType.sstalterfunction, TBaseType.rrw_alter, "function", " ", " ", " ", " ", " "); 4719 addhanacmds(ESqlStatementType.sstalterindex, TBaseType.rrw_alter, "index", " ", " ", " ", " ", " "); 4720 addhanacmds(ESqlStatementType.sstalterldapprovider, TBaseType.rrw_alter, "ldap", "provider", " ", " ", " ", " "); 4721 addhanacmds(ESqlStatementType.sstalterjwtprovider, TBaseType.rrw_alter, "jwt", "provider", " ", " ", " ", " "); 4722 addhanacmds(ESqlStatementType.sstalterpse, TBaseType.rrw_alter, "pse", " ", " ", " ", " ", " "); 4723 addhanacmds(ESqlStatementType.sstalterprocedure, TBaseType.rrw_alter, "procedure", " ", " ", " ", " ", " "); 4724 addhanacmds(ESqlStatementType.sstalterremotesource, TBaseType.rrw_alter, "remote", "source", " ", " ", " ", " "); 4725 addhanacmds(ESqlStatementType.sstAlterRole, TBaseType.rrw_alter, "role", " ", " ", " ", " ", " "); 4726 addhanacmds(ESqlStatementType.sstaltersamlprovider, TBaseType.rrw_alter, "saml", "provider", " ", " ", " ", " "); 4727 addhanacmds(ESqlStatementType.sstaltersequence, TBaseType.rrw_alter, "sequence", " ", " ", " ", " ", " "); 4728 addhanacmds(ESqlStatementType.sstalterstatistics, TBaseType.rrw_alter, "statistics", " ", " ", " ", " ", " "); 4729 addhanacmds(ESqlStatementType.sstalterstructuredprivilege, TBaseType.rrw_alter, "structured", "privilege", " ", " ", " ", " "); 4730 addhanacmds(ESqlStatementType.sstaltersystem, TBaseType.rrw_alter, "system", " ", " ", " ", " ", " "); 4731 addhanacmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter, "table", " ", " ", " ", " ", " "); 4732 addhanacmds(ESqlStatementType.sstalteruser, TBaseType.rrw_alter, "user", " ", " ", " ", " ", " "); 4733 addhanacmds(ESqlStatementType.sstalterusergroup, TBaseType.rrw_alter, "usergroup", " ", " ", " ", " ", " "); 4734 addhanacmds(ESqlStatementType.sstalterview, TBaseType.rrw_alter, "view", " ", " ", " ", " ", " "); 4735 addhanacmds(ESqlStatementType.sstalterviewcache, TBaseType.rrw_alter, "view", "cache", " ", " ", " ", " "); 4736 addhanacmds(ESqlStatementType.sstaltervirtualtable, TBaseType.rrw_alter, "virtual", "table", " ", " ", " ", " "); 4737 addhanacmds(ESqlStatementType.sstalterworkloadclass, TBaseType.rrw_alter, "workload", "class", " ", " ", " ", " "); 4738 addhanacmds(ESqlStatementType.sstalterworkloadmapping, TBaseType.rrw_alter, "workload", "mapping", " ", " ", " ", " "); 4739 4740//backup 4741 addhanacmds(ESqlStatementType.sstbackupcancel, TBaseType.rrw_backup,"cancel"," "," "," "," "," "); 4742 addhanacmds(ESqlStatementType.sstbackupcatalogdelete, TBaseType.rrw_backup, "catalog", "delete", " ", " ", " ", " "); 4743 addhanacmds(ESqlStatementType.sstbackupcheck, TBaseType.rrw_backup,"check"," "," "," "," "," "); 4744 addhanacmds(ESqlStatementType.sstbackupcheckaccess, TBaseType.rrw_backup, "check", "access", " ", " ", " ", " "); 4745 addhanacmds(ESqlStatementType.sstbackupdata, TBaseType.rrw_backup, "data", " ", " ", " ", " ", " "); 4746 addhanacmds(ESqlStatementType.sstbackuplistdata, TBaseType.rrw_backup, "list", "data", " ", " ", " ", " "); 4747 4748 addhanacmds(ESqlStatementType.sstcall, TBaseType.rrw_call, " ", " ", " ", " ", " ", " "); 4749 4750//commit 4751 addhanacmds(ESqlStatementType.sstcomment, TBaseType.rrw_comment, "on", " ", " ", " ", " ", " "); 4752 addhanacmds(ESqlStatementType.sstcommit, TBaseType.rrw_commit, " ", " ", " ", " ", " ", " "); 4753 addhanacmds(ESqlStatementType.sstconnect, TBaseType.rrw_connect, " ", " ", " ", " ", " ", " "); 4754 4755//create 4756 addhanacmds(ESqlStatementType.sstcreateauditpolicy, TBaseType.rrw_create, "audit", "policy", " ", " ", " ", " "); 4757 addhanacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "btree", "index", " ", " ", " ", " "); 4758 addhanacmds(ESqlStatementType.sstcreatecertificate, TBaseType.rrw_create, "certificate", " ", " ", " ", " ", " "); 4759 addhanacmds(ESqlStatementType.sstcreatecollection, TBaseType.rrw_create, "collection", " ", " ", " ", " ", " "); 4760 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "column", "table", " ", " ", " ", " "); 4761 addhanacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "cpbtree", "index", " ", " ", " ", " "); 4762 addhanacmds(ESqlStatementType.sstcreatecredential, TBaseType.rrw_create, "credential", " ", " ", " ", " ", " "); 4763 addhanacmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create, "database", " ", " ", " ", " ", " "); 4764 addhanacmds(ESqlStatementType.sstcreatefulltextindex, TBaseType.rrw_create, "fulltext", "index", " ", " ", " ", " "); 4765 addhanacmds(ESqlStatementType.sstcreatefunction, TBaseType.rrw_create, "function", " ", " ", " ", " ", " "); 4766 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "global", "temporary", "column", "table", " ", " "); 4767 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"global","temporary","table"," "," "," "); 4768 addhanacmds(ESqlStatementType.sstcreategraphworkspace, TBaseType.rrw_create, "graph", "workspace", " ", " ", " ", " "); 4769 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"history","column","table"," "," "," "); 4770 addhanacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "index", " ", " ", " ", " ", " "); 4771 addhanacmds(ESqlStatementType.sstcreateJWTProvider, TBaseType.rrw_create, "jwt", "provider", " ", " ", " ", " "); 4772 addhanacmds(ESqlStatementType.sstcreateLDAPProvider, TBaseType.rrw_create, "ldap", "provider", " ", " ", " ", " "); 4773 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"local","temporary","column","table"," "," "); 4774 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "local", "temporary", "table", " ", " ", " "); 4775 addhanacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "force", "editionable", "view", " "); 4776 addhanacmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create, "or", "replace", "public", "synonym", " ", " "); 4777 addhanacmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create, "or", "replace", "synonym", " ", " ", " "); 4778 addhanacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "or", "replace", "view", " ", " ", " "); 4779 addhanacmds(ESqlStatementType.sstcreateprocedure, TBaseType.rrw_create, "procedure", " ", " ", " ", " ", " "); 4780 addhanacmds(ESqlStatementType.sstcreatepse, TBaseType.rrw_create, "pse", " ", " ", " ", " ", " "); 4781 addhanacmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create, "public", "synonym", " ", " ", " ", " "); 4782 addhanacmds(ESqlStatementType.sstcreateremotesource, TBaseType.rrw_create, "remote", "source", " ", " ", " ", " "); 4783 addhanacmds(ESqlStatementType.sstcreateuser, TBaseType.rrw_create, "restricted", "user", " ", " ", " ", " "); 4784 addhanacmds(ESqlStatementType.sstcreaterole, TBaseType.rrw_create, "role", " ", " ", " ", " ", " "); 4785 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "row", "table", " ", " ", " ", " "); 4786 addhanacmds(ESqlStatementType.sstcreatesamlprovider, TBaseType.rrw_create, "saml", "provider", " ", " ", " ", " "); 4787 addhanacmds(ESqlStatementType.sstcreateschema, TBaseType.rrw_create, "schema", " ", " ", " ", " ", " "); 4788 addhanacmds(ESqlStatementType.sstcreatesequence, TBaseType.rrw_create, "sequence", " ", " ", " ", " ", " "); 4789 addhanacmds(ESqlStatementType.sstcreatestatistics, TBaseType.rrw_create, "statistics", " ", " ", " ", " ", " "); 4790 addhanacmds(ESqlStatementType.sstcreatestructuredprivilege, TBaseType.rrw_create, "structured", "privilege", " ", " ", " ", " "); 4791 addhanacmds(ESqlStatementType.sstcreatesynonym, TBaseType.rrw_create, "synonym", " ", " ", " ", " ", " "); 4792 addhanacmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create, "table", " ", " ", " ", " ", " "); 4793 addhanacmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create, "trigger", " ", " ", " ", " ", " "); 4794 addhanacmds(ESqlStatementType.sstcreatetype, TBaseType.rrw_create, "type", " ", " ", " ", " ", " "); 4795 addhanacmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create, "unique", "index", " ", " ", " ", " "); 4796 addhanacmds(ESqlStatementType.sstcreateuser, TBaseType.rrw_create, "user", " ", " ", " ", " ", " "); 4797 addhanacmds(ESqlStatementType.sstcreateusergroup, TBaseType.rrw_create, "usergroup", " ", " ", " ", " ", " "); 4798 addhanacmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create, "view", " ", " ", " ", " ", " "); 4799 addhanacmds(ESqlStatementType.sstcreatevirtualfunction, TBaseType.rrw_create, "virtual", "function", " ", " ", " ", " "); 4800 addhanacmds(ESqlStatementType.sstcreatevirtualtable, TBaseType.rrw_create, "virtual", "table", " ", " ", " ", " "); 4801 addhanacmds(ESqlStatementType.sstcreateworkloadclass, TBaseType.rrw_create, "workload", "class", " ", " ", " ", " "); 4802 addhanacmds(ESqlStatementType.sstcreateworkloadmapping, TBaseType.rrw_create, "workload", "mapping", " ", " ", " ", " "); 4803 4804//DELETE 4805 addhanacmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete, " ", " ", " ", " ", " ", " "); 4806 4807 addhanacmds(ESqlStatementType.sstdobeginend, TBaseType.rrw_do, "begin", " ", " ", " ", " ", " "); 4808 4809//drop 4810 addhanacmds(ESqlStatementType.sstdropauditpolicy, TBaseType.rrw_drop, "audit", "policy", " ", " ", " ", " "); 4811 addhanacmds(ESqlStatementType.sstdropcertificate, TBaseType.rrw_drop, "certificate", " ", " ", " ", " ", " "); 4812 addhanacmds(ESqlStatementType.sstdropcollection, TBaseType.rrw_drop, "collection", " ", " ", " ", " ", " "); 4813 addhanacmds(ESqlStatementType.sstdropcredential, TBaseType.rrw_drop, "credential", " ", " ", " ", " ", " "); 4814 addhanacmds(ESqlStatementType.sstdropdatabase, TBaseType.rrw_drop, "database", " ", " ", " ", " ", " "); 4815 addhanacmds(ESqlStatementType.sstdropfulltextindex, TBaseType.rrw_drop, "fulltext", "index", " ", " ", " ", " "); 4816 addhanacmds(ESqlStatementType.sstdropfunction, TBaseType.rrw_drop, "function", " ", " ", " ", " ", " "); 4817 addhanacmds(ESqlStatementType.sstdropgraphworkspace, TBaseType.rrw_drop, "graph", "workspace", " ", " ", " ", " "); 4818 addhanacmds(ESqlStatementType.sstdropindex, TBaseType.rrw_drop, "index", " ", " ", " ", " ", " "); 4819 addhanacmds(ESqlStatementType.sstdropJWTProvider, TBaseType.rrw_drop, "jwt", "provider", " ", " ", " ", " "); 4820 addhanacmds(ESqlStatementType.sstdropLDAPProvider, TBaseType.rrw_drop, "ldap", "provider", " ", " ", " ", " "); 4821 addhanacmds(ESqlStatementType.sstdropprocedure, TBaseType.rrw_drop, "procedure", " ", " ", " ", " ", " "); 4822 addhanacmds(ESqlStatementType.sstdroppse, TBaseType.rrw_drop, "pse", " ", " ", " ", " ", " "); 4823 addhanacmds(ESqlStatementType.sstdropsynonym, TBaseType.rrw_drop, "public", "synonym", " ", " ", " ", " "); 4824 addhanacmds(ESqlStatementType.sstdropremotesource, TBaseType.rrw_drop, "remote", "source", " ", " ", " ", " "); 4825 addhanacmds(ESqlStatementType.sstdroprole, TBaseType.rrw_drop, "role", " ", " ", " ", " ", " "); 4826 addhanacmds(ESqlStatementType.sstdropsamlprovider, TBaseType.rrw_drop, "saml", "provider", " ", " ", " ", " "); 4827 addhanacmds(ESqlStatementType.sstdropschema, TBaseType.rrw_drop, "schema", " ", " ", " ", " ", " "); 4828 addhanacmds(ESqlStatementType.sstdropsequence, TBaseType.rrw_drop, "sequence", " ", " ", " ", " ", " "); 4829 addhanacmds(ESqlStatementType.sstdropstatistics, TBaseType.rrw_drop, "statistics", " ", " ", " ", " ", " "); 4830 addhanacmds(ESqlStatementType.sstdropstructuredprivilege, TBaseType.rrw_drop, "structured", "privilege", " ", " ", " ", " "); 4831 addhanacmds(ESqlStatementType.sstdropsynonym, TBaseType.rrw_drop, "synonym", " ", " ", " ", " ", " "); 4832 addhanacmds(ESqlStatementType.sstdroptable, TBaseType.rrw_drop, "table", " ", " ", " ", " ", " "); 4833 addhanacmds(ESqlStatementType.sstdroptrigger, TBaseType.rrw_drop, "trigger", " ", " ", " ", " ", " "); 4834 addhanacmds(ESqlStatementType.sstdroptype, TBaseType.rrw_drop, "type", " ", " ", " ", " ", " "); 4835 addhanacmds(ESqlStatementType.sstdropuser, TBaseType.rrw_drop, "user", " ", " ", " ", " ", " "); 4836 addhanacmds(ESqlStatementType.sstdropusergroup, TBaseType.rrw_drop, "usergroup", " ", " ", " ", " ", " "); 4837 addhanacmds(ESqlStatementType.sstdropview, TBaseType.rrw_drop, "view", " ", " ", " ", " ", " "); 4838 addhanacmds(ESqlStatementType.sstdropworkloadclass, TBaseType.rrw_drop, "workload", "class", " ", " ", " ", " "); 4839 addhanacmds(ESqlStatementType.sstdropworkloadmapping, TBaseType.rrw_drop, "workload", "mapping", " ", " ", " ", " "); 4840 4841 addhanacmds(ESqlStatementType.sstExplain, TBaseType.rrw_explain, "plan", " ", " ", " ", " ", " "); 4842 addhanacmds(ESqlStatementType.sstexport, TBaseType.rrw_hana_export, " ", " ", " ", " ", " ", " "); 4843 4844//GRANT 4845 addhanacmds(ESqlStatementType.sstGrant, TBaseType.rrw_grant, " ", " ", " ", " ", " ", " "); 4846 4847 addhanacmds(ESqlStatementType.sstimport, TBaseType.rrw_hana_import, " ", " ", " ", " ", " ", " "); 4848 addhanacmds(ESqlStatementType.sstimportfrom, TBaseType.rrw_hana_import, "from", " ", " ", " ", " ", " "); 4849 addhanacmds(ESqlStatementType.sstimportscan, TBaseType.rrw_hana_import, "scan", " ", " ", " ", " ", " "); 4850 4851//insert 4852 addhanacmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert, " ", " ", " ", " ", " ", " "); 4853 4854// 4855 addhanacmds(ESqlStatementType.sstload, TBaseType.rrw_load, " ", " ", " ", " ", " ", " "); 4856 addhanacmds(ESqlStatementType.sstlocktable, TBaseType.rrw_lock, "table", " ", " ", " ", " ", " "); 4857 4858 addhanacmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge, "into", " ", " ", " ", " ", " "); 4859 4860 addhanacmds(ESqlStatementType.sstmergedelta, TBaseType.rrw_merge, "delta", " ", " ", " ", " ", " "); 4861 addhanacmds(ESqlStatementType.sstmergedelta, TBaseType.rrw_merge,"history","delta"," "," "," "," "); 4862 4863 addhanacmds(ESqlStatementType.sstrecoverdata, TBaseType.rrw_hana_recover,"data"," "," "," "," "," "); 4864 addhanacmds(ESqlStatementType.sstrecoverdatabase, TBaseType.rrw_hana_recover, "database", " ", " ", " ", " ", " "); 4865 addhanacmds(ESqlStatementType.sstrefreshstatistics, TBaseType.rrw_refresh, "statistics", " ", " ", " ", " ", " "); 4866 addhanacmds(ESqlStatementType.sstrenamecollection, TBaseType.rrw_rename,"collection"," "," "," "," "," "); 4867 addhanacmds(ESqlStatementType.sstrenamecolumn, TBaseType.rrw_rename,"column"," "," "," "," "," "); 4868 addhanacmds(ESqlStatementType.sstrenamedatabase, TBaseType.rrw_rename,"database"," "," "," "," "," "); 4869 addhanacmds(ESqlStatementType.sstrenameindex, TBaseType.rrw_rename,"index"," "," "," "," "," "); 4870 addhanacmds(ESqlStatementType.sstrenametable, TBaseType.rrw_rename,"table"," "," "," "," "," "); 4871 addhanacmds(ESqlStatementType.sstreplace, TBaseType.rrw_replace, " ", " ", " ", " ", " ", " "); 4872 4873 addhanacmds(ESqlStatementType.sstRevoke, TBaseType.rrw_revoke, " ", " ", " ", " ", " ", " "); 4874 4875 addhanacmds(ESqlStatementType.sstrollback, TBaseType.rrw_rollback, " ", " ", " ", " ", " ", " "); 4876 4877 addhanacmds(ESqlStatementType.sstsavepoint, TBaseType.rrw_savepoint, " ", " ", " ", " ", " ", " "); 4878//SELECT 4879 addhanacmds(ESqlStatementType.sstselect, TBaseType.rrw_select, " ", " ", " ", " ", " ", " "); 4880 4881//SET 4882 addhanacmds(ESqlStatementType.sstset, TBaseType.rrw_set, " ", " ", " ", " ", " ", " "); 4883 addhanacmds(ESqlStatementType.sssethistorysession, TBaseType.rrw_set, "history", "session", " ", " ", " ", " "); 4884 addhanacmds(ESqlStatementType.sstsetpse, TBaseType.rrw_set, "pse", " ", " ", " ", " ", " "); 4885 addhanacmds(ESqlStatementType.sstsetschema, TBaseType.rrw_set, "schema", " ", " ", " ", " ", " "); 4886 addhanacmds(ESqlStatementType.sstsetsystemlicense, TBaseType.rrw_set, "system", "license", " ", " ", " ", " "); 4887 addhanacmds(ESqlStatementType.sstsettransaction, TBaseType.rrw_set, "transaction", " ", " ", " ", " ", " "); 4888 addhanacmds(ESqlStatementType.sstsettransactionautocommit, TBaseType.rrw_set, "transaction", "autocommit", " ", " ", " ", " "); 4889 4890 addhanacmds(ESqlStatementType.sstStartTransaction, TBaseType.rrw_start, "transaction", " ", " ", " ", " ", " "); 4891 4892 4893//TRUNCATE TABLE 4894 addhanacmds(ESqlStatementType.ssttruncatecollection, TBaseType.rrw_truncate, "collection", " ", " ", " ", " ", " "); 4895 addhanacmds(ESqlStatementType.ssttruncatetable, TBaseType.rrw_truncate, "table", " ", " ", " ", " ", " "); 4896 addhanacmds(ESqlStatementType.sstunload, TBaseType.rrw_hana_unload, " ", " ", " ", " ", " ", " "); 4897 addhanacmds(ESqlStatementType.sstunset, TBaseType.rrw_hana_unset, " ", " ", " ", " ", " ", " "); 4898 addhanacmds(ESqlStatementType.sstunsetpse, TBaseType.rrw_hana_unset, "pse", " ", " ", " ", " ", " "); 4899 addhanacmds(ESqlStatementType.sstunsetsystemlicense, TBaseType.rrw_hana_unset, "system", "license", " ", " ", " ", " "); 4900 4901//UPDATE 4902 addhanacmds(ESqlStatementType.sstupdate, TBaseType.rrw_update, " ", " ", " ", " ", " ", " "); 4903 4904 addhanacmds(ESqlStatementType.sstupsert, TBaseType.rrw_hana_upsert, " ", " ", " ", " ", " ", " "); 4905 addhanacmds(ESqlStatementType.sstvalidateLDAPProvider, TBaseType.rrw_hana_validate, "ldap", "provider", " ", " ", " ", " "); 4906 addhanacmds(ESqlStatementType.sstvalidateUser, TBaseType.rrw_hana_validate, "user", " ", " ", " ", " ", " "); 4907 4908 } 4909 4910ESqlStatementType findsybasecmd(TSourceToken ptoken){ 4911 if (sybasecmds.size() == 0) {initsybasecmds();} 4912 return finddbcmd(ptoken,sybasecmds); 4913} 4914 4915ESqlStatementType findsybaseasecmd(TSourceToken ptoken){ 4916 // Sybase ASE twin. Reads ITS OWN list -- the earlier twins delegated to 4917 // findsybasecmd and therefore consulted the BASE list (Codex review 4918 // finding); with recognize-then-reject the lists are content-identical, 4919 // but reading the base list would still break isolation. 4920 if (sybaseasecmds.size() == 0) {initsybaseasecmds();} 4921 return finddbcmd(ptoken,sybaseasecmds); 4922} 4923 4924ESqlStatementType findsqlanywherecmd(TSourceToken ptoken){ 4925 // SQL Anywhere twin. Reads ITS OWN list -- the earlier twins delegated to 4926 // findsybasecmd and therefore consulted the BASE list (Codex review 4927 // finding); with recognize-then-reject the lists are content-identical, 4928 // but reading the base list would still break isolation. 4929 if (sqlanywherecmds.size() == 0) {initsqlanywherecmds();} 4930 return finddbcmd(ptoken,sqlanywherecmds); 4931} 4932 4933ESqlStatementType findsybaseiqcmd(TSourceToken ptoken){ 4934 // Sybase IQ twin. Reads ITS OWN list -- the earlier twins delegated to 4935 // findsybasecmd and therefore consulted the BASE list (Codex review 4936 // finding); with recognize-then-reject the lists are content-identical, 4937 // but reading the base list would still break isolation. 4938 if (sybaseiqcmds.size() == 0) {initsybaseiqcmds();} 4939 return finddbcmd(ptoken,sybaseiqcmds); 4940} 4941 4942 ESqlStatementType findmssqlcmd(TSourceToken ptoken){ 4943 if (mssqlcmds.size() == 0) {initmssqlcmds();} 4944 return finddbcmd(ptoken,mssqlcmds); 4945 } 4946 4947 ESqlStatementType findteradatacmd(TSourceToken ptoken){ 4948 if (teradatacmds.size() == 0) {initteradatacmds();} 4949 return finddbcmd(ptoken,teradatacmds); 4950} 4951 4952ESqlStatementType findpostgresqlcmd(TSourceToken ptoken){ 4953 if (postgresqlcmds.size() == 0) {initpostgresqlcmds();} 4954 return finddbcmd(ptoken,postgresqlcmds); 4955} 4956 4957 ESqlStatementType findredshiftcmd(TSourceToken ptoken){ 4958 if (redshiftcmds.size() == 0) {initredshiftcmds();} 4959 return finddbcmd(ptoken,redshiftcmds); 4960 } 4961 4962 4963 ESqlStatementType findgreenplumcmd(TSourceToken ptoken){ 4964 if (greenplumcmds.size() == 0) {initgreenplumcmds();} 4965 return finddbcmd(ptoken,greenplumcmds); 4966} 4967 4968 4969ESqlStatementType findnetezzacmd(TSourceToken ptoken){ 4970 if (netezzacmds.size() == 0) {initnetezzacmds();} 4971 return finddbcmd(ptoken,netezzacmds); 4972} 4973 4974ESqlStatementType findsparksqlcmd(TSourceToken ptoken){ 4975 if (sparksqlcmds.size() == 0) {initsparksqlcmds();} 4976 return finddbcmd(ptoken,sparksqlcmds); 4977 } 4978 4979ESqlStatementType finddatabrickscmd(TSourceToken ptoken){ 4980 if (databrickscmds.size() == 0) {initdatabrickscmds();} 4981 return finddbcmd(ptoken,databrickscmds); 4982} 4983 ESqlStatementType findgaussdbcmd(TSourceToken ptoken){ 4984 if (gaussdbcmds.size() == 0) {initgaussdbcmds();} 4985 return finddbcmd(ptoken,gaussdbcmds); 4986 } 4987ESqlStatementType findprestocmd(TSourceToken ptoken){ 4988 if (prestocmds.size() == 0) {initprestocmds();} 4989 return finddbcmd(ptoken,prestocmds); 4990} 4991 4992ESqlStatementType findathenacmd(TSourceToken ptoken){ 4993 if (athenacmds.size() == 0) {initathenacmds();} 4994 return finddbcmd(ptoken,athenacmds); 4995} 4996 4997ESqlStatementType findmysqlcmd(TSourceToken ptoken){ 4998 if (mysqlcmds.size() == 0) {initmysqlcmds();} 4999 return finddbcmd(ptoken,mysqlcmds); 5000} 5001 5002ESqlStatementType findhivecmd(TSourceToken ptoken){ 5003 if (hivecmds.size() == 0) {inithivecmds();} 5004 return finddbcmd(ptoken,hivecmds); 5005 } 5006 5007ESqlStatementType finddb2cmd(TSourceToken ptoken){ 5008 if (db2cmds.size() == 0) {initdb2cmds();} 5009 return finddbcmd(ptoken,db2cmds); 5010 } 5011 5012 5013ESqlStatementType findoraclecmd(TSourceToken ptoken){ 5014 if (oraclecmds.size() == 0) {initoraclecmds();} 5015 return finddbcmd(ptoken,oraclecmds); 5016 } 5017 5018ESqlStatementType findmdxcmd(TSourceToken ptoken){ 5019 if (mdxcmds.size() == 0) {initmdxcmds();} 5020 return finddbcmd(ptoken,mdxcmds); 5021 } 5022 5023ESqlStatementType findinformixcmd(TSourceToken ptoken){ 5024 if (informixcmds.size() == 0) {initinformixcmds();} 5025 return finddbcmd(ptoken,informixcmds); 5026 } 5027 5028ESqlStatementType findhanacmd(TSourceToken ptoken){ 5029 if (hanacmds.size() == 0) {inithanacmds();} 5030 return finddbcmd(ptoken,hanacmds); 5031} 5032 5033ESqlStatementType findverticacmd(TSourceToken ptoken){ 5034 if (verticacmds.size() == 0) {initverticacmds();} 5035 return finddbcmd(ptoken,verticacmds); 5036} 5037 5038ESqlStatementType findcouchbasecmd(TSourceToken ptoken){ 5039 if (couchbasecmds.size() == 0) {initcouchbasecmds();} 5040 return finddbcmd(ptoken,couchbasecmds); 5041} 5042 5043ESqlStatementType findsnowflakecmd(TSourceToken ptoken){ 5044 if (snowflakecmds.size() == 0) {initsnowflakecmds();} 5045 return finddbcmd(ptoken,snowflakecmds); 5046} 5047 5048ESqlStatementType findbigquerycmd(TSourceToken ptoken){ 5049 if (bigquerycmds.size() == 0) {initbigquerycmds();} 5050 return finddbcmd(ptoken,bigquerycmds); 5051} 5052 5053TCustomSqlStatement isnetezza(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 5054 TCustomSqlStatement ret = null; 5055 5056 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 5057 5058 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 5059 || (pcst.tokencode == TBaseType.cmtslashstar) 5060 || (pcst.tokencode == TBaseType.lexspace) 5061 || (pcst.tokencode == TBaseType.lexnewline) 5062 || (pcst.tokentype == ETokenType.ttsemicolon) ) 5063 { 5064 return null; 5065 } 5066 5067 int lcpos = pcst.posinlist; 5068 TSourceTokenList lcsourcetokenlist = pcst.container; 5069 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 5070 5071 //subquery after semicolon or at first line 5072 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 5073 { 5074 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 5075 if ( k >0 ) 5076 { 5077 ret = new TSelectSqlStatement(pdbvendor); 5078 } 5079 5080 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_with,1,"("); // ( with 5081 if ( k >0 ) 5082 { 5083 ret = new TSelectSqlStatement(pdbvendor); 5084 } 5085 5086 return ret; 5087 } 5088 5089 //cte 5090 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 5091 { 5092 ret = findcte(pcst,pdbvendor); 5093 if ( (ret != null) ) return ret; 5094 } 5095 5096 gnewsqlstatementtype = findnetezzacmd(pcst); 5097 5098 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5099 switch (gnewsqlstatementtype) { // 5100 case sstinvalid: 5101 { 5102 ret = null; 5103 5104 if ( pstate == EFindSqlStateType.stnormal ) 5105 { 5106 } 5107 break; 5108 } 5109 case sstselect: 5110 { 5111 boolean lcisnewsql = true; 5112 5113 if ( pstate != EFindSqlStateType.stnormal ) 5114 { 5115 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5116 if ( (lcprevsolidtoken != null) ) 5117 { 5118 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 5119 lcisnewsql = false; //subqery 5120 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 5121 lcisnewsql = false; 5122 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 5123 lcisnewsql = false; 5124 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 5125 lcisnewsql = false; 5126 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 5127 lcisnewsql = false; 5128 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 5129 lcisnewsql = false; 5130 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 5131 { 5132 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 5133 lcisnewsql = false; 5134 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 5135 lcisnewsql = false; 5136 } 5137 5138 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 5139 { 5140 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 5141 if ( (lcpprevsolidtoken != null) ) 5142 { 5143 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 5144 lcisnewsql = false; 5145 } 5146 } 5147 5148 } 5149 5150 5151 if ( (lccurrentsqlstatement != null) ) 5152 { 5153 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 5154 lcisnewsql = false; 5155 } 5156 5157 } 5158 5159 if ( lcisnewsql ) 5160 ret = new TSelectSqlStatement(pdbvendor); 5161 5162 break; 5163 } 5164 case sstinsert: 5165 { 5166 boolean lcisnewsql = true; 5167 if ( pstate != EFindSqlStateType.stnormal ) 5168 { 5169 if ( (lccurrentsqlstatement != null) ) 5170 { 5171 5172 } 5173 } 5174 5175 if ( lcisnewsql ) 5176 ret = new TInsertSqlStatement(pdbvendor); 5177 5178 break; 5179 } 5180 case sstupdate: 5181 { 5182 boolean lcisnewsql = true; 5183 if ( pstate != EFindSqlStateType.stnormal ) 5184 { 5185 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5186 if ( (lcprevsolidtoken != null) ) 5187 { // 5188 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 5189 lcisnewsql = false; 5190 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 5191 lcisnewsql = false; 5192 } 5193 5194 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 5195 if ( (lcnextsolidtoken != null) ) 5196 { 5197 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 5198 { 5199 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 5200 if ( k == 0 ) lcisnewsql = false; 5201 } 5202 } 5203 5204 5205 if ( (lccurrentsqlstatement != null) ) 5206 { 5207 } 5208 } 5209 5210 if ( lcisnewsql ) 5211 { 5212 ret = new TUpdateSqlStatement(pdbvendor); 5213 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 5214 } 5215 break; 5216 } 5217 case sstdelete: 5218 { 5219 boolean lcisnewsql = true; 5220 5221 if ( pstate != EFindSqlStateType.stnormal ) 5222 { 5223 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5224 if ( (lcprevsolidtoken != null) ) 5225 { 5226 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 5227 lcisnewsql = false; 5228 } 5229 5230 if ( (lccurrentsqlstatement != null) ) 5231 { 5232 } 5233 } 5234 5235 if ( lcisnewsql ) 5236 ret = new TDeleteSqlStatement(pdbvendor); 5237 5238 break; 5239 } 5240 case sstTruncate: 5241 { 5242 ret = new TTruncateStatement(pdbvendor); 5243 ret.sqlstatementtype = gnewsqlstatementtype; 5244 break; 5245 } 5246 case sstcreatetable: 5247 case sstnetezzaCreateExternalTable: 5248 { 5249 ret = new TCreateTableSqlStatement(pdbvendor); 5250 break; 5251 } 5252 case sstcreateview: 5253 { 5254 ret = new TCreateViewSqlStatement(pdbvendor); 5255 break; 5256 } 5257 case sstcreatematerializedview:{ 5258 ret = new TCreateMaterializedSqlStatement(pdbvendor); 5259 break; 5260 } 5261 case sstcreatedatabase: 5262 { 5263 ret = new TCreateDatabaseSqlStatement(pdbvendor); 5264 break; 5265 } 5266 case sstdroptable: 5267 { 5268 ret = new TDropTableSqlStatement(pdbvendor); 5269 break; 5270 } 5271 case sstdropview: 5272 { 5273 ret = new TDropViewSqlStatement(pdbvendor); 5274 break; 5275 } 5276 case sstaltertable: 5277 { 5278 ret = new TAlterTableStatement(pdbvendor); 5279 break; 5280 } 5281 case sstaltersession: 5282 { 5283 ret = new TAlterSessionStatement(pdbvendor); 5284 break; 5285 } 5286 case sstnetezzaGroomTable: 5287 { 5288 ret = new TNetezzaGroomTable(pdbvendor); 5289 break; 5290 } 5291 case sstnetezzaGenerateStatistics: 5292 { 5293 ret = new TNetezzaGenerateStatistics(pdbvendor); 5294 break; 5295 } 5296 case sstnetezzaAlterTable: 5297 { 5298 ret = new TAlterTableStatement(pdbvendor); 5299 break; 5300 } 5301 case sstnetezzaDropSchema: 5302 { 5303 ret = new TDropSchemaSqlStatement(pdbvendor); 5304 break; 5305 } 5306 case sstnetezzaCreateUser: 5307 { 5308 ret = new TCreateUserStmt(pdbvendor); 5309 break; 5310 } 5311 case sstnetezzaAlterView: 5312 { 5313 ret = new TAlterViewStatement(pdbvendor); 5314 break; 5315 } 5316 case sstnetezzaAlterDatabase: 5317 { 5318 ret = new TAlterDatabaseStmt(pdbvendor); 5319 break; 5320 } 5321 case sstAlterSchema: 5322 { 5323 ret = new TAlterSchemaStmt(pdbvendor); 5324 break; 5325 } 5326 case sstAlterSynonym: 5327 { 5328 ret = new TAlterSynonymStmt(pdbvendor); 5329 break; 5330 } 5331 case sstnetezzaDropTable: 5332 { 5333 ret = new TDropTableSqlStatement(pdbvendor); 5334 break; 5335 } 5336 case sstnetezzaDropView: 5337 { 5338 ret = new TDropViewSqlStatement(pdbvendor); 5339 break; 5340 } 5341 case sstmerge: 5342 { 5343 ret = new TMergeSqlStatement(pdbvendor); 5344 break; 5345 } 5346 case sstdropprocedure: 5347 { 5348 ret = new TDropProcedureStmt(pdbvendor); 5349 break; 5350 } 5351 case sstdropsynonym: 5352 ret = new TDropSynonymStmt(pdbvendor); 5353 break; 5354 case sstdropdatabase: 5355 ret = new TDropDatabaseStmt(pdbvendor); 5356 break; 5357 case sstcall: 5358 ret = new TCallStatement(pdbvendor); 5359 break; 5360 case sstcreatesynonym: 5361 ret = new TCreateSynonymStmt(pdbvendor); 5362 break; 5363 case sstcreatesequence: 5364 ret = new TCreateSequenceStmt(pdbvendor); 5365 break; 5366 case sstnetezzaDropSequence: 5367 ret = new TDropSequenceStmt(pdbvendor); 5368 break; 5369 case sstnetezzaGrant: 5370 ret = new TGrantStmt(pdbvendor); 5371 break; 5372 case sstexecutestmt: 5373 ret = new TExecuteSqlStatement(pdbvendor); 5374 break; 5375 case sstlocktable: 5376 ret = new TLockTableStmt(pdbvendor); 5377 break; 5378 case sstnetezzaComment: 5379 ret = new TCommentOnSqlStmt(pdbvendor); 5380 break; 5381 case sstcreateprocedure: 5382 ret = new TCreateProcedureStmt(pdbvendor); 5383 break; 5384 case sstnetezzaCopy: 5385 ret = new TCopyStmt(pdbvendor); 5386 break; 5387 case sstExplain: 5388 ret = new TExplainPlan(pdbvendor); 5389 break; 5390 case sstSetCatalog: 5391 ret = new TSetCatalogStmt(pdbvendor); 5392 break; 5393 case sstSetSchema: 5394 ret = new TSetSchemaStmt(pdbvendor); 5395 break; 5396 case sstnetezzaCommit: 5397 case sstnetezzaRollback: 5398 case sstnetezzaRevoke: 5399 default: 5400 { 5401 ret = new TUnknownSqlStatement(pdbvendor); 5402 ret.sqlstatementtype = gnewsqlstatementtype; 5403 break; 5404 } 5405 } // case 5406 5407 return ret; 5408} 5409 5410 TCustomSqlStatement isredshift(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 5411 TCustomSqlStatement ret = null; 5412 5413 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 5414 5415 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 5416 || (pcst.tokencode == TBaseType.cmtslashstar) 5417 || (pcst.tokencode == TBaseType.lexspace) 5418 || (pcst.tokencode == TBaseType.lexnewline) 5419 || (pcst.tokentype == ETokenType.ttsemicolon) ) 5420 { 5421 return null; 5422 } 5423 5424 int lcpos = pcst.posinlist; 5425 TSourceTokenList lcsourcetokenlist = pcst.container; 5426 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 5427 5428 //subquery after semicolon or at first line 5429 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 5430 { 5431 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 5432 if ( k >0 ) 5433 { 5434 ret = new TSelectSqlStatement(pdbvendor); 5435 } 5436 5437 return ret; 5438 } 5439 5440 //cte 5441 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 5442 { 5443 ret = findcte(pcst,pdbvendor); 5444 if ( (ret != null) ) return ret; 5445 } 5446 5447 gnewsqlstatementtype = findredshiftcmd(pcst); 5448 5449 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5450 switch (gnewsqlstatementtype) { // 5451 case sstinvalid: 5452 { 5453 ret = null; 5454 break; 5455 } 5456 case sstselect: 5457 { 5458 boolean lcisnewsql = true; 5459 5460 if ( pstate != EFindSqlStateType.stnormal ) 5461 { 5462 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5463 if ( (lcprevsolidtoken != null) ) 5464 { 5465 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 5466 lcisnewsql = false; //subqery 5467 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 5468 lcisnewsql = false; 5469 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 5470 lcisnewsql = false; 5471 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 5472 lcisnewsql = false; 5473 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 5474 lcisnewsql = false; 5475 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 5476 lcisnewsql = false; 5477 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 5478 { 5479 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 5480 lcisnewsql = false; 5481 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 5482 lcisnewsql = false; 5483 } 5484 5485 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 5486 { 5487 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 5488 if ( (lcpprevsolidtoken != null) ) 5489 { 5490 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 5491 lcisnewsql = false; 5492 } 5493 } 5494 5495 } 5496 5497 5498 if ( (lccurrentsqlstatement != null) ) 5499 { 5500 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 5501 lcisnewsql = false; 5502 } 5503 5504 } 5505 5506 if ( lcisnewsql ) 5507 ret = new TSelectSqlStatement(pdbvendor); 5508 5509 break; 5510 } 5511 case sstinsert: 5512 { 5513 boolean lcisnewsql = true; 5514 if ( pstate != EFindSqlStateType.stnormal ) 5515 { 5516 if ( (lccurrentsqlstatement != null) ) 5517 { 5518 5519 } 5520 } 5521 5522 if ( lcisnewsql ) 5523 ret = new TInsertSqlStatement(pdbvendor); 5524 5525 break; 5526 } 5527 case sstupdate: 5528 { 5529 boolean lcisnewsql = true; 5530 if ( pstate != EFindSqlStateType.stnormal ) 5531 { 5532 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5533 if ( (lcprevsolidtoken != null) ) 5534 { // 5535 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 5536 lcisnewsql = false; 5537 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 5538 lcisnewsql = false; 5539 } 5540 5541 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 5542 if ( (lcnextsolidtoken != null) ) 5543 { 5544 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 5545 { 5546 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 5547 if ( k == 0 ) lcisnewsql = false; 5548 } 5549 } 5550 5551 5552 if ( (lccurrentsqlstatement != null) ) 5553 { 5554 } 5555 } 5556 5557 if ( lcisnewsql ) 5558 { 5559 ret = new TUpdateSqlStatement(pdbvendor); 5560 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 5561 } 5562 break; 5563 } 5564 case sstdelete: 5565 { 5566 boolean lcisnewsql = true; 5567 5568 if ( pstate != EFindSqlStateType.stnormal ) 5569 { 5570 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5571 if ( (lcprevsolidtoken != null) ) 5572 { 5573 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 5574 lcisnewsql = false; 5575 } 5576 5577 if ( (lccurrentsqlstatement != null) ) 5578 { 5579 } 5580 } 5581 5582 if ( lcisnewsql ) 5583 ret = new TDeleteSqlStatement(pdbvendor); 5584 5585 break; 5586 } 5587 case sstredshiftAbort: 5588 { 5589 ret = new TRedshiftAbort(pdbvendor); 5590 ret.sqlstatementtype = gnewsqlstatementtype; 5591 break; 5592 } 5593 case sstalterdatabase: 5594 { 5595 ret = new TAlterDatabaseStmt(pdbvendor); 5596 break; 5597 } 5598 case sstredshiftAlterGroup: 5599 { 5600 ret = new TAlterGroup(pdbvendor); 5601 break; 5602 } 5603 case sstredshiftAlterSchema: 5604 { 5605 ret = new TRedshiftAlterSchema(pdbvendor); 5606 break; 5607 } 5608 case sstaltertable: 5609 { 5610 ret = new TAlterTableStatement(pdbvendor); 5611 break; 5612 } 5613 case sstredshiftAlterUser: 5614 { 5615 ret = new TRedshiftAlterUser(pdbvendor); 5616 break; 5617 } 5618 case sstredshiftAnalyze: 5619 { 5620 ret = new TRedshiftAnalyze(pdbvendor); 5621 break; 5622 } 5623 case sstredshiftAnalyzeCompression: 5624 { 5625 ret = new TRedshiftAnalyzeCompression(pdbvendor); 5626 break; 5627 } 5628 case sstredshiftBegin: 5629 { 5630 ret = new TRedshiftBegin(pdbvendor); 5631 break; 5632 } 5633 case sstredshiftCancel: 5634 { 5635 ret = new TRedshiftCancel(pdbvendor); 5636 break; 5637 } 5638 case sstredshiftClose: 5639 { 5640 ret = new TCloseStmt(pdbvendor); 5641 break; 5642 } 5643 case sstredshiftComment: 5644 { 5645 ret = new TRedshiftComment(pdbvendor); 5646 break; 5647 } 5648 case sstredshiftCommit: 5649 { 5650 ret = new TRedshiftCommit(pdbvendor); 5651 break; 5652 } 5653 case sstredshiftCopy: 5654 { 5655 ret = new TRedshiftCopy(pdbvendor); 5656 break; 5657 } 5658 case sstcreatedatabase: 5659 { 5660 ret = new TCreateDatabaseSqlStatement(pdbvendor); 5661 break; 5662 } 5663 case sstredshiftCreateGroup: 5664 { 5665 ret = new TCreateGroup(pdbvendor); 5666 break; 5667 } 5668 case sstredshiftCreateSchema: 5669 { 5670 ret = new TCreateSchemaSqlStatement(pdbvendor); 5671 break; 5672 } 5673 case sstcreatetable: 5674 { 5675 ret = new TCreateTableSqlStatement(pdbvendor); 5676 break; 5677 } 5678 case sstredshiftCreateUser: 5679 { 5680 ret = new TRedshiftCreateUser(pdbvendor); 5681 break; 5682 } 5683 case sstcreateview: 5684 { 5685 ret = new TCreateViewSqlStatement(pdbvendor); 5686 break; 5687 } 5688 case sstredshiftDeallocate: 5689 { 5690 ret = new TRedshiftDeallocate(pdbvendor); 5691 break; 5692 } 5693 case sstredshiftDeclare: 5694 { 5695 ret = new TRedshiftDeclare(pdbvendor); 5696 break; 5697 } 5698 case sstredshiftDropDatabase: 5699 { 5700 ret = new TDropDatabaseStmt(pdbvendor); 5701 break; 5702 } 5703 case sstredshiftDropGroup: 5704 { 5705 ret = new TDropGroup(pdbvendor); 5706 break; 5707 } 5708 case sstredshiftDropSchema: 5709 { 5710 ret = new TRedshiftDropSchema(pdbvendor); 5711 break; 5712 } 5713 case sstdroptable: 5714 { 5715 ret = new TDropTableSqlStatement(pdbvendor); 5716 break; 5717 } 5718 case sstredshiftDropUser: 5719 { 5720 ret = new TRedshiftDropUser(pdbvendor); 5721 break; 5722 } 5723 case sstdropview: 5724 { 5725 ret = new TDropViewSqlStatement(pdbvendor); 5726 break; 5727 } 5728 case sstredshiftEnd: 5729 { 5730 ret = new TRedshiftEnd(pdbvendor); 5731 break; 5732 } 5733 case sstExecutePreparedStmt: 5734 { 5735 ret = new TExecuteSqlStatement(pdbvendor); 5736 break; 5737 } 5738 case sstExplain: 5739 { 5740 ret = new TExplainPlan(pdbvendor); 5741 break; 5742 } 5743 case sstFetchFrom: 5744 { 5745 ret = new TFetchFromStmt(pdbvendor); 5746 break; 5747 } 5748 case sstGrant: 5749 { 5750 ret = new TGrantStmt(pdbvendor); 5751 break; 5752 } 5753 case sstredshiftLock: 5754 { 5755 ret = new TLockTableStmt(pdbvendor); 5756 break; 5757 } 5758 case sstredshiftPrepare: 5759 { 5760 ret = new TRedshiftPrepare(pdbvendor); 5761 break; 5762 } 5763 case sstredshiftReset: 5764 { 5765 ret = new TRedshiftReset(pdbvendor); 5766 break; 5767 } 5768 case sstRevoke: 5769 { 5770 ret = new TRevokeStmt(pdbvendor); 5771 break; 5772 } 5773 case sstredshiftRollback: 5774 { 5775 ret = new TRedshiftRollback(pdbvendor); 5776 break; 5777 } 5778 case sstredshiftSet: 5779 { 5780 ret = new TSetStmt(pdbvendor); 5781 break; 5782 } 5783 case sstredshiftSetSessionAuthorization: 5784 { 5785 ret = new TRedshiftSessionAuthorization(pdbvendor); 5786 break; 5787 } 5788 case sstredshiftShow: 5789 { 5790 ret = new TShowStmt(pdbvendor); 5791 break; 5792 } 5793 case sstStartTransaction: 5794 { 5795 ret = new TStartTransactionStmt(pdbvendor); 5796 break; 5797 } 5798 case sstTruncate: 5799 { 5800 ret = new TTruncateStatement(pdbvendor); 5801 break; 5802 } 5803 case sstredshiftUnload: 5804 { 5805 ret = new TUnloadStmt(pdbvendor); 5806 break; 5807 } 5808 case sstredshiftVacuum: 5809 { 5810 ret = new TRedshiftVacuum(pdbvendor); 5811 break; 5812 } 5813 case sstcreatefunction: 5814 ret = new TCreateFunctionStmt(pdbvendor); 5815 break; 5816 case sstcreateprocedure: 5817 ret = new TCreateProcedureStmt(pdbvendor); 5818 break; 5819 case sstcreatematerializedview:{ 5820 ret = new TCreateMaterializedSqlStatement(pdbvendor); 5821 break; 5822 } 5823 case sstcall: 5824 ret = new TCallStatement(pdbvendor); 5825 break; 5826 case sstmerge: 5827 { 5828 ret = new TMergeSqlStatement(pdbvendor); 5829 break; 5830 } 5831 default: 5832 { 5833 ret = new TUnknownSqlStatement(pdbvendor); 5834 ret.sqlstatementtype = gnewsqlstatementtype; 5835 break; 5836 } 5837 } // case 5838 5839 return ret; 5840 } 5841 TCustomSqlStatement isgaussdb(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 5842 TCustomSqlStatement ret = null; 5843 5844 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 5845 5846 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 5847 || (pcst.tokencode == TBaseType.cmtslashstar) 5848 || (pcst.tokencode == TBaseType.lexspace) 5849 || (pcst.tokencode == TBaseType.lexnewline) 5850 || (pcst.tokentype == ETokenType.ttsemicolon) ) 5851 { 5852 return null; 5853 } 5854 5855 int lcpos = pcst.posinlist; 5856 TSourceTokenList lcsourcetokenlist = pcst.container; 5857 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 5858 5859 //subquery after semicolon or at first line 5860 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 5861 { 5862 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 5863 if ( k >0 ) 5864 { 5865 ret = new TSelectSqlStatement(pdbvendor); 5866 }else{ 5867 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_with,1,"("); 5868 if ( k >0 ) 5869 { // syntax like: (with ... ) 5870 ret = new TSelectSqlStatement(pdbvendor); 5871 } 5872 } 5873 5874 return ret; 5875 } 5876 5877 //cte 5878 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 5879 { 5880 ret = findcte(pcst,pdbvendor); 5881 if ( (ret != null) ) return ret; 5882 } 5883 5884 gnewsqlstatementtype = findgaussdbcmd(pcst); 5885 5886 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 5887 switch (gnewsqlstatementtype) { // 5888 case sstinvalid: 5889 { 5890 ret = null; 5891 5892 if ( pstate == EFindSqlStateType.stnormal ) 5893 { 5894 if ( pcst.tokencode == TBaseType.label_begin ) 5895 { 5896 ret = new TCommonBlock(pdbvendor); 5897 gnewsqlstatementtype = ret.sqlstatementtype; 5898 5899 } 5900 else if ( pcst.tokencode == TBaseType.rrw_declare ) 5901 { 5902 ret = new TCommonBlock(pdbvendor); 5903 gnewsqlstatementtype = ret.sqlstatementtype; 5904 } 5905 else if ( pcst.tokencode == TBaseType.rrw_begin ) 5906 { 5907 // https://support.huaweicloud.com/distributed-devg-v3-opengauss/gaussdb-12-0498.html 5908 // 有两种可能 1:开启匿名块,或 2:开启事务 5909 boolean isBlock = true; 5910 TSourceToken st = pcst.nextSolidToken(); 5911 if (st != null){ 5912 if ((st.tokencode == ';') 5913 ||(st.toString().equalsIgnoreCase("work")) 5914 ||(st.toString().equalsIgnoreCase("transaction")) 5915 ){ 5916 isBlock = false; 5917 } 5918 } 5919 if (isBlock){ 5920 ret = new TCommonBlock(pdbvendor); 5921 gnewsqlstatementtype = ret.sqlstatementtype; 5922 }else{ 5923 ret = new TStartTransactionStmt(pdbvendor); 5924 gnewsqlstatementtype = ret.sqlstatementtype; 5925 pcst.tokencode = TBaseType.GAUSSDB_BEGIN_TRANSACTION; 5926 } 5927 5928 } 5929 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 5930 { 5931 ret = new TCreateProcedureStmt(pdbvendor); 5932 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 5933 gnewsqlstatementtype = ret.sqlstatementtype; 5934 } 5935 else if ( pcst.tokencode == TBaseType.rrw_function ) 5936 { 5937 ret = new TPlsqlCreateFunction(pdbvendor); 5938 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 5939 gnewsqlstatementtype = ret.sqlstatementtype; 5940 } 5941 else if ( pcst.tokencode == TBaseType.rrw_package ) 5942 { 5943 ret = new TPlsqlCreatePackage(pdbvendor); 5944 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 5945 gnewsqlstatementtype = ret.sqlstatementtype; 5946 } 5947 } 5948 break; 5949 } 5950 case sstpostgresqlDeclare:{ 5951 // https://support.huaweicloud.com/distributed-devg-v3-opengauss/gaussdb-12-0554.html 5952 // declare cursor_name [ BINARY ] [ NO SCROLL ] CURSOR ..., 这是单个的定义游标语句 5953 // 下面这种类型的定义才是开始一个 匿名块 5954 // [DECLARE [declare_statements]] 5955 //BEGIN 5956 //execution_statements 5957 //END; 5958 5959 // 判断逻辑如下: 5960 // 1. 如果 declare 后直接跟 CURSOR, 那就是开启一个 匿名块 5961 // 2. 如果 declare 后直接跟的是一个 identifier, 那再检查之后的第2或3或4个token是否为 CURSOR, 5962 // 如果是,该语句为 单个的定义游标语句,否则为 匿名块 5963 5964 boolean isBlock = true; 5965 TSourceToken st = pcst.nextSolidToken(); 5966 if (st != null){ 5967 if (st.tokencode == TBaseType.GAUSSDB_CURSOR){ 5968 isBlock = true; 5969 }else if (st.tokencode == TBaseType.ident){ 5970 st = st.nextSolidToken(); 5971 if (st != null){ 5972 if ((st.tokencode == TBaseType.GAUSSDB_CURSOR) 5973 ||(st.tokencode == TBaseType.rrw_binary) 5974 ||(st.toString().equalsIgnoreCase("no")) 5975 ){ 5976 isBlock = false; 5977 } 5978 } 5979 } 5980 } 5981 if (isBlock){ 5982 ret = new TCommonBlock(pdbvendor); 5983 gnewsqlstatementtype = ret.sqlstatementtype; 5984 }else{ 5985 ret = new TDeclareCursorStmt(pdbvendor); 5986 gnewsqlstatementtype = ret.sqlstatementtype; 5987 pcst.tokencode = TBaseType.GAUSSDB_DECLARE_SINGLE_STMT; 5988 } 5989 5990 break; 5991 } 5992 case sstmerge: 5993 { 5994 ret = new TMergeSqlStatement(pdbvendor); 5995 ret.sqlstatementtype = gnewsqlstatementtype; 5996 break; 5997 } 5998 case sstcreatesynonym: 5999 ret = new TCreateSynonymStmt(pdbvendor); 6000 break; 6001 case sstdropsynonym: 6002 ret = new TDropSynonymStmt(pdbvendor); 6003 break; 6004 case sstAlterPackage: 6005 ret = new TAlterPackageStmt(pdbvendor); 6006 break; 6007 case sstpostgresqlRefreshMaterializedView: 6008 ret = new TRefreshMaterializedViewStmt(pdbvendor); 6009 break; 6010 case sstAlterSynonym: 6011 ret = new TAlterSynonymStmt(pdbvendor); 6012 break; 6013 case sstsavepoint: 6014 { 6015 ret = new TSavepointStmt(pdbvendor); 6016 ret.sqlstatementtype = gnewsqlstatementtype; 6017 break; 6018 } 6019 case sstselect: 6020 { 6021 boolean lcisnewsql = true; 6022 6023 if ( pstate != EFindSqlStateType.stnormal ) 6024 { 6025 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6026 if ( (lcprevsolidtoken != null) ) 6027 { 6028 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 6029 lcisnewsql = false; //subqery 6030 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 6031 lcisnewsql = false; 6032 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 6033 lcisnewsql = false; 6034 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 6035 lcisnewsql = false; 6036 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 6037 lcisnewsql = false; 6038 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 6039 lcisnewsql = false; 6040 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 6041 { 6042 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 6043 lcisnewsql = false; 6044 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 6045 lcisnewsql = false; 6046 } 6047 6048 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 6049 { 6050 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 6051 if ( (lcpprevsolidtoken != null) ) 6052 { 6053 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 6054 lcisnewsql = false; 6055 } 6056 } 6057 6058 } 6059 6060 6061 if ( (lccurrentsqlstatement != null) ) 6062 { 6063 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 6064 lcisnewsql = false; 6065 } 6066 6067 } 6068 6069 if ( lcisnewsql ) 6070 ret = new TSelectSqlStatement(pdbvendor); 6071 6072 break; 6073 } 6074 case sstinsert: 6075 { 6076 boolean lcisnewsql = true; 6077 if ( pstate != EFindSqlStateType.stnormal ) 6078 { 6079 if ( (lccurrentsqlstatement != null) ) 6080 { 6081 6082 } 6083 } 6084 6085 if ( lcisnewsql ) 6086 ret = new TInsertSqlStatement(pdbvendor); 6087 6088 break; 6089 } 6090 case sstupdate: 6091 { 6092 boolean lcisnewsql = true; 6093 if ( pstate != EFindSqlStateType.stnormal ) 6094 { 6095 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6096 if ( (lcprevsolidtoken != null) ) 6097 { // 6098 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 6099 lcisnewsql = false; 6100 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 6101 lcisnewsql = false; 6102 } 6103 6104 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 6105 if ( (lcnextsolidtoken != null) ) 6106 { 6107 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 6108 { 6109 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 6110 if ( k == 0 ) lcisnewsql = false; 6111 } 6112 } 6113 6114 6115 if ( (lccurrentsqlstatement != null) ) 6116 { 6117 } 6118 } 6119 6120 if ( lcisnewsql ) 6121 { 6122 ret = new TUpdateSqlStatement(pdbvendor); 6123 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 6124 } 6125 break; 6126 } 6127 case sstdelete: 6128 { 6129 boolean lcisnewsql = true; 6130 6131 if ( pstate != EFindSqlStateType.stnormal ) 6132 { 6133 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6134 if ( (lcprevsolidtoken != null) ) 6135 { 6136 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 6137 lcisnewsql = false; 6138 } 6139 6140 if ( (lccurrentsqlstatement != null) ) 6141 { 6142 } 6143 } 6144 6145 if ( lcisnewsql ) 6146 ret = new TDeleteSqlStatement(pdbvendor); 6147 6148 break; 6149 } 6150 case sstoraclecommit: 6151 { 6152 ret = new TUnknownSqlStatement(pdbvendor); 6153 ret.sqlstatementtype = gnewsqlstatementtype; 6154 break; 6155 } 6156 case sstoraclerollback: 6157 { 6158 ret = new TUnknownSqlStatement(pdbvendor); 6159 ret.sqlstatementtype = gnewsqlstatementtype; 6160 break; 6161 } 6162 case sstoraclesavepoint: 6163 { 6164 ret = new TUnknownSqlStatement(pdbvendor); 6165 ret.sqlstatementtype = gnewsqlstatementtype; 6166 break; 6167 } 6168 case sstoraclerevoke: 6169 { 6170 ret = new TUnknownSqlStatement(pdbvendor); 6171 ret.sqlstatementtype = gnewsqlstatementtype; 6172 break; 6173 } 6174 case sstoraclegrant: 6175 { 6176 ret = new TUnknownSqlStatement(pdbvendor); 6177 //ret = new TGrantStmt(pdbvendor); 6178 ret.sqlstatementtype = gnewsqlstatementtype; 6179 break; 6180 } 6181 case sstoracleanalyze: 6182 { 6183 ret = new TUnknownSqlStatement(pdbvendor); 6184 ret.sqlstatementtype = gnewsqlstatementtype; 6185 break; 6186 } 6187 case sstoracletruncate: 6188 { 6189 ret = new TUnknownSqlStatement(pdbvendor); 6190 ret.sqlstatementtype = gnewsqlstatementtype; 6191 break; 6192 } 6193 case sstcreatetable: 6194 { 6195 ret = new TCreateTableSqlStatement(pdbvendor); 6196 break; 6197 } 6198 case sstoraclecreateview: 6199 { 6200 ret = new TCreateViewSqlStatement(pdbvendor); 6201 break; 6202 } 6203 case sstcreatematerializedview:{ 6204 ret = new TCreateMaterializedSqlStatement(pdbvendor); 6205 break; 6206 } 6207 case sstoraclecreateindex: 6208 { 6209 ret = new TCreateIndexSqlStatement(pdbvendor); 6210 break; 6211 } 6212 case sstoraclecreatedatabase: 6213 { 6214 ret = new TCreateDatabaseSqlStatement(pdbvendor); 6215 break; 6216 } 6217 case sstoracledroptable: 6218 { 6219 ret = new TDropTableSqlStatement(pdbvendor); 6220 break; 6221 } 6222 case sstoracledropview: 6223 { 6224 ret = new TDropViewSqlStatement(pdbvendor); 6225 break; 6226 } 6227 case sstoracledropindex: 6228 { 6229 ret = new TDropIndexSqlStatement(pdbvendor); 6230 break; 6231 } 6232 case sstaltertable: 6233 { 6234 ret = new TAlterTableStatement(pdbvendor); 6235 break; 6236 } 6237 case sstoraclealtersession: 6238 { 6239 ret = new TAlterSessionStatement(pdbvendor); 6240 break; 6241 } 6242 case sstplsql_createprocedure: 6243 { 6244 ret = new TPlsqlCreateProcedure(pdbvendor); 6245 ret.sqlstatementtype = gnewsqlstatementtype; 6246 // System.out.println(gnewsqlstatementtype); 6247 break; 6248 } 6249 case sstplsql_createfunction: 6250 { 6251 ret = new TPlsqlCreateFunction(pdbvendor); 6252 ret.sqlstatementtype = gnewsqlstatementtype; 6253 // System.out.println(gnewsqlstatementtype); 6254 break; 6255 } 6256 case sstplsql_createpackage: 6257 { 6258 ret = new TPlsqlCreatePackage(pdbvendor); 6259 ret.sqlstatementtype = gnewsqlstatementtype; 6260 // System.out.println(gnewsqlstatementtype); 6261 break; 6262 } 6263 case sstoraclecreatepackagebody: 6264 { 6265 ret = new TPlsqlCreatePackage(pdbvendor); 6266 ret.sqlstatementtype = gnewsqlstatementtype; 6267 //ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 6268 break; 6269 } 6270 case sstplsql_createtrigger: 6271 { 6272 ret = new TPlsqlCreateTrigger(pdbvendor); 6273 ret.sqlstatementtype = gnewsqlstatementtype; 6274 // System.out.println(gnewsqlstatementtype); 6275 break; 6276 } 6277 case sstplsql_execimmestmt: 6278 { 6279 ret = new TExecImmeStmt(pdbvendor); 6280 // ret.sqlstatementtype = gnewsqlstatementtype; 6281 // System.out.println(gnewsqlstatementtype); 6282 break; 6283 } 6284 case sstplsql_createtype_placeholder: 6285 { 6286 ret = new TPlsqlCreateType_Placeholder(pdbvendor); 6287 ret.sqlstatementtype = gnewsqlstatementtype; 6288 // System.out.println(gnewsqlstatementtype); 6289 break; 6290 } 6291 case sstplsql_createtypebody: 6292 { 6293 ret = new TPlsqlCreateTypeBody(pdbvendor); 6294 ret.sqlstatementtype = gnewsqlstatementtype; 6295 break; 6296 } 6297 case sstCommentOn: 6298 { 6299 ret = new TCommentOnSqlStmt(pdbvendor); 6300 break; 6301 } 6302 case sstoraclecreatesequence: 6303 { 6304 ret = new TCreateSequenceStmt(pdbvendor); 6305 break; 6306 } 6307 case sstoraclecreatesynonym: 6308 { 6309 ret = new TCreateSynonymStmt(pdbvendor); 6310 break; 6311 } 6312 case sstoraclecreatedirectory: 6313 { 6314 ret = new TOracleCreateDirectoryStmt(pdbvendor); 6315 break; 6316 } 6317 case sstpostgresqlCreateIndex: 6318 ret = new TCreateIndexSqlStatement(pdbvendor); 6319 break; 6320 case sstpostgresqlCreateView: 6321 ret = new TCreateViewSqlStatement(pdbvendor); 6322 break; 6323 case sstpostgresqlCreateFunction: 6324 ret = new TCreateFunctionStmt(pdbvendor); 6325 break; 6326 case sstcreatetrigger: 6327 ret = new TCreateTriggerStmt(pdbvendor); 6328 break; 6329 case sstpostgresqlMove: 6330 ret = new TMoveStmt(pdbvendor); 6331 break; 6332 case sstpostgresqlTruncate: 6333 ret = new TTruncateStatement(pdbvendor); 6334 break; 6335 case sstpostgresqlExecute: 6336 ret = new TExecuteSqlStatement(pdbvendor); 6337 break; 6338 case sstpostgresqlDropTable: 6339 ret = new TDropTableSqlStatement(pdbvendor); 6340 break; 6341 case sstPostgresqlBlock: 6342 ret = new TCommonBlock(pdbvendor); 6343 break; 6344 case sstVacuum: 6345 ret = new TVacuumStmt(pdbvendor); 6346 break; 6347 case sstReindex: 6348 ret = new TReindexStmt(pdbvendor); 6349 break; 6350 case sstcreateprocedure: 6351 ret = new TCreateProcedureStmt(pdbvendor); 6352 break; 6353 case sstpostgresqlCommit: 6354 ret = new TCommitStmt(pdbvendor); 6355 break; 6356 case sstpostgresqlCreateSchema: 6357 ret = new TCreateSchemaSqlStatement(pdbvendor); 6358 break; 6359 case sstpostgresqlDropSchema: 6360 ret = new TDropSchemaSqlStatement(pdbvendor); 6361 break; 6362 case sstpostgresqlShowSearchPath: 6363 ret = new TShowSearchPathStmt(pdbvendor); 6364 break; 6365 case sstpostgresqlCopy: 6366 ret = new TCopyStmt(pdbvendor); 6367 break; 6368 case sstcall: 6369 ret = new TCallStatement(pdbvendor); 6370 break; 6371 case sstpostgresqlAlterSchema: 6372 ret = new TAlterSchemaStmt(pdbvendor); 6373 break; 6374 case sstpostgresqlAlterfunction: 6375 ret = new TAlterFunctionStmt(pdbvendor); 6376 break; 6377 case sstStartTransaction: 6378 { 6379 ret = new TStartTransactionStmt(pdbvendor); 6380 break; 6381 } 6382 case sstpostgresqlComment: 6383 ret = new TCommentOnSqlStmt(pdbvendor); 6384 break; 6385 case sstpostgresqlShow: 6386 ret = new TShowStmt(pdbvendor); 6387 break; 6388 case sstpostgresqlSetSearchPath: 6389 case sstpostgresqlSet: 6390 ret = new TSetStmt(pdbvendor); 6391 break; 6392 case sstpostgresqlDropFunction: 6393 ret = new TDropFunctionStmt(pdbvendor); 6394 break; 6395 case sstpostgresqlDropTrigger: 6396 ret = new TDropTriggerSqlStatement(pdbvendor); 6397 break; 6398 case sstpostgresqlDropProcedure: 6399 ret = new TDropProcedureStmt(pdbvendor); 6400 break; 6401 case sstdropindex: 6402 ret = new TDropIndexSqlStatement(pdbvendor); 6403 break; 6404 case sstpostgresqlDropSequence: 6405 ret = new TDropSequenceStmt(pdbvendor); 6406 break; 6407 case sstpostgresqlDropView: 6408 ret = new TDropViewSqlStatement(pdbvendor); 6409 break; 6410 case sstpostgresqlCreateSequence: 6411 ret = new TCreateSequenceStmt(pdbvendor); 6412 break; 6413 case sstpostgresqlAlterSequence: 6414 ret = new TAlterSequenceStatement(pdbvendor); 6415 break; 6416 case sstpostgresqlCreateType: 6417 ret = new TCreateTypeStmt(pdbvendor); 6418 break; 6419 case sstcreateExtension: 6420 ret = new TCreateExtensionStmt(pdbvendor); 6421 break; 6422 case sstPostgresqlTable: 6423 ret = new TPostgresqlTableStmt(pdbvendor); 6424 break; 6425 case sstpostgresqlEnd: 6426 ret = new TEndTran(pdbvendor); 6427 break; 6428 case sstpostgresqlDo: 6429 boolean lcisnewsql = false; 6430 6431 if ( pstate == EFindSqlStateType.stnormal ) 6432 { 6433 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 6434 if ( (lcnextsolidtoken != null) ) 6435 { 6436 if ( lcnextsolidtoken.tokencode == TBaseType.rrw_postgresql_function_delimiter ) 6437 lcisnewsql = true; 6438 else if ( lcnextsolidtoken.tokencode == TBaseType.rrw_postgresql_language ) 6439 lcisnewsql = true; 6440 } 6441 } 6442 6443 if ( lcisnewsql ) 6444 ret = new TDoExecuteBlockStmt(pdbvendor); 6445 6446 break; 6447 default: 6448 { 6449 ret = new TUnknownSqlStatement(pdbvendor); 6450 ret.sqlstatementtype = gnewsqlstatementtype; 6451 break; 6452 } 6453 } // case 6454 6455 return ret; 6456 } 6457 6458 TCustomSqlStatement ispostgresql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 6459 TCustomSqlStatement ret = null; 6460 6461 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 6462 6463 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 6464 || (pcst.tokencode == TBaseType.cmtslashstar) 6465 || (pcst.tokencode == TBaseType.lexspace) 6466 || (pcst.tokencode == TBaseType.lexnewline) 6467 || (pcst.tokentype == ETokenType.ttsemicolon) ) 6468 { 6469 return null; 6470 } 6471 6472 int lcpos = pcst.posinlist; 6473 TSourceTokenList lcsourcetokenlist = pcst.container; 6474 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 6475 6476 //subquery after semicolon or at first line 6477 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 6478 { 6479 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 6480 if ( k >0 ) 6481 { 6482 ret = new TSelectSqlStatement(pdbvendor); 6483 } 6484 6485 return ret; 6486 } 6487 6488 //cte 6489 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 6490 { 6491 ret = findcte(pcst,pdbvendor); 6492 if ( (ret != null) ) return ret; 6493 } 6494 6495 gnewsqlstatementtype = findpostgresqlcmd(pcst); 6496 6497 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6498 switch (gnewsqlstatementtype) { // 6499 case sstinvalid: 6500 { 6501 ret = null; 6502 6503 if ( pstate == EFindSqlStateType.stnormal ) 6504 { 6505 if ( pcst.tokencode == TBaseType.label_begin ) 6506 { 6507 ret = new TCommonBlock(pdbvendor); 6508 gnewsqlstatementtype = ret.sqlstatementtype; 6509 } 6510 else if ( pcst.tokencode == TBaseType.rrw_declare ) 6511 { 6512 ret = new TCommonBlock(pdbvendor); 6513 gnewsqlstatementtype = ret.sqlstatementtype; 6514 } 6515 else if ( pcst.tokencode == TBaseType.rrw_begin ) 6516 { 6517 ret = new TCommonBlock(pdbvendor); 6518 gnewsqlstatementtype = ret.sqlstatementtype; 6519 } 6520 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 6521 { 6522 ret = new TCreateProcedureStmt(pdbvendor); 6523 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 6524 gnewsqlstatementtype = ret.sqlstatementtype; 6525 } 6526 else if ( pcst.tokencode == TBaseType.rrw_function ) 6527 { 6528 ret = new TPlsqlCreateFunction(pdbvendor); 6529 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 6530 gnewsqlstatementtype = ret.sqlstatementtype; 6531 } 6532 else if ( pcst.tokencode == TBaseType.rrw_package ) 6533 { 6534 ret = new TPlsqlCreatePackage(pdbvendor); 6535 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 6536 gnewsqlstatementtype = ret.sqlstatementtype; 6537 } 6538 } 6539 break; 6540 } 6541 case sstselect: 6542 { 6543 boolean lcisnewsql = true; 6544 6545 if ( pstate != EFindSqlStateType.stnormal ) 6546 { 6547 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6548 if ( (lcprevsolidtoken != null) ) 6549 { 6550 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 6551 lcisnewsql = false; //subqery 6552 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 6553 lcisnewsql = false; 6554 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 6555 lcisnewsql = false; 6556 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 6557 lcisnewsql = false; 6558 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 6559 lcisnewsql = false; 6560 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 6561 lcisnewsql = false; 6562 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 6563 { 6564 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 6565 lcisnewsql = false; 6566 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 6567 lcisnewsql = false; 6568 } 6569 6570 6571 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 6572 { 6573 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 6574 if ( (lcpprevsolidtoken != null) ) 6575 { 6576 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 6577 lcisnewsql = false; 6578 } 6579 } 6580 6581 } 6582 6583 6584 if ( (lccurrentsqlstatement != null) ) 6585 { 6586 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 6587 lcisnewsql = false; 6588 } 6589 6590 } 6591 6592 if ( lcisnewsql ) 6593 ret = new TSelectSqlStatement(pdbvendor); 6594 6595 break; 6596 } 6597 case sstinsert: 6598 { 6599 boolean lcisnewsql = true; 6600 if ( pstate != EFindSqlStateType.stnormal ) 6601 { 6602 if ( (lccurrentsqlstatement != null) ) 6603 { 6604 6605 } 6606 } 6607 6608 if ( lcisnewsql ) 6609 ret = new TInsertSqlStatement(pdbvendor); 6610 6611 break; 6612 } 6613 case sstupdate: 6614 { 6615 boolean lcisnewsql = true; 6616 if ( pstate != EFindSqlStateType.stnormal ) 6617 { 6618 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6619 if ( (lcprevsolidtoken != null) ) 6620 { // 6621 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 6622 lcisnewsql = false; 6623 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 6624 lcisnewsql = false; 6625 } 6626 6627 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 6628 if ( (lcnextsolidtoken != null) ) 6629 { 6630 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 6631 { 6632 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 6633 if ( k == 0 ) lcisnewsql = false; 6634 } 6635 } 6636 6637 6638 if ( (lccurrentsqlstatement != null) ) 6639 { 6640 } 6641 } 6642 6643 if ( lcisnewsql ) 6644 { 6645 ret = new TUpdateSqlStatement(pdbvendor); 6646 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 6647 } 6648 break; 6649 } 6650 case sstdelete: 6651 { 6652 boolean lcisnewsql = true; 6653 6654 if ( pstate != EFindSqlStateType.stnormal ) 6655 { 6656 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 6657 if ( (lcprevsolidtoken != null) ) 6658 { 6659 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 6660 lcisnewsql = false; 6661 } 6662 6663 if ( (lccurrentsqlstatement != null) ) 6664 { 6665 } 6666 } 6667 6668 if ( lcisnewsql ) 6669 ret = new TDeleteSqlStatement(pdbvendor); 6670 6671 break; 6672 } 6673 case sstmerge: 6674 { 6675 ret = new TMergeSqlStatement(pdbvendor); 6676 ret.sqlstatementtype = gnewsqlstatementtype; 6677 break; 6678 } 6679 case sstoraclecommit: 6680 { 6681 ret = new TUnknownSqlStatement(pdbvendor); 6682 ret.sqlstatementtype = gnewsqlstatementtype; 6683 break; 6684 } 6685 case sstoraclerollback: 6686 { 6687 ret = new TUnknownSqlStatement(pdbvendor); 6688 ret.sqlstatementtype = gnewsqlstatementtype; 6689 break; 6690 } 6691 case sstoraclesavepoint: 6692 { 6693 ret = new TUnknownSqlStatement(pdbvendor); 6694 ret.sqlstatementtype = gnewsqlstatementtype; 6695 break; 6696 } 6697 case sstoraclerevoke: 6698 { 6699 ret = new TUnknownSqlStatement(pdbvendor); 6700 ret.sqlstatementtype = gnewsqlstatementtype; 6701 break; 6702 } 6703 case sstoraclegrant: 6704 { 6705 ret = new TUnknownSqlStatement(pdbvendor); 6706 //ret = new TGrantStmt(pdbvendor); 6707 ret.sqlstatementtype = gnewsqlstatementtype; 6708 break; 6709 } 6710 case sstoracleanalyze: 6711 { 6712 ret = new TUnknownSqlStatement(pdbvendor); 6713 ret.sqlstatementtype = gnewsqlstatementtype; 6714 break; 6715 } 6716 case sstoracletruncate: 6717 { 6718 ret = new TUnknownSqlStatement(pdbvendor); 6719 ret.sqlstatementtype = gnewsqlstatementtype; 6720 break; 6721 } 6722 case sstcreatetable: 6723 { 6724 ret = new TCreateTableSqlStatement(pdbvendor); 6725 break; 6726 } 6727 case sstoraclecreateview: 6728 { 6729 ret = new TCreateViewSqlStatement(pdbvendor); 6730 break; 6731 } 6732 case sstcreatematerializedview:{ 6733 ret = new TCreateMaterializedSqlStatement(pdbvendor); 6734 break; 6735 } 6736 case sstoraclecreateindex: 6737 { 6738 ret = new TCreateIndexSqlStatement(pdbvendor); 6739 break; 6740 } 6741 case sstoraclecreatedatabase: 6742 { 6743 ret = new TCreateDatabaseSqlStatement(pdbvendor); 6744 break; 6745 } 6746 case sstoracledroptable: 6747 { 6748 ret = new TDropTableSqlStatement(pdbvendor); 6749 break; 6750 } 6751 case sstoracledropview: 6752 { 6753 ret = new TDropViewSqlStatement(pdbvendor); 6754 break; 6755 } 6756 case sstoracledropindex: 6757 { 6758 ret = new TDropIndexSqlStatement(pdbvendor); 6759 break; 6760 } 6761 case sstaltertable: 6762 { 6763 ret = new TAlterTableStatement(pdbvendor); 6764 break; 6765 } 6766 case sstoraclealtersession: 6767 { 6768 ret = new TAlterSessionStatement(pdbvendor); 6769 break; 6770 } 6771 case sstplsql_createprocedure: 6772 { 6773 ret = new TPlsqlCreateProcedure(pdbvendor); 6774 ret.sqlstatementtype = gnewsqlstatementtype; 6775 // System.out.println(gnewsqlstatementtype); 6776 break; 6777 } 6778 case sstplsql_createfunction: 6779 { 6780 ret = new TPlsqlCreateFunction(pdbvendor); 6781 ret.sqlstatementtype = gnewsqlstatementtype; 6782 // System.out.println(gnewsqlstatementtype); 6783 break; 6784 } 6785 case sstplsql_createpackage: 6786 { 6787 ret = new TPlsqlCreatePackage(pdbvendor); 6788 ret.sqlstatementtype = gnewsqlstatementtype; 6789 // System.out.println(gnewsqlstatementtype); 6790 break; 6791 } 6792 case sstplsql_createtrigger: 6793 { 6794 ret = new TPlsqlCreateTrigger(pdbvendor); 6795 ret.sqlstatementtype = gnewsqlstatementtype; 6796 // System.out.println(gnewsqlstatementtype); 6797 break; 6798 } 6799 case sstplsql_execimmestmt: 6800 { 6801 ret = new TExecImmeStmt(pdbvendor); 6802 // ret.sqlstatementtype = gnewsqlstatementtype; 6803 // System.out.println(gnewsqlstatementtype); 6804 break; 6805 } 6806 case sstoraclecreatepackagebody: 6807 { 6808 ret = new TPlsqlCreatePackage(pdbvendor); 6809 ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 6810 break; 6811 } 6812 case sstplsql_createtype_placeholder: 6813 { 6814 ret = new TPlsqlCreateType_Placeholder(pdbvendor); 6815 ret.sqlstatementtype = gnewsqlstatementtype; 6816 // System.out.println(gnewsqlstatementtype); 6817 break; 6818 } 6819 case sstplsql_createtypebody: 6820 { 6821 ret = new TPlsqlCreateTypeBody(pdbvendor); 6822 ret.sqlstatementtype = gnewsqlstatementtype; 6823 break; 6824 } 6825 case sstCommentOn: 6826 { 6827 ret = new TCommentOnSqlStmt(pdbvendor); 6828 break; 6829 } 6830 case sstoraclecreatesequence: 6831 { 6832 ret = new TCreateSequenceStmt(pdbvendor); 6833 break; 6834 } 6835 case sstoraclecreatesynonym: 6836 { 6837 ret = new TCreateSynonymStmt(pdbvendor); 6838 break; 6839 } 6840 case sstoraclecreatedirectory: 6841 { 6842 ret = new TOracleCreateDirectoryStmt(pdbvendor); 6843 break; 6844 } 6845 case sstpostgresqlCreateIndex: 6846 ret = new TCreateIndexSqlStatement(pdbvendor); 6847 break; 6848 case sstpostgresqlCreateView: 6849 ret = new TCreateViewSqlStatement(pdbvendor); 6850 break; 6851 case sstpostgresqlCreateFunction: 6852 ret = new TCreateFunctionStmt(pdbvendor); 6853 break; 6854 case sstcreatetrigger: 6855 ret = new TCreateTriggerStmt(pdbvendor); 6856 break; 6857 case sstpostgresqlMove: 6858 ret = new TMoveStmt(pdbvendor); 6859 break; 6860 case sstpostgresqlTruncate: 6861 ret = new TTruncateStatement(pdbvendor); 6862 break; 6863 case sstpostgresqlExecute: 6864 ret = new TExecuteSqlStatement(pdbvendor); 6865 break; 6866 case sstpostgresqlDropTable: 6867 ret = new TDropTableSqlStatement(pdbvendor); 6868 break; 6869 case sstPostgresqlBlock: 6870 ret = new TCommonBlock(pdbvendor); 6871 break; 6872 case sstVacuum: 6873 ret = new TVacuumStmt(pdbvendor); 6874 break; 6875 case sstReindex: 6876 ret = new TReindexStmt(pdbvendor); 6877 break; 6878 case sstcreateprocedure: 6879 ret = new TCreateProcedureStmt(pdbvendor); 6880 break; 6881 case sstpostgresqlCommit: 6882 ret = new TCommitStmt(pdbvendor); 6883 break; 6884 case sstpostgresqlCreateSchema: 6885 ret = new TCreateSchemaSqlStatement(pdbvendor); 6886 break; 6887 case sstpostgresqlDropSchema: 6888 ret = new TDropSchemaSqlStatement(pdbvendor); 6889 break; 6890 case sstpostgresqlShowSearchPath: 6891 ret = new TShowSearchPathStmt(pdbvendor); 6892 break; 6893 case sstpostgresqlCopy: 6894 ret = new TCopyStmt(pdbvendor); 6895 break; 6896 case sstcall: 6897 ret = new TCallStatement(pdbvendor); 6898 break; 6899 case sstpostgresqlAlterSchema: 6900 ret = new TAlterSchemaStmt(pdbvendor); 6901 break; 6902 case sstpostgresqlAlterfunction: 6903 ret = new TAlterFunctionStmt(pdbvendor); 6904 break; 6905 case sstStartTransaction: 6906 { 6907 ret = new TStartTransactionStmt(pdbvendor); 6908 break; 6909 } 6910 case sstpostgresqlComment: 6911 ret = new TCommentOnSqlStmt(pdbvendor); 6912 break; 6913 case sstpostgresqlShow: 6914 ret = new TShowStmt(pdbvendor); 6915 break; 6916 case sstpostgresqlSetSearchPath: 6917 case sstpostgresqlSet: 6918 ret = new TSetStmt(pdbvendor); 6919 break; 6920 case sstpostgresqlDropFunction: 6921 ret = new TDropFunctionStmt(pdbvendor); 6922 break; 6923 case sstpostgresqlDropTrigger: 6924 ret = new TDropTriggerSqlStatement(pdbvendor); 6925 break; 6926 case sstpostgresqlDropProcedure: 6927 ret = new TDropProcedureStmt(pdbvendor); 6928 break; 6929 case sstdropindex: 6930 ret = new TDropIndexSqlStatement(pdbvendor); 6931 break; 6932 case sstpostgresqlDropSequence: 6933 ret = new TDropSequenceStmt(pdbvendor); 6934 break; 6935 case sstpostgresqlDropView: 6936 ret = new TDropViewSqlStatement(pdbvendor); 6937 break; 6938 case sstpostgresqlCreateSequence: 6939 ret = new TCreateSequenceStmt(pdbvendor); 6940 break; 6941 case sstpostgresqlAlterSequence: 6942 ret = new TAlterSequenceStatement(pdbvendor); 6943 break; 6944 case sstpostgresqlCreateType: 6945 ret = new TCreateTypeStmt(pdbvendor); 6946 break; 6947 case sstcreateExtension: 6948 ret = new TCreateExtensionStmt(pdbvendor); 6949 break; 6950 case sstPostgresqlTable: 6951 ret = new TPostgresqlTableStmt(pdbvendor); 6952 break; 6953 case sstpostgresqlDropMaterializedView: 6954 ret = new TDropMaterializedViewStmt(pdbvendor); 6955 break; 6956 case sstpostgresqlDo: 6957 boolean lcisnewsql = false; 6958 6959 if ( pstate == EFindSqlStateType.stnormal ) 6960 { 6961 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 6962 if ( (lcnextsolidtoken != null) ) 6963 { 6964 if ( lcnextsolidtoken.tokencode == TBaseType.rrw_postgresql_function_delimiter ) 6965 lcisnewsql = true; 6966 else if ( lcnextsolidtoken.tokencode == TBaseType.rrw_postgresql_language ) 6967 lcisnewsql = true; 6968 } 6969 } 6970 6971 if ( lcisnewsql ) 6972 ret = new TDoExecuteBlockStmt(pdbvendor); 6973 6974 break; 6975 case sstpostgresqlDeclare: 6976 ret = new TCommonBlock(pdbvendor); 6977 gnewsqlstatementtype = ret.sqlstatementtype; 6978 break; 6979 case sstpostgresqlExplain: 6980 ret = new TExplainPlan(pdbvendor); 6981 gnewsqlstatementtype = ret.sqlstatementtype; 6982 break; 6983 case sstpostgresqlCreateRole: 6984 ret = new TCreateRoleStmt(pdbvendor); 6985 break; 6986 case sstpostgresqlAlterRole: 6987 ret = new TAlterRoleStmt(pdbvendor); 6988 break; 6989 case sstpostgresqlAlterIndex: 6990 ret = new TAlterIndexStmt(pdbvendor); 6991 break; 6992 default: 6993 { 6994 ret = new TUnknownSqlStatement(pdbvendor); 6995 ret.sqlstatementtype = gnewsqlstatementtype; 6996 break; 6997 } 6998 } // case 6999 7000 return ret; 7001 } 7002 7003 7004 7005TCustomSqlStatement isbigquery(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 7006 TCustomSqlStatement ret = null; 7007 7008 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 7009 7010 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 7011 || (pcst.tokencode == TBaseType.cmtslashstar) 7012 || (pcst.tokencode == TBaseType.lexspace) 7013 || (pcst.tokencode == TBaseType.lexnewline) 7014 || (pcst.tokentype == ETokenType.ttsemicolon) ) 7015 { 7016 return null; 7017 } 7018 7019 int lcpos = pcst.posinlist; 7020 TSourceTokenList lcsourcetokenlist = pcst.container; 7021 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 7022 7023 //subquery after semicolon or at first line 7024 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 7025 { 7026 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 7027 if ( k >0 ) 7028 { 7029 ret = new TSelectSqlStatement(pdbvendor); 7030 } 7031 7032 return ret; 7033 } 7034 7035 //cte 7036 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 7037 { 7038 ret = findcte(pcst,pdbvendor); 7039 if ( (ret != null) ) return ret; 7040 } 7041 7042 gnewsqlstatementtype = findbigquerycmd(pcst); 7043 7044 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7045 switch (gnewsqlstatementtype) { // 7046 case sstinvalid: 7047 { 7048 ret = null; 7049 7050 if ( pstate == EFindSqlStateType.stnormal ) 7051 { 7052 if ( pcst.tokencode == TBaseType.rrw_begin ) 7053 { 7054 7055 ret = new TCommonBlock(pdbvendor); 7056 gnewsqlstatementtype = ret.sqlstatementtype; 7057 } 7058 7059 } 7060 break; 7061 } 7062 case sstselect: 7063 { 7064 boolean lcisnewsql = true; 7065 7066 if ( pstate != EFindSqlStateType.stnormal ) 7067 { 7068 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7069 if ( (lcprevsolidtoken != null) ) 7070 { 7071 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 7072 lcisnewsql = false; //subqery 7073 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 7074 lcisnewsql = false; 7075 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 7076 lcisnewsql = false; 7077 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 7078 lcisnewsql = false; 7079 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 7080 lcisnewsql = false; 7081 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 7082 lcisnewsql = false; 7083 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 7084 { 7085 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 7086 lcisnewsql = false; 7087 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 7088 lcisnewsql = false; 7089 } 7090 7091 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 7092 { 7093 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 7094 if ( (lcpprevsolidtoken != null) ) 7095 { 7096 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 7097 lcisnewsql = false; 7098 } 7099 } 7100 7101 } 7102 7103 7104 if ( (lccurrentsqlstatement != null) ) 7105 { 7106 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 7107 lcisnewsql = false; 7108 } 7109 7110 } 7111 7112 if ( lcisnewsql ) 7113 ret = new TSelectSqlStatement(pdbvendor); 7114 7115 break; 7116 } 7117 case sstinsert: 7118 { 7119 boolean lcisnewsql = true; 7120 if ( pstate != EFindSqlStateType.stnormal ) 7121 { 7122 if ( (lccurrentsqlstatement != null) ) 7123 { 7124 7125 } 7126 } 7127 7128 if ( lcisnewsql ) 7129 ret = new TInsertSqlStatement(pdbvendor); 7130 7131 break; 7132 } 7133 case sstupdate: 7134 { 7135 boolean lcisnewsql = true; 7136 if ( pstate != EFindSqlStateType.stnormal ) 7137 { 7138 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7139 if ( (lcprevsolidtoken != null) ) 7140 { // 7141 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 7142 lcisnewsql = false; 7143 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 7144 lcisnewsql = false; 7145 } 7146 7147 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 7148 if ( (lcnextsolidtoken != null) ) 7149 { 7150 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 7151 { 7152 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 7153 if ( k == 0 ) lcisnewsql = false; 7154 } 7155 } 7156 7157 7158 if ( (lccurrentsqlstatement != null) ) 7159 { 7160 } 7161 } 7162 7163 if ( lcisnewsql ) 7164 { 7165 ret = new TUpdateSqlStatement(pdbvendor); 7166 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 7167 } 7168 break; 7169 } 7170 case sstdelete: 7171 { 7172 boolean lcisnewsql = true; 7173 7174 if ( pstate != EFindSqlStateType.stnormal ) 7175 { 7176 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7177 if ( (lcprevsolidtoken != null) ) 7178 { 7179 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 7180 lcisnewsql = false; 7181 } 7182 7183 if ( (lccurrentsqlstatement != null) ) 7184 { 7185 } 7186 } 7187 7188 if ( lcisnewsql ) 7189 ret = new TDeleteSqlStatement(pdbvendor); 7190 7191 break; 7192 } 7193 case sstmerge: 7194 { 7195 ret = new TMergeSqlStatement(pdbvendor); 7196 ret.sqlstatementtype = gnewsqlstatementtype; 7197 break; 7198 } 7199 case sstcreatetable: 7200 { 7201 ret = new TCreateTableSqlStatement(pdbvendor); 7202 break; 7203 } 7204 case sstcreateview:{ 7205 ret = new TCreateViewSqlStatement(pdbvendor); 7206 break; 7207 } 7208 case sstaltertable: 7209 { 7210 ret = new TAlterTableStatement(pdbvendor); 7211 break; 7212 } 7213 case sstalterview: 7214 { 7215 ret = new TAlterViewStatement(pdbvendor); 7216 break; 7217 } 7218 case sstdroptable: 7219 { 7220 ret = new TDropTableSqlStatement(pdbvendor); 7221 break; 7222 } 7223 case sstdropview: 7224 { 7225 ret = new TDropViewSqlStatement(pdbvendor); 7226 break; 7227 } 7228 case sstcreatefunction: 7229 { 7230 ret = new TCreateFunctionStmt(pdbvendor); 7231 break; 7232 } 7233 case sstcreateprocedure: 7234 { 7235 ret = new TCreateProcedureStmt(pdbvendor); 7236 break; 7237 } 7238 case sstBigQueryDeclare: 7239 ret = new TMssqlDeclare(pdbvendor); 7240 break; 7241 case sstTruncate: 7242 { 7243 ret = new TTruncateStatement(pdbvendor); 7244 break; 7245 } 7246 case sstset: 7247 { 7248 boolean lcisnewsql = true; 7249 if ( pstate != EFindSqlStateType.stnormal ) 7250 { 7251 if ( TBaseType.assigned(lccurrentsqlstatement) ) 7252 { 7253 lcisnewsql = false; 7254 } 7255 } 7256 7257 if ( lcisnewsql ) 7258 { 7259 ret = new TSetStmt(pdbvendor); 7260 } 7261 break; 7262 } 7263 case sstcreatematerializedview:{ 7264 ret = new TCreateMaterializedSqlStatement(pdbvendor); 7265 break; 7266 } 7267 case sstdropprocedure: 7268 { 7269 ret = new TDropProcedureStmt(pdbvendor); 7270 break; 7271 } 7272 case sstdropfunction: 7273 { 7274 ret = new TDropFunctionStmt(pdbvendor); 7275 break; 7276 } 7277 case sstDropMaterializedView: 7278 ret = new TDropMaterializedViewStmt(pdbvendor); 7279 break; 7280 case sstcall: 7281 ret = new TCallStatement(pdbvendor); 7282 break; 7283 case sstBigQueryExportData: 7284 ret = new TExportDataStmt(pdbvendor); 7285 break; 7286 case sstBegin: 7287 { 7288 boolean isblock = false; 7289 int numOfSolidToken = 0; 7290 // if linebreak appears before the ;, then it a block, else it a 7291 TSourceToken st ; 7292 if (lcpos == lcsourcetokenlist.size() - 1){ 7293 // this is the last token 7294 }else{ 7295 for(int i=lcpos+1;i<lcsourcetokenlist.size();i++){ 7296 st = lcsourcetokenlist.get(i); 7297 if (st.issolidtoken()){ 7298 numOfSolidToken++; 7299 } 7300 7301 7302 7303 if (st.tokencode == ';') { 7304 if (numOfSolidToken<=3){ 7305 7306 }else{ 7307 isblock = true; 7308 } 7309 break; 7310 } 7311 7312 if (numOfSolidToken > 3){ 7313 isblock = true; 7314 break; 7315 } 7316 } 7317 } 7318 7319 if (isblock){ 7320 ret = new TCommonBlock(pdbvendor); 7321 gnewsqlstatementtype = ret.sqlstatementtype; 7322 }else{ 7323 ret = new TBeginTran(pdbvendor); 7324 pcst.tokencode = TBaseType.rrw_bigquery_begin_transaction; 7325 } 7326 7327 7328 break; 7329 } 7330 case sstbegintran: 7331 { 7332 ret = new TBeginTran(pdbvendor); 7333 if (pcst.tokencode == TBaseType.rrw_begin){ 7334 pcst.tokencode = TBaseType.rrw_bigquery_begin_transaction; 7335 } 7336 7337 break; 7338 } 7339 case sstExecute: 7340 { 7341 ret = new TExecImmeStmt(pdbvendor); 7342 break; 7343 } 7344 case sst_ifstmt: 7345 ret = new TIfStmt(pdbvendor); 7346 break; 7347 case sst_loopstmt: 7348 ret = new TLoopStmt(pdbvendor); 7349 break; 7350 case sstRepeat: 7351 ret = new TRepeatStmt(pdbvendor); 7352 break; 7353 case sstWhilestmt: 7354 ret = new TWhileStmt(pdbvendor); 7355 break; 7356 case sstForStmt: 7357 ret = new TForStmt(pdbvendor); 7358 break; 7359 case sst_casestmt: 7360 ret = new TCaseStmt(pdbvendor); 7361 break; 7362 case sstDropAssignment: 7363 ret = new TDropStmt(pdbvendor); 7364 break; 7365 case sstdropschema: 7366 ret = new TDropSchemaSqlStatement(pdbvendor); 7367 break; 7368 case sstDropReservation: 7369 ret = new TDropStmt(pdbvendor); 7370 break; 7371 case sstDropRowAccessPolicy: 7372 ret = new TDropStmt(pdbvendor); 7373 break; 7374 case sstDropSnapshotTable: 7375 ret = new TDropStmt(pdbvendor); 7376 break; 7377 case sstDropTableFunction: 7378 ret = new TDropStmt(pdbvendor); 7379 break; 7380 default: 7381 { 7382 ret = new TUnknownSqlStatement(pdbvendor); 7383 ret.sqlstatementtype = gnewsqlstatementtype; 7384 break; 7385 } 7386 } // case 7387 7388 return ret; 7389 } 7390 7391TCustomSqlStatement issnowflake(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 7392 TCustomSqlStatement ret = null; 7393 7394 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 7395 7396 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 7397 || (pcst.tokencode == TBaseType.cmtslashstar) 7398 || (pcst.tokencode == TBaseType.lexspace) 7399 || (pcst.tokencode == TBaseType.lexnewline) 7400 || (pcst.tokentype == ETokenType.ttsemicolon) ) 7401 { 7402 return null; 7403 } 7404 7405 int lcpos = pcst.posinlist; 7406 TSourceTokenList lcsourcetokenlist = pcst.container; 7407 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 7408 7409 //subquery after semicolon or at first line 7410 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 7411 { 7412 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 7413 if ( k >0 ) 7414 { 7415 ret = new TSelectSqlStatement(pdbvendor); 7416 } 7417 else{ 7418 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_with,1,"("); 7419 int k2 = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_as,3,"("); 7420 if (( k >0 ) && (k2 > 2)) 7421 { 7422 ret = new TSelectSqlStatement(pdbvendor); 7423 } 7424 7425 } 7426 7427 return ret; 7428 } 7429 7430 //cte 7431 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 7432 { 7433 ret = findcte(pcst,pdbvendor); 7434 if ( (ret != null) ) return ret; 7435 } 7436 7437 gnewsqlstatementtype = findsnowflakecmd(pcst); 7438 7439 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7440 switch (gnewsqlstatementtype) { // 7441 case sstinvalid: 7442 { 7443 ret = null; 7444 7445 if ( pstate == EFindSqlStateType.stnormal ) 7446 { 7447 if ( pcst.tokencode == TBaseType.label_begin ) 7448 { 7449 ret = new TCommonBlock(pdbvendor); 7450 gnewsqlstatementtype = ret.sqlstatementtype; 7451 } 7452 else if ( pcst.tokencode == TBaseType.rrw_declare ) 7453 { 7454 ret = new TCommonBlock(pdbvendor); 7455 gnewsqlstatementtype = ret.sqlstatementtype; 7456 } 7457 else if ( pcst.tokencode == TBaseType.rrw_begin ) 7458 { 7459 ret = new TCommonBlock(pdbvendor); 7460 gnewsqlstatementtype = ret.sqlstatementtype; 7461 } 7462 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 7463 { 7464 ret = new TPlsqlCreateProcedure(pdbvendor); 7465 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 7466 gnewsqlstatementtype = ret.sqlstatementtype; 7467 } 7468 else if ( pcst.tokencode == TBaseType.rrw_function ) 7469 { 7470 ret = new TPlsqlCreateFunction(pdbvendor); 7471 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 7472 gnewsqlstatementtype = ret.sqlstatementtype; 7473 } 7474 else if ( pcst.tokencode == TBaseType.rrw_package ) 7475 { 7476 ret = new TPlsqlCreatePackage(pdbvendor); 7477 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 7478 gnewsqlstatementtype = ret.sqlstatementtype; 7479 } 7480 } 7481 break; 7482 } 7483 case sstselect: 7484 { 7485 boolean lcisnewsql = true; 7486 7487 if ( pstate != EFindSqlStateType.stnormal ) 7488 { 7489 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7490 if ( (lcprevsolidtoken != null) ) 7491 { 7492 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 7493 lcisnewsql = false; //subqery 7494 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 7495 lcisnewsql = false; 7496 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 7497 lcisnewsql = false; 7498 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 7499 lcisnewsql = false; 7500 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 7501 lcisnewsql = false; 7502 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 7503 lcisnewsql = false; 7504 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 7505 { 7506 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 7507 lcisnewsql = false; 7508 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 7509 lcisnewsql = false; 7510 } 7511 7512 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 7513 { 7514 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 7515 if ( (lcpprevsolidtoken != null) ) 7516 { 7517 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 7518 lcisnewsql = false; 7519 } 7520 } 7521 7522 } 7523 7524 7525 if ( (lccurrentsqlstatement != null) ) 7526 { 7527 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 7528 lcisnewsql = false; 7529 } 7530 7531 } 7532 7533 if ( lcisnewsql ) 7534 ret = new TSelectSqlStatement(pdbvendor); 7535 7536 break; 7537 } 7538 case sstinsert: 7539 { 7540 boolean lcisnewsql = true; 7541 if ( pstate != EFindSqlStateType.stnormal ) 7542 { 7543 if ( (lccurrentsqlstatement != null) ) 7544 { 7545 7546 } 7547 } 7548 7549 if ( lcisnewsql ) 7550 ret = new TInsertSqlStatement(pdbvendor); 7551 7552 break; 7553 } 7554 case sstupdate: 7555 { 7556 boolean lcisnewsql = true; 7557 if ( pstate != EFindSqlStateType.stnormal ) 7558 { 7559 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7560 if ( (lcprevsolidtoken != null) ) 7561 { // 7562 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 7563 lcisnewsql = false; 7564 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 7565 lcisnewsql = false; 7566 } 7567 7568 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 7569 if ( (lcnextsolidtoken != null) ) 7570 { 7571 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 7572 { 7573 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 7574 if ( k == 0 ) lcisnewsql = false; 7575 } 7576 } 7577 7578 7579 if ( (lccurrentsqlstatement != null) ) 7580 { 7581 } 7582 } 7583 7584 if ( lcisnewsql ) 7585 { 7586 ret = new TUpdateSqlStatement(pdbvendor); 7587 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 7588 } 7589 break; 7590 } 7591 case sstdelete: 7592 { 7593 boolean lcisnewsql = true; 7594 7595 if ( pstate != EFindSqlStateType.stnormal ) 7596 { 7597 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 7598 if ( (lcprevsolidtoken != null) ) 7599 { 7600 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 7601 lcisnewsql = false; 7602 } 7603 7604 if ( (lccurrentsqlstatement != null) ) 7605 { 7606 } 7607 } 7608 7609 if ( lcisnewsql ) 7610 ret = new TDeleteSqlStatement(pdbvendor); 7611 7612 break; 7613 } 7614 case sstmerge: 7615 { 7616 ret = new TMergeSqlStatement(pdbvendor); 7617 ret.sqlstatementtype = gnewsqlstatementtype; 7618 break; 7619 } 7620 case sstoraclecommit: 7621 { 7622 ret = new TUnknownSqlStatement(pdbvendor); 7623 ret.sqlstatementtype = gnewsqlstatementtype; 7624 break; 7625 } 7626 case sstoraclerollback: 7627 { 7628 ret = new TUnknownSqlStatement(pdbvendor); 7629 ret.sqlstatementtype = gnewsqlstatementtype; 7630 break; 7631 } 7632 case sstoraclerevoke: 7633 { 7634 ret = new TUnknownSqlStatement(pdbvendor); 7635 ret.sqlstatementtype = gnewsqlstatementtype; 7636 break; 7637 } 7638 case sstoraclegrant: 7639 { 7640 ret = new TUnknownSqlStatement(pdbvendor); 7641 ret.sqlstatementtype = gnewsqlstatementtype; 7642 break; 7643 } 7644 case sstcreatetable: 7645 { 7646 ret = new TCreateTableSqlStatement(pdbvendor); 7647 break; 7648 } 7649 case sstoraclecreateview: 7650 { 7651 ret = new TCreateViewSqlStatement(pdbvendor); 7652 break; 7653 } 7654 case sstAlterAccount: 7655 { 7656 ret = new TAlterAccountStmt(pdbvendor); 7657 break; 7658 } 7659 case sstalterdatabase: 7660 { 7661 ret = new TAlterDatabaseStmt(pdbvendor); 7662 break; 7663 } 7664 case sstAlterFileFormat: 7665 { 7666 ret = new TAlterFileFormatStmt(pdbvendor); 7667 break; 7668 } 7669 case sstalterfunction: 7670 { 7671 ret = new TAlterFunctionStmt(pdbvendor); 7672 break; 7673 } 7674 case sstAlterNetworkPolicy: 7675 { 7676 ret = new TAlterNetworkPolicyStmt(pdbvendor); 7677 break; 7678 } 7679 case sstAlterPipe: 7680 { 7681 ret = new TAlterPipeStmt(pdbvendor); 7682 break; 7683 } 7684 case sstAlterResourceMonitor: 7685 { 7686 ret = new TAlterResourceMonitorStmt(pdbvendor); 7687 break; 7688 } 7689 case sstAlterRole: 7690 { 7691 ret = new TAlterRoleStmt(pdbvendor); 7692 break; 7693 } 7694 case sstAlterSchema: 7695 { 7696 ret = new TAlterSchemaStmt(pdbvendor); 7697 break; 7698 } 7699 case sstaltersequence: 7700 { 7701 ret = new TAlterSequenceStatement(pdbvendor); 7702 break; 7703 } 7704 case sstaltersession: 7705 { 7706 ret = new TAlterSessionStatement(pdbvendor); 7707 break; 7708 } 7709 case sstAlterStage: 7710 { 7711 ret = new TAlterStageStmt(pdbvendor); 7712 break; 7713 } 7714 case sstalteruser: 7715 { 7716 ret = new TAlterUserStmt(pdbvendor); 7717 break; 7718 } 7719 case sstAlterShare: 7720 { 7721 ret = new TAlterShareStmt(pdbvendor); 7722 break; 7723 } 7724 case sstalterview: 7725 { 7726 ret = new TAlterViewStatement(pdbvendor); 7727 break; 7728 } 7729 case sstAlterWarehouse: 7730 { 7731 ret = new TAlterWarehouseStmt(pdbvendor); 7732 break; 7733 } 7734 case sstBegin: 7735 { 7736 boolean isblock = false; 7737 int numOfSolidToken = 0; 7738 // if linebreak appears before the ;, then it a block, else it a 7739 TSourceToken st ; 7740 if (lcpos == lcsourcetokenlist.size() - 1){ 7741 // this is the last token 7742 }else{ 7743 for(int i=lcpos+1;i<lcsourcetokenlist.size();i++){ 7744 st = lcsourcetokenlist.get(i); 7745 if (st.issolidtoken()){ 7746 numOfSolidToken++; 7747 } 7748 // Check for newline before semicolon - if found, must be a block 7749 if (st.tokencode == TBaseType.lexnewline) { 7750 isblock = true; 7751 // Continue to look for semicolon to complete the check 7752 } 7753 7754 if (st.tokencode == ';') { 7755 if (numOfSolidToken<=3){ 7756 7757 }else{ 7758 isblock = true; 7759 } 7760 break; 7761 } 7762 7763 if (numOfSolidToken > 3){ 7764 isblock = true; 7765 break; 7766 } 7767 } 7768 } 7769 7770 if (isblock){ 7771 ret = new TCommonBlock(pdbvendor); 7772 gnewsqlstatementtype = ret.sqlstatementtype; 7773 }else{ 7774 ret = new TBeginTran(pdbvendor); 7775 pcst.tokencode = TBaseType.rrw_snowflake_begin_transaction; 7776 } 7777 7778 7779 break; 7780 } 7781 case sstbegintran: 7782 { 7783 ret = new TBeginTran(pdbvendor); 7784 if (pcst.tokencode == TBaseType.rrw_begin){ 7785 pcst.tokencode = TBaseType.rrw_snowflake_begin_transaction; 7786 } 7787 7788 break; 7789 } 7790 case sstcomment: 7791 { 7792 ret = new TCommentOnSqlStmt(pdbvendor); 7793 break; 7794 } 7795 case sstcommit: 7796 { 7797 ret = new TCommitStmt(pdbvendor); 7798 break; 7799 } 7800 case sstCopyInto: 7801 { 7802 ret = new TSnowflakeCopyIntoStmt(pdbvendor); 7803 break; 7804 } 7805 case sstcreatedatabase: 7806 { 7807 ret = new TCreateDatabaseSqlStatement(pdbvendor); 7808 break; 7809 } 7810 case sstCreateFileFormat: 7811 { 7812 ret = new TCreateFileFormatStmt(pdbvendor); 7813 break; 7814 } 7815 case sstcreatefunction: 7816 { 7817 ret = new TCreateFunctionStmt(pdbvendor); 7818 break; 7819 } 7820 case sstCreateNetworkPolicy: 7821 { 7822 ret = new TCreateNetworkPolicyStmt(pdbvendor); 7823 break; 7824 } 7825 case sstCreatePipe: 7826 { 7827 ret = new TCreatePipeStmt(pdbvendor); 7828 break; 7829 } 7830 case sstCreateResourceMonitor: 7831 { 7832 ret = new TCreateResourceMonitorStmt(pdbvendor); 7833 break; 7834 } 7835 case sstcreaterole: 7836 { 7837 ret = new TCreateRoleStmt(pdbvendor); 7838 break; 7839 } 7840 case sstcreateschema: 7841 { 7842 ret = new TCreateSchemaSqlStatement(pdbvendor); 7843 break; 7844 } 7845 case sstcreatesequence: 7846 { 7847 ret = new TCreateSequenceStmt(pdbvendor); 7848 break; 7849 } 7850 case sstCreateShare: 7851 { 7852 ret = new TCreateShareStmt(pdbvendor); 7853 break; 7854 } 7855 case sstCreateStage: 7856 { 7857 ret = new TCreateStageStmt(pdbvendor); 7858 break; 7859 } 7860 case sstcreateuser: 7861 { 7862 ret = new TCreateUserStmt(pdbvendor); 7863 break; 7864 } 7865 case sstCreateWarehouse: 7866 { 7867 ret = new TCreateWarehouseStmt(pdbvendor); 7868 break; 7869 } 7870 case sstDescFileFormat: 7871 case sstDescFunction: 7872 case sstDescNetworkPolicy: 7873 case sstDescPipe: 7874 case sstDescResult: 7875 case sstDescShare: 7876 case sstDescStage: 7877 case sstDescTable: 7878 case sstDescUser: 7879 case sstDescView: 7880 case sstDescStorage: 7881 { 7882 ret = new TDescribeStmt(pdbvendor); 7883 break; 7884 } 7885 case sstdropfunction: 7886 { 7887 ret = new TDropFunctionStmt(pdbvendor); 7888 break; 7889 } 7890 case sstdropdatabase: 7891 { 7892 ret = new TDropDatabaseStmt(pdbvendor); 7893 break; 7894 } 7895 case sstDropFileFormat: 7896 { 7897 ret = new TDropStmt(pdbvendor); 7898 ret.sqlstatementtype = gnewsqlstatementtype; 7899 break; 7900 } 7901 case sstDropNetworkPolicy: 7902 { 7903 ret = new TDropStmt(pdbvendor); 7904 ret.sqlstatementtype = gnewsqlstatementtype; 7905 break; 7906 } 7907 case sstDropPipe: 7908 { 7909 ret = new TDropStmt(pdbvendor); 7910 ret.sqlstatementtype = gnewsqlstatementtype; 7911 break; 7912 } 7913 case sstDropResourceMonitor: 7914 { 7915 ret = new TDropStmt(pdbvendor); 7916 ret.sqlstatementtype = gnewsqlstatementtype; 7917 break; 7918 } 7919 case sstdroprole: 7920 { 7921 ret = new TDropRoleStmt(pdbvendor); 7922 break; 7923 } 7924 case sstdropschema: 7925 { 7926 ret = new TDropSchemaSqlStatement(pdbvendor); 7927 break; 7928 } 7929 case sstDropShare: 7930 { 7931 ret = new TDropStmt(pdbvendor); 7932 ret.sqlstatementtype = gnewsqlstatementtype; 7933 break; 7934 } 7935 case sstDropStage: 7936 { 7937 ret = new TDropStmt(pdbvendor); 7938 ret.sqlstatementtype = gnewsqlstatementtype; 7939 break; 7940 } 7941 case sstdroptable: 7942 { 7943 ret = new TDropTableSqlStatement(pdbvendor); 7944 break; 7945 } 7946 case sstdropuser: 7947 { 7948 ret = new TDropUserStmt(pdbvendor); 7949 break; 7950 } 7951 case sstdropview: 7952 { 7953 ret = new TDropViewSqlStatement(pdbvendor); 7954 break; 7955 } 7956 case sstDropWarehouse: 7957 { 7958 ret = new TDropStmt(pdbvendor); 7959 ret.sqlstatementtype = gnewsqlstatementtype; 7960 break; 7961 } 7962 case sstGet: 7963 { 7964 ret = new TGetStmt(pdbvendor); 7965 break; 7966 } 7967 case sstGrant: 7968 { 7969 ret = new TGrantStmt(pdbvendor); 7970 break; 7971 } 7972 case sstList: 7973 { 7974 ret = new TListStmt(pdbvendor); 7975 break; 7976 } 7977 case sstPut: 7978 { 7979 ret = new TPutStmt(pdbvendor); 7980 break; 7981 } 7982 case sstRemove: 7983 { 7984 ret = new TRemoveStmt(pdbvendor); 7985 break; 7986 } 7987 case sstRevoke: 7988 { 7989 ret = new TRevokeStmt(pdbvendor); 7990 break; 7991 } 7992 case sstrollback: 7993 { 7994 ret = new TRollbackStmt(pdbvendor); 7995 break; 7996 } 7997 case sstset: 7998 { 7999 ret = new TSetStmt(pdbvendor); 8000 break; 8001 } 8002 case sstShowColumns: 8003 case sstShowDatabases: 8004 case sstShowFileFormats: 8005 case sstShowFunctions: 8006 case sstShowGrants: 8007 case sstShowNetworkPolicies: 8008 case sstShowObjects: 8009 case sstShowParameters: 8010 case sstShowPipes: 8011 case sstShowResourceMonitors: 8012 case sstShowRoles: 8013 case sstShowSchemas: 8014 case sstShowSequences: 8015 case sstShowShares: 8016 case sstShowStages: 8017 case sstShowTables: 8018 case sstShowTransactions: 8019 case sstShowUserFunctions: 8020 case sstShowUsers: 8021 case sstShowVariables: 8022 case sstShowViews: 8023 case sstShowWarehouses: 8024 case sstShowProcedures: 8025 case sstShowTasks: 8026 case sstShowStreams: 8027 { 8028 ret = new TShowStmt(pdbvendor); 8029 ret.sqlstatementtype = gnewsqlstatementtype; 8030 break; 8031 } 8032 case sstTruncate: 8033 { 8034 ret = new TTruncateStatement(pdbvendor); 8035 8036 break; 8037 } 8038 case sstUndropDatabase: 8039 case sstUndropSchema: 8040 case sstUndropTable: 8041 { 8042 ret = new TUndropStmt(pdbvendor); 8043 ret.sqlstatementtype = gnewsqlstatementtype; 8044 break; 8045 } 8046 case sstunset: 8047 { 8048 ret = new TUnsetStmt(pdbvendor); 8049 break; 8050 } 8051 case sstcreatematerializedview:{ 8052 ret = new TCreateMaterializedSqlStatement(pdbvendor); 8053 break; 8054 } 8055 case sstoraclecreateindex: 8056 { 8057 ret = new TCreateIndexSqlStatement(pdbvendor); 8058 break; 8059 } 8060 case sstoracledroptable: 8061 { 8062 ret = new TDropTableSqlStatement(pdbvendor); 8063 break; 8064 } 8065 case sstoracledropview: 8066 { 8067 ret = new TDropViewSqlStatement(pdbvendor); 8068 break; 8069 } 8070 case sstoracledropindex: 8071 { 8072 ret = new TDropIndexSqlStatement(pdbvendor); 8073 break; 8074 } 8075 case sstaltertable: 8076 { 8077 ret = new TAlterTableStatement(pdbvendor); 8078 break; 8079 } 8080 case sstoraclealtersession: 8081 { 8082 ret = new TAlterSessionStatement(pdbvendor); 8083 break; 8084 } 8085 case sstplsql_createfunction: 8086 { 8087 ret = new TPlsqlCreateFunction(pdbvendor); 8088 ret.sqlstatementtype = gnewsqlstatementtype; 8089 // System.out.println(gnewsqlstatementtype); 8090 break; 8091 } 8092 case sstCommentOn: 8093 { 8094 ret = new TCommentOnSqlStmt(pdbvendor); 8095 break; 8096 } 8097 case sstoraclecreatesequence: 8098 { 8099 ret = new TCreateSequenceStmt(pdbvendor); 8100 break; 8101 } 8102 case sstpostgresqlCreateIndex: 8103 ret = new TCreateIndexSqlStatement(pdbvendor); 8104 break; 8105 case sstpostgresqlCreateView: 8106 ret = new TCreateViewSqlStatement(pdbvendor); 8107 break; 8108 case sstpostgresqlCreateFunction: 8109 ret = new TCreateFunctionStmt(pdbvendor); 8110 break; 8111// case sstcreatetrigger: 8112// ret = new TCreateTriggerStmt(pdbvendor); 8113// break; 8114 case sstpostgresqlTruncate: 8115 ret = new TTruncateStatement(pdbvendor); 8116 break; 8117 case sstpostgresqlDropTable: 8118 ret = new TDropTableSqlStatement(pdbvendor); 8119 break; 8120 case sstcreateview: 8121 ret = new TCreateViewSqlStatement(pdbvendor); 8122 break; 8123 case sstcall: 8124 ret = new TCallStatement(pdbvendor); 8125 break; 8126 case sstSnowflakePseudoExprStmt: 8127 ret = new TPseudoExprStmt(pdbvendor); 8128 break; 8129 case sstcreateprocedure: 8130 ret = new TCreateProcedureStmt(pdbvendor); 8131 break; 8132 case sstCreateStream: 8133 ret = new TCreateStreamStmt(pdbvendor); 8134 break; 8135 case sstUse: 8136 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 8137 if (lcnextsolidtoken != null){ 8138 if (lcnextsolidtoken.toString().equalsIgnoreCase("database")){ 8139 ret = new TUseDatabase(pdbvendor); 8140 }else if (lcnextsolidtoken.toString().equalsIgnoreCase("role")){ 8141 ret = new TUseRole(pdbvendor); 8142 }else if (lcnextsolidtoken.toString().equalsIgnoreCase("warehouse")){ 8143 ret = new TUseWarehouse(pdbvendor); 8144 // non-identifier-compare: keyword token text, not a db object name 8145 }else if (lcnextsolidtoken.toString().equalsIgnoreCase("schema")){ 8146 ret = new TUseSchema(pdbvendor); 8147 }else{ 8148 // MantisBT 4677 — same rule as the modular splitter 8149 // (TSqlCmdsSnowflake). This monolithic path is still 8150 // reachable via SqlCmdsFactory.setUseModularProviders(false), 8151 // so leaving it behind would keep the bug alive in that mode 8152 // and put the two splitters at odds with each other. 8153 // issnowflake() is Snowflake-only, so no other vendor moves. 8154 ret = SnowflakeUseTarget.of(lcsourcetokenlist, lcpos) == SnowflakeUseTarget.SCHEMA 8155 ? new TUseSchema(pdbvendor) 8156 : new TUseDatabase(pdbvendor); 8157 } 8158 8159 }else{ 8160 ret = new TUnknownSqlStatement(pdbvendor); 8161 ret.sqlstatementtype = gnewsqlstatementtype; 8162 } 8163 break; 8164 case sstExecute: 8165 { 8166 ret = new TExecuteSqlStatement(pdbvendor); 8167 break; 8168 } 8169 case sstAlterTask: 8170 ret = new TAlterTaskStmt(pdbvendor); 8171 break; 8172 case sstCreateTask: 8173 ret = new TCreateTaskStmt(pdbvendor); 8174 break; 8175 case sstAlterMaterializedView: 8176 ret = new TAlterMaterializedViewStmt(pdbvendor); 8177 break; 8178 case sstDropMaterializedView: 8179 ret = new TDropMaterializedViewStmt(pdbvendor); 8180 break; 8181 case sstdropprocedure: 8182 ret = new TDropProcedureStmt(pdbvendor); 8183 break; 8184 case sstUseSecondaryRoles: 8185 ret = new TUseSecondaryRolesStmt(pdbvendor); 8186 break; 8187 case sstDropStreamlit: 8188 ret = new TDropStmt(pdbvendor); 8189 break; 8190 case sstDropStream: 8191 ret = new TDropStreamStmt(pdbvendor); 8192 break; 8193 default: 8194 { 8195 ret = new TUnknownSqlStatement(pdbvendor); 8196 ret.sqlstatementtype = gnewsqlstatementtype; 8197 break; 8198 } 8199 } // case 8200 8201 return ret; 8202} 8203 8204TCustomSqlStatement isgreenplum(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 8205 TCustomSqlStatement ret = null; 8206 8207 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 8208 8209 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 8210 || (pcst.tokencode == TBaseType.cmtslashstar) 8211 || (pcst.tokencode == TBaseType.lexspace) 8212 || (pcst.tokencode == TBaseType.lexnewline) 8213 || (pcst.tokentype == ETokenType.ttsemicolon) ) 8214 { 8215 return null; 8216 } 8217 8218 int lcpos = pcst.posinlist; 8219 TSourceTokenList lcsourcetokenlist = pcst.container; 8220 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 8221 8222 //subquery after semicolon or at first line 8223 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 8224 { 8225 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 8226 if ( k >0 ) 8227 { 8228 ret = new TSelectSqlStatement(pdbvendor); 8229 } 8230 8231 return ret; 8232 } 8233 8234 //cte 8235 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 8236 { 8237 ret = findcte(pcst,pdbvendor); 8238 if ( (ret != null) ) return ret; 8239 } 8240 8241 gnewsqlstatementtype = findgreenplumcmd(pcst); 8242 8243 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8244 switch (gnewsqlstatementtype) { // 8245 case sstinvalid: 8246 { 8247 ret = null; 8248 8249 if ( pstate == EFindSqlStateType.stnormal ) 8250 { 8251 if ( pcst.tokencode == TBaseType.label_begin ) 8252 { 8253 ret = new TCommonBlock(pdbvendor); 8254 gnewsqlstatementtype = ret.sqlstatementtype; 8255 } 8256 else if ( pcst.tokencode == TBaseType.rrw_declare ) 8257 { 8258 ret = new TCommonBlock(pdbvendor); 8259 gnewsqlstatementtype = ret.sqlstatementtype; 8260 } 8261 else if ( pcst.tokencode == TBaseType.rrw_begin ) 8262 { 8263 ret = new TCommonBlock(pdbvendor); 8264 gnewsqlstatementtype = ret.sqlstatementtype; 8265 } 8266 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 8267 { 8268 ret = new TPlsqlCreateProcedure(pdbvendor); 8269 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 8270 gnewsqlstatementtype = ret.sqlstatementtype; 8271 } 8272 else if ( pcst.tokencode == TBaseType.rrw_function ) 8273 { 8274 ret = new TPlsqlCreateFunction(pdbvendor); 8275 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 8276 gnewsqlstatementtype = ret.sqlstatementtype; 8277 } 8278 else if ( pcst.tokencode == TBaseType.rrw_package ) 8279 { 8280 ret = new TPlsqlCreatePackage(pdbvendor); 8281 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 8282 gnewsqlstatementtype = ret.sqlstatementtype; 8283 } 8284 } 8285 break; 8286 } 8287 case sstselect: 8288 { 8289 boolean lcisnewsql = true; 8290 8291 if ( pstate != EFindSqlStateType.stnormal ) 8292 { 8293 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8294 if ( (lcprevsolidtoken != null) ) 8295 { 8296 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 8297 lcisnewsql = false; //subqery 8298 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 8299 lcisnewsql = false; 8300 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 8301 lcisnewsql = false; 8302 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 8303 lcisnewsql = false; 8304 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 8305 lcisnewsql = false; 8306 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 8307 lcisnewsql = false; 8308 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 8309 { 8310 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 8311 lcisnewsql = false; 8312 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 8313 lcisnewsql = false; 8314 } 8315 8316 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 8317 { 8318 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 8319 if ( (lcpprevsolidtoken != null) ) 8320 { 8321 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 8322 lcisnewsql = false; 8323 } 8324 } 8325 8326 } 8327 8328 8329 if ( (lccurrentsqlstatement != null) ) 8330 { 8331 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 8332 lcisnewsql = false; 8333 } 8334 8335 } 8336 8337 if ( lcisnewsql ) 8338 ret = new TSelectSqlStatement(pdbvendor); 8339 8340 break; 8341 } 8342 case sstinsert: 8343 { 8344 boolean lcisnewsql = true; 8345 if ( pstate != EFindSqlStateType.stnormal ) 8346 { 8347 if ( (lccurrentsqlstatement != null) ) 8348 { 8349 8350 } 8351 } 8352 8353 if ( lcisnewsql ) 8354 ret = new TInsertSqlStatement(pdbvendor); 8355 8356 break; 8357 } 8358 case sstupdate: 8359 { 8360 boolean lcisnewsql = true; 8361 if ( pstate != EFindSqlStateType.stnormal ) 8362 { 8363 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8364 if ( (lcprevsolidtoken != null) ) 8365 { // 8366 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 8367 lcisnewsql = false; 8368 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 8369 lcisnewsql = false; 8370 } 8371 8372 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 8373 if ( (lcnextsolidtoken != null) ) 8374 { 8375 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 8376 { 8377 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 8378 if ( k == 0 ) lcisnewsql = false; 8379 } 8380 } 8381 8382 8383 if ( (lccurrentsqlstatement != null) ) 8384 { 8385 } 8386 } 8387 8388 if ( lcisnewsql ) 8389 { 8390 ret = new TUpdateSqlStatement(pdbvendor); 8391 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 8392 } 8393 break; 8394 } 8395 case sstdelete: 8396 { 8397 boolean lcisnewsql = true; 8398 8399 if ( pstate != EFindSqlStateType.stnormal ) 8400 { 8401 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8402 if ( (lcprevsolidtoken != null) ) 8403 { 8404 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 8405 lcisnewsql = false; 8406 } 8407 8408 if ( (lccurrentsqlstatement != null) ) 8409 { 8410 } 8411 } 8412 8413 if ( lcisnewsql ) 8414 ret = new TDeleteSqlStatement(pdbvendor); 8415 8416 break; 8417 } 8418 case sstmerge: 8419 { 8420 ret = new TMergeSqlStatement(pdbvendor); 8421 ret.sqlstatementtype = gnewsqlstatementtype; 8422 break; 8423 } 8424 case sstoraclecommit: 8425 { 8426 ret = new TUnknownSqlStatement(pdbvendor); 8427 ret.sqlstatementtype = gnewsqlstatementtype; 8428 break; 8429 } 8430 case sstoraclerollback: 8431 { 8432 ret = new TUnknownSqlStatement(pdbvendor); 8433 ret.sqlstatementtype = gnewsqlstatementtype; 8434 break; 8435 } 8436 case sstoraclesavepoint: 8437 { 8438 ret = new TUnknownSqlStatement(pdbvendor); 8439 ret.sqlstatementtype = gnewsqlstatementtype; 8440 break; 8441 } 8442 case sstoraclerevoke: 8443 { 8444 ret = new TUnknownSqlStatement(pdbvendor); 8445 ret.sqlstatementtype = gnewsqlstatementtype; 8446 break; 8447 } 8448 case sstoraclegrant: 8449 { 8450 ret = new TUnknownSqlStatement(pdbvendor); 8451 ret.sqlstatementtype = gnewsqlstatementtype; 8452 break; 8453 } 8454 case sstoracleanalyze: 8455 { 8456 ret = new TUnknownSqlStatement(pdbvendor); 8457 ret.sqlstatementtype = gnewsqlstatementtype; 8458 break; 8459 } 8460 case sstoracletruncate: 8461 { 8462 ret = new TUnknownSqlStatement(pdbvendor); 8463 ret.sqlstatementtype = gnewsqlstatementtype; 8464 break; 8465 } 8466 case sstcreatetable: 8467 case sstgreenplumCreateExternalTable: 8468 { 8469 ret = new TCreateTableSqlStatement(pdbvendor); 8470 break; 8471 } 8472 case sstoraclecreateview: 8473 { 8474 ret = new TCreateViewSqlStatement(pdbvendor); 8475 break; 8476 } 8477 case sstcreatematerializedview:{ 8478 ret = new TCreateMaterializedSqlStatement(pdbvendor); 8479 break; 8480 } 8481 case sstoraclecreateindex: 8482 { 8483 ret = new TCreateIndexSqlStatement(pdbvendor); 8484 break; 8485 } 8486 case sstoraclecreatedatabase: 8487 { 8488 ret = new TCreateDatabaseSqlStatement(pdbvendor); 8489 break; 8490 } 8491 case sstoracledroptable: 8492 { 8493 ret = new TDropTableSqlStatement(pdbvendor); 8494 break; 8495 } 8496 case sstoracledropview: 8497 { 8498 ret = new TDropViewSqlStatement(pdbvendor); 8499 break; 8500 } 8501 case sstoracledropindex: 8502 { 8503 ret = new TDropIndexSqlStatement(pdbvendor); 8504 break; 8505 } 8506 case sstaltertable: 8507 { 8508 ret = new TAlterTableStatement(pdbvendor); 8509 break; 8510 } 8511 case sstoraclealtersession: 8512 { 8513 ret = new TAlterSessionStatement(pdbvendor); 8514 break; 8515 } 8516 case sstplsql_createprocedure: 8517 { 8518 ret = new TPlsqlCreateProcedure(pdbvendor); 8519 ret.sqlstatementtype = gnewsqlstatementtype; 8520 // System.out.println(gnewsqlstatementtype); 8521 break; 8522 } 8523 case sstplsql_createfunction: 8524 { 8525 ret = new TPlsqlCreateFunction(pdbvendor); 8526 ret.sqlstatementtype = gnewsqlstatementtype; 8527 // System.out.println(gnewsqlstatementtype); 8528 break; 8529 } 8530 case sstplsql_createpackage: 8531 { 8532 ret = new TPlsqlCreatePackage(pdbvendor); 8533 ret.sqlstatementtype = gnewsqlstatementtype; 8534 // System.out.println(gnewsqlstatementtype); 8535 break; 8536 } 8537 case sstplsql_createtrigger: 8538 { 8539 ret = new TPlsqlCreateTrigger(pdbvendor); 8540 ret.sqlstatementtype = gnewsqlstatementtype; 8541 // System.out.println(gnewsqlstatementtype); 8542 break; 8543 } 8544 case sstplsql_execimmestmt: 8545 { 8546 ret = new TExecImmeStmt(pdbvendor); 8547 // ret.sqlstatementtype = gnewsqlstatementtype; 8548 // System.out.println(gnewsqlstatementtype); 8549 break; 8550 } 8551 case sstoraclecreatepackagebody: 8552 { 8553 ret = new TPlsqlCreatePackage(pdbvendor); 8554 ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 8555 break; 8556 } 8557 case sstplsql_createtype_placeholder: 8558 { 8559 ret = new TPlsqlCreateType_Placeholder(pdbvendor); 8560 ret.sqlstatementtype = gnewsqlstatementtype; 8561 // System.out.println(gnewsqlstatementtype); 8562 break; 8563 } 8564 case sstplsql_createtypebody: 8565 { 8566 ret = new TPlsqlCreateTypeBody(pdbvendor); 8567 ret.sqlstatementtype = gnewsqlstatementtype; 8568 break; 8569 } 8570 case sstCommentOn: 8571 { 8572 ret = new TCommentOnSqlStmt(pdbvendor); 8573 break; 8574 } 8575 case sstoraclecreatesequence: 8576 { 8577 ret = new TCreateSequenceStmt(pdbvendor); 8578 break; 8579 } 8580 case sstoraclecreatesynonym: 8581 { 8582 ret = new TCreateSynonymStmt(pdbvendor); 8583 break; 8584 } 8585 case sstoraclecreatedirectory: 8586 { 8587 ret = new TOracleCreateDirectoryStmt(pdbvendor); 8588 break; 8589 } 8590 case sstpostgresqlCreateIndex: 8591 ret = new TCreateIndexSqlStatement(pdbvendor); 8592 break; 8593 case sstpostgresqlCreateView: 8594 ret = new TCreateViewSqlStatement(pdbvendor); 8595 break; 8596 case sstpostgresqlCreateFunction: 8597 ret = new TCreateFunctionStmt(pdbvendor); 8598 break; 8599 case sstcreatetrigger: 8600 ret = new TCreateTriggerStmt(pdbvendor); 8601 break; 8602 case sstpostgresqlMove: 8603 ret = new TMoveStmt(EDbVendor.dbvgreenplum); 8604 break; 8605 case sstpostgresqlTruncate: 8606 ret = new TTruncateStatement(EDbVendor.dbvgreenplum); 8607 break; 8608 case sstpostgresqlExecute: 8609 ret = new TExecuteSqlStatement(EDbVendor.dbvgreenplum); 8610 break; 8611 case sstValues: 8612 ret = new TSelectSqlStatement(EDbVendor.dbvgreenplum); 8613 break; 8614 case sstpostgresqlDeclare: { 8615 boolean lcisnewsql = true; 8616 8617 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos, 2, false); 8618 if ((lcnextsolidtoken != null)) { 8619 if (lcnextsolidtoken.tokencode == TBaseType.rrw_greenplum_CURSOR) { 8620 lcisnewsql = false; 8621 } 8622 } 8623 8624 8625 if (lcisnewsql) 8626 ret = new TCommonBlock(pdbvendor); 8627 else { 8628 ret = new TUnknownSqlStatement(pdbvendor); 8629 } 8630 ret.sqlstatementtype = gnewsqlstatementtype; 8631 8632 break; 8633 } 8634 case sstpostgresqlSet: 8635 ret = new TSetStmt(pdbvendor); 8636 break; 8637 case sstcreateExtension: 8638 ret = new TCreateExtensionStmt(pdbvendor); 8639 break; 8640 case sstcall: 8641 ret = new TCallStatement(pdbvendor); 8642 break; 8643 case sstpostgresqlCreateSchema: 8644 ret = new TCreateSchemaSqlStatement(pdbvendor); 8645 break; 8646 case sstpostgresqlDo: { 8647 boolean lcisnewsql = false; 8648 8649 if (pstate == EFindSqlStateType.stnormal) { 8650 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos, 1, false); 8651 if ((lcnextsolidtoken != null)) { 8652 if (lcnextsolidtoken.tokencode == TBaseType.rrw_greenplum_function_delimiter) 8653 lcisnewsql = true; 8654 else if (lcnextsolidtoken.tokencode == TBaseType.rrw_greenplum_language) 8655 lcisnewsql = true; 8656 } 8657 } 8658 8659 if (lcisnewsql) 8660 ret = new TDoExecuteBlockStmt(pdbvendor); 8661 8662 break; 8663 } 8664 case sstpostgresqlComment: 8665 ret = new TCommentOnSqlStmt(pdbvendor); 8666 break; 8667 default: 8668 { 8669 ret = new TUnknownSqlStatement(pdbvendor); 8670 ret.sqlstatementtype = gnewsqlstatementtype; 8671 break; 8672 } 8673 } // case 8674 8675 return ret; 8676 } 8677 8678TCustomSqlStatement isoraclesql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 8679 TCustomSqlStatement ret = null; 8680 8681 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 8682 8683 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 8684 || (pcst.tokencode == TBaseType.cmtslashstar) 8685 || (pcst.tokencode == TBaseType.lexspace) 8686 || (pcst.tokencode == TBaseType.lexnewline) 8687 || (pcst.tokentype == ETokenType.ttsemicolon) ) 8688 { 8689 return null; 8690 } 8691 8692 int lcpos = pcst.posinlist; 8693 TSourceTokenList lcsourcetokenlist = pcst.container; 8694 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 8695 8696 //subquery after semicolon or at first line 8697 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 8698 { 8699 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 8700 if ( k >0 ) 8701 { 8702 ret = new TSelectSqlStatement(pdbvendor); 8703 } 8704 8705 return ret; 8706 } 8707 8708 //cte 8709 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 8710 { 8711 ret = findcte(pcst,pdbvendor); 8712 if ( (ret != null) ) return ret; 8713 } 8714 8715 gnewsqlstatementtype = findoraclecmd(pcst); 8716 8717 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8718 switch (gnewsqlstatementtype) { // 8719 case sstinvalid: 8720 { 8721 ret = null; 8722 8723 if ( pstate == EFindSqlStateType.stnormal ) 8724 { 8725 if ( pcst.tokencode == TBaseType.label_begin ) 8726 { 8727 ret = new TCommonBlock(pdbvendor); 8728 gnewsqlstatementtype = ret.sqlstatementtype; 8729 } 8730 else if ( pcst.tokencode == TBaseType.rrw_declare ) 8731 { 8732 ret = new TCommonBlock(pdbvendor); 8733 gnewsqlstatementtype = ret.sqlstatementtype; 8734 } 8735 else if ( pcst.tokencode == TBaseType.rrw_begin ) 8736 { 8737 ret = new TCommonBlock(pdbvendor); 8738 gnewsqlstatementtype = ret.sqlstatementtype; 8739 } 8740 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 8741 { 8742 ret = new TPlsqlCreateProcedure(pdbvendor); 8743 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 8744 gnewsqlstatementtype = ret.sqlstatementtype; 8745 } 8746 else if ( pcst.tokencode == TBaseType.rrw_function ) 8747 { 8748 ret = new TPlsqlCreateFunction(pdbvendor); 8749 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 8750 gnewsqlstatementtype = ret.sqlstatementtype; 8751 } 8752 else if ( pcst.tokencode == TBaseType.rrw_package ) 8753 { 8754 ret = new TPlsqlCreatePackage(pdbvendor); 8755 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 8756 gnewsqlstatementtype = ret.sqlstatementtype; 8757 } 8758 } 8759 break; 8760 } 8761 case sstselect: 8762 { 8763 boolean lcisnewsql = true; 8764 8765 if ( pstate != EFindSqlStateType.stnormal ) 8766 { 8767 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8768 if ( (lcprevsolidtoken != null) ) 8769 { 8770 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 8771 lcisnewsql = false; //subquery 8772 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 8773 lcisnewsql = false; 8774 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 8775 lcisnewsql = false; 8776 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 8777 lcisnewsql = false; 8778 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 8779 lcisnewsql = false; 8780 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 8781 lcisnewsql = false; 8782 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 8783 { 8784 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 8785 lcisnewsql = false; 8786 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 8787 lcisnewsql = false; 8788 } 8789 8790 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 8791 { 8792 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 8793 if ( (lcpprevsolidtoken != null) ) 8794 { 8795 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 8796 lcisnewsql = false; 8797 } 8798 } 8799 8800 } 8801 8802 8803 if ( (lccurrentsqlstatement != null) ) 8804 { 8805 switch (lccurrentsqlstatement.sqlstatementtype){ 8806 case sstinsert: 8807 lcisnewsql = false; 8808 break; 8809 case sstcreatetable: 8810 case sstcreateview: 8811 lcisnewsql = false; 8812 break; 8813 } 8814 } 8815 8816 } 8817 8818 if ( lcisnewsql ) 8819 ret = new TSelectSqlStatement(pdbvendor); 8820 8821 break; 8822 } 8823 case sstinsert: 8824 { 8825 boolean lcisnewsql = true; 8826 if ( pstate != EFindSqlStateType.stnormal ) 8827 { 8828 if ( (lccurrentsqlstatement != null) ) 8829 { 8830 8831 } 8832 } 8833 8834 if ( lcisnewsql ) 8835 ret = new TInsertSqlStatement(pdbvendor); 8836 8837 break; 8838 } 8839 case sstupdate: 8840 { 8841 boolean lcisnewsql = true; 8842 if ( pstate != EFindSqlStateType.stnormal ) 8843 { 8844 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8845 if ( (lcprevsolidtoken != null) ) 8846 { // 8847 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 8848 lcisnewsql = false; 8849 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 8850 lcisnewsql = false; 8851 } 8852 8853 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 8854 if ( (lcnextsolidtoken != null) ) 8855 { 8856 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 8857 { 8858 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 8859 if ( k == 0 ) lcisnewsql = false; 8860 } 8861 } 8862 8863 8864 if ( (lccurrentsqlstatement != null) ) 8865 { 8866 } 8867 } 8868 8869 if ( lcisnewsql ) 8870 { 8871 ret = new TUpdateSqlStatement(pdbvendor); 8872 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 8873 } 8874 break; 8875 } 8876 case sstdelete: 8877 { 8878 boolean lcisnewsql = true; 8879 8880 if ( pstate != EFindSqlStateType.stnormal ) 8881 { 8882 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8883 if ( (lcprevsolidtoken != null) ) 8884 { 8885 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 8886 lcisnewsql = false; 8887 } 8888 8889 if ( (lccurrentsqlstatement != null) ) 8890 { 8891 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 8892 if ( (lcnextsolidtoken != null) ){ 8893 if (lcnextsolidtoken.tokencode == TBaseType.rrw_oracle_rows){ 8894 lcisnewsql = false; 8895 } 8896 } 8897 } 8898 } 8899 8900 if ( lcisnewsql ) 8901 ret = new TDeleteSqlStatement(pdbvendor); 8902 8903 break; 8904 } 8905 case sstmerge: 8906 { 8907 ret = new TMergeSqlStatement(pdbvendor); 8908 ret.sqlstatementtype = gnewsqlstatementtype; 8909 break; 8910 } 8911 case sstoraclecommit: 8912 { 8913 8914 boolean lcisnewsql = true; 8915 if ( pstate != EFindSqlStateType.stnormal ) 8916 { 8917 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 8918 if ( (lcprevsolidtoken != null) ) 8919 { // 8920 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 8921 lcisnewsql = false; 8922 } 8923 } 8924 8925 if (lcisnewsql){ 8926 ret = new TCommitStmt(pdbvendor); 8927 ret.sqlstatementtype = gnewsqlstatementtype; 8928 } 8929 8930 break; 8931 } 8932 case sstoraclerollback: 8933 { 8934 ret = new TUnknownSqlStatement(pdbvendor); 8935 ret.sqlstatementtype = gnewsqlstatementtype; 8936 break; 8937 } 8938 case sstoraclesavepoint: 8939 { 8940 ret = new TUnknownSqlStatement(pdbvendor); 8941 ret.sqlstatementtype = gnewsqlstatementtype; 8942 break; 8943 } 8944 case sstoraclerevoke: 8945 { 8946 ret = new TUnknownSqlStatement(pdbvendor); 8947 ret.sqlstatementtype = gnewsqlstatementtype; 8948 break; 8949 } 8950 case sstoraclegrant: 8951 { 8952 ret = new TUnknownSqlStatement(pdbvendor); 8953 ret.sqlstatementtype = gnewsqlstatementtype; 8954 break; 8955 } 8956 case sstoracleanalyze: 8957 { 8958 ret = new TUnknownSqlStatement(pdbvendor); 8959 ret.sqlstatementtype = gnewsqlstatementtype; 8960 break; 8961 } 8962 case sstTruncate: 8963 { 8964 ret = new TTruncateStatement(pdbvendor); 8965 ret.sqlstatementtype = gnewsqlstatementtype; 8966 break; 8967 } 8968 case sstcreatetable: 8969 { 8970 ret = new TCreateTableSqlStatement(pdbvendor); 8971 break; 8972 } 8973 case sstoraclecreateview: 8974 { 8975 ret = new TCreateViewSqlStatement(pdbvendor); 8976 break; 8977 } 8978 case sstcreatematerializedview:{ 8979 ret = new TCreateMaterializedSqlStatement(pdbvendor); 8980 break; 8981 } 8982 case sstoraclecreatematerializedviewlog:{ 8983 ret = new TCreateMaterializedViewLogSqlStatement(pdbvendor); 8984 break; 8985 } 8986 case sstoraclecreateindex: 8987 { 8988 ret = new TCreateIndexSqlStatement(pdbvendor); 8989 break; 8990 } 8991 case sstoraclecreatedatabase: 8992 { 8993 ret = new TCreateDatabaseSqlStatement(pdbvendor); 8994 break; 8995 } 8996 case sstoracledroptable: 8997 { 8998 ret = new TDropTableSqlStatement(pdbvendor); 8999 break; 9000 } 9001 case sstoracledropview: 9002 { 9003 ret = new TDropViewSqlStatement(pdbvendor); 9004 break; 9005 } 9006 case sstoracledropindex: 9007 { 9008 ret = new TDropIndexSqlStatement(pdbvendor); 9009 break; 9010 } 9011 case sstaltertable: 9012 { 9013 ret = new TAlterTableStatement(pdbvendor); 9014 break; 9015 } 9016 case sstoraclealtersession: 9017 { 9018 ret = new TAlterSessionStatement(pdbvendor); 9019 break; 9020 } 9021 case sstplsql_createprocedure: 9022 { 9023 ret = new TPlsqlCreateProcedure(pdbvendor); 9024 ret.sqlstatementtype = gnewsqlstatementtype; 9025 // System.out.println(gnewsqlstatementtype); 9026 break; 9027 } 9028 case sstplsql_createfunction: 9029 { 9030 ret = new TPlsqlCreateFunction(pdbvendor); 9031 ret.sqlstatementtype = gnewsqlstatementtype; 9032 // System.out.println(gnewsqlstatementtype); 9033 break; 9034 } 9035 case sstplsql_createpackage: 9036 { 9037 ret = new TPlsqlCreatePackage(pdbvendor); 9038 ret.sqlstatementtype = gnewsqlstatementtype; 9039 // System.out.println(gnewsqlstatementtype); 9040 break; 9041 } 9042 case sstplsql_createtrigger: 9043 { 9044 ret = new TPlsqlCreateTrigger(pdbvendor); 9045 ret.sqlstatementtype = gnewsqlstatementtype; 9046 // System.out.println(gnewsqlstatementtype); 9047 break; 9048 } 9049 case sstplsql_execimmestmt: 9050 { 9051 ret = new TExecImmeStmt(pdbvendor); 9052 // ret.sqlstatementtype = gnewsqlstatementtype; 9053 // System.out.println(gnewsqlstatementtype); 9054 break; 9055 } 9056 case sstoraclecreatepackagebody: 9057 { 9058 ret = new TPlsqlCreatePackage(pdbvendor); 9059 ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 9060 break; 9061 } 9062 case sstplsql_createtype_placeholder: 9063 { 9064 ret = new TPlsqlCreateType_Placeholder(pdbvendor); 9065 ret.sqlstatementtype = gnewsqlstatementtype; 9066 // System.out.println(gnewsqlstatementtype); 9067 break; 9068 } 9069 case sstplsql_createtypebody: 9070 { 9071 ret = new TPlsqlCreateTypeBody(pdbvendor); 9072 ret.sqlstatementtype = gnewsqlstatementtype; 9073 break; 9074 } 9075 case sstCommentOn: 9076 { 9077 ret = new TCommentOnSqlStmt(pdbvendor); 9078 break; 9079 } 9080 case sstoraclecreatesequence: 9081 { 9082 ret = new TCreateSequenceStmt(pdbvendor); 9083 break; 9084 } 9085 case sstoraclecreatesynonym: 9086 { 9087 ret = new TCreateSynonymStmt(pdbvendor); 9088 break; 9089 } 9090 case sstoraclecreatedirectory: 9091 { 9092 ret = new TOracleCreateDirectoryStmt(pdbvendor); 9093 break; 9094 } 9095 case sstoracleexecuteprocedure: 9096 { 9097 ret = new TOracleExecuteProcedure(pdbvendor); 9098 break; 9099 } 9100 case sstExplain: 9101 { 9102 ret = new TExplainPlan(pdbvendor); 9103 break; 9104 } 9105 case sstoraclecreatelibrary: 9106 ret = new TOracleCreateLibraryStmt(pdbvendor); 9107 break; 9108 case sstaltertrigger: 9109 ret = new TAlterTriggerStmt(pdbvendor); 9110 break; 9111 case sstoracledropsequence: 9112 ret = new TDropSequenceStmt(pdbvendor); 9113 break; 9114 case sstoraclecall: 9115 ret = new TCallStatement(pdbvendor); 9116 break; 9117 case sstoraclealterview: 9118 ret = new TAlterViewStatement(pdbvendor); 9119 break; 9120 case sstoracledropsynonym: 9121 ret = new TDropSynonymStmt(pdbvendor); 9122 break; 9123 case sstoracledropdatabaselink: 9124 ret = new TDropDatabaseLinkStmt(pdbvendor); 9125 break; 9126 case sstoraclecreatedatabaselink: 9127 ret = new TCreateDatabaseLinkStmt(pdbvendor); 9128 break; 9129 case sstoracledropmaterializedview: 9130 ret = new TDropMaterializedViewStmt(pdbvendor); 9131 break; 9132 case sstoracledropmaterializedviewlog: 9133 ret = new TDropMaterializedViewLogStmt(pdbvendor); 9134 break; 9135 case sstoraclerename: 9136 ret = new TRenameStmt(pdbvendor); 9137 break; 9138 case sstoracledropprocedure: 9139 ret = new TDropProcedureStmt(pdbvendor); 9140 break; 9141 case sstAlterMaterializedView: 9142 ret = new TAlterMaterializedViewStmt(pdbvendor); 9143 break; 9144 case sstoracledroptrigger: 9145 ret = new TDropTriggerSqlStatement(pdbvendor); 9146 break; 9147 case sstoracledropfunction: 9148 ret = new TDropFunctionStmt(pdbvendor); 9149 break; 9150 case sstoraclealterindex: 9151 ret = new TAlterIndexStmt(pdbvendor); 9152 break; 9153 case sstoraclealtersequence: 9154 ret = new TAlterSequenceStatement(pdbvendor); 9155 break; 9156 case sstoraclealtertype: 9157 ret = new TAlterTypeStatement(pdbvendor); 9158 break; 9159 default: 9160 { 9161 ret = new TUnknownSqlStatement(pdbvendor); 9162 ret.sqlstatementtype = gnewsqlstatementtype; 9163 break; 9164 } 9165 } // case 9166 9167 return ret; 9168} 9169 9170TCustomSqlStatement isinformixsql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 9171 TCustomSqlStatement ret = null; 9172 9173 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 9174 9175 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 9176 || (pcst.tokencode == TBaseType.cmtslashstar) 9177 || (pcst.tokencode == TBaseType.lexspace) 9178 || (pcst.tokencode == TBaseType.lexnewline) 9179 || (pcst.tokentype == ETokenType.ttsemicolon) ) 9180 { 9181 return null; 9182 } 9183 9184 int lcpos = pcst.posinlist; 9185 TSourceTokenList lcsourcetokenlist = pcst.container; 9186 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 9187 9188 //subquery after semicolon or at first line 9189 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 9190 { 9191 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 9192 if ( k >0 ) 9193 { 9194 ret = new TSelectSqlStatement(pdbvendor); 9195 } 9196 9197 return ret; 9198 } 9199 9200 //cte 9201 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 9202 { 9203 ret = findcte(pcst,pdbvendor); 9204 if ( (ret != null) ) return ret; 9205 } 9206 9207 gnewsqlstatementtype = findinformixcmd(pcst); 9208 9209 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9210 switch (gnewsqlstatementtype) { // 9211 case sstinvalid: 9212 { 9213 ret = null; 9214 9215 if ( pstate == EFindSqlStateType.stnormal ) 9216 { 9217 if ( pcst.tokencode == TBaseType.label_begin ) 9218 { 9219 ret = new TCommonBlock(pdbvendor); 9220 gnewsqlstatementtype = ret.sqlstatementtype; 9221 } 9222 else if ( pcst.tokencode == TBaseType.rrw_declare ) 9223 { 9224 ret = new TCommonBlock(pdbvendor); 9225 gnewsqlstatementtype = ret.sqlstatementtype; 9226 } 9227 else if ( pcst.tokencode == TBaseType.rrw_begin ) 9228 { 9229 ret = new TCommonBlock(pdbvendor); 9230 gnewsqlstatementtype = ret.sqlstatementtype; 9231 } 9232 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 9233 { 9234 ret = new TPlsqlCreateProcedure(pdbvendor); 9235 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 9236 gnewsqlstatementtype = ret.sqlstatementtype; 9237 } 9238 else if ( pcst.tokencode == TBaseType.rrw_function ) 9239 { 9240 ret = new TPlsqlCreateFunction(pdbvendor); 9241 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 9242 gnewsqlstatementtype = ret.sqlstatementtype; 9243 } 9244 else if ( pcst.tokencode == TBaseType.rrw_package ) 9245 { 9246 ret = new TPlsqlCreatePackage(pdbvendor); 9247 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 9248 gnewsqlstatementtype = ret.sqlstatementtype; 9249 } 9250 } 9251 break; 9252 } 9253 case sstselect: 9254 { 9255 boolean lcisnewsql = true; 9256 9257 if ( pstate != EFindSqlStateType.stnormal ) 9258 { 9259 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9260 if ( (lcprevsolidtoken != null) ) 9261 { 9262 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 9263 lcisnewsql = false; //subqery 9264 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 9265 lcisnewsql = false; 9266 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 9267 lcisnewsql = false; 9268 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 9269 lcisnewsql = false; 9270 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 9271 lcisnewsql = false; 9272 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 9273 lcisnewsql = false; 9274 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 9275 { 9276 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 9277 lcisnewsql = false; 9278 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 9279 lcisnewsql = false; 9280 } 9281 9282 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 9283 { 9284 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 9285 if ( (lcpprevsolidtoken != null) ) 9286 { 9287 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 9288 lcisnewsql = false; 9289 } 9290 } 9291 9292 } 9293 9294 9295 if ( (lccurrentsqlstatement != null) ) 9296 { 9297 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 9298 lcisnewsql = false; 9299 } 9300 9301 } 9302 9303 if ( lcisnewsql ) 9304 ret = new TSelectSqlStatement(pdbvendor); 9305 9306 break; 9307 } 9308 case sstinsert: 9309 { 9310 boolean lcisnewsql = true; 9311 if ( pstate != EFindSqlStateType.stnormal ) 9312 { 9313 if ( (lccurrentsqlstatement != null) ) 9314 { 9315 // merge 9316 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9317 { 9318 if (lcprevsolidtoken != null) 9319 { 9320 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9321 {lcisnewsql = false;} 9322 } 9323 } 9324 9325 } 9326 } 9327 9328 if ( lcisnewsql ) 9329 ret = new TInsertSqlStatement(pdbvendor); 9330 9331 break; 9332 } 9333 case sstupdate: 9334 { 9335 boolean lcisnewsql = true; 9336 if ( pstate != EFindSqlStateType.stnormal ) 9337 { 9338 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9339 if ( (lcprevsolidtoken != null) ) 9340 { // 9341 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 9342 lcisnewsql = false; 9343 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9344 lcisnewsql = false; 9345 } 9346 9347 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 9348 if ( (lcnextsolidtoken != null) ) 9349 { 9350 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 9351 { 9352 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 9353 if ( k == 0 ) lcisnewsql = false; 9354 } 9355 } 9356 9357 9358 if ( (lccurrentsqlstatement != null) ) 9359 { 9360 // merge 9361 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9362 { 9363 if (lcprevsolidtoken != null) 9364 { 9365 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9366 {lcisnewsql = false;} 9367 } 9368 } 9369 } 9370 } 9371 9372 if ( lcisnewsql ) 9373 { 9374 ret = new TUpdateSqlStatement(pdbvendor); 9375 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 9376 } 9377 break; 9378 } 9379 case sstdelete: 9380 { 9381 boolean lcisnewsql = true; 9382 9383 if ( pstate != EFindSqlStateType.stnormal ) 9384 { 9385 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9386 if ( (lcprevsolidtoken != null) ) 9387 { 9388 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 9389 lcisnewsql = false; 9390 } 9391 9392 if ( (lccurrentsqlstatement != null) ) 9393 { 9394 // merge 9395 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9396 { 9397 if (lcprevsolidtoken != null) 9398 { 9399 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9400 {lcisnewsql = false;} 9401 } 9402 } 9403 } 9404 } 9405 9406 if ( lcisnewsql ) 9407 ret = new TDeleteSqlStatement(pdbvendor); 9408 9409 break; 9410 } 9411 case sstmerge: 9412 { 9413 ret = new TMergeSqlStatement(pdbvendor); 9414 ret.sqlstatementtype = gnewsqlstatementtype; 9415 break; 9416 } 9417 case sstinformixCommit: 9418 { 9419 ret = new TUnknownSqlStatement(pdbvendor); 9420 ret.sqlstatementtype = gnewsqlstatementtype; 9421 break; 9422 } 9423 case sstinformixSavepoint: 9424 { 9425 ret = new TUnknownSqlStatement(pdbvendor); 9426 ret.sqlstatementtype = gnewsqlstatementtype; 9427 break; 9428 } 9429 case sstinformixRevoke: 9430 { 9431 ret = new TUnknownSqlStatement(pdbvendor); 9432 ret.sqlstatementtype = gnewsqlstatementtype; 9433 break; 9434 } 9435 case sstinformixGrant: 9436 { 9437 ret = new TUnknownSqlStatement(pdbvendor); 9438 ret.sqlstatementtype = gnewsqlstatementtype; 9439 break; 9440 } 9441 case sstTruncate: 9442 { 9443 ret = new TTruncateStatement(pdbvendor); 9444 ret.sqlstatementtype = gnewsqlstatementtype; 9445 break; 9446 } 9447 case sstcreatetable: 9448 case sstinformixCreateTempTable: 9449 { 9450 ret = new TCreateTableSqlStatement(pdbvendor); 9451 break; 9452 } 9453 case sstinformixCreateView: 9454 { 9455 ret = new TCreateViewSqlStatement(pdbvendor); 9456 break; 9457 } 9458 case sstinformixCreateIndex: 9459 { 9460 ret = new TCreateIndexSqlStatement(pdbvendor); 9461 break; 9462 } 9463 case sstinformixCreateDatabase: 9464 { 9465 ret = new TCreateDatabaseSqlStatement(pdbvendor); 9466 break; 9467 } 9468 case sstinformixDropTable: 9469 { 9470 ret = new TDropTableSqlStatement(pdbvendor); 9471 break; 9472 } 9473 case sstinformixDropView: 9474 { 9475 ret = new TDropViewSqlStatement(pdbvendor); 9476 break; 9477 } 9478 case sstinformixDropIndex: 9479 { 9480 ret = new TDropIndexSqlStatement(pdbvendor); 9481 break; 9482 } 9483 case sstinformixDropRowType: 9484 { 9485 ret = new TInformixDropRowTypeStmt(pdbvendor); 9486 break; 9487 } 9488 case sstinformixDropSequence: 9489 { 9490 ret = new TDropSequenceStmt(pdbvendor); 9491 break; 9492 } 9493 case sstinformixDropSynonym: 9494 { 9495 ret = new TDropSynonymStmt(pdbvendor); 9496 break; 9497 } 9498 case sstinformixAlterTable: 9499 { 9500 ret = new TAlterTableStatement(pdbvendor); 9501 break; 9502 } 9503 case sstinformixCreateProcedure: 9504 { 9505 ret = new TInformixCreateProcedure(pdbvendor); 9506 ret.sqlstatementtype = gnewsqlstatementtype; 9507 break; 9508 } 9509 case sstinformixCreateFunction: 9510 { 9511 ret = new TInformixCreateFunction(pdbvendor); 9512 ret.sqlstatementtype = gnewsqlstatementtype; 9513 break; 9514 } 9515 case sstcreatetrigger: 9516 { 9517 ret = new TCreateTriggerStmt(pdbvendor); 9518 break; 9519 } 9520 case sstinformixExecuteImmediate: 9521 { 9522 ret = new TInformixExecuteImmediate(pdbvendor); 9523 break; 9524 } 9525 case sstinformixCreateSequence: 9526 case sstinformixAlterSequence: 9527 { 9528 ret = new TCreateSequenceStmt(pdbvendor); 9529 break; 9530 } 9531 case sstinformixCreateSynonym: 9532 { 9533 ret = new TCreateSynonymStmt(pdbvendor); 9534 break; 9535 } 9536 case sstinformixExecuteFunction: 9537 { 9538 ret = new TInformixExecuteFunction(pdbvendor); 9539 break; 9540 } 9541 case sstinformixExecuteProcedure: 9542 { 9543 ret = new TInformixExecuteProcedure(pdbvendor); 9544 break; 9545 } 9546 case sstinformixCreateRowType: 9547 { 9548 ret = new TInformixCreateRowTypeStmt(pdbvendor); 9549 break; 9550 } 9551 case sstinformixPut: 9552 case sstinformixInfo: 9553 { 9554 ret = null; 9555 9556 if ( pstate == EFindSqlStateType.stnormal ) 9557 { 9558 ret = new TUnknownSqlStatement(pdbvendor); 9559 ret.sqlstatementtype = gnewsqlstatementtype; 9560 } 9561 break; 9562 } 9563 case sstinformixAlterIndex: 9564 { 9565 ret = new TAlterIndexStmt(pdbvendor); 9566 break; 9567 } 9568 case sstinformixRenameColumn: 9569 case sstinformixRenameTable: 9570 case sstinformixRenameSequence: 9571 case sstinformixRenameIndex: 9572 { 9573 ret = new TRenameStmt(pdbvendor); 9574 break; 9575 } 9576 case sstdropdatabase: 9577 ret = new TDropDatabaseStmt(pdbvendor); 9578 break; 9579 case sstinformixRollbackWork: 9580 { 9581 ret = new TMssqlRollback(pdbvendor); 9582 break; 9583 } 9584 default: 9585 { 9586 ret = new TUnknownSqlStatement(pdbvendor); 9587 ret.sqlstatementtype = gnewsqlstatementtype; 9588 break; 9589 } 9590 } // case 9591 9592 return ret; 9593} 9594 9595 9596 TCustomSqlStatement issybasesql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 9597 TCustomSqlStatement ret = null; 9598 int k; 9599 boolean lcisnewsql; 9600 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 9601 9602 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 9603 9604 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 9605 || (pcst.tokencode == TBaseType.cmtslashstar) 9606 || (pcst.tokencode == TBaseType.lexspace) 9607 || (pcst.tokencode == TBaseType.lexnewline) 9608 || (pcst.tokentype == ETokenType.ttsemicolon) ) 9609 { 9610 return ret; 9611 } 9612 9613 int lcpos = pcst.posinlist; 9614 TSourceTokenList lcsourcetokenlist = pcst.container; 9615 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 9616 9617 //subquery after semicolon || at first line 9618 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 9619 { 9620 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 9621 if ( k >0 ) 9622 { 9623 ret = new TSelectSqlStatement(pdbvendor); 9624 } 9625 9626 return ret; 9627 } 9628 9629 //cte 9630 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 9631 { 9632 ret = findcte(pcst,pdbvendor); 9633 if ( (ret != null) ) return ret; 9634 } 9635 9636 gnewsqlstatementtype = findsybasecmd(pcst); 9637 9638 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9639 switch(gnewsqlstatementtype ) { // 9640 case sstinvalid: 9641 { 9642 if ( pcst.tokencode == TBaseType.mslabel ) 9643 { 9644 ret = new TMssqlLabel(pdbvendor); 9645 } 9646 else 9647 ret = null; 9648 9649 break; 9650 } 9651 case sstselect: 9652 { 9653 lcisnewsql = true; 9654 9655 if ( pstate != EFindSqlStateType.stnormal ) 9656 { 9657 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9658 if ( (lcprevsolidtoken != null) ) 9659 { 9660 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 9661 lcisnewsql = false; //subqery 9662 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 9663 lcisnewsql = false; 9664 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 9665 lcisnewsql = false; 9666 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 9667 lcisnewsql = false; 9668 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 9669 lcisnewsql = false; 9670 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 9671 lcisnewsql = false; 9672 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 9673 { 9674 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 9675 lcisnewsql = false; 9676 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 9677 lcisnewsql = false; 9678 } 9679 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9680 { 9681 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlset ) 9682 lcisnewsql = false; 9683 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldeclare ) 9684 lcisnewsql = false; 9685 } 9686 9687 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 9688 { 9689 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 9690 if ( (lcpprevsolidtoken != null) ) 9691 { 9692 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 9693 lcisnewsql = false; 9694 } 9695 } 9696 9697 } 9698 9699 if ( (lccurrentsqlstatement != null) ) 9700 { 9701 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 9702 { 9703 } 9704 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 9705 { 9706 if ( (lcprevsolidtoken != null) ) 9707 { 9708 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 9709 lcisnewsql = false; 9710 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9711 lcisnewsql = false; 9712 } 9713 } else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 9714 { 9715 if ( (lcprevsolidtoken != null) ) 9716 { 9717 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 9718 lcisnewsql = false; 9719 } 9720 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 9721 lcisnewsql = false; 9722 } 9723 } 9724 9725 } 9726 9727 if ( lcisnewsql ) 9728 ret = new TSelectSqlStatement(pdbvendor); 9729 9730 break; 9731 9732 } 9733 case sstinsert: 9734 { 9735 lcisnewsql = true; 9736 if ( pstate != EFindSqlStateType.stnormal ) 9737 { 9738 if ( (lccurrentsqlstatement != null) ) 9739 { 9740 // merge 9741 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9742 { 9743 if (lcprevsolidtoken != null) 9744 { 9745 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9746 {lcisnewsql = false;} 9747 } 9748 } 9749 9750 // bulk insert 9751 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlbulkinsert ) 9752 { 9753 if ( (lcprevsolidtoken != null) ) 9754 { 9755 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_bulk ) 9756 lcisnewsql = false; 9757 } 9758 } 9759 9760 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 9761 { 9762 if ( (lcprevsolidtoken != null) ) 9763 { 9764 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 9765 lcisnewsql = false; 9766 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9767 lcisnewsql = false; 9768 } 9769 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) { 9770 if ( (lcprevsolidtoken != null) ) 9771 { 9772 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 9773 lcisnewsql = false; 9774 } 9775 } 9776 9777 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 9778 { 9779 if ( (lcprevsolidtoken != null) ) 9780 { 9781 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9782 lcisnewsql = false; 9783 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9784 lcisnewsql = false; 9785 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 9786 lcisnewsql = false; 9787 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 9788 lcisnewsql = false; 9789 } 9790 } 9791 9792 9793 } 9794 } 9795 9796 if ( lcisnewsql ) 9797 { 9798 ret = new TInsertSqlStatement(pdbvendor); 9799 ret.dummytag = 1; // select stmt in insert is permitted 9800 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 9801 { 9802 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 9803 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 9804 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 9805 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 9806 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ) break; 9807 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 9808 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 9809 } // for ( 9810 if ( k > lcsourcetokenlist.size() - 1 ) 9811 k = lcsourcetokenlist.size() - 1; 9812 9813 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 9814 { 9815 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 9816 } // for ( 9817 9818 } 9819 9820 break; 9821 } 9822 case sstsybaseInsertBulk: 9823 { 9824 ret = new TInsertBulk(pdbvendor); 9825 break; 9826 } 9827 case sstupdate: 9828 { 9829 lcisnewsql = true; 9830 if ( pstate != EFindSqlStateType.stnormal ) 9831 { 9832 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9833 if ( (lcprevsolidtoken != null) ) 9834 { // 9835 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 9836 lcisnewsql = false; 9837 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9838 lcisnewsql = false; 9839 } 9840 9841 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 9842 if ( TBaseType.assigned(lcnextsolidtoken) ) 9843 { 9844 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 9845 { 9846 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 9847 if ( k == 0 ) lcisnewsql = false; 9848 } 9849 } 9850 9851 9852 if ( TBaseType.assigned(lccurrentsqlstatement) ) 9853 { 9854 // merge 9855 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9856 { 9857 if (lcprevsolidtoken != null) 9858 { 9859 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9860 {lcisnewsql = false;} 9861 } 9862 } 9863 9864 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 9865 { 9866 if ( TBaseType.assigned(lcprevsolidtoken) ) 9867 { 9868 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 9869 lcisnewsql = false; 9870 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9871 lcisnewsql = false; 9872 } 9873 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 9874 { 9875 if ( TBaseType.assigned(lcprevsolidtoken) ) 9876 { 9877 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 9878 lcisnewsql = false; 9879 } 9880 } 9881 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 9882 { 9883 if ( TBaseType.assigned(lcprevsolidtoken) ) 9884 { 9885 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9886 lcisnewsql = false; 9887 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9888 lcisnewsql = false; 9889 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 9890 lcisnewsql = false; 9891 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 9892 lcisnewsql = false; 9893 } 9894 } 9895 9896 } 9897 } 9898 9899 if ( lcisnewsql ) 9900 { 9901 ret = new TUpdateSqlStatement(pdbvendor); 9902 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 9903 } 9904 9905 break; 9906 } 9907 case sstdelete: 9908 { 9909 lcisnewsql = true; 9910 9911 if ( pstate != EFindSqlStateType.stnormal ) 9912 { 9913 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 9914 if ( TBaseType.assigned(lcprevsolidtoken) ) 9915 { 9916 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 9917 lcisnewsql = false; 9918 } 9919 9920 if ( TBaseType.assigned(lccurrentsqlstatement) ) 9921 { 9922 // merge 9923 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 9924 { 9925 if (lcprevsolidtoken != null) 9926 { 9927 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 9928 {lcisnewsql = false;} 9929 } 9930 } 9931 9932 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 9933 { 9934 if ( TBaseType.assigned(lcprevsolidtoken) ) 9935 { 9936 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 9937 lcisnewsql = false; 9938 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9939 lcisnewsql = false; 9940 } 9941 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 9942 { 9943 if ( TBaseType.assigned(lcprevsolidtoken) ) 9944 { 9945 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 9946 lcisnewsql = false; 9947 } 9948 } 9949 9950 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 9951 { 9952 if ( TBaseType.assigned(lcprevsolidtoken) ) 9953 { 9954 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 9955 lcisnewsql = false; 9956 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 9957 lcisnewsql = false; 9958 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 9959 lcisnewsql = false; 9960 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 9961 lcisnewsql = false; 9962 } 9963 } 9964 9965 } 9966 } 9967 9968 if ( lcisnewsql ) 9969 ret = new TDeleteSqlStatement(pdbvendor); 9970 9971 break; 9972 } 9973 case sstcreatetable: 9974 { 9975 ret = new TCreateTableSqlStatement(pdbvendor); 9976 break; 9977 } 9978 case sstcreateview: 9979 { 9980 ret = new TCreateViewSqlStatement(pdbvendor); 9981 break; 9982 } 9983 case sstaltertable: 9984 { 9985 ret = new TAlterTableStatement(pdbvendor); 9986 break; 9987 } 9988 case sstmssqlfetch: 9989 { 9990 ret = new TMssqlFetch(pdbvendor); 9991 break; 9992 } 9993 case sstmssqlif : 9994 { 9995 lcisnewsql = true; 9996 if ((lccurrentsqlstatement != null) && ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldropprocedure )) 9997 {lcisnewsql = false;} 9998 // `DROP TABLE IF EXISTS t` and friends: the IF belongs to the DROP. 9999 // Mirrors TSqlCmds<Vendor>.isDropIfExistsContext in the modular 10000 // providers, which this monolithic path is the fallback for. 10001 if (lcisnewsql && DropIfExistsSupport.isDropIfExistsContext(pcst, lcsourcetokenlist.solidtokenbefore(lcpos))) 10002 {lcisnewsql = false;} 10003 if (lcisnewsql){ 10004 ret = new TMssqlIfElse(pdbvendor); 10005 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 10006 } 10007 10008 break; 10009 } 10010 case sstmssqlwhile: 10011 { 10012 ret = new TMssqlIfElse(pdbvendor); 10013 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 10014 break; 10015 } 10016 case sstmssqlcreateprocedure : 10017 case sstmssqlalterprocedure: 10018 { 10019 ret = new TMssqlCreateProcedure(pdbvendor); 10020 break; 10021 } 10022 case sstmssqlcreatefunction : 10023 case sstmssqlalterfunction: 10024 { 10025 ret = new TMssqlCreateFunction(pdbvendor); 10026 break; 10027 } 10028 case sstcreatetrigger : 10029 case sstmssqlaltertrigger: 10030 { 10031 ret = new TCreateTriggerStmt(pdbvendor); 10032 break; 10033 } 10034 case sstmssqlreturn: 10035 { 10036 ret = new TMssqlReturn(pdbvendor); 10037 break; 10038 } 10039 case sstmssqlprint: 10040 { 10041 ret = new TMssqlPrint(pdbvendor); 10042 break; 10043 } 10044 case sstmssqluse: 10045 { 10046 ret = new TUseDatabase(pdbvendor); 10047 break; 10048 } 10049 case sstmssqlgo: 10050 { 10051 ret = new TMssqlGo(pdbvendor); 10052 break; 10053 } 10054 case sstmssqlrevert: 10055 { 10056 ret = new TMssqlRevert(pdbvendor); 10057 break; 10058 } 10059 case sstmssqlgrant: 10060 { 10061 lcisnewsql = true; 10062 // prev tokentext can't be with 10063 if ( pstate != EFindSqlStateType.stnormal ) 10064 { 10065 if ( TBaseType.assigned(lcprevsolidtoken) ) 10066 { 10067 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 10068 { 10069 ret = null; 10070 lcisnewsql = false; 10071 } 10072 } 10073 } 10074 if ( lcisnewsql ) 10075 { 10076 ret = new TGrantStmt(pdbvendor); 10077 //ret.sqlstatementtype = gnewsqlstatementtype; 10078 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 10079 { 10080 lctoken = lcsourcetokenlist.get(k); 10081 if (lctoken.isnonsolidtoken() ) continue; 10082 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 10083 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 10084 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 10085 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 10086 } 10087 } 10088 break; 10089 } 10090 case sstmssqldeclare: 10091 { 10092 ret = new TMssqlDeclare(pdbvendor); 10093 break; 10094 } 10095 case sstmssqlcontinue: 10096 { 10097 lcisnewsql = true; 10098 if ((lccurrentsqlstatement != null) && ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstload )) 10099 {lcisnewsql = false;} 10100 if (lcisnewsql){ 10101 ret = new TMssqlContinue(pdbvendor); 10102 } 10103 10104 break; 10105 } 10106 case sstbreak: 10107 { 10108 ret = new TBreakStmt(pdbvendor); 10109 break; 10110 } 10111 case sstmssqlopen: 10112 { 10113 ret = new TMssqlOpen(pdbvendor); 10114 break; 10115 } 10116 case sstmssqlclose: 10117 { 10118 ret = new TMssqlClose(pdbvendor); 10119 break; 10120 } 10121 case sstmssqlbulkinsert: 10122 { 10123 ret = new TMssqlBulkInsert(pdbvendor); 10124 break; 10125 } 10126 case sstmssqldeallocate: 10127 { 10128 ret = new TMssqlDeallocate(pdbvendor); 10129 break; 10130 } 10131 case sstmssqlraiserror: 10132 { 10133 ret = new TMssqlRaiserror(pdbvendor); 10134 break; 10135 } 10136 case sstmssqlgoto: 10137 { 10138 ret = new TMssqlGoTo(pdbvendor); 10139 break; 10140 } 10141 case sstmssqldropview: 10142 { 10143 ret = new TDropViewSqlStatement(pdbvendor); 10144 break; 10145 } 10146 case sstmssqldroptable: 10147 { 10148 ret = new TDropTableSqlStatement(pdbvendor); 10149 break; 10150 } 10151 case sstmssqldropindex: 10152 { 10153 ret = new TDropIndexSqlStatement(pdbvendor); 10154 break; 10155 } 10156 case sstmssqldroppartitionscheme : 10157 ret = new TDropPartitionSchemeStmt(pdbvendor); 10158 break; 10159 10160 case sstmssqldropaggregate : 10161 case sstmssqldropapplicationrole : 10162 case sstmssqldropassembly : 10163 case sstmssqldropasymmetrickey : 10164 case sstmssqldropcertificate : 10165 case sstmssqldropcontract : 10166 case sstmssqldropcredential : 10167 case sstmssqldropdefault : 10168 case sstmssqldropendpoint : 10169 case sstmssqldropeventnotification : 10170 case sstmssqldropfulltextcatalog : 10171 case sstmssqldropfulltextindex : 10172 case sstmssqldropfunction : 10173 case sstmssqldroplogin : 10174 case sstmssqldropmasterkey : 10175 case sstmssqldropmessagetype : 10176 case sstmssqldroppartitionfunction : 10177 case sstmssqldropprocedure : 10178 case sstmssqldropqueue : 10179 case sstmssqldropremoteservicebinding : 10180 case sstmssqldroprole : 10181 case sstmssqldroproute : 10182 case sstmssqldroprule : 10183 case sstmssqldropschema : 10184 case sstmssqldropservice : 10185 case sstmssqldropsignature: 10186 case sstmssqldropstatistics : 10187 case sstmssqldropsymmetrickey : 10188 case sstmssqldroptrigger : 10189 case sstmssqldroptype : 10190 case sstmssqldropuser : 10191 case sstmssqldropxmlschemacollection: 10192 case sstmssqldropdatabase : 10193 { 10194 ret = new TMssqlDropDbObject(EDbVendor.dbvsybase); 10195 ret.sqlstatementtype = gnewsqlstatementtype; 10196 break; 10197 } 10198 case sstmssqldropsynonym : 10199 { 10200 ret = new TDropSynonymStmt(pdbvendor); 10201 break; 10202 } 10203 case sstmssqltruncatetable: 10204 { 10205 ret = new TTruncateStatement(pdbvendor); 10206 break; 10207 } 10208 case sstmssqlbegintran: 10209 { 10210 ret = new TBeginTran(pdbvendor); 10211 break; 10212 } 10213 case sstmssqlsavetran: 10214 { 10215 ret = new TMssqlSaveTran(pdbvendor); 10216 break; 10217 } 10218 case sstmssqlcommit: 10219 { 10220 lcisnewsql = true; 10221 10222 if ( TBaseType.assigned(lcprevsolidtoken) ) 10223 { 10224 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 10225 { 10226 10227 lcisnewsql = false; 10228 } 10229 } 10230 10231 if (lcisnewsql){ 10232 ret = new TMssqlCommit(pdbvendor); 10233 } 10234 10235 break; 10236 } 10237 case sstmssqlrollback: 10238 { 10239 ret = new TMssqlRollback(pdbvendor); 10240 break; 10241 } 10242 case sstmssqlreadtext : 10243 case sstmssqldbcc : 10244 case sstmssqlrestore : 10245 case sstmssqlbackup : 10246 { 10247 ret = new TMssqlDummyStmt(pdbvendor); 10248 ret.sqlstatementtype = gnewsqlstatementtype; 10249 break; 10250 } 10251 case sstcreateindex: 10252 { 10253 ret = new TCreateIndexSqlStatement(pdbvendor); 10254 break; 10255 } 10256 case sstmssqlwaitfor: 10257 { 10258 ret = new TMssqlWaitFor(pdbvendor); 10259 break; 10260 } 10261 case sstmerge: 10262 { 10263 lcisnewsql = true; 10264 10265 if (pstate != EFindSqlStateType.stnormal) 10266 { 10267 10268 if (lccurrentsqlstatement != null) 10269 { 10270 // merge union, merge join 10271 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 10272 { 10273 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 10274 if (lcnextsolidtoken != null) 10275 { 10276 if ((lcnextsolidtoken.tokencode == TBaseType.rrw_union) || (lcnextsolidtoken.tokencode == TBaseType.rrw_join)) 10277 { 10278 lcisnewsql = false; 10279 } 10280 } 10281 } 10282 10283 } 10284 10285 TSourceToken lcnexttoken = lcsourcetokenlist.nextsolidtoken(lcpos, 1, false); 10286 if ( (lcnexttoken != null) ) 10287 { 10288 if ( lcnexttoken.tokencode == TBaseType.rrw_sybase_partition ) 10289 lcisnewsql = false; 10290 } 10291 10292 } 10293 10294 if (lcisnewsql) 10295 { 10296 ret = new TMergeSqlStatement(pdbvendor); 10297 ret.sqlstatementtype = gnewsqlstatementtype; 10298 } 10299 10300 break; 10301 } 10302 case sstmssqlbegintry : 10303 case sstmssqlbegincatch: 10304 { 10305 ret = new TMssqlBlock(pdbvendor); 10306 ret.sqlstatementtype = gnewsqlstatementtype; 10307 break; 10308 } 10309 case sstmssqlexec: 10310 { 10311 lcisnewsql = true; 10312 // prev tokentext can't be with 10313 if ( pstate != EFindSqlStateType.stnormal ) 10314 { 10315 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10316 { 10317 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 10318 { 10319 if ( lccurrentsqlstatement.dummytag == 1 ) 10320 { 10321 lcisnewsql = false; 10322 lccurrentsqlstatement.dummytag = 0; // no select is permited after it 10323 } 10324 } 10325 10326 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 10327 { 10328 if ( TBaseType.assigned(lcprevsolidtoken) ) 10329 { 10330 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 10331 lcisnewsql = false; 10332 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10333 lcisnewsql = false; 10334 } 10335 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ){ 10336 if ( TBaseType.assigned(lcprevsolidtoken) ) 10337 { 10338 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 10339 lcisnewsql = false; 10340 } 10341 } 10342 10343 10344 10345 if ( 10346 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 10347 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 10348 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 10349 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 10350 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 10351 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 10352 ) 10353 { 10354 if ( TBaseType.assigned(lcprevsolidtoken) ) 10355 { 10356 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 10357 lcisnewsql = false; 10358 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10359 lcisnewsql = false; 10360 } 10361 } 10362 } 10363 } 10364 if ( lcisnewsql ) 10365 { 10366 ret = new TMssqlExecute(pdbvendor); 10367 } 10368 break; 10369 } 10370 case sstmssqlexecuteas: 10371 { 10372 lcisnewsql = true; 10373 // prev tokentext can't be with 10374 if ( pstate != EFindSqlStateType.stnormal ) 10375 { 10376 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10377 { 10378 if ( 10379 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 10380 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 10381 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 10382 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 10383 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 10384 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 10385 ) 10386 { 10387 if ( TBaseType.assigned(lcprevsolidtoken) ) 10388 { 10389 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 10390 lcisnewsql = false; 10391 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10392 lcisnewsql = false; 10393 } 10394 } 10395 } 10396 } 10397 if ( lcisnewsql ) 10398 { 10399 ret = new TMssqlExecuteAs(pdbvendor); 10400 ret.sqlstatementtype = gnewsqlstatementtype; 10401 } 10402 break; 10403 } 10404 case sstmssqlset: 10405 { 10406 lcisnewsql = true; 10407 if ( pstate != EFindSqlStateType.stnormal ) 10408 { 10409 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10410 { 10411 10412 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlif) 10413 { 10414 TSourceToken lcPPToken = lcsourcetokenlist.searchToken(TBaseType.rrw_update,"",pcst,-10); 10415 if (TBaseType.assigned(lcPPToken)) 10416 { 10417 lcisnewsql = false; 10418 } 10419 } 10420 10421 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 10422 { 10423 if (lcprevsolidtoken != null) 10424 { 10425 if (lcprevsolidtoken.tokencode == TBaseType.rrw_update){ 10426 lcisnewsql = false;} 10427 } 10428 } 10429 10430 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstupdate ) 10431 { 10432 if ( lccurrentsqlstatement.dummytag == 1 ) 10433 { 10434 //update statement still find set clause yet, so this is setclause in update statement 10435 lccurrentsqlstatement.dummytag = 0; 10436 lcisnewsql = false; 10437 } 10438 } 10439 } 10440 10441 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 10442 if ( TBaseType.assigned(lcnextsolidtoken) ) 10443 { //set null, set default 10444 if ( (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(),"null")==0) 10445 || (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(), "default")==0) ) 10446 { 10447 lcisnewsql = false; 10448 } 10449 } 10450 10451 } 10452 10453 if ( lcisnewsql ) 10454 { 10455 ret = new TMssqlSet(pdbvendor); 10456 } 10457 10458 break; 10459 } 10460 case sstmssqlupdatetext: 10461 { 10462 ret = new TMssqlUpdateText(pdbvendor); 10463 break; 10464 } 10465 case sstmssqlendconversation: 10466 { 10467 ret = new TMssqlEndConversation(pdbvendor); 10468 break; 10469 } 10470 case sstmssqlbegindialog: 10471 { 10472 ret = new TMssqlBeginDialog(pdbvendor); 10473 break; 10474 } 10475 case sstmssqlsendonconversation: 10476 { 10477 ret = new TMssqlSendOnConversation(pdbvendor); 10478 break; 10479 } 10480 case sstmssqldisabletrigger : 10481 case sstmssqlenabletrigger: 10482 { 10483 lcisnewsql = true; 10484 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10485 { 10486 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable ) 10487 lcisnewsql = false; 10488 } 10489 10490 if ( lcisnewsql ) 10491 { 10492 ret = new TDisableEnableTriggerStmt(pdbvendor); 10493 ret.sqlstatementtype = gnewsqlstatementtype; 10494 } 10495 break; 10496 } 10497 case sstsybaseWritetext: 10498 { 10499 ret = new TSybaseWritetext(pdbvendor); 10500 break; 10501 } 10502 case sstsybaseDeleteStatistics: 10503 { 10504 ret = new TSybaseDeleteStatistics(pdbvendor); 10505 break; 10506 } 10507 case sstcall: 10508 { 10509 ret = new TCallStatement(pdbvendor); 10510 break; 10511 } 10512 default: 10513 { 10514 ret = new TUnknownSqlStatement(pdbvendor); 10515 ret.sqlstatementtype = gnewsqlstatementtype; 10516 break; 10517 } 10518 } // case 10519 10520 return ret; 10521 } 10522 10523 TCustomSqlStatement ismssqlsql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 10524 TCustomSqlStatement ret = null; 10525 int k; 10526 boolean lcisnewsql; 10527 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 10528 10529 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 10530 10531 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 10532 || (pcst.tokencode == TBaseType.cmtslashstar) 10533 || (pcst.tokencode == TBaseType.lexspace) 10534 || (pcst.tokencode == TBaseType.lexnewline) 10535 || (pcst.tokentype == ETokenType.ttsemicolon) ) 10536 { 10537 return ret; 10538 } 10539 10540 int lcpos = pcst.posinlist; 10541 TSourceTokenList lcsourcetokenlist = pcst.container; 10542 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 10543 10544 //subquery after semicolon or at first line 10545 if ( pcst.tokentype == ETokenType.ttleftparenthesis) // ( 10546 { 10547 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 10548 if ( k >0 ) 10549 { 10550 if (pstate == EFindSqlStateType.stnormal){ 10551 ret = new TSelectSqlStatement(pdbvendor); 10552 return ret; 10553 } 10554// if (((lccurrentsqlstatement != null) )&&(lccurrentsqlstatement.sqlstatementtype != ESqlStatementType.sstselect)&&(lcsourcetokenlist.returnbeforecurtoken(true))){ 10555// ret = new TSelectSqlStatement(pdbvendor); 10556// return ret; 10557// } 10558 } 10559 } 10560 10561 //cte 10562 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 10563 { 10564 ret = findcte(pcst,pdbvendor); 10565 if ( (ret != null) ) return ret; 10566 } 10567 10568 if ( (lccurrentsqlstatement != null) && (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable) 10569 && (pcst.tokencode == TBaseType.rrw_with) ) 10570 { 10571 TSourceToken lcPrevToken = pcst.prevSolidToken(); 10572 if ((lcPrevToken != null) && (lcPrevToken.tokencode == TBaseType.rrw_as)) 10573 { // mantisbt/view.php?id=3900, create table with as select, ignore tokens from with to select (including the select token) 10574 ret = findcte(pcst,pdbvendor); 10575 if ( (ret != null) ) { 10576 ret = null; 10577 } 10578 } 10579 } 10580 10581 //odbc 10582 if ( (pstate == EFindSqlStateType.stnormal) && ((pcst.tokencode == '{')||(pcst.tokencode == TBaseType.odbc_esc_prefix)) && (pcst.getLinkToken() != null) ) 10583 { 10584 ret = new TCallStatement(pdbvendor); 10585 return ret; 10586 } 10587 10588 gnewsqlstatementtype = findmssqlcmd(pcst); 10589 10590 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 10591 switch(gnewsqlstatementtype ) { // 10592 case sstinvalid: 10593 { 10594 if ( pcst.tokencode == TBaseType.mslabel ) 10595 { 10596 ret = new TMssqlLabel(pdbvendor); 10597 } 10598 else 10599 ret = null; 10600 10601 break; 10602 } 10603 case sstselect: 10604 { 10605 lcisnewsql = true; 10606 10607 if ( pstate != EFindSqlStateType.stnormal ) 10608 { 10609 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 10610 if ( (lcprevsolidtoken != null) ) 10611 { 10612 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 10613 lcisnewsql = false; //subqery 10614 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 10615 lcisnewsql = false; 10616 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 10617 lcisnewsql = false; 10618 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 10619 lcisnewsql = false; 10620 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 10621 lcisnewsql = false; 10622 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 10623 lcisnewsql = false; 10624 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 10625 { 10626 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 10627 lcisnewsql = false; 10628 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 10629 lcisnewsql = false; 10630 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstalterview ) 10631 lcisnewsql = false; 10632 } 10633 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 10634 { 10635 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlset ) 10636 lcisnewsql = false; 10637 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldeclare ) 10638 lcisnewsql = false; 10639 } 10640 10641 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 10642 { 10643 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 10644 if ( (lcpprevsolidtoken != null) ) 10645 { 10646 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 10647 lcisnewsql = false; 10648 } 10649 } 10650 10651 } 10652 10653 if ( (lccurrentsqlstatement != null) ) 10654 { 10655 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 10656 { 10657 } 10658 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 10659 { 10660 if ( (lcprevsolidtoken != null) ) 10661 { 10662 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 10663 lcisnewsql = false; 10664 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10665 lcisnewsql = false; 10666 } 10667 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 10668 lcisnewsql = false; 10669 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatematerializedview ){ 10670 lcisnewsql = false; 10671 } 10672 } 10673 10674 } 10675 10676 if ( lcisnewsql ) 10677 ret = new TSelectSqlStatement(pdbvendor); 10678 10679 break; 10680 10681 } 10682 case sstinsert: 10683 { 10684 lcisnewsql = true; 10685 if ( pstate != EFindSqlStateType.stnormal ) 10686 { 10687 if ( (lccurrentsqlstatement != null) ) 10688 { 10689 // merge 10690 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 10691 { 10692 if (lcprevsolidtoken != null) 10693 { 10694 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 10695 {lcisnewsql = false;} 10696 } 10697 } 10698 10699 // bulk insert 10700 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlbulkinsert ) 10701 { 10702 if ( (lcprevsolidtoken != null) ) 10703 { 10704 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_bulk ) 10705 lcisnewsql = false; 10706 } 10707 } 10708 10709 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 10710 { 10711 if ( (lcprevsolidtoken != null) ) 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 ( (lcprevsolidtoken != null) ) 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 10739 if ( lcisnewsql ) 10740 { 10741 ret = new TInsertSqlStatement(pdbvendor); 10742 ret.dummytag = 1; // select stmt in insert is permitted 10743 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 10744 { 10745 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 10746 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 10747 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 10748 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 10749 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ){ 10750 ret.dummytag = 0; 10751 break; 10752 } 10753 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 10754 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 10755 } // for ( 10756 if ( k > lcsourcetokenlist.size() - 1 ) 10757 k = lcsourcetokenlist.size() - 1; 10758 10759 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 10760 { 10761 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 10762 } // for ( 10763 10764 } 10765 10766 break; 10767 } 10768 case sstupdate: 10769 { 10770 lcisnewsql = true; 10771 if ( pstate != EFindSqlStateType.stnormal ) 10772 { 10773 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 10774 if ( (lcprevsolidtoken != null) ) 10775 { // 10776 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 10777 lcisnewsql = false; 10778 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 10779 lcisnewsql = false; 10780 } 10781 10782 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 10783 if ( TBaseType.assigned(lcnextsolidtoken) ) 10784 { 10785 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 10786 { 10787 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 10788 if ( k == 0 ) lcisnewsql = false; 10789 } 10790 } 10791 10792 10793 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10794 { 10795 // merge 10796 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 10797 { 10798 if (lcprevsolidtoken != null) 10799 { 10800 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 10801 {lcisnewsql = false;} 10802 } 10803 } 10804 10805 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 10806 { 10807 if ( TBaseType.assigned(lcprevsolidtoken) ) 10808 { 10809 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 10810 lcisnewsql = false; 10811 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10812 lcisnewsql = false; 10813 } 10814 } 10815 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 10816 { 10817 if ( TBaseType.assigned(lcprevsolidtoken) ) 10818 { 10819 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 10820 lcisnewsql = false; 10821 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10822 lcisnewsql = false; 10823 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 10824 lcisnewsql = false; 10825 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 10826 lcisnewsql = false; 10827 } 10828 } 10829 10830 } 10831 } 10832 10833 if ( lcisnewsql ) 10834 { 10835 ret = new TUpdateSqlStatement(pdbvendor); 10836 ret.dummytag = 1; // means set clause in update is not found yet, used to separate set clause from set statement 10837 } 10838 10839 break; 10840 } 10841 case sstdelete: 10842 { 10843 lcisnewsql = true; 10844 10845 if ( pstate != EFindSqlStateType.stnormal ) 10846 { 10847 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 10848 if ( TBaseType.assigned(lcprevsolidtoken) ) 10849 { 10850 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 10851 lcisnewsql = false; 10852 } 10853 10854 if ( TBaseType.assigned(lccurrentsqlstatement) ) 10855 { 10856 // merge 10857 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 10858 { 10859 if (lcprevsolidtoken != null) 10860 { 10861 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 10862 {lcisnewsql = false;} 10863 } 10864 } 10865 10866 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 10867 { 10868 if ( TBaseType.assigned(lcprevsolidtoken) ) 10869 { 10870 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 10871 lcisnewsql = false; 10872 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10873 lcisnewsql = false; 10874 } 10875 } 10876 10877 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 10878 { 10879 if ( TBaseType.assigned(lcprevsolidtoken) ) 10880 { 10881 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 10882 lcisnewsql = false; 10883 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 10884 lcisnewsql = false; 10885 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 10886 lcisnewsql = false; 10887 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 10888 lcisnewsql = false; 10889 } 10890 } 10891 10892 } 10893 } 10894 10895 if ( lcisnewsql ) 10896 ret = new TDeleteSqlStatement(pdbvendor); 10897 10898 break; 10899 } 10900 case sstcreatetable: 10901 { 10902 lcisnewsql = true; 10903 if ( pstate != EFindSqlStateType.stnormal ) { 10904 10905 if (TBaseType.assigned(lccurrentsqlstatement)) { 10906 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateschema) 10907 ) 10908 { 10909 lcisnewsql = false; 10910 } 10911 } 10912 } 10913 10914 if (lcisnewsql) { 10915 ret = new TCreateTableSqlStatement(pdbvendor); 10916 10917 } 10918 break; 10919 } 10920 case sstcreateview: 10921 { 10922 10923 lcisnewsql = true; 10924 if ( pstate != EFindSqlStateType.stnormal ) { 10925 10926 if (TBaseType.assigned(lccurrentsqlstatement)) { 10927 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateschema) 10928 ) 10929 { 10930 lcisnewsql = false; 10931 } 10932 } 10933 } 10934 if (lcisnewsql) { 10935 ret = new TCreateViewSqlStatement(pdbvendor); 10936 } 10937 break; 10938 } 10939 case sstcreatesequence: 10940 { 10941 ret = new TCreateSequenceStmt(pdbvendor); 10942 break; 10943 } 10944 case sstaltertable: 10945 { 10946 ret = new TAlterTableStatement(pdbvendor); 10947 break; 10948 } 10949 case sstmssqlfetch: 10950 { 10951 ret = new TMssqlFetch(pdbvendor); 10952 break; 10953 } 10954 case sstmssqlif : 10955 { 10956 lcisnewsql = true; 10957 if ( pstate != EFindSqlStateType.stnormal ) { 10958 10959 if (TBaseType.assigned(lccurrentsqlstatement)) { 10960 // merge 10961 if ( 10962 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropprocedure) 10963 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropdatabase) 10964 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropfunction) 10965 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlDropSecurityPolicy) 10966 ) 10967 { 10968 lcisnewsql = false; 10969 }else if ( (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdroptable) 10970 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropindex) 10971 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable) 10972 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropsynonym) 10973 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropview) 10974 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstdropsequence) 10975 ){ 10976 // DROP TABLE IF EXISTS T1; 10977 TSourceToken st = lcsourcetokenlist.solidtokenbefore(lcpos); 10978 if ((st.tokencode == TBaseType.rrw_table)||(st.tokencode == TBaseType.rrw_index) 10979 ||(st.tokencode == TBaseType.rrw_sqlserver_synonym)||(st.tokencode == TBaseType.rrw_view) 10980 ||(st.tokencode == TBaseType.rrw_sqlserver_sequence) 10981 ){ 10982 lcisnewsql = false; 10983 } 10984 }else if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable)){ 10985 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 10986 if (lcnextsolidtoken != null){ 10987 if (lcnextsolidtoken.tokencode == TBaseType.rrw_sqlserver_exists){ 10988 lcisnewsql = false; 10989 } 10990 } 10991 } 10992 } 10993 } 10994 10995 10996 if (lcisnewsql) { 10997 ret = new TMssqlIfElse(pdbvendor); 10998 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 10999 } 11000 break; 11001 } 11002 case sstmssqlwhile: 11003 { 11004 ret = new TMssqlIfElse(pdbvendor); 11005 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 11006 break; 11007 } 11008 case sstmssqlcreateprocedure : 11009 case sstmssqlalterprocedure: 11010 { 11011 ret = new TMssqlCreateProcedure(pdbvendor); 11012 break; 11013 } 11014 case sstmssqlcreatefunction : 11015 case sstmssqlalterfunction: 11016 { 11017 ret = new TMssqlCreateFunction(pdbvendor); 11018 break; 11019 } 11020 case sstcreatetrigger : 11021 case sstmssqlaltertrigger: 11022 { 11023 ret = new TCreateTriggerStmt(pdbvendor); //TMssqlCreateTrigger(pdbvendor); 11024 break; 11025 } 11026 case sstmssqlreturn: 11027 { 11028 ret = new TMssqlReturn(pdbvendor); 11029 break; 11030 } 11031 case sstmssqlprint: 11032 { 11033 if (pdbvendor == EDbVendor.dbvodbc){ 11034 11035 }else if (pdbvendor == EDbVendor.dbvmssql){ 11036 ret = new TMssqlPrint(pdbvendor); 11037 } 11038 11039 break; 11040 } 11041 case sstmssqluse: 11042 { 11043 ret = new TUseDatabase(pdbvendor); 11044 break; 11045 } 11046 case sstmssqlgo: 11047 { 11048 ret = new TMssqlGo(pdbvendor); 11049 break; 11050 } 11051 case sstmssqlrevert: 11052 { 11053 lcisnewsql = true; 11054 // prev tokentext can't be with 11055 if ( pstate != EFindSqlStateType.stnormal ) { 11056 if (TBaseType.assigned(lcprevsolidtoken)) { 11057 if (lcprevsolidtoken.toString().equalsIgnoreCase("no")) { 11058 ret = null; 11059 lcisnewsql = false; 11060 } 11061 } 11062 } 11063 if (lcisnewsql){ 11064 ret = new TMssqlRevert(pdbvendor); 11065 } 11066 11067 break; 11068 } 11069 case sstmssqlgrant: 11070 { 11071 lcisnewsql = true; 11072 // prev tokentext can't be with 11073 if ( pstate != EFindSqlStateType.stnormal ) 11074 { 11075 if ( TBaseType.assigned(lcprevsolidtoken) ) 11076 { 11077 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 11078 { 11079 ret = null; 11080 lcisnewsql = false; 11081 } 11082 } 11083 11084 if((lcisnewsql)&&(TBaseType.assigned(lccurrentsqlstatement))) { 11085 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateschema) 11086 ) 11087 { 11088 lcisnewsql = false; 11089 } 11090 } 11091 } 11092 if ( lcisnewsql ) 11093 { 11094 ret = new TGrantStmt(pdbvendor); 11095 //ret.sqlstatementtype = gnewsqlstatementtype; 11096 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 11097 { 11098 lctoken = lcsourcetokenlist.get(k); 11099 if (lctoken.isnonsolidtoken() ) continue; 11100 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 11101 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 11102 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 11103 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 11104 } 11105 } 11106 break; 11107 } 11108 case sstmssqlrevoke:{ 11109 lcisnewsql = true; 11110 if ( pstate != EFindSqlStateType.stnormal ) 11111 { 11112 if((lcisnewsql)&&(TBaseType.assigned(lccurrentsqlstatement))) { 11113 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateschema) 11114 ) 11115 { 11116 lcisnewsql = false; 11117 } 11118 } 11119 } 11120 if ( lcisnewsql ) 11121 { 11122 ret = new TRevokeStmt(pdbvendor); 11123 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 11124 { 11125 lctoken = lcsourcetokenlist.get(k); 11126 if (lctoken.isnonsolidtoken() ) continue; 11127 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 11128 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 11129 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 11130 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 11131 } 11132 } 11133 break; 11134 11135 } 11136 case sstmssqldeny: 11137 { 11138 lcisnewsql = true; 11139 if ( pstate != EFindSqlStateType.stnormal ) 11140 { 11141 if((lcisnewsql)&&(TBaseType.assigned(lccurrentsqlstatement))) { 11142 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateschema) 11143 ) 11144 { 11145 lcisnewsql = false; 11146 } 11147 } 11148 } 11149 if ( lcisnewsql ) 11150 { 11151 ret = new TDenyStmt(pdbvendor); 11152 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 11153 { 11154 lctoken = lcsourcetokenlist.get(k); 11155 if (lctoken.isnonsolidtoken() ) continue; 11156 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 11157 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 11158 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 11159 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 11160 } 11161 } 11162 break; 11163 } 11164 case sstmssqldeclare: 11165 { 11166 ret = new TMssqlDeclare(pdbvendor); 11167 break; 11168 } 11169 case sstmssqlcontinue: 11170 { 11171 ret = new TMssqlContinue(pdbvendor); 11172 break; 11173 } 11174 case sstbreak: 11175 { 11176 ret = new TBreakStmt(pdbvendor); 11177 break; 11178 } 11179 case sstmssqlopen: 11180 { 11181 ret = new TMssqlOpen(pdbvendor); 11182 break; 11183 } 11184 case sstmssqlclose: 11185 { 11186 ret = new TMssqlClose(pdbvendor); 11187 break; 11188 } 11189 case sstmssqlbulkinsert: 11190 { 11191 ret = new TMssqlBulkInsert(pdbvendor); 11192 break; 11193 } 11194 case sstmssqldeallocate: 11195 { 11196 ret = new TMssqlDeallocate(pdbvendor); 11197 break; 11198 } 11199 case sstmssqlraiserror: 11200 { 11201 ret = new TMssqlRaiserror(pdbvendor); 11202 break; 11203 } 11204 case sstmssqlgoto: 11205 { 11206 ret = new TMssqlGoTo(pdbvendor); 11207 break; 11208 } 11209 case sstmssqldropview: 11210 { 11211 ret = new TDropViewSqlStatement(pdbvendor); 11212 break; 11213 } 11214 case sstmssqldroptable: 11215 { 11216 ret = new TDropTableSqlStatement(pdbvendor); 11217 break; 11218 } 11219 case sstmssqldropindex: 11220 { 11221 ret = new TDropIndexSqlStatement(pdbvendor); 11222 break; 11223 } 11224 case sstmssqldroppartitionscheme : 11225 ret = new TDropPartitionSchemeStmt(pdbvendor); 11226 break; 11227 case sstmssqldropaggregate : 11228 case sstmssqldropapplicationrole : 11229 case sstmssqldropassembly : 11230 case sstmssqldropasymmetrickey : 11231 case sstmssqldropcertificate : 11232 case sstmssqldropcontract : 11233 case sstmssqldropcredential : 11234 case sstmssqldropdefault : 11235 case sstmssqldropendpoint : 11236 case sstmssqldropeventnotification : 11237 case sstmssqldropfulltextcatalog : 11238 case sstmssqldropfulltextindex : 11239 case sstmssqldroplogin : 11240 case sstmssqldropmasterkey : 11241 case sstmssqldropmessagetype : 11242 case sstmssqldroppartitionfunction : 11243 case sstmssqldropqueue : 11244 case sstmssqldropremoteservicebinding : 11245 case sstmssqldroprole : 11246 case sstmssqldroproute : 11247 case sstmssqldroprule : 11248 case sstmssqldropservice : 11249 case sstmssqldropsignature: 11250 case sstmssqldropstatistics : 11251 case sstmssqldropsymmetrickey : 11252 case sstmssqldroptrigger : 11253 case sstmssqldroptype : 11254 case sstmssqldropuser : 11255 case sstmssqldropxmlschemacollection: 11256 case sstmssqldropeventsession: 11257 { 11258 ret = new TMssqlDropDbObject(EDbVendor.dbvmssql); 11259 ret.sqlstatementtype = gnewsqlstatementtype; 11260 break; 11261 } 11262 case sstmssqldropsynonym : 11263 { 11264 ret = new TDropSynonymStmt(pdbvendor); 11265 break; 11266 } 11267 case sstmssqldropprocedure : 11268 { 11269 ret = new TDropProcedureStmt(EDbVendor.dbvmssql); 11270 break; 11271 } 11272 case sstmssqldropdatabase : 11273 { 11274 ret = new TDropDatabaseStmt(EDbVendor.dbvmssql); 11275 break; 11276 } 11277 case sstmssqldropschema : 11278 { 11279 ret = new TDropSchemaSqlStatement(EDbVendor.dbvmssql); 11280 break; 11281 } 11282 case sstmssqltruncatetable: 11283 { 11284 ret = new TTruncateStatement(pdbvendor); 11285 break; 11286 } 11287 case sstmssqlbegintran: 11288 { 11289 ret = new TBeginTran(pdbvendor); 11290 break; 11291 } 11292 case sstmssqlsavetran: 11293 { 11294 if (pdbvendor == EDbVendor.dbvodbc){ 11295 11296 }else if (pdbvendor == EDbVendor.dbvmssql) { 11297 ret = new TMssqlSaveTran(pdbvendor); 11298 } 11299 break; 11300 } 11301 case sstmssqlcommit: 11302 { 11303 ret = new TMssqlCommit(pdbvendor); 11304 break; 11305 } 11306 case sstmssqlrollback: 11307 { 11308 ret = new TMssqlRollback(pdbvendor); 11309 break; 11310 } 11311 case sstmssqlreadtext : 11312 { 11313 // typed statement only for the real mssql dialect; shared dialects 11314 // (access/odbc/soql) still stub READTEXT in their grammars 11315 if (pdbvendor == EDbVendor.dbvmssql) { 11316 ret = new TMssqlReadText(pdbvendor); 11317 } else { 11318 ret = new TMssqlDummyStmt(pdbvendor); 11319 ret.sqlstatementtype = gnewsqlstatementtype; 11320 } 11321 break; 11322 } 11323 case sstmssqlwritetext : 11324 { 11325 if (pdbvendor == EDbVendor.dbvmssql) { 11326 ret = new TMssqlWriteText(pdbvendor); 11327 } else { 11328 // legacy unknown-statement handling this type previously fell 11329 // through to 11330 ret = new TUnknownSqlStatement(pdbvendor); 11331 ret.sqlstatementtype = gnewsqlstatementtype; 11332 } 11333 break; 11334 } 11335 case sstmssqldbcc : 11336 case sstmssqlrestore : 11337 case sstmssqlbackup : 11338 { 11339 ret = new TMssqlDummyStmt(pdbvendor); 11340 ret.sqlstatementtype = gnewsqlstatementtype; 11341 break; 11342 } 11343 11344 case sstmssqlreceive: 11345 { 11346 lcisnewsql = true; 11347 if ( pstate != EFindSqlStateType.stnormal ) 11348 { 11349 if((lcisnewsql)&&(TBaseType.assigned(lccurrentsqlstatement))) { 11350 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 11351 ) 11352 { 11353 lcisnewsql = false; 11354 } 11355 } 11356 } 11357 if ( lcisnewsql ) 11358 { 11359 ret = new TMssqlDummyStmt(pdbvendor); 11360 ret.sqlstatementtype = gnewsqlstatementtype; 11361 } 11362 break; 11363 } 11364 case sstcreateindex: 11365 { 11366 ret = new TCreateIndexSqlStatement(pdbvendor); 11367 break; 11368 } 11369 case sstmssqlwaitfor: 11370 { 11371 ret = new TMssqlWaitFor(pdbvendor); 11372 break; 11373 } 11374 case sstmerge: 11375 { 11376 lcisnewsql = true; 11377 11378 if (pstate != EFindSqlStateType.stnormal) 11379 { 11380 11381 if (lccurrentsqlstatement != null) 11382 { 11383 // merge union, merge join 11384 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 11385 { 11386 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 11387 if (lcnextsolidtoken != null) 11388 { 11389 if ((lcnextsolidtoken.tokencode == TBaseType.rrw_union) || (lcnextsolidtoken.tokencode == TBaseType.rrw_join)) 11390 { 11391 lcisnewsql = false; 11392 } 11393 } 11394 } 11395 11396// if ( TBaseType.assigned(lcprevsolidtoken) ) 11397// { 11398// if ( lcprevsolidtoken.tokencode == '(' ) 11399// lcisnewsql = false; 11400// } 11401 11402 } 11403 if (lcisnewsql){ 11404 TSourceToken nextSt = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 11405 if (nextSt != null){ 11406 if (nextSt.tokencode == TBaseType.rrw_join){ 11407 lcisnewsql = false; 11408 } 11409 } 11410 } 11411 } 11412 11413 if (lcisnewsql) 11414 { 11415 ret = new TMergeSqlStatement(pdbvendor); 11416 ret.sqlstatementtype = gnewsqlstatementtype; 11417 } 11418 11419 break; 11420 } 11421 case sstmssqlbegintry : 11422 case sstmssqlbegincatch: 11423 { 11424 ret = new TMssqlBlock(pdbvendor); 11425 ret.sqlstatementtype = gnewsqlstatementtype; 11426 break; 11427 } 11428 case sstmssqlexec: 11429 { 11430 lcisnewsql = true; 11431 // prev tokentext can't be with 11432 if ( pstate != EFindSqlStateType.stnormal ) 11433 { 11434 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11435 { 11436 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 11437 { 11438 if ( lccurrentsqlstatement.dummytag == 1 ) 11439 { 11440 lcisnewsql = false; 11441 lccurrentsqlstatement.dummytag = 0; // no select is permitted after it 11442 } 11443 11444 TSourceToken valuesToken = pcst.searchToken(TBaseType.rrw_values,-pcst.posinlist); 11445 if (valuesToken != null){ 11446 // https://www.sqlparser.com/bugs/mantisbt/view.php?id=3153 11447 // INSERT INTO @tempTbl VALUES ('Test5') 11448 // 11449 //EXEC sp_execute @handle, 1 11450 // 如果 EXEC 在 insert 语句的 values 后面,则这个 EXEC 为独立的 sql 语句, 11451 // 而不是属于insert 语句 11452 TSourceToken insertToken = lccurrentsqlstatement.sourcetokenlist.get(0); 11453 if (valuesToken.posinlist > insertToken.posinlist){ 11454 lcisnewsql = true; 11455 } 11456 } 11457 } 11458 11459 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 11460 { 11461 if ( TBaseType.assigned(lcprevsolidtoken) ) 11462 { 11463 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 11464 lcisnewsql = false; 11465 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 11466 lcisnewsql = false; 11467 } 11468 } 11469 11470 if ( 11471 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 11472 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 11473 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 11474 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 11475 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 11476 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 11477 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatequeue) 11478 ) 11479 { 11480 if ( TBaseType.assigned(lcprevsolidtoken) ) 11481 { 11482 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 11483 lcisnewsql = false; 11484 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 11485 lcisnewsql = false; 11486 } 11487 } 11488 } 11489 } 11490 if ( lcisnewsql ) 11491 { 11492 ret = new TMssqlExecute(pdbvendor); 11493 } 11494 break; 11495 } 11496 case sstmssqlexecuteas: 11497 { 11498 lcisnewsql = true; 11499 // prev tokentext can't be with 11500 if ( pstate != EFindSqlStateType.stnormal ) 11501 { 11502 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11503 { 11504 if ( 11505 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 11506 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 11507 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 11508 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 11509 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 11510 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 11511 ) 11512 { 11513 if ( TBaseType.assigned(lcprevsolidtoken) ) 11514 { 11515 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 11516 lcisnewsql = false; 11517 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 11518 lcisnewsql = false; 11519 } 11520 } 11521 } 11522 } 11523 if ( lcisnewsql ) 11524 { 11525 ret = new TMssqlExecuteAs(pdbvendor); 11526 ret.sqlstatementtype = gnewsqlstatementtype; 11527 } 11528 break; 11529 } 11530 case sstmssqlset: 11531 { 11532 lcisnewsql = true; 11533 if ( pstate != EFindSqlStateType.stnormal ) 11534 { 11535 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11536 { 11537 11538 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlif) 11539 { 11540 TSourceToken lcPPToken = lcsourcetokenlist.searchToken(TBaseType.rrw_update,"",pcst,-10); 11541 if (TBaseType.assigned(lcPPToken)) 11542 { 11543 lcisnewsql = false; 11544 } 11545 } 11546 11547 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstalterdatabase) 11548 { 11549 TSourceToken lcPPToken = lcsourcetokenlist.searchToken(TBaseType.rrw_alter,"",pcst,-10); 11550 if (TBaseType.assigned(lcPPToken)) 11551 { 11552 lcisnewsql = false; 11553 } 11554 } 11555 11556 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 11557 { 11558 if (lcprevsolidtoken != null) 11559 { 11560 if (lcprevsolidtoken.tokencode == TBaseType.rrw_update){ 11561 lcisnewsql = false;} 11562 } 11563 } 11564 11565 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstupdate ) 11566 { 11567 if ( lccurrentsqlstatement.dummytag == 1 ) 11568 { 11569 //update statement still find set clause yet, so this is set clause in update statement 11570 lccurrentsqlstatement.dummytag = 0; 11571 lcisnewsql = false; 11572 } 11573 } 11574 11575 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateeventsession ) 11576 { 11577 lcisnewsql = false; 11578 } 11579 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable ) 11580 { 11581 lcisnewsql = false; 11582 } 11583 } 11584 11585 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 11586 if ( TBaseType.assigned(lcnextsolidtoken) ) 11587 { //set null, set default 11588 if ( (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(),"null")==0) 11589 || (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(), "default")==0) ) 11590 { 11591 lcisnewsql = false; 11592 } 11593 } 11594 11595 } 11596 11597 if ( lcisnewsql ) 11598 { 11599 ret = new TMssqlSet(pdbvendor); 11600 } 11601 11602 break; 11603 } 11604 case sstmssqlsetrowcount: 11605 { 11606 ret = new TMssqlSetRowCount(pdbvendor); 11607 break; 11608 } 11609 case sstmssqlupdatetext: 11610 { 11611 ret = new TMssqlUpdateText(pdbvendor); 11612 break; 11613 } 11614 case sstmssqlendconversation: 11615 { 11616 ret = new TMssqlEndConversation(pdbvendor); 11617 break; 11618 } 11619 case sstmssqlbegindialog: 11620 { 11621 ret = new TMssqlBeginDialog(pdbvendor); 11622 break; 11623 } 11624 case sstmssqlsendonconversation: 11625 { 11626 ret = new TMssqlSendOnConversation(pdbvendor); 11627 break; 11628 } 11629 case sstdropsequence: 11630 ret = new TDropSequenceStmt(pdbvendor); 11631 break; 11632 case sstmssqldisabletrigger : 11633 case sstmssqlenabletrigger: 11634 { 11635 lcisnewsql = true; 11636 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11637 { 11638 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable ) 11639 lcisnewsql = false; 11640 } 11641 11642 if ( lcisnewsql ) 11643 { 11644 ret = new TUnknownSqlStatement(pdbvendor); 11645 ret.sqlstatementtype = gnewsqlstatementtype; 11646 } 11647 break; 11648 } 11649 case sstmssqlthrow: 11650 ret = new TMssqlThrow(pdbvendor); 11651 break; 11652 case sstmssqlalterdatabase: 11653 ret = new TAlterDatabaseStmt(pdbvendor); 11654 break; 11655 case sstmssqlreconfigure: 11656 ret = new TReconfigure(pdbvendor); 11657 break; 11658 case sstcreatedatabase: 11659 { 11660 ret = new TCreateDatabaseSqlStatement(pdbvendor); 11661 break; 11662 } 11663 case sstmssqlcreateschema: 11664 { 11665 ret = new TCreateSchemaSqlStatement(pdbvendor); 11666 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 11667 { 11668 lctoken = lcsourcetokenlist.get(k); 11669 if (lctoken.isnonsolidtoken() ) continue; 11670 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 11671 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 11672 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 11673 } 11674 break; 11675 } 11676 case sstmssqlcreatesynonym: 11677 { 11678 ret = new TCreateSynonymStmt(pdbvendor); 11679 break; 11680 } 11681 case sstmssqlcreatetype: 11682 ret = new TMssqlCreateType(pdbvendor); 11683 break; 11684 case sstmssqlcreatexmlschemacollection: 11685 ret = new TMssqlCreateXmlSchemaCollectionStmt(pdbvendor); 11686 break; 11687 case sstmssqlalterindex: 11688 ret = new TAlterIndexStmt(pdbvendor); 11689 break; 11690 case sstmssqlcreateevexternalDataSource: 11691 ret = new TCreateExternalDataSourceStmt(pdbvendor); 11692 break; 11693 case sstmssqlcreateeventsession: 11694 ret = new TCreateEventSession(pdbvendor); 11695 break; 11696 case sstmssqldropfunction : 11697 ret = new TDropFunctionStmt(pdbvendor); 11698 break; 11699 case sstmssqlcreateevexternalLanguage: 11700 ret = new TCreateExternalLanguage(pdbvendor); 11701 break; 11702 case sstmssqlalterview: 11703 { 11704 lcisnewsql = true; 11705 if ( TBaseType.assigned(lccurrentsqlstatement) ) 11706 { 11707 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 11708 lcisnewsql = false; 11709 } 11710 11711 if ( lcisnewsql ) 11712 { 11713 ret = new TAlterViewStatement(pdbvendor); 11714 //ret.sqlstatementtype = gnewsqlstatementtype; 11715 } 11716 break; 11717 } 11718 case sstCreateFileFormat: 11719 { 11720 ret = new TCreateFileFormatStmt(pdbvendor); 11721 break; 11722 } 11723 case sstmssqlcreatemasterkey: 11724 ret = new TCreateMasterKeyStmt(pdbvendor); 11725 break; 11726 case sstmssqlcreatedatabaseencryptionkey: 11727 { 11728 TMssqlStmtStub stub = new TMssqlStmtStub(pdbvendor); 11729 stub.sqlstatementtype = ESqlStatementType.sstmssqlcreatedatabaseencryptionkey; 11730 ret = stub; 11731 break; 11732 } 11733 case sstmssqlcreateselectivexmlindex: 11734 { 11735 TMssqlStmtStub stub = new TMssqlStmtStub(pdbvendor); 11736 stub.sqlstatementtype = ESqlStatementType.sstmssqlcreateselectivexmlindex; 11737 ret = stub; 11738 break; 11739 } 11740 case sstmssqlcreatejsonindex: 11741 { 11742 TMssqlStmtStub stub = new TMssqlStmtStub(pdbvendor); 11743 stub.sqlstatementtype = ESqlStatementType.sstmssqlcreatejsonindex; 11744 ret = stub; 11745 break; 11746 } 11747 case sstmssqlcreatevectorindex: 11748 { 11749 TMssqlStmtStub stub = new TMssqlStmtStub(pdbvendor); 11750 stub.sqlstatementtype = ESqlStatementType.sstmssqlcreatevectorindex; 11751 ret = stub; 11752 break; 11753 } 11754 case sstcreatecredential: 11755 ret = new TCreateCredentialStmt(pdbvendor); 11756 break; 11757 case sstCopyInto: 11758 { 11759 ret = new TMssqlCopyIntoStmt(pdbvendor); 11760 break; 11761 } 11762 case sstcreatematerializedview:{ 11763 ret = new TCreateMaterializedSqlStatement(pdbvendor); 11764 break; 11765 } 11766 case sstmssqlCreateSecurityPolicy: 11767 ret = new TMssqlCreateSecurityPolicy(pdbvendor); 11768 break; 11769 case sstmssqlAlterSecurityPolicy: 11770 ret = new TMssqlAlterSecurityPolicy(pdbvendor); 11771 break; 11772 case sstmssqlDropSecurityPolicy: 11773 ret = new TMssqlDropSecurityPolicy(pdbvendor); 11774 break; 11775 case sstmssqlalterpartitionfunction: 11776 ret = new TAlterPartitionFunctionStmt(pdbvendor); 11777 break; 11778 case sstmssqlcreatepartitionfunction: 11779 ret = new TCreatePartitionFunctionStmt(pdbvendor); 11780 break; 11781 case sstmssqlalterpartitionscheme: 11782 ret = new TAlterPartitionSchemeSqlStatement(pdbvendor); 11783 break; 11784 case sstmssqlcreatepartitionscheme: 11785 ret = new TCreatePartitionSchemeSqlStatement(pdbvendor); 11786 break; 11787 default: 11788 { 11789 ret = new TUnknownSqlStatement(pdbvendor); 11790 ret.sqlstatementtype = gnewsqlstatementtype; 11791 break; 11792 } 11793 } // case 11794 11795 return ret; 11796 } 11797 11798 TCustomSqlStatement isteradatasql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 11799 TCustomSqlStatement ret = null; 11800 int k; 11801 boolean lcisnewsql; 11802 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 11803 11804 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 11805 11806 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 11807 || (pcst.tokencode == TBaseType.cmtslashstar) 11808 || (pcst.tokencode == TBaseType.lexspace) 11809 || (pcst.tokencode == TBaseType.lexnewline) 11810 || (pcst.tokentype == ETokenType.ttsemicolon) ) 11811 { 11812 return ret; 11813 } 11814 11815 int lcpos = pcst.posinlist; 11816 TSourceTokenList lcsourcetokenlist = pcst.container; 11817 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 11818 11819 //subquery after semicolon || at first line 11820 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) 11821 { 11822 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 11823 if ( k >0 ) 11824 { 11825 ret = new TSelectSqlStatement(pdbvendor); 11826 }else{ 11827 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_teradata_sel,1,"("); 11828 if ( k >0 ) 11829 { 11830 ret = new TSelectSqlStatement(pdbvendor); 11831 } 11832 } 11833 11834 return ret; 11835 } 11836 11837 //cte 11838 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 11839 { 11840 ret = findcte(pcst,pdbvendor); 11841 if ( (ret != null) ) return ret; 11842 } 11843 11844 // using 11845 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_teradata_using) ){ 11846 //return mapTeradataUsing(pcst); 11847 return new TTeradataUsing(pdbvendor); 11848 } 11849 11850 if ( (pstate == EFindSqlStateType.stnormal) && 11851 ((pcst.tokencode == TBaseType.rrw_lock)||(pcst.tokencode == TBaseType.rrw_teradata_locking)) ){ 11852 return new TTeradataLock(pdbvendor); 11853 } 11854 11855 gnewsqlstatementtype = findteradatacmd(pcst); 11856 11857 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 11858 switch(gnewsqlstatementtype ) { // 11859 case sstinvalid: 11860 { 11861 ret = null; 11862 break; 11863 } 11864 case sstselect: 11865 { 11866 lcisnewsql = true; 11867 11868 if ( pstate != EFindSqlStateType.stnormal ) 11869 { 11870 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 11871 if ( (lcprevsolidtoken != null) ) 11872 { 11873 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 11874 lcisnewsql = false; //subqery 11875 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 11876 lcisnewsql = false; 11877 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 11878 lcisnewsql = false; 11879 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 11880 lcisnewsql = false; 11881 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 11882 lcisnewsql = false; 11883 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 11884 lcisnewsql = false; 11885 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 11886 { 11887 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 11888 lcisnewsql = false; 11889 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 11890 lcisnewsql = false; 11891 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatareplaceview ) 11892 lcisnewsql = false; 11893 } 11894 11895 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 11896 { 11897 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 11898 if ( (lcpprevsolidtoken != null) ) 11899 { 11900 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 11901 lcisnewsql = false; 11902 } 11903 } 11904 11905 } 11906 11907 if ( (lccurrentsqlstatement != null) ) 11908 { 11909 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 11910 { 11911 } 11912 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 11913 lcisnewsql = false; 11914 } 11915 } 11916 11917 } 11918 11919 if ( lcisnewsql ) 11920 ret = new TSelectSqlStatement(pdbvendor); 11921 11922 break; 11923 11924 } 11925 case sstinsert: 11926 { 11927 lcisnewsql = true; 11928 if ( pstate != EFindSqlStateType.stnormal ) 11929 { 11930 if ( (lccurrentsqlstatement != null) ) 11931 { 11932 // merge 11933 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 11934 { 11935 if (lcprevsolidtoken != null) 11936 { 11937 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 11938 {lcisnewsql = false;} 11939 } 11940 } 11941 11942 11943 11944 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger ) 11945 { 11946 if ( (lcprevsolidtoken != null) ) 11947 { 11948 if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 11949 lcisnewsql = false; 11950 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 11951 lcisnewsql = false; 11952 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"before") == 0 ) 11953 lcisnewsql = false; 11954 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 11955 lcisnewsql = false; 11956 } 11957 } 11958 11959 11960 } 11961 } 11962 11963 if ( lcisnewsql ) 11964 { 11965 ret = new TInsertSqlStatement(pdbvendor); 11966 ret.dummytag = 1; // select stmt in insert is permitted 11967 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 11968 { 11969 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 11970 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 11971 // if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 11972 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 11973 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ) break; 11974 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 11975 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 11976 } // for ( 11977 if ( k > lcsourcetokenlist.size() - 1 ) 11978 k = lcsourcetokenlist.size() - 1; 11979 11980 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 11981 { 11982 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 11983 } // for ( 11984 11985 } 11986 11987 break; 11988 } 11989 case sstupdate: 11990 { 11991 lcisnewsql = true; 11992 if ( pstate != EFindSqlStateType.stnormal ) 11993 { 11994 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 11995 if ( (lcprevsolidtoken != null) ) 11996 { // 11997 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 11998 lcisnewsql = false; 11999 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12000 lcisnewsql = false; 12001 } 12002 12003 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 12004 if ( TBaseType.assigned(lcnextsolidtoken) ) 12005 { 12006 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 12007 { 12008 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 12009 if ( k == 0 ) lcisnewsql = false; 12010 } 12011 } 12012 12013 12014 if ( TBaseType.assigned(lccurrentsqlstatement) ) 12015 { 12016 // merge 12017 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12018 { 12019 if (lcprevsolidtoken != null) 12020 { 12021 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 12022 {lcisnewsql = false;} 12023 } 12024 } 12025 12026 12027 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger ) 12028 { 12029 if ( TBaseType.assigned(lcprevsolidtoken) ) 12030 { 12031 if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12032 lcisnewsql = false; 12033 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 12034 lcisnewsql = false; 12035 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"before") == 0 ) 12036 lcisnewsql = false; 12037 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 12038 lcisnewsql = false; 12039 } 12040 } 12041 12042 } 12043 } 12044 12045 if ( lcisnewsql ) 12046 { 12047 ret = new TUpdateSqlStatement(pdbvendor); 12048 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 12049 } 12050 12051 break; 12052 } 12053 case sstdelete: 12054 { 12055 lcisnewsql = true; 12056 12057 if ( pstate != EFindSqlStateType.stnormal ) 12058 { 12059 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 12060 if ( TBaseType.assigned(lcprevsolidtoken) ) 12061 { 12062 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 12063 lcisnewsql = false; 12064 } 12065 12066 if ( TBaseType.assigned(lccurrentsqlstatement) ) 12067 { 12068 // merge 12069 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12070 { 12071 if (lcprevsolidtoken != null) 12072 { 12073 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 12074 {lcisnewsql = false;} 12075 } 12076 } 12077 12078 12079 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger ) 12080 { 12081 if ( TBaseType.assigned(lcprevsolidtoken) ) 12082 { 12083 if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12084 lcisnewsql = false; 12085 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 12086 lcisnewsql = false; 12087 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"before") == 0 ) 12088 lcisnewsql = false; 12089 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 12090 lcisnewsql = false; 12091 } 12092 } 12093 12094 } 12095 } 12096 12097 if ( lcisnewsql ) 12098 ret = new TDeleteSqlStatement(pdbvendor); 12099 12100 break; 12101 } 12102 case sstcreatetable: 12103 { 12104 ret = new TCreateTableSqlStatement(pdbvendor); 12105 break; 12106 } 12107 case sstaltertable: 12108 case sstteradataaltertable: 12109 { 12110 ret = new TAlterTableStatement(pdbvendor); 12111 break; 12112 } 12113 case sstteradatafetch: 12114 { 12115 ret = new TMssqlFetch(pdbvendor); 12116 break; 12117 } 12118 case sstcreateprocedure : 12119 case sstteradatareplaceprocedure: 12120 { 12121 ret = new TCreateProcedureStmt(pdbvendor); 12122 break; 12123 } 12124 case sstteradataalterprocedure: 12125 ret = new TAlterProcedureStmt(pdbvendor); 12126 break; 12127 case sstteradatacreatefunction : 12128 case sstteradatareplacefunction: 12129 { 12130 ret = new TTeradataCreateFunction(pdbvendor); 12131 break; 12132 } 12133 case sstteradataalterfunction: 12134 ret = new TAlterFunctionStmt(pdbvendor); 12135 break; 12136 case sstteradatacreatetrigger : 12137 case sstteradataaltertrigger: 12138 case sstteradatareplacetrigger: 12139 { 12140 ret = new TCreateTriggerStmt(pdbvendor); 12141 break; 12142 } 12143 case sstteradatagrant: 12144 { 12145 lcisnewsql = true; 12146 // prev tokentext can't be with 12147 if ( pstate != EFindSqlStateType.stnormal ) 12148 { 12149 if ( TBaseType.assigned(lcprevsolidtoken) ) 12150 { 12151 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 12152 { 12153 ret = null; 12154 lcisnewsql = false; 12155 } 12156 } 12157 } 12158 if ( lcisnewsql ) 12159 { 12160 ret = new TTeradataGrant(pdbvendor); 12161 ret.sqlstatementtype = gnewsqlstatementtype; 12162 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 12163 { 12164 lctoken = lcsourcetokenlist.get(k); 12165 if (lctoken.isnonsolidtoken() ) continue; 12166 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 12167 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 12168 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 12169 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 12170 } 12171 } 12172 break; 12173 } 12174 case sstdropindex: 12175 { 12176 ret = new TDropIndexSqlStatement(pdbvendor); 12177 break; 12178 } 12179 case sstdroptable: 12180 { 12181 ret = new TDropTableSqlStatement(pdbvendor); 12182 break; 12183 } 12184 case sstdropview: 12185 { 12186 ret = new TDropViewSqlStatement(pdbvendor); 12187 break; 12188 } 12189 case sstteradatadropprocedure: 12190 ret = new TDropProcedureStmt(pdbvendor); 12191 break; 12192 case sstteradatadropauthorization: 12193 case sstteradatadropcast: 12194 case sstteradatadropdatabase: 12195 case sstteradatadropfunction: 12196 case sstteradatadroptrigger: 12197 case sstteradatadropordering: 12198 case sstteradatadropprofile: 12199 case sstteradatadropreplicationgroup: 12200 case sstteradatadroprole: 12201 case sstteradatadroptransform: 12202 case sstteradatadroptype: 12203 case sstteradatadropuser: 12204 case sstteradatadropzone: 12205 { 12206 ret = new TTeradataDropDbObject(EDbVendor.dbvteradata); 12207 ret.sqlstatementtype = gnewsqlstatementtype; 12208 break; 12209 } 12210 case sstteradatadropmacro: 12211 ret = new TDropMacro(EDbVendor.dbvteradata); 12212 break; 12213 case sstteradatadropconstraint: 12214 ret = new TDropConstraintStmt(EDbVendor.dbvteradata); 12215 break; 12216 case sstteradatabegintransaction: 12217 { 12218 ret = new TBeginTran(pdbvendor); 12219 break; 12220 } 12221 case sstteradataendtransaction: 12222 { 12223 ret = new TEndTran(pdbvendor); 12224 break; 12225 } 12226 case sstteradatabeginrequest: 12227 { 12228 ret = new TBeginTran(pdbvendor); 12229 ret.sqlstatementtype = ESqlStatementType.sstteradatabeginrequest; 12230 break; 12231 } 12232 case sstteradataendrequest: 12233 { 12234 ret = new TEndTran(pdbvendor); 12235 ret.sqlstatementtype = ESqlStatementType.sstteradataendrequest; 12236 break; 12237 } 12238 case sstteradatacommit: 12239 { 12240 ret = new TTeradataCommit(pdbvendor); 12241 break; 12242 } 12243 case sstteradatarollback: 12244 { 12245 ret = new TTeradataRollback(pdbvendor); 12246 break; 12247 } 12248 case sstcreateindex: 12249 { 12250 ret = new TCreateIndexSqlStatement(pdbvendor); 12251 break; 12252 } 12253 case sstmerge: 12254 { 12255 lcisnewsql = true; 12256 12257 if (pstate != EFindSqlStateType.stnormal) 12258 { 12259 12260 if (lccurrentsqlstatement != null) 12261 { 12262 // merge union, merge join 12263 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 12264 { 12265 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 12266 if (lcnextsolidtoken != null) 12267 { 12268 if ((lcnextsolidtoken.tokencode == TBaseType.rrw_union) || (lcnextsolidtoken.tokencode == TBaseType.rrw_join)) 12269 { 12270 lcisnewsql = false; 12271 } 12272 } 12273 } 12274 12275 } 12276 } 12277 12278 if (lcisnewsql) 12279 { 12280 ret = new TMergeSqlStatement(pdbvendor); 12281 ret.sqlstatementtype = gnewsqlstatementtype; 12282 } 12283 12284 break; 12285 } 12286 case sstteradataexecute: 12287 { 12288 lcisnewsql = true; 12289 // prev tokentext can't be with 12290 if ( pstate != EFindSqlStateType.stnormal ) 12291 { 12292 if ( TBaseType.assigned(lccurrentsqlstatement) ) 12293 { 12294 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 12295 { 12296 if ( lccurrentsqlstatement.dummytag == 1 ) 12297 { 12298 lcisnewsql = false; 12299 lccurrentsqlstatement.dummytag = 0; // no select is permited after it 12300 } 12301 } 12302 12303 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatagrant ) 12304 { 12305 if ( TBaseType.assigned(lcprevsolidtoken) ) 12306 { 12307 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 12308 lcisnewsql = false; 12309 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12310 lcisnewsql = false; 12311 } 12312 } 12313 12314 if ( 12315 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateprocedure) 12316 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatacreatetrigger) 12317 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradatacreatefunction) 12318 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradataalterprocedure) 12319 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradataaltertrigger) 12320 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstteradataalterfunction) 12321 ) 12322 { 12323 if ( TBaseType.assigned(lcprevsolidtoken) ) 12324 { 12325 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 12326 lcisnewsql = false; 12327 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12328 lcisnewsql = false; 12329 } 12330 } 12331 } 12332 } 12333 if ( lcisnewsql ) 12334 { 12335 ret = new TTeradataExecute(pdbvendor); 12336 } 12337 break; 12338 } 12339 case sstteradatasetsession: 12340 { 12341 ret = new TTeradataSetSession(pdbvendor); 12342 break; 12343 } 12344 case sstteradatadatabase: 12345 if (pcst.isFirstTokenOfLine()){ 12346 ret = new TTeradataSetSession(pdbvendor); 12347 } 12348 12349 break; 12350 case sstteradatasettimezone: 12351 { 12352 ret = new TTeradataSetTimezone(pdbvendor); 12353 break; 12354 } 12355 case sstteradatasetrole: 12356 { 12357 ret = new TTeradataSetRole(pdbvendor); 12358 break; 12359 } 12360 case sstteradataendlogging: 12361 { 12362 ret = new TTeradataEndLogging(pdbvendor); 12363 break; 12364 } 12365 case sstteradatabeginlogging: 12366 { 12367 ret = new TTeradataBeginLogging(pdbvendor); 12368 break; 12369 } 12370 case sstteradataabort: 12371 { 12372 ret = new TTeradataAbort(pdbvendor); 12373 break; 12374 } 12375 case sstteradatareplaceview: 12376 case sstcreateview: 12377 { 12378 ret = new TCreateViewSqlStatement(pdbvendor); 12379 ret.sqlstatementtype = ESqlStatementType.sstcreateview; 12380 break; 12381 } 12382 case sstteradatacollectstatistics: 12383 { 12384 ret = new TTeradataCollectStatistics(pdbvendor); 12385 break; 12386 } 12387 case sstteradatagive: 12388 { 12389 ret = new TTeradataGive(pdbvendor); 12390 break; 12391 } 12392 case sstteradatacall: 12393 ret = new TCallStatement(pdbvendor); 12394 break; 12395 case sstteradatacreatemacro: 12396 case sstteradatareplacemacro: 12397 ret = new TCreateMacro(pdbvendor); 12398 break; 12399 case sstteradatarenametable: 12400 ret = new TRenameStmt(pdbvendor); 12401 break; 12402 case sstteradatacomment: 12403 ret = new TCommentOnSqlStmt(pdbvendor); 12404 break; 12405 case sstteradatacheckworkload: 12406 ret = new TCheckWorkload(pdbvendor); 12407 break; 12408 case sstgetdiagnostics: 12409 ret = new TGetDiagStmt(pdbvendor); 12410 break; 12411 case sstteradatacreaterole: 12412 ret = new TCreateRoleStmt(pdbvendor); 12413 break; 12414 case sstteradatarevoke: 12415 ret = new TRevokeStmt(pdbvendor); 12416 break; 12417 case sstteradataalterzone: 12418 ret = new TAlterZoneStmt(pdbvendor); 12419 break; 12420 case sstcreatezone: 12421 ret = new TCreateZoneStmt(pdbvendor); 12422 break; 12423 case sstteradataalterconstraint: 12424 ret = new TAlterConstraintStmt(pdbvendor); 12425 break; 12426 case sstExplain: 12427 ret = new TExplainPlan(pdbvendor); 12428 break; 12429 case sstteradatareleaseLock: 12430 ret = new TTeradataReleaseLockStmt(pdbvendor); 12431 break; 12432 default: 12433 { 12434 ret = new TTeradataNotImplement(pdbvendor); 12435 ret.sqlstatementtype = gnewsqlstatementtype; 12436 break; 12437 } 12438 } // case 12439 12440 return ret; 12441 } 12442 12443 12444 TCustomSqlStatement ishana(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 12445 TCustomSqlStatement ret = null; 12446 int k; 12447 boolean lcisnewsql; 12448 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 12449 12450 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 12451 12452 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 12453 || (pcst.tokencode == TBaseType.cmtslashstar) 12454 || (pcst.tokencode == TBaseType.lexspace) 12455 || (pcst.tokencode == TBaseType.lexnewline) 12456 || (pcst.tokentype == ETokenType.ttsemicolon) ) 12457 { 12458 return ret; 12459 } 12460 12461 int lcpos = pcst.posinlist; 12462 TSourceTokenList lcsourcetokenlist = pcst.container; 12463 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 12464 12465 //subquery after semicolon || at first line 12466 if ( pcst.tokentype == ETokenType.ttleftparenthesis) // ( 12467 { 12468 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 12469 if ( k >0 ) 12470 { 12471 if (pstate == EFindSqlStateType.stnormal){ 12472 ret = new TSelectSqlStatement(pdbvendor); 12473 return ret; 12474 } 12475 } 12476 } 12477 12478 //cte 12479 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 12480 { 12481 ret = findcte(pcst,pdbvendor); 12482 if ( (ret != null) ) return ret; 12483 } 12484 12485 gnewsqlstatementtype = findhanacmd(pcst); 12486 12487 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 12488 switch(gnewsqlstatementtype ) { // 12489 case sstinvalid: 12490 { 12491 if ( pcst.tokencode == TBaseType.mslabel ) 12492 { 12493 ret = new TMssqlLabel(pdbvendor); 12494 } 12495 else 12496 ret = null; 12497 12498 break; 12499 } 12500 case sstselect: 12501 { 12502 lcisnewsql = true; 12503 12504 if ( pstate != EFindSqlStateType.stnormal ) 12505 { 12506 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 12507 if ( (lcprevsolidtoken != null) ) 12508 { 12509 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 12510 lcisnewsql = false; //subqery 12511 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 12512 lcisnewsql = false; 12513 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 12514 lcisnewsql = false; 12515 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 12516 lcisnewsql = false; 12517 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 12518 lcisnewsql = false; 12519 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 12520 lcisnewsql = false; 12521 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 12522 { 12523 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 12524 lcisnewsql = false; 12525 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 12526 lcisnewsql = false; 12527 } 12528 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12529 { 12530 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlset ) 12531 lcisnewsql = false; 12532 } 12533 else if (lcprevsolidtoken.tokentype == ETokenType.ttrightparenthesis){ 12534 if ((lccurrentsqlstatement != null) && (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable)){ 12535 lcisnewsql = false; 12536 } 12537 } 12538 12539 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 12540 { 12541 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 12542 if ( (lcpprevsolidtoken != null) ) 12543 { 12544 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 12545 lcisnewsql = false; 12546 } 12547 } 12548 12549 } 12550 12551 if ( (lccurrentsqlstatement != null) ) 12552 { 12553 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 12554 { 12555 lcisnewsql = false; 12556 } 12557 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstGrant ) 12558 { 12559 if ( (lcprevsolidtoken != null) ) 12560 { 12561 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 12562 lcisnewsql = false; 12563 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12564 lcisnewsql = false; 12565 } 12566 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 12567 lcisnewsql = false; 12568 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltersequence ){ 12569 lcisnewsql = false; 12570 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstExplain ){ 12571 lcisnewsql = false; 12572 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstRevoke ){ 12573 lcisnewsql = false; 12574 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstupsert ){ 12575 lcisnewsql = false; 12576 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstalterview ){ 12577 lcisnewsql = false; 12578 } 12579 } 12580 12581 } 12582 12583 if ( lcisnewsql ) 12584 ret = new TSelectSqlStatement(pdbvendor); 12585 12586 break; 12587 12588 } 12589 case sstinsert: 12590 { 12591 lcisnewsql = true; 12592 if ( pstate != EFindSqlStateType.stnormal ) 12593 { 12594 if ( (lccurrentsqlstatement != null) ) 12595 { 12596 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateauditpolicy) 12597 { 12598 lcisnewsql = false; 12599 } 12600 // merge 12601 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12602 { 12603 if (lcprevsolidtoken != null) 12604 { 12605 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 12606 {lcisnewsql = false;} 12607 } 12608 } 12609 12610 12611 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstGrant ) 12612 { 12613 if ( (lcprevsolidtoken != null) ) 12614 { 12615 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 12616 lcisnewsql = false; 12617 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12618 lcisnewsql = false; 12619 } 12620 }else if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12621 { 12622 lcisnewsql = false; 12623 } 12624 12625 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 12626 { 12627 if ( (lcprevsolidtoken != null) ) 12628 { 12629 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12630 lcisnewsql = false; 12631 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12632 lcisnewsql = false; 12633 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 12634 lcisnewsql = false; 12635 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 12636 lcisnewsql = false; 12637 } 12638 } 12639 12640 12641 } 12642 } 12643 12644 if ( lcisnewsql ) 12645 { 12646 ret = new TInsertSqlStatement(pdbvendor); 12647 ret.dummytag = 1; // select stmt in insert is permitted 12648 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 12649 { 12650 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 12651 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 12652 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 12653 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ){ 12654 ret.dummytag = 0; 12655 break; 12656 } 12657 } // for ( 12658 if ( k > lcsourcetokenlist.size() - 1 ) 12659 k = lcsourcetokenlist.size() - 1; 12660 12661 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 12662 { 12663 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 12664 } // for ( 12665 12666 } 12667 12668 break; 12669 } 12670 case sstupdate: 12671 { 12672 lcisnewsql = true; 12673 if ( pstate != EFindSqlStateType.stnormal ) 12674 { 12675 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 12676 if ( (lcprevsolidtoken != null) ) 12677 { // 12678 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 12679 lcisnewsql = false; 12680 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12681 lcisnewsql = false; 12682 } 12683 12684 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 12685 if ( TBaseType.assigned(lcnextsolidtoken) ) 12686 { 12687 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 12688 { 12689 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 12690 if ( k == 0 ) lcisnewsql = false; 12691 } 12692 } 12693 12694 12695 if ( TBaseType.assigned(lccurrentsqlstatement) ) 12696 { 12697 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateauditpolicy) 12698 { 12699 lcisnewsql = false; 12700 }else if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12701 { 12702 lcisnewsql = false; 12703 } 12704 // merge 12705 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12706 { 12707 if (lcprevsolidtoken != null) 12708 { 12709 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 12710 {lcisnewsql = false;} 12711 } 12712 } 12713 12714 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstGrant ) 12715 { 12716 if ( TBaseType.assigned(lcprevsolidtoken) ) 12717 { 12718 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 12719 lcisnewsql = false; 12720 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12721 lcisnewsql = false; 12722 } 12723 } 12724 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 12725 { 12726 if ( TBaseType.assigned(lcprevsolidtoken) ) 12727 { 12728 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12729 lcisnewsql = false; 12730 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12731 lcisnewsql = false; 12732 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 12733 lcisnewsql = false; 12734 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 12735 lcisnewsql = false; 12736 } 12737 } 12738 12739 } 12740 } 12741 12742 if ( lcisnewsql ) 12743 { 12744 ret = new TUpdateSqlStatement(pdbvendor); 12745 ret.dummytag = 1; // means set clause in update is not found yet, used to separate set clause from set statement 12746 } 12747 12748 break; 12749 } 12750 case sstdelete: 12751 { 12752 lcisnewsql = true; 12753 12754 if ( pstate != EFindSqlStateType.stnormal ) 12755 { 12756 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 12757 if ( TBaseType.assigned(lcprevsolidtoken) ) 12758 { 12759 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 12760 lcisnewsql = false; 12761 } 12762 12763 if ( TBaseType.assigned(lccurrentsqlstatement) ) 12764 { 12765 // merge 12766 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 12767 { 12768 if (lcprevsolidtoken != null) 12769 { 12770 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 12771 {lcisnewsql = false;} 12772 } 12773 } 12774 12775 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstGrant ) 12776 { 12777 if ( TBaseType.assigned(lcprevsolidtoken) ) 12778 { 12779 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 12780 lcisnewsql = false; 12781 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12782 lcisnewsql = false; 12783 } 12784 } 12785 12786 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 12787 { 12788 if ( TBaseType.assigned(lcprevsolidtoken) ) 12789 { 12790 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 12791 lcisnewsql = false; 12792 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 12793 lcisnewsql = false; 12794 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 12795 lcisnewsql = false; 12796 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 12797 lcisnewsql = false; 12798 } 12799 } 12800 12801 if ((lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstbackupcatalogdelete) 12802 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable) 12803 ) 12804 { 12805 lcisnewsql = false; 12806 } 12807 12808 } 12809 } 12810 12811 if ( lcisnewsql ) 12812 ret = new TDeleteSqlStatement(pdbvendor); 12813 12814 break; 12815 } 12816 case sstcreatetable: 12817 { 12818 ret = new TCreateTableSqlStatement(pdbvendor); 12819 break; 12820 } 12821 case sstcreateview: 12822 { 12823 ret = new TCreateViewSqlStatement(pdbvendor); 12824 break; 12825 } 12826 case sstcreatesequence: 12827 { 12828 ret = new TCreateSequenceStmt(pdbvendor); 12829 break; 12830 } 12831 case sstaltertable: 12832 { 12833 lcisnewsql = true; 12834 if ( pstate != EFindSqlStateType.stnormal ) 12835 { 12836 lcisnewsql = false; 12837 } 12838 if ( lcisnewsql ) { 12839 ret = new TAlterTableStatement(pdbvendor); 12840 } 12841 break; 12842 } 12843 case sstcreateprocedure : 12844 { 12845 ret = new TCreateProcedureStmt(pdbvendor); 12846 break; 12847 } 12848 case sstalterprocedure: 12849 { 12850 boolean isAlter = false; 12851 // hana alter and create procedure 语法混在一起,无法区分 12852 // c:\prg\gsp_java\gsp_java_core\gsp_sqlfiles\TestCases\public\allversions\hana\create_procedure.sql 12853 if (pcst.tokencode == TBaseType.rrw_alter){ 12854 12855 TSourceToken st = pcst.nextSolidToken(3); 12856 if (st != null){ 12857 switch (st.toString().toUpperCase()) { 12858 case "RECOMPILE": 12859 isAlter = true; 12860 break; 12861 case "ENCRYPTION": 12862 isAlter = true; 12863 break; 12864 case "ADD": 12865 isAlter = true; 12866 break; 12867 default: 12868 break; 12869 } 12870 } 12871 12872 // TSourceToken st = pcst.searchToken("recompile",4); 12873 // if (st != null){ 12874 // isAlter = true; 12875 // }else{ 12876 // st = pcst.searchToken("encryption",4); 12877 // if (st != null){ 12878 // isAlter = true; 12879 // } 12880 // } 12881 } 12882 if (isAlter){ 12883 ret = new TAlterProcedureStmt (pdbvendor); 12884 }else{ 12885 ret = new TCreateProcedureStmt (pdbvendor); 12886 } 12887 12888 break; 12889 } 12890 case sstcreatefunction : 12891 { 12892 ret = new TCreateFunctionStmt(pdbvendor); 12893 break; 12894 } 12895 case sstalterfunction: 12896 { 12897 boolean isAlter = false; 12898 // hana alter and create function 语法混在一起,无法区分 12899 12900 if (pcst.tokencode == TBaseType.rrw_alter){ 12901 TSourceToken stAdd = pcst.searchToken("add",4); 12902 TSourceToken stAlter = pcst.searchToken("alter",4); 12903 TSourceToken stDrop = pcst.searchToken("drop",4); 12904 if ((stAdd != null)||(stAlter != null)||(stDrop != null)){ 12905 isAlter = true; 12906 }else{ 12907 TSourceToken st = pcst.searchToken("encryption",4); 12908 if (st != null){ 12909 isAlter = true; 12910 } 12911 } 12912 } 12913 12914 if (isAlter){ 12915 ret = new TAlterFunctionStmt (pdbvendor); 12916 }else{ 12917 ret = new TCreateFunctionStmt (pdbvendor); 12918 } 12919 12920 12921 break; 12922 } 12923 case sstcreatetrigger : 12924 case sstaltertrigger: 12925 { 12926 ret = new TCreateTriggerStmt(pdbvendor); 12927 break; 12928 } 12929 case sstGrant: 12930 { 12931 lcisnewsql = true; 12932 12933 if ( pstate != EFindSqlStateType.stnormal ) 12934 { 12935 lcisnewsql = false; 12936 12937 } 12938 if ( lcisnewsql ) 12939 { 12940 ret = new TGrantStmt(pdbvendor); 12941 //ret.sqlstatementtype = gnewsqlstatementtype; 12942 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 12943 { 12944 lctoken = lcsourcetokenlist.get(k); 12945 if (lctoken.isnonsolidtoken() ) continue; 12946 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 12947 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 12948 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 12949 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 12950 } 12951 } 12952 break; 12953 } 12954 case sstdropview: 12955 { 12956 ret = new TDropViewSqlStatement(pdbvendor); 12957 break; 12958 } 12959 case sstdroptable: 12960 { 12961 ret = new TDropTableSqlStatement(pdbvendor); 12962 break; 12963 } 12964 case sstdropindex: 12965 { 12966 ret = new TDropIndexSqlStatement(pdbvendor); 12967 break; 12968 } 12969 case ssttruncatetable: 12970 { 12971 ret = new TTruncateStatement(pdbvendor); 12972 break; 12973 } 12974 case sstcommit: 12975 { 12976 lcisnewsql = true; 12977 TSourceToken lcPrev = pcst.prevSolidToken(); 12978 if ((lcPrev != null) && (lcPrev.tokencode == TBaseType.rrw_hana_of)){ 12979 lcisnewsql = false; 12980 } 12981 if ( pstate != EFindSqlStateType.stnormal ) 12982 { 12983 lcisnewsql = false; 12984 12985 } 12986 if (lcisnewsql){ 12987 ret = new TCommitStmt(pdbvendor); 12988 } 12989 12990 break; 12991 } 12992 case sstrollback: 12993 { 12994 ret = new TRollbackStmt(pdbvendor); 12995 break; 12996 } 12997 case sstRevoke: 12998 { 12999 lcisnewsql = true; 13000 13001 if ( pstate != EFindSqlStateType.stnormal ) 13002 { 13003 lcisnewsql = false; 13004 13005 } 13006 if (lcisnewsql){ 13007 ret = new TRevokeStmt(pdbvendor); 13008 } 13009 break; 13010 } 13011 case sstcreateindex: 13012 { 13013 ret = new TCreateIndexSqlStatement(pdbvendor); 13014 break; 13015 } 13016 case sstset: 13017 { 13018 lcisnewsql = true; 13019 if ( pstate != EFindSqlStateType.stnormal ) 13020 { 13021 if ( TBaseType.assigned(lccurrentsqlstatement) ) 13022 { 13023 lcisnewsql = false; 13024 } 13025 } 13026 13027 if ( lcisnewsql ) 13028 { 13029 ret = new TMssqlSet(pdbvendor); 13030 } 13031 13032 break; 13033 } 13034 case sstdropsequence: 13035 ret = new TDropSequenceStmt(pdbvendor); 13036 break; 13037 case sstalterdatabase: 13038 ret = new TAlterDatabaseStmt(pdbvendor); 13039 break; 13040 case sstcreatedatabase: 13041 { 13042 ret = new TCreateDatabaseSqlStatement(pdbvendor); 13043 break; 13044 } 13045 case sstcreateschema: 13046 { 13047 ret = new TCreateSchemaSqlStatement(pdbvendor); 13048 break; 13049 } 13050 case sstcreatesynonym: 13051 { 13052 ret = new TCreateSynonymStmt(pdbvendor); 13053 break; 13054 } 13055 case sstcreatetype: 13056 ret = new TMssqlCreateType(pdbvendor); 13057 break; 13058 case sstreplace: 13059 lcisnewsql = true; 13060 TSourceToken lcNext = pcst.nextSolidToken(); 13061 if ((lcNext != null) && (lcNext.tokencode == '(')){ 13062 lcisnewsql = false; 13063 } 13064 if ( pstate != EFindSqlStateType.stnormal ) 13065 { 13066 lcisnewsql = false; 13067 } 13068 if (lcisnewsql) { 13069 ret = new TUpsertStmt(pdbvendor); 13070 //ret.sqlstatementtype = gnewsqlstatementtype; 13071 } 13072 break; 13073 case sstalterauditpolicy: 13074 ret = new TAlterAuditPolicyStmt(pdbvendor); 13075 break; 13076 case sstaltercredential: 13077 ret = new TAlterCredentialStmt(pdbvendor); 13078 break; 13079 case sstalterfulltextindex: 13080 ret = new TAlterFulltextIndexStmt(pdbvendor); 13081 break; 13082 case sstalterindex: 13083 ret = new TAlterIndexStmt(pdbvendor); 13084 break; 13085 case sstalterldapprovider: 13086 ret = new TAlterLDAPProviderStmt(pdbvendor); 13087 break; 13088 case sstalterjwtprovider: 13089 ret = new TAlterJWTProviderStmt(pdbvendor); 13090 break; 13091 case sstalterpse: 13092 ret = new TAlterPSEStmt(pdbvendor); 13093 break; 13094 case sstalterremotesource: 13095 ret = new TAlterRemoteSourceStmt(pdbvendor); 13096 break; 13097 case sstAlterRole: 13098 ret = new TAlterRoleStmt(pdbvendor); 13099 break; 13100 case sstaltersamlprovider: 13101 ret = new TAlterSAMLProviderStmt(pdbvendor); 13102 break; 13103 case sstaltersequence: 13104 ret = new TAlterSequenceStatement(pdbvendor); 13105 break; 13106 case sstalterstatistics: 13107 ret = new TAlterStatisticsStmt(pdbvendor); 13108 break; 13109 case sstaltersystem: 13110 ret = new TAlterSystemStmt(pdbvendor); 13111 break; 13112 case sstunload: 13113 lcisnewsql = true; 13114 if ( pstate != EFindSqlStateType.stnormal ) 13115 { 13116 lcisnewsql = false; 13117 } 13118 if ( lcisnewsql ) { 13119 ret = new TUnloadStmt(pdbvendor); 13120 ret.sqlstatementtype = gnewsqlstatementtype; 13121 } 13122 break; 13123 case sstunset: 13124 case sstunsetpse: 13125 case sstunsetsystemlicense: 13126 lcisnewsql = true; 13127 if ( pstate != EFindSqlStateType.stnormal ) 13128 { 13129 lcisnewsql = false; 13130 } 13131 if ( lcisnewsql ) { 13132 ret = new TUnsetStmt(pdbvendor); 13133 ret.sqlstatementtype = gnewsqlstatementtype; 13134 } 13135 break; 13136 case sstalteruser: 13137 ret = new TAlterUserStmt(pdbvendor); 13138 break; 13139 case sstconnect: 13140 lcisnewsql = true; 13141 if ( pstate != EFindSqlStateType.stnormal ) 13142 { 13143 lcisnewsql = false; 13144 } 13145 if ( lcisnewsql ) { 13146 ret = new TConnectStmt(pdbvendor); 13147 ret.sqlstatementtype = gnewsqlstatementtype; 13148 } 13149 break; 13150 case sstalterusergroup: 13151 ret = new TAlterUserGroupStmt(pdbvendor); 13152 break; 13153 case sstalterview: 13154 case sstalterviewcache: 13155 ret = new TAlterViewStatement(pdbvendor); 13156 break; 13157 case sstaltervirtualtable: 13158 ret = new TAlterVirtualTableStmt(pdbvendor); 13159 break; 13160 case sstalterworkloadclass: 13161 ret = new TAlterWorkloadClassStmt(pdbvendor); 13162 break; 13163 case sstalterworkloadmapping: 13164 ret = new TAlterWorkloadMappingStmt(pdbvendor); 13165 break; 13166 case sstbackupcancel: 13167 ret = new TBackupCancelStmt(pdbvendor); 13168 break; 13169 case sstbackupcatalogdelete: 13170 ret = new TBackupCatalogDeleteStmt(pdbvendor); 13171 break; 13172 case sstbackupcheck: 13173 case sstbackupcheckaccess: 13174 ret = new TBackupCheckStmt(pdbvendor); 13175 break; 13176 case sstbackupdata: 13177 ret = new TBackupDataStmt(pdbvendor); 13178 break; 13179 case sstbackuplistdata: 13180 ret = new TBackupListDataStmt(pdbvendor); 13181 break; 13182 case sstcall: 13183 ret = new TCallStatement(pdbvendor); 13184 break; 13185 case sstcomment: 13186 ret = new TCommentOnSqlStmt(pdbvendor); 13187 break; 13188 case sstcreateauditpolicy: 13189 ret = new TCreateAuditPolicyStmt(pdbvendor); 13190 break; 13191 case sstcreatecertificate: 13192 ret = new TCreateCertificateStmt(pdbvendor); 13193 break; 13194 case sstcreatecollection: 13195 ret = new TCreateCollectionStmt(pdbvendor); 13196 break; 13197 case sstcreatecredential: 13198 ret = new TCreateCredentialStmt(pdbvendor); 13199 break; 13200 case sstcreatefulltextindex: 13201 ret = new TCreateFulltextIndexStmt(pdbvendor); 13202 break; 13203 case sstcreategraphworkspace: 13204 ret = new TCreateGraphWorkspaceStmt(pdbvendor); 13205 break; 13206 case sstcreateJWTProvider: 13207 ret = new TCreateJWTProviderStmt(pdbvendor); 13208 break; 13209 case sstcreateLDAPProvider: 13210 ret = new TCreateLDAPProviderStmt(pdbvendor); 13211 break; 13212 case sstcreatepse: 13213 ret = new TCreatePSEStmt(pdbvendor); 13214 break; 13215 case sstcreateremotesource: 13216 ret = new TCreateRemoteSourceStmt(pdbvendor); 13217 break; 13218 case sstcreaterole: 13219 ret = new TCreateRoleStmt(pdbvendor); 13220 break; 13221 case sstcreatesamlprovider: 13222 ret = new TCreateSAMLProviderStmt(pdbvendor); 13223 break; 13224 case sstcreatestatistics: 13225 ret = new TCreateStatistics(pdbvendor); 13226 break; 13227 case sstcreatestructuredprivilege: 13228 ret = new TCreateStructuredPrivilegeStmt(pdbvendor); 13229 break; 13230 case sstcreateuser: 13231 ret = new TCreateUserStmt(pdbvendor); 13232 break; 13233 case sstcreateusergroup: 13234 ret = new TCreateUserGroupStmt(pdbvendor); 13235 break; 13236 case sstcreatevirtualfunction: 13237 ret = new TCreateVirtualFunctionStmt(pdbvendor); 13238 break; 13239 case sstcreatevirtualtable: 13240 ret = new TCreateVirtualTableStmt(pdbvendor); 13241 break; 13242 case sstcreateworkloadclass: 13243 ret = new TCreateWorkloadClassStmt(pdbvendor); 13244 break; 13245 case sstcreateworkloadmapping: 13246 ret = new TCreateWorkloadMappingStmt(pdbvendor); 13247 break; 13248 case sstdropauditpolicy: 13249 case sstdropcertificate: 13250 case sstdropcollection: 13251 case sstdropcredential: 13252 case sstdropfulltextindex: 13253 case sstdropJWTProvider: 13254 case sstdropLDAPProvider: 13255 case sstdroppse: 13256 case sstdropremotesource: 13257 case sstdropsamlprovider: 13258 case sstdropstatistics: 13259 case sstdropgraphworkspace: 13260 case sstdropstructuredprivilege: 13261 case sstdroptype: 13262 case sstdropusergroup: 13263 case sstdropworkloadclass: 13264 case sstdropworkloadmapping: 13265 lcisnewsql = true; 13266 if ( pstate != EFindSqlStateType.stnormal ) 13267 { 13268 lcisnewsql = false; 13269 } 13270 if ( lcisnewsql ) { 13271 ret = new TDropStmt(pdbvendor); 13272 } 13273 13274 break; 13275 case sstdropdatabase: 13276 ret = new TDropDatabaseStmt(pdbvendor); 13277 break; 13278 case sstdropfunction: 13279 ret = new TDropFunctionStmt(pdbvendor); 13280 break; 13281 case sstdropprocedure: 13282 ret = new TDropProcedureStmt(pdbvendor); 13283 break; 13284 case sstdroprole: 13285 ret = new TDropRoleStmt(pdbvendor); 13286 break; 13287 case sstdropschema: 13288 ret = new TDropSchemaSqlStatement(pdbvendor); 13289 break; 13290 case sstdropsynonym: 13291 ret = new TDropSynonymStmt(pdbvendor); 13292 break; 13293 case sstdroptrigger: 13294 ret = new TDropTriggerSqlStatement(pdbvendor); 13295 break; 13296 case sstdropuser: 13297 ret = new TDropUserStmt(pdbvendor); 13298 break; 13299 case sstExplain: 13300 ret = new TExplainPlan(pdbvendor); 13301 break; 13302 case sstexport: 13303 ret = new TExportStmt(pdbvendor); 13304 break; 13305 case sstimport: 13306// case sstimportfrom: 13307// case sstimportscan: 13308 ret = new TImportStmt(pdbvendor); 13309 break; 13310 case sstload: 13311 lcisnewsql = true; 13312 if ( pstate != EFindSqlStateType.stnormal ) 13313 { 13314 lcisnewsql = false; 13315 } 13316 if ( lcisnewsql ) { 13317 ret = new TLoadStmt(pdbvendor); 13318 } 13319 13320 break; 13321 case sstlocktable: 13322 ret = new TLockTableStmt(pdbvendor); 13323 break; 13324 case sstmergedelta: 13325 ret = new TMergeDeltaStmt(pdbvendor); 13326 break; 13327 case sstmerge: 13328 ret = new TMergeSqlStatement(pdbvendor); 13329 break; 13330 case sstrecoverdata: 13331 ret = new TRecoverDataStmt(pdbvendor); 13332 break; 13333 case sstrecoverdatabase: 13334 ret = new TRecoverDatabaseStmt(pdbvendor); 13335 break; 13336 case sstrefreshstatistics: 13337 ret = new TRefreshStatisticsStmt(pdbvendor); 13338 break; 13339 case sstrenamecollection: 13340 case sstrenamecolumn: 13341 case sstrenamedatabase: 13342 case sstrenameindex: 13343 case sstrenametable: 13344 ret = new TRenameStmt(pdbvendor); 13345 break; 13346 case sssethistorysession: 13347 case sstsetpse: 13348 case sstsetschema: 13349 case sstsetsystemlicense: 13350 case sstsettransaction: 13351 case sstsettransactionautocommit: 13352 ret = new TSetDatabaseObjectStmt(pdbvendor); 13353 break; 13354 case ssttruncatecollection: 13355 ret = new TTruncateCollectionStmt(pdbvendor); 13356 break; 13357 case sstvalidateLDAPProvider: 13358 ret = new TValidateLDAPProviderStmt(pdbvendor); 13359 break; 13360 case sstvalidateUser: 13361 ret = new TValidateUserStmt(pdbvendor); 13362 break; 13363 case sstupsert: 13364 ret = new TUpsertStmt(pdbvendor); 13365 break; 13366 case sstsavepoint: 13367 { 13368 lcisnewsql = true; 13369 13370 if ( pstate != EFindSqlStateType.stnormal ) 13371 { 13372 lcisnewsql = false; 13373 13374 } 13375 if (lcisnewsql){ 13376 ret = new TSavepointStmt(pdbvendor); 13377 ret.sqlstatementtype = gnewsqlstatementtype; 13378 } 13379 break; 13380 } 13381 default: 13382 { 13383 ret = new TUnknownSqlStatement(pdbvendor); 13384 ret.sqlstatementtype = gnewsqlstatementtype; 13385 break; 13386 } 13387 } // case 13388 13389 return ret; 13390 } 13391 13392 TCustomSqlStatement mapTeradataUsing(TSourceToken ptoken){ 13393 TCustomSqlStatement ret = null; 13394 TSourceToken lctoken = null; 13395 int lcnested = 0,k,j; 13396 13397 //using ... insert/select/delete/update/begin transaction 13398 int lcpos = ptoken.posinlist; 13399 TSourceTokenList lcsourcetokenlist = ptoken.container; 13400 13401 for (int i = lcpos + 1; i < lcsourcetokenlist.size();i++) // iterate 13402 { 13403 lctoken = lcsourcetokenlist.get(i); 13404 if ( (lctoken.tokencode == TBaseType.rrw_delete) ) 13405 { 13406 ret = new TDeleteSqlStatement(EDbVendor.dbvteradata); 13407 gnewsqlstatementtype = ESqlStatementType.sstdelete; 13408 break; 13409 } 13410 else if ( (lctoken.tokencode == TBaseType.rrw_insert) ) 13411 { 13412 ret = new TInsertSqlStatement(EDbVendor.dbvteradata); 13413 gnewsqlstatementtype = ESqlStatementType.sstinsert; 13414 break; 13415 } 13416 else if ( (lctoken.tokencode == TBaseType.rrw_select) ) 13417 { 13418 ret = new TSelectSqlStatement(EDbVendor.dbvteradata); 13419 gnewsqlstatementtype = ESqlStatementType.sstselect; 13420 break; 13421 } 13422 else if ( (lctoken.tokencode == TBaseType.rrw_update) ) 13423 { 13424 ret = new TUpdateSqlStatement(EDbVendor.dbvteradata); 13425 gnewsqlstatementtype = ESqlStatementType.sstupdate; 13426 break; 13427 } 13428 else if ( (lctoken.tokencode == TBaseType.rrw_begin) || (lctoken.tokencode == TBaseType.rrw_bt) ) 13429 { 13430 ret = new TTeradataBeginTransaction(EDbVendor.dbvteradata); 13431 gnewsqlstatementtype = ESqlStatementType.sstteradatabegintransaction; 13432 break; 13433 } 13434 } 13435 return ret; 13436 } 13437 13438/** 13439 * Analyzes a SQL token to determine if it starts a Common Table Expression (CTE) 13440 * and returns the appropriate SQL statement object. 13441 * 13442 * This function handles CTEs that begin with "WITH" and can contain: 13443 * - SELECT statements 13444 * - INSERT statements 13445 * - UPDATE statements 13446 * - DELETE statements 13447 * - MERGE statements 13448 * - VALUES clauses (PostgreSQL) 13449 * 13450 * Side Effects: 13451 * When a CTE is found, this function marks tokens as "ignored" to prevent them from being 13452 * processed again during raw statement parsing: 13453 * 1. All tokens from after WITH up to and including the main statement keyword (SELECT/INSERT/etc.) 13454 * are marked with ETokenStatus.tsignoredbygetrawstatement 13455 * 2. For INSERT statements, additional tokens after INSERT up to VALUES/SELECT/EXECUTE/semicolon 13456 * are also marked as ignored 13457 * 13458 * Example of ignored tokens: 13459 * WITH cte AS (SELECT * FROM t1) -- these tokens marked as ignored 13460 * SELECT * FROM cte; -- SELECT is also marked as ignored 13461 * -- parsing continues after SELECT 13462 * 13463 * @param ptoken The source token to analyze, expected to be a "WITH" keyword 13464 * @param pdbvendor The database vendor type (e.g. Oracle, SQL Server, etc.) 13465 * @return A TCustomSqlStatement object representing the CTE statement type found, 13466 * or null if no valid CTE statement is detected 13467 */ 13468TCustomSqlStatement findcte(TSourceToken ptoken, EDbVendor pdbvendor){ 13469 TCustomSqlStatement ret = null; 13470 TSourceToken lctoken = null; 13471 int lcnested = 0,k,j; 13472 boolean inXmlNamespaces = false; 13473 boolean isXmlNamespaces = false; 13474 13475 int lcpos = ptoken.posinlist; 13476 TSourceTokenList lcsourcetokenlist = ptoken.container; 13477 13478 for (int i = lcpos + 1; i < lcsourcetokenlist.size();i++) // iterate 13479 { 13480 lctoken = lcsourcetokenlist.get(i); 13481// if (lctoken.tokencode == TBaseType.rrw_postgresql_recursive){ 13482// continue; 13483// } 13484 if (lctoken.tokencode == TBaseType.rrw_xmlnamespaces){ 13485 inXmlNamespaces = true; 13486 lcnested = 0; 13487 continue; 13488 } 13489 if (inXmlNamespaces) { 13490 if ( lctoken.tokentype == ETokenType.ttleftparenthesis) lcnested++; 13491 if ( lctoken.tokentype == ETokenType.ttrightparenthesis) { 13492 lcnested--; 13493 if (lcnested == 0) { 13494 inXmlNamespaces = false; 13495 isXmlNamespaces = true; 13496 } 13497 } 13498 continue; 13499 } 13500 if (( lctoken.tokencode == TBaseType.rrw_as ) || isXmlNamespaces) 13501 { 13502 lcnested = 0; 13503 int startPos = i+1; 13504 if (isXmlNamespaces) startPos = i; 13505 for ( j = startPos; j < lcsourcetokenlist.size();j++) 13506 { 13507 lctoken = lcsourcetokenlist.get(j); 13508 if (lctoken.isnonsolidtoken() ) continue; 13509 if ( lctoken.tokentype == ETokenType.ttleftparenthesis) lcnested++; 13510 if ( lctoken.tokentype == ETokenType.ttrightparenthesis) lcnested--; 13511 13512 13513 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_delete) ) 13514 { 13515 ret = new TDeleteSqlStatement(pdbvendor); 13516 ret.isctequery = true; 13517 gnewsqlstatementtype = ESqlStatementType.sstdelete; 13518 break; 13519 } 13520 13521 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_merge) ) 13522 { 13523 ret = new TMergeSqlStatement(pdbvendor); 13524 ret.isctequery = true; 13525 gnewsqlstatementtype = ESqlStatementType.sstmerge; 13526 break; 13527 } 13528 13529 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_insert) ) 13530 { 13531 ret = new TInsertSqlStatement(pdbvendor); 13532 ret.isctequery = true; 13533 gnewsqlstatementtype = ESqlStatementType.sstinsert; 13534 ret.dummytag = 1; // select stmt in insert is permitted 13535 13536 for ( k = lctoken.posinlist + 1; k < lcsourcetokenlist.size();k++) // iterate 13537 { 13538 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 13539 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 13540 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 13541 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 13542 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ) break; 13543 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 13544 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 13545 } // for 13546 if ( k > lcsourcetokenlist.size() - 1 ) 13547 k = lcsourcetokenlist.size() - 1; 13548 13549 for (int m = lctoken.posinlist + 1; m <= k; m++) // iterate 13550 { 13551 lcsourcetokenlist.get(m).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 13552 } // for 13553 13554 break; 13555 } 13556 13557 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_values) &&(pdbvendor == EDbVendor.dbvpostgresql) ) 13558 { 13559 ret = new TSelectSqlStatement(pdbvendor); 13560 ret.isctequery = true; 13561 gnewsqlstatementtype = ESqlStatementType.sstselect; 13562 break; 13563 } 13564 13565 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_select) ) 13566 { 13567 ret = new TSelectSqlStatement(pdbvendor); 13568 ret.isctequery = true; 13569 gnewsqlstatementtype = ESqlStatementType.sstselect; 13570 break; 13571 } 13572 13573 if ( (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_update) ) 13574 { 13575 ret = new TUpdateSqlStatement(pdbvendor); 13576 ret.isctequery = true; 13577 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 13578 gnewsqlstatementtype = ESqlStatementType.sstupdate; 13579 break; 13580 } 13581 13582 if ( (pdbvendor == EDbVendor.dbvhive) && (lcnested == 0) && (lctoken.tokencode == TBaseType.rrw_from) ) 13583 { 13584 TSourceToken cmdToken = lctoken.searchToken(TBaseType.rrw_insert,3); 13585 if (cmdToken != null){ 13586 ret = new TInsertSqlStatement(pdbvendor); 13587 ret.isctequery = true; 13588 gnewsqlstatementtype = ESqlStatementType.sstinsert; 13589 13590 }else{ 13591 ret = new TSelectSqlStatement(pdbvendor); 13592 ret.isctequery = true; 13593 gnewsqlstatementtype = ESqlStatementType.ssthiveFromQuery; 13594 } 13595 break; 13596 } 13597 13598 13599 } // for 13600 13601 if ( (ret != null) ) 13602 { 13603 for (k = lcpos + 1; k <= j;k++) // iterate 13604 { 13605 lcsourcetokenlist.get(k).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 13606 } // for 13607 break; 13608 } 13609 13610 } 13611 } 13612 13613 return ret; 13614} 13615 13616 TCustomSqlStatement findMdxStmtBeginWithClause(TSourceToken ptoken, EDbVendor pdbvendor){ 13617 TCustomSqlStatement ret = null; 13618 ret = new TMdxSelect(pdbvendor); 13619 ret.isctequery = true; 13620 gnewsqlstatementtype = ESqlStatementType.sstmdxselect; 13621 return ret; 13622 } 13623 13624 TCustomSqlStatement isdb2sql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 13625 TCustomSqlStatement ret = null; 13626 int k; 13627 boolean lcisnewsql; 13628 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 13629 13630 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 13631 13632 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 13633 || (pcst.tokencode == TBaseType.cmtslashstar) 13634 || (pcst.tokencode == TBaseType.lexspace) 13635 || (pcst.tokencode == TBaseType.lexnewline) 13636 || (pcst.tokentype == ETokenType.ttsemicolon) ) 13637 { 13638 return ret; 13639 } 13640 13641 int lcpos = pcst.posinlist; 13642 TSourceTokenList lcsourcetokenlist = pcst.container; 13643 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 13644 13645 //subquery after semicolon || at first line 13646 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 13647 { 13648 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 13649 if ( k >0 ) 13650 { 13651 ret = new TSelectSqlStatement(pdbvendor); 13652 } 13653 13654 return ret; 13655 } 13656 13657 //cte 13658 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 13659 { 13660 ret = findcte(pcst,pdbvendor); 13661 if ( TBaseType.assigned(ret) ) return ret; 13662 } 13663 13664 //values 13665 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_values) ) 13666 { 13667 ret = new TSelectSqlStatement(pdbvendor); 13668 return ret; 13669 } 13670 13671 // db2 scriptoptions 13672 if ( pcst.tokencode == TBaseType.scriptoptions ) 13673 { 13674 ret = new TDb2ScriptOptionStmt(pdbvendor); 13675 return ret; 13676 } 13677 13678 gnewsqlstatementtype = finddb2cmd(pcst); 13679 13680 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 13681 switch(gnewsqlstatementtype) { // 13682 case sstinvalid: 13683 { 13684 ret = null; 13685 if ( pcst.tokencode == TBaseType.rrw_begin ) 13686 { 13687 ret = new TCommonBlock(pdbvendor); 13688 gnewsqlstatementtype = ret.sqlstatementtype; 13689 } 13690 break; 13691 } 13692 case sstselect: 13693 { 13694 lcisnewsql = true; 13695 13696 if ( pstate != EFindSqlStateType.stnormal ) 13697 { 13698 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 13699 if ( TBaseType.assigned(lcprevsolidtoken) ) 13700 { 13701 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 13702 lcisnewsql = false; //subqery 13703 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 13704 lcisnewsql = false; 13705 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 13706 lcisnewsql = false; 13707 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 13708 lcisnewsql = false; 13709 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 13710 lcisnewsql = false; 13711 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 13712 lcisnewsql = false; 13713 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 13714 { 13715 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 13716 lcisnewsql = false; 13717 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 13718 lcisnewsql = false; 13719 } 13720 13721 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 13722 { 13723 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 13724 if ( TBaseType.assigned(lcpprevsolidtoken) ) 13725 { 13726 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 13727 lcisnewsql = false; 13728 } 13729 } 13730 13731 } 13732 13733 13734 if ( TBaseType.assigned(lccurrentsqlstatement) ) 13735 { 13736 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 13737 { 13738 lcisnewsql = false; 13739 } 13740 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect ) 13741 { 13742 if ( lccurrentsqlstatement.isctequery ) 13743 lcisnewsql = false; 13744 } 13745 } 13746 13747 } 13748 13749 if ( lcisnewsql ) 13750 ret = new TSelectSqlStatement(pdbvendor); 13751 break; 13752 } 13753 case sstinsert: 13754 { 13755 lcisnewsql = true; 13756 if ( pstate != EFindSqlStateType.stnormal ) 13757 { 13758 if ( TBaseType.assigned(lccurrentsqlstatement) ) 13759 { 13760 13761 } 13762 } 13763 13764 if ( lcisnewsql ) 13765 ret = new TInsertSqlStatement(pdbvendor); 13766 break; 13767 } 13768 case sstupdate: 13769 { 13770 lcisnewsql = true; 13771 if ( pstate != EFindSqlStateType.stnormal ) 13772 { 13773 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 13774 if ( TBaseType.assigned(lcprevsolidtoken) ) 13775 { // 13776 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 13777 lcisnewsql = false; 13778 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 13779 lcisnewsql = false; 13780 } 13781 13782 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 13783 if ( TBaseType.assigned(lcnextsolidtoken) ) 13784 { 13785 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 13786 { 13787 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 13788 if ( k == 0 ) lcisnewsql = false; 13789 } 13790 } 13791 13792 13793 if ( TBaseType.assigned(lccurrentsqlstatement) ) 13794 { 13795 } 13796 } 13797 13798 if ( lcisnewsql ) 13799 { 13800 ret = new TUpdateSqlStatement(pdbvendor); 13801 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 13802 } 13803 break; 13804 } 13805 case sstdelete: 13806 { 13807 lcisnewsql = true; 13808 13809 if ( pstate != EFindSqlStateType.stnormal ) 13810 { 13811 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 13812 if ( TBaseType.assigned(lcprevsolidtoken) ) 13813 { 13814 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 13815 lcisnewsql = false; 13816 } 13817 13818 if ( TBaseType.assigned(lccurrentsqlstatement) ) 13819 { 13820 } 13821 } 13822 13823 if ( lcisnewsql ) 13824 ret = new TDeleteSqlStatement(pdbvendor); 13825 break; 13826 } 13827 case sstmerge: 13828 { 13829 ret = new TMergeSqlStatement(pdbvendor); 13830 ret.sqlstatementtype = gnewsqlstatementtype; 13831 break; 13832 } 13833 case sstcommit: 13834 { 13835 ret = new TUnknownSqlStatement(pdbvendor); 13836 ret.sqlstatementtype = gnewsqlstatementtype; 13837 break; 13838 } 13839 case sstrollback: 13840 { 13841 ret = new TUnknownSqlStatement(pdbvendor); 13842 ret.sqlstatementtype = gnewsqlstatementtype; 13843 break; 13844 } 13845 case sstsavepoint: 13846 { 13847 ret = new TUnknownSqlStatement(pdbvendor); 13848 ret.sqlstatementtype = gnewsqlstatementtype; 13849 break; 13850 } 13851 case sstRevoke: 13852 { 13853 ret = new TUnknownSqlStatement(pdbvendor); 13854 ret.sqlstatementtype = gnewsqlstatementtype; 13855 break; 13856 } 13857 case sstcreatetable: 13858 { 13859 ret = new TCreateTableSqlStatement(pdbvendor); 13860 break; 13861 } 13862 case sstcreateview: 13863 { 13864 ret = new TCreateViewSqlStatement(pdbvendor); 13865 break; 13866 } 13867 case sstcreateindex: 13868 { 13869 ret = new TCreateIndexSqlStatement(pdbvendor); 13870 break; 13871 } 13872 case sstcreatedatabase: 13873 { 13874 ret = new TCreateDatabaseSqlStatement(pdbvendor); 13875 break; 13876 } 13877 case sstdroptable: 13878 { 13879 ret = new TDropTableSqlStatement(pdbvendor); 13880 break; 13881 } 13882 case sstdropview: 13883 { 13884 ret = new TDropViewSqlStatement(pdbvendor); 13885 break; 13886 } 13887 case sstdropindex: 13888 { 13889 ret = new TDropIndexSqlStatement(pdbvendor); 13890 break; 13891 } 13892 case sstaltertable: 13893 { 13894 ret = new TAlterTableStatement(pdbvendor); 13895 break; 13896 } 13897 case sstaltersession: 13898 { 13899 ret = new TAlterSessionStatement(pdbvendor); 13900 break; 13901 } 13902 case sstdb2set: 13903 { 13904 ret = new TDb2SetVariableStmt(pdbvendor); 13905 break; 13906 } 13907 case sstdb2setschema: 13908 { 13909 ret = new TSetDatabaseObjectStmt(pdbvendor); 13910 break; 13911 } 13912 case sstdb2call: 13913 { 13914 ret = new TDb2CallStmt(pdbvendor); 13915 break; 13916 } 13917 case sstdb2declarecursor: 13918 { 13919 ret = new TDb2DeclareCursorStatement(pdbvendor); 13920 break; 13921 } 13922 case sstcreateprocedure: 13923 { 13924 ret = new TCreateProcedureStmt(pdbvendor); 13925 break; 13926 } 13927 case sstcreatefunction: 13928 { 13929 ret = new TCreateFunctionStmt(pdbvendor); 13930 break; 13931 } 13932 case sstdb2createtrigger: 13933 { 13934 ret = new TCreateTriggerStmt(pdbvendor); 13935 break; 13936 } 13937 case sstdb2return: 13938 { 13939 ret = new TDb2ReturnStmt(pdbvendor); 13940 break; 13941 } 13942 case sstdb2refreshtable: 13943 case sstdb2connect: 13944 case sstdb2terminate: 13945 case sstdb2execute: 13946 { 13947 ret = new TDb2DummyStmt(pdbvendor); 13948 break; 13949 } 13950 case sstdb2createalias: 13951 { 13952 ret = new TCreateAliasStmt(pdbvendor); 13953 break; 13954 } 13955 case sstcreateauditpolicy: 13956 ret = new TCreateAuditPolicyStmt(pdbvendor); 13957 break; 13958 case sstdb2comment: 13959 ret = new TCommentOnSqlStmt(pdbvendor); 13960 break; 13961 case sstdb2createvariable: 13962 ret = new TCreateVariableStmt(pdbvendor); 13963 break; 13964 case sstcreaterole: 13965 ret = new TCreateRoleStmt(pdbvendor); 13966 break; 13967 case sstcreateTablespace: 13968 ret = new TCreateTablespaceStmt(pdbvendor); 13969 break; 13970 case sstRunStats: 13971 ret = new TRunStats(pdbvendor); 13972 break; 13973 case ssttruncatetable: 13974 { 13975 ret = new TTruncateStatement(pdbvendor); 13976 break; 13977 } 13978 case sstcreatesynonym: 13979 ret = new TCreateSynonymStmt(pdbvendor); 13980 break; 13981 default: 13982 { 13983 // ret = tdb2dummystmt.create(pdbvendor); 13984 ret = new TUnknownSqlStatement(pdbvendor); 13985 ret.sqlstatementtype = gnewsqlstatementtype; 13986 break; 13987 } 13988 } // case 13989 13990 return ret; 13991} 13992 13993 public TCustomSqlStatement issql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 13994 TCustomSqlStatement ret = null; 13995 if (pcst == null) return null; 13996 13997 switch (pdbvendor){ 13998 case dbvoracle: { 13999 ret = isoraclesql(pcst,pdbvendor,pstate,psqlstatement); 14000 break; 14001 } 14002 case dbvdameng: { 14003 ret = isoraclesql(pcst,pdbvendor,pstate,psqlstatement); 14004 break; 14005 } 14006 case dbvmssql: { 14007 ret = ismssqlsql(pcst, pdbvendor, pstate, psqlstatement); 14008 break; 14009 } 14010 case dbvdb2: { 14011 ret = isdb2sql(pcst, pdbvendor, pstate, psqlstatement); 14012 break; 14013 } 14014 case dbvmysql: { 14015 ret = ismysqlsql(pcst, pdbvendor, pstate, psqlstatement); 14016 break; 14017 } 14018 case dbvaccess: { 14019 ret = ismssqlsql(pcst, pdbvendor, pstate, psqlstatement); 14020 break; 14021 } 14022 case dbvteradata: { 14023 ret = isteradatasql(pcst, pdbvendor, pstate, psqlstatement); 14024 break; 14025 } 14026 case dbvpostgresql: { 14027 ret = ispostgresql(pcst, pdbvendor, pstate, psqlstatement); 14028 break; 14029 } 14030 case dbvredshift: { 14031 ret = isredshift(pcst, pdbvendor, pstate, psqlstatement); 14032 break; 14033 } 14034 case dbvgreenplum: { 14035 ret = isgreenplum(pcst,pdbvendor,pstate,psqlstatement); 14036 break; 14037 } 14038 case dbvmdx:{ 14039 ret = ismdxsql(pcst, pdbvendor, pstate, psqlstatement); 14040 break; 14041 } 14042 case dbvnetezza:{ 14043 ret = isnetezza(pcst, pdbvendor, pstate, psqlstatement); 14044 break; 14045 } 14046 case dbvsybase:{ 14047 ret = issybasesql(pcst, pdbvendor, pstate, psqlstatement); 14048 break; 14049 } 14050 case dbvsybasease:{ 14051 ret = issybaseasesql(pcst, pdbvendor, pstate, psqlstatement); 14052 break; 14053 } 14054 case dbvsqlanywhere:{ 14055 ret = issqlanywheresql(pcst, pdbvendor, pstate, psqlstatement); 14056 break; 14057 } 14058 case dbvsybaseiq:{ 14059 ret = issybaseiqsql(pcst, pdbvendor, pstate, psqlstatement); 14060 break; 14061 } 14062 case dbvinformix:{ 14063 ret = isinformixsql(pcst, pdbvendor, pstate, psqlstatement); 14064 break; 14065 } 14066 case dbvhive:{ 14067 ret = ishive(pcst, pdbvendor, pstate, psqlstatement); 14068 break; 14069 } 14070 case dbvimpala:{ 14071 ret = ishive(pcst, pdbvendor, pstate, psqlstatement); 14072 break; 14073 } 14074 case dbvhana:{ 14075 ret = ishana(pcst, pdbvendor, pstate, psqlstatement); 14076 break; 14077 } 14078 case dbvvertica:{ 14079 ret = isvertica(pcst, pdbvendor, pstate, psqlstatement); 14080 break; 14081 } 14082 case dbvcouchbase:{ 14083 ret = iscouchbase(pcst, pdbvendor, pstate, psqlstatement); 14084 break; 14085 } 14086 case dbvsnowflake:{ 14087 ret = issnowflake(pcst, pdbvendor, pstate, psqlstatement); 14088 break; 14089 } 14090 case dbvbigquery:{ 14091 ret = isbigquery(pcst, pdbvendor, pstate, psqlstatement); 14092 break; 14093 } 14094 case dbvsoql:{ 14095 ret = ismssqlsql(pcst,pdbvendor,pstate,psqlstatement); 14096 break; 14097 } 14098 case dbvsparksql:{ 14099 ret = issparksql(pcst,pdbvendor,pstate,psqlstatement); 14100 break; 14101 } 14102 case dbvpresto:{ 14103 ret = ispresto(pcst,pdbvendor,pstate,psqlstatement); 14104 break; 14105 } 14106 case dbvathena:{ 14107 ret = isathena(pcst,pdbvendor,pstate,psqlstatement); 14108 break; 14109 } 14110 case dbvdatabricks:{ 14111 ret = isdatabricks(pcst,pdbvendor,pstate,psqlstatement); 14112 break; 14113 } 14114 case dbvgaussdb:{ 14115 ret = isgaussdb(pcst,pdbvendor,pstate,psqlstatement); 14116 break; 14117 } 14118 default: 14119 { 14120 ret = ismssqlsql(pcst,pdbvendor,pstate,psqlstatement); 14121 } 14122 } // case 14123 return ret; 14124 } 14125 TCustomSqlStatement isdatabricks(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 14126 14127 TCustomSqlStatement ret = null; 14128 int k; 14129 boolean lcisnewsql; 14130 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 14131 14132 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 14133 14134 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 14135 || (pcst.tokencode == TBaseType.cmtslashstar) 14136 || (pcst.tokencode == TBaseType.lexspace) 14137 || (pcst.tokencode == TBaseType.lexnewline) 14138 || (pcst.tokentype == ETokenType.ttsemicolon) ) 14139 { 14140 return ret; 14141 } 14142 14143 int lcpos = pcst.posinlist; 14144 TSourceTokenList lcsourcetokenlist = pcst.container; 14145 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 14146 14147 //subquery after semicolon || at first line 14148 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 14149 { 14150 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 14151 if ( k >0 ) 14152 { 14153 ret = new TSelectSqlStatement(pdbvendor); 14154 } 14155 14156 return ret; 14157 } 14158 14159 //cte 14160 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 14161 { 14162 ret = findcte(pcst,pdbvendor); 14163 if ( (ret != null) ) return ret; 14164 } 14165 14166 14167 gnewsqlstatementtype = finddatabrickscmd(pcst); 14168 14169 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14170 14171 if ((gnewsqlstatementtype == ESqlStatementType.sstinvalid)&&(pcst.tokencode == TBaseType.rrw_create)){ 14172 //if (pcst.container.nextsolidtoken(pcst.posinlist,15,)) 14173 TSourceToken viewToken = pcst.container.searchToken(TBaseType.rrw_view,"",pcst,15); 14174 if (viewToken != null){ 14175 gnewsqlstatementtype = ESqlStatementType.sstcreateview; 14176 } 14177 } 14178 switch (gnewsqlstatementtype){ 14179 case sstinvalid: 14180 { 14181 ret = null; 14182 break; 14183 } 14184 case sstselect: 14185 { 14186 lcisnewsql = true; 14187 14188 if ( pstate != EFindSqlStateType.stnormal ) 14189 { 14190 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14191 if ( TBaseType.assigned(lcprevsolidtoken) ) 14192 { 14193 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 14194 lcisnewsql = false; //subqery 14195 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 14196 lcisnewsql = false; 14197 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 14198 lcisnewsql = false; 14199 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 14200 lcisnewsql = false; 14201 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 14202 lcisnewsql = false; 14203 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 14204 lcisnewsql = false; 14205 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 14206 { 14207 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 14208 lcisnewsql = false; 14209 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 14210 lcisnewsql = false; 14211 } 14212 14213 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 14214 { 14215 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 14216 if ( TBaseType.assigned(lcpprevsolidtoken) ) 14217 { 14218 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 14219 lcisnewsql = false; 14220 } 14221 } 14222 14223 } 14224 14225 14226 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14227 { 14228 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 14229 lcisnewsql = false; 14230 } 14231 14232 } 14233 14234 if ( lcisnewsql ) 14235 ret = new TSelectSqlStatement(pdbvendor); 14236 break; 14237 } 14238 case sstinsert: 14239 { 14240 lcisnewsql = true; 14241 if ( pstate != EFindSqlStateType.stnormal ) 14242 { 14243 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14244 { 14245 14246 } 14247 } 14248 14249 if ( lcisnewsql ) 14250 ret = new TInsertSqlStatement(pdbvendor); 14251 ret.sqlstatementtype = gnewsqlstatementtype; 14252 break; 14253 } 14254 case sstdelete: 14255 { 14256 lcisnewsql = true; 14257 14258 if ( pstate != EFindSqlStateType.stnormal ) 14259 { 14260 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14261 if ( TBaseType.assigned(lcprevsolidtoken) ) 14262 { 14263 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 14264 lcisnewsql = false; 14265 } 14266 14267 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14268 { 14269 } 14270 } 14271 14272 if ( lcisnewsql ) 14273 ret = new TDeleteSqlStatement(pdbvendor); 14274 break; 14275 } 14276 case sstaltertable: 14277 { 14278 ret = new TAlterTableStatement(pdbvendor); 14279 break; 14280 } 14281 case sstalterfunction: 14282 { 14283 ret = new TAlterFunctionStmt(pdbvendor); 14284 break; 14285 } 14286 case sstAlterSchema: 14287 { 14288 ret = new TAlterSchemaStmt(pdbvendor); 14289 break; 14290 } 14291 case sstanalyzeTable: 14292 { 14293 ret = new TAnalyzeStmt(pdbvendor); 14294 break; 14295 } 14296 case sstcall: 14297 { 14298 ret = new TCallStatement(pdbvendor); 14299 break; 14300 } 14301 case sstcommit: 14302 { 14303 ret = new TCommitStmt(pdbvendor); 14304 break; 14305 } 14306 case sstcreatefunction: 14307 { 14308 ret = new TCreateFunctionStmt(pdbvendor); 14309 break; 14310 } 14311 case sstcreaterole: 14312 { 14313 ret = new TCreateRoleStmt(pdbvendor); 14314 break; 14315 } 14316 case sstcreateschema: 14317 { 14318 ret = new TCreateSchemaSqlStatement(pdbvendor); 14319 break; 14320 } 14321 case sstcreatetable: 14322 { 14323 ret = new TCreateTableSqlStatement(pdbvendor); 14324 break; 14325 } 14326 case sstcreateview: 14327 { 14328 ret = new TCreateViewSqlStatement(pdbvendor); 14329 break; 14330 } 14331 case sstpostgresqlDeallocate: 14332 { 14333 ret = new TUnknownSqlStatement(pdbvendor); 14334 ret.sqlstatementtype = gnewsqlstatementtype; 14335 break; 14336 } 14337 case sstdropfunction: 14338 { 14339 ret = new TDropFunctionStmt(pdbvendor); 14340 break; 14341 } 14342 case sstdroprole: 14343 { 14344 ret = new TDropRoleStmt(pdbvendor); 14345 break; 14346 } 14347 case sstdropschema: 14348 { 14349 ret = new TDropSchemaSqlStatement(pdbvendor); 14350 break; 14351 } 14352 case sstdroptable: 14353 { 14354 ret = new TDropTableSqlStatement(pdbvendor); 14355 break; 14356 } 14357 case sstdropview: 14358 { 14359 ret = new TDropViewSqlStatement(pdbvendor); 14360 break; 14361 } 14362 case sstExecute: 14363 { 14364 ret = new TExecuteSqlStatement(pdbvendor); 14365 break; 14366 } 14367 case sstExplain: 14368 { 14369 ret = new TExplainPlan(pdbvendor); 14370 break; 14371 } 14372 case sstGrant: 14373 { 14374 ret = new TGrantStmt(pdbvendor); 14375 break; 14376 } 14377 case sstprepare: 14378 { 14379 ret = new TPrepareStmt(pdbvendor); 14380 break; 14381 } 14382 case sstset: 14383 case sstReset: 14384 { 14385 lcisnewsql = true; 14386 if ( pstate != EFindSqlStateType.stnormal ) 14387 { 14388 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14389 { 14390 lcisnewsql = false; 14391 } 14392 } 14393 14394 if ( lcisnewsql ) 14395 { 14396 ret = new TSetStmt(pdbvendor); 14397 } 14398 break; 14399 } 14400 case sstShow: 14401 { 14402 ret = new TShowStmt(pdbvendor); 14403 ret.sqlstatementtype = gnewsqlstatementtype; 14404 break; 14405 } 14406 case sstStartTransaction: 14407 { 14408 ret = new TStartTransactionStmt(pdbvendor); 14409 break; 14410 } 14411 case sstValues: 14412 { 14413 ret = new TSelectSqlStatement(pdbvendor); 14414 break; 14415 } 14416 case sstResetSession: 14417 { 14418 ret = new TResetSessionStmt(pdbvendor); 14419 break; 14420 } 14421 case sstCreateExternallocation: 14422 ret = new TCreateExternalLocationStmt(pdbvendor); 14423 break; 14424 case sstList: 14425 { 14426 ret = new TListStmt(pdbvendor); 14427 break; 14428 } 14429 case sstRevoke: 14430 ret = new TRevokeStmt(pdbvendor); 14431 break; 14432 case sstaltercredental: 14433 ret = new TAlterCredentialStmt(pdbvendor); 14434 break; 14435 case sstdescribeCatalog: 14436 case sstdescribeFunction: 14437 case sstdescribeProvider: 14438 case sstdescribeQuery: 14439 case sstdescribeRecipient: 14440 case sstdescribeSchema: 14441 case sstdescribeShare: 14442 case sstdescribeTable: 14443 case sstdescribeDatabase: 14444 case sstdescribeLocation: 14445 case sstdescribeCredential: 14446 case sstdescribe: 14447 ret = new TDescribeStmt(pdbvendor); 14448 break; 14449 case sstUseCatalog: 14450 case sstUseSchema: 14451 case sstUseDatabase: 14452 case sstUse: 14453 ret = new TUseDatabase(pdbvendor); 14454 break; 14455 case sstAnalyzeTable: 14456 ret = new TAnalyzeStmt(pdbvendor); 14457 break; 14458 case sstCreategroup: 14459 ret = new TCreateGroup(pdbvendor); 14460 break; 14461 case sstAlterGroup: 14462 ret = new TAlterGroup(pdbvendor); 14463 break; 14464 case sstDeny: 14465 ret = new TDenyStmt(pdbvendor); 14466 break; 14467 case sstDropGroup: 14468 ret = new TDropGroup(pdbvendor); 14469 break; 14470 case sstmsckrepairtable: 14471 ret = new TMSCKStmt(pdbvendor); 14472 break; 14473 case sstcreatecatalog: 14474 ret = new TCreateCatalogStmt(pdbvendor); 14475 break; 14476 case sstConvertToDelta: 14477 ret = new TConvertToDeltaStmt(pdbvendor); 14478 break; 14479 case sstOptimize: 14480 ret = new TOptimizeStmt(pdbvendor); 14481 break; 14482 case sstRestoreTable: 14483 ret = new TRestoreTableStmt(pdbvendor); 14484 break; 14485 case sstReorgTable: 14486 ret = new TReorgTableStmt(pdbvendor); 14487 break; 14488 case sstVacuum: 14489 ret = new TVacuumStmt(pdbvendor); 14490 break; 14491 case sstmerge: 14492 ret = new TMergeSqlStatement(pdbvendor); 14493 break; 14494 default: 14495 { 14496 ret = new TUnknownSqlStatement(pdbvendor); 14497 ret.sqlstatementtype = gnewsqlstatementtype; 14498 break; 14499 } 14500 } // case 14501 14502 return ret; 14503 14504 } 14505 TCustomSqlStatement ispresto(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 14506 14507 TCustomSqlStatement ret = null; 14508 int k; 14509 boolean lcisnewsql; 14510 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 14511 14512 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 14513 14514 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 14515 || (pcst.tokencode == TBaseType.cmtslashstar) 14516 || (pcst.tokencode == TBaseType.lexspace) 14517 || (pcst.tokencode == TBaseType.lexnewline) 14518 || (pcst.tokentype == ETokenType.ttsemicolon) ) 14519 { 14520 return ret; 14521 } 14522 14523 int lcpos = pcst.posinlist; 14524 TSourceTokenList lcsourcetokenlist = pcst.container; 14525 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 14526 14527 //subquery after semicolon || at first line 14528 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 14529 { 14530 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 14531 if ( k >0 ) 14532 { 14533 ret = new TSelectSqlStatement(pdbvendor); 14534 } 14535 14536 return ret; 14537 } 14538 14539 //cte 14540 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 14541 { 14542 ret = findcte(pcst,pdbvendor); 14543 if ( (ret != null) ) return ret; 14544 } 14545 14546 14547 gnewsqlstatementtype = findprestocmd(pcst); 14548 14549 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14550 14551 if ((gnewsqlstatementtype == ESqlStatementType.sstinvalid)&&(pcst.tokencode == TBaseType.rrw_create)){ 14552 //if (pcst.container.nextsolidtoken(pcst.posinlist,15,)) 14553 TSourceToken viewToken = pcst.container.searchToken(TBaseType.rrw_view,"",pcst,15); 14554 if (viewToken != null){ 14555 gnewsqlstatementtype = ESqlStatementType.sstcreateview; 14556 } 14557 } 14558 switch (gnewsqlstatementtype){ 14559 case sstinvalid: 14560 { 14561 ret = null; 14562 break; 14563 } 14564 case sstselect: 14565 { 14566 lcisnewsql = true; 14567 14568 if ( pstate != EFindSqlStateType.stnormal ) 14569 { 14570 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14571 if ( TBaseType.assigned(lcprevsolidtoken) ) 14572 { 14573 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 14574 lcisnewsql = false; //subqery 14575 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 14576 lcisnewsql = false; 14577 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 14578 lcisnewsql = false; 14579 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 14580 lcisnewsql = false; 14581 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 14582 lcisnewsql = false; 14583 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 14584 lcisnewsql = false; 14585 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 14586 { 14587 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 14588 lcisnewsql = false; 14589 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 14590 lcisnewsql = false; 14591 } 14592 14593 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 14594 { 14595 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 14596 if ( TBaseType.assigned(lcpprevsolidtoken) ) 14597 { 14598 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 14599 lcisnewsql = false; 14600 } 14601 } 14602 14603 } 14604 14605 14606 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14607 { 14608 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 14609 lcisnewsql = false; 14610 } 14611 14612 } 14613 14614 if ( lcisnewsql ) 14615 ret = new TSelectSqlStatement(pdbvendor); 14616 break; 14617 } 14618 case sstinsert: 14619 { 14620 lcisnewsql = true; 14621 if ( pstate != EFindSqlStateType.stnormal ) 14622 { 14623 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14624 { 14625 14626 } 14627 } 14628 14629 if ( lcisnewsql ) 14630 ret = new TInsertSqlStatement(pdbvendor); 14631 ret.sqlstatementtype = gnewsqlstatementtype; 14632 break; 14633 } 14634 case sstdelete: 14635 { 14636 lcisnewsql = true; 14637 14638 if ( pstate != EFindSqlStateType.stnormal ) 14639 { 14640 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14641 if ( TBaseType.assigned(lcprevsolidtoken) ) 14642 { 14643 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 14644 lcisnewsql = false; 14645 } 14646 14647 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14648 { 14649 } 14650 } 14651 14652 if ( lcisnewsql ) 14653 ret = new TDeleteSqlStatement(pdbvendor); 14654 break; 14655 } 14656 case sstaltertable: 14657 { 14658 ret = new TAlterTableStatement(pdbvendor); 14659 break; 14660 } 14661 case sstalterfunction: 14662 { 14663 ret = new TAlterFunctionStmt(pdbvendor); 14664 break; 14665 } 14666 case sstAlterSchema: 14667 { 14668 ret = new TAlterSchemaStmt(pdbvendor); 14669 break; 14670 } 14671 case sstanalyzeTable: 14672 { 14673 ret = new TAnalyzeStmt(pdbvendor); 14674 break; 14675 } 14676 case sstcall: 14677 { 14678 ret = new TCallStatement(pdbvendor); 14679 break; 14680 } 14681 case sstcommit: 14682 { 14683 ret = new TCommitStmt(pdbvendor); 14684 break; 14685 } 14686 case sstcreatefunction: 14687 { 14688 ret = new TCreateFunctionStmt(pdbvendor); 14689 break; 14690 } 14691 case sstcreaterole: 14692 { 14693 ret = new TCreateRoleStmt(pdbvendor); 14694 break; 14695 } 14696 case sstcreateschema: 14697 { 14698 ret = new TCreateSchemaSqlStatement(pdbvendor); 14699 break; 14700 } 14701 case sstcreatetable: 14702 { 14703 ret = new TCreateTableSqlStatement(pdbvendor); 14704 break; 14705 } 14706 case sstcreateview: 14707 { 14708 ret = new TCreateViewSqlStatement(pdbvendor); 14709 break; 14710 } 14711 case sstpostgresqlDeallocate: 14712 { 14713 ret = new TUnknownSqlStatement(pdbvendor); 14714 ret.sqlstatementtype = gnewsqlstatementtype; 14715 break; 14716 } 14717 case sstdescribe: 14718 { 14719 ret = new TDescribeStmt(pdbvendor); 14720 break; 14721 } 14722 case sstdropfunction: 14723 { 14724 ret = new TDropFunctionStmt(pdbvendor); 14725 break; 14726 } 14727 case sstdroprole: 14728 { 14729 ret = new TDropRoleStmt(pdbvendor); 14730 break; 14731 } 14732 case sstdropschema: 14733 { 14734 ret = new TDropSchemaSqlStatement(pdbvendor); 14735 break; 14736 } 14737 case sstdroptable: 14738 { 14739 ret = new TDropTableSqlStatement(pdbvendor); 14740 break; 14741 } 14742 case sstdropview: 14743 { 14744 ret = new TDropViewSqlStatement(pdbvendor); 14745 break; 14746 } 14747 case sstExecute: 14748 { 14749 ret = new TExecuteSqlStatement(pdbvendor); 14750 break; 14751 } 14752 case sstExplain: 14753 { 14754 ret = new TExplainPlan(pdbvendor); 14755 break; 14756 } 14757 case sstGrant: 14758 { 14759 ret = new TGrantStmt(pdbvendor); 14760 break; 14761 } 14762 case sstprepare: 14763 { 14764 ret = new TPrepareStmt(pdbvendor); 14765 break; 14766 } 14767 case sstset: 14768 case sstReset: 14769 { 14770 lcisnewsql = true; 14771 if ( pstate != EFindSqlStateType.stnormal ) 14772 { 14773 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14774 { 14775 lcisnewsql = false; 14776 } 14777 } 14778 14779 if ( lcisnewsql ) 14780 { 14781 ret = new TSetStmt(pdbvendor); 14782 } 14783 break; 14784 } 14785 case sstShow: 14786 { 14787 ret = new TShowStmt(pdbvendor); 14788 ret.sqlstatementtype = gnewsqlstatementtype; 14789 break; 14790 } 14791 case sstStartTransaction: 14792 { 14793 ret = new TStartTransactionStmt(pdbvendor); 14794 break; 14795 } 14796 case sstUse: 14797 { 14798 ret = new TUseDatabase(pdbvendor); 14799 break; 14800 } 14801 case sstValues: 14802 { 14803 ret = new TSelectSqlStatement(pdbvendor); 14804 break; 14805 } 14806 case sstResetSession: 14807 { 14808 ret = new TResetSessionStmt(pdbvendor); 14809 break; 14810 } 14811 default: 14812 { 14813 ret = new TUnknownSqlStatement(pdbvendor); 14814 ret.sqlstatementtype = gnewsqlstatementtype; 14815 break; 14816 } 14817 } // case 14818 14819 return ret; 14820 14821 } 14822 TCustomSqlStatement isathena(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 14823 14824 TCustomSqlStatement ret = null; 14825 int k; 14826 boolean lcisnewsql; 14827 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 14828 14829 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 14830 14831 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 14832 || (pcst.tokencode == TBaseType.cmtslashstar) 14833 || (pcst.tokencode == TBaseType.lexspace) 14834 || (pcst.tokencode == TBaseType.lexnewline) 14835 || (pcst.tokentype == ETokenType.ttsemicolon) ) 14836 { 14837 return ret; 14838 } 14839 14840 int lcpos = pcst.posinlist; 14841 TSourceTokenList lcsourcetokenlist = pcst.container; 14842 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 14843 14844 //subquery after semicolon || at first line 14845 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 14846 { 14847 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 14848 if ( k >0 ) 14849 { 14850 ret = new TSelectSqlStatement(pdbvendor); 14851 } 14852 14853 return ret; 14854 } 14855 14856 //cte 14857 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 14858 { 14859 ret = findcte(pcst,pdbvendor); 14860 if ( (ret != null) ) return ret; 14861 } 14862 14863 14864 gnewsqlstatementtype = findathenacmd(pcst); 14865 14866 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14867 14868 if ((gnewsqlstatementtype == ESqlStatementType.sstinvalid)&&(pcst.tokencode == TBaseType.rrw_create)){ 14869 //if (pcst.container.nextsolidtoken(pcst.posinlist,15,)) 14870 TSourceToken viewToken = pcst.container.searchToken(TBaseType.rrw_view,"",pcst,15); 14871 if (viewToken != null){ 14872 gnewsqlstatementtype = ESqlStatementType.sstcreateview; 14873 } 14874 } 14875 switch (gnewsqlstatementtype){ 14876 case sstinvalid: 14877 { 14878 ret = null; 14879 break; 14880 } 14881 case sstselect: 14882 { 14883 lcisnewsql = true; 14884 14885 if ( pstate != EFindSqlStateType.stnormal ) 14886 { 14887 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14888 if ( TBaseType.assigned(lcprevsolidtoken) ) 14889 { 14890 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 14891 lcisnewsql = false; //subqery 14892 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 14893 lcisnewsql = false; 14894 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 14895 lcisnewsql = false; 14896 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 14897 lcisnewsql = false; 14898 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 14899 lcisnewsql = false; 14900 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 14901 lcisnewsql = false; 14902 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 14903 { 14904 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 14905 lcisnewsql = false; 14906 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 14907 lcisnewsql = false; 14908 } 14909 14910 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 14911 { 14912 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 14913 if ( TBaseType.assigned(lcpprevsolidtoken) ) 14914 { 14915 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 14916 lcisnewsql = false; 14917 } 14918 } 14919 14920 } 14921 14922 14923 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14924 { 14925 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 14926 lcisnewsql = false; 14927 } 14928 14929 } 14930 14931 if ( lcisnewsql ) 14932 ret = new TSelectSqlStatement(pdbvendor); 14933 break; 14934 } 14935 case sstinsert: 14936 { 14937 lcisnewsql = true; 14938 if ( pstate != EFindSqlStateType.stnormal ) 14939 { 14940 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14941 { 14942 14943 } 14944 } 14945 14946 if ( lcisnewsql ) 14947 ret = new TInsertSqlStatement(pdbvendor); 14948 ret.sqlstatementtype = gnewsqlstatementtype; 14949 break; 14950 } 14951 case sstdelete: 14952 { 14953 lcisnewsql = true; 14954 14955 if ( pstate != EFindSqlStateType.stnormal ) 14956 { 14957 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 14958 if ( TBaseType.assigned(lcprevsolidtoken) ) 14959 { 14960 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 14961 lcisnewsql = false; 14962 } 14963 14964 if ( TBaseType.assigned(lccurrentsqlstatement) ) 14965 { 14966 } 14967 } 14968 14969 if ( lcisnewsql ) 14970 ret = new TDeleteSqlStatement(pdbvendor); 14971 break; 14972 } 14973 case sstaltertable: 14974 { 14975 ret = new TAlterTableStatement(pdbvendor); 14976 break; 14977 } 14978 case sstalterfunction: 14979 { 14980 ret = new TAlterFunctionStmt(pdbvendor); 14981 break; 14982 } 14983 case sstAlterSchema: 14984 { 14985 ret = new TAlterSchemaStmt(pdbvendor); 14986 break; 14987 } 14988 case sstanalyzeTable: 14989 { 14990 ret = new TAnalyzeStmt(pdbvendor); 14991 break; 14992 } 14993 case sstcall: 14994 { 14995 ret = new TCallStatement(pdbvendor); 14996 break; 14997 } 14998 case sstcommit: 14999 { 15000 ret = new TCommitStmt(pdbvendor); 15001 break; 15002 } 15003 case sstcreatefunction: 15004 { 15005 ret = new TCreateFunctionStmt(pdbvendor); 15006 break; 15007 } 15008 case sstcreaterole: 15009 { 15010 ret = new TCreateRoleStmt(pdbvendor); 15011 break; 15012 } 15013 case sstcreateschema: 15014 { 15015 ret = new TCreateSchemaSqlStatement(pdbvendor); 15016 break; 15017 } 15018 case sstcreatetable: 15019 { 15020 ret = new TCreateTableSqlStatement(pdbvendor); 15021 break; 15022 } 15023 case sstcreateview: 15024 { 15025 ret = new TCreateViewSqlStatement(pdbvendor); 15026 break; 15027 } 15028 case sstpostgresqlDeallocate: 15029 { 15030 ret = new TUnknownSqlStatement(pdbvendor); 15031 ret.sqlstatementtype = gnewsqlstatementtype; 15032 break; 15033 } 15034 case sstdescribe: 15035 { 15036 ret = new TDescribeStmt(pdbvendor); 15037 break; 15038 } 15039 case sstdropfunction: 15040 { 15041 ret = new TDropFunctionStmt(pdbvendor); 15042 break; 15043 } 15044 case sstdroprole: 15045 { 15046 ret = new TDropRoleStmt(pdbvendor); 15047 break; 15048 } 15049 case sstdropschema: 15050 { 15051 ret = new TDropSchemaSqlStatement(pdbvendor); 15052 break; 15053 } 15054 case sstdroptable: 15055 { 15056 ret = new TDropTableSqlStatement(pdbvendor); 15057 break; 15058 } 15059 case sstdropview: 15060 { 15061 ret = new TDropViewSqlStatement(pdbvendor); 15062 break; 15063 } 15064 case sstExecute: 15065 { 15066 ret = new TExecuteSqlStatement(pdbvendor); 15067 break; 15068 } 15069 case sstExplain: 15070 { 15071 ret = new TExplainPlan(pdbvendor); 15072 break; 15073 } 15074 case sstGrant: 15075 { 15076 ret = new TGrantStmt(pdbvendor); 15077 break; 15078 } 15079 case sstprepare: 15080 { 15081 ret = new TPrepareStmt(pdbvendor); 15082 break; 15083 } 15084 case sstset: 15085 case sstReset: 15086 { 15087 lcisnewsql = true; 15088 if ( pstate != EFindSqlStateType.stnormal ) 15089 { 15090 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15091 { 15092 lcisnewsql = false; 15093 } 15094 } 15095 15096 if ( lcisnewsql ) 15097 { 15098 ret = new TSetStmt(pdbvendor); 15099 } 15100 break; 15101 } 15102 case sstShow: 15103 { 15104 ret = new TShowStmt(pdbvendor); 15105 ret.sqlstatementtype = gnewsqlstatementtype; 15106 break; 15107 } 15108 case sstStartTransaction: 15109 { 15110 ret = new TStartTransactionStmt(pdbvendor); 15111 break; 15112 } 15113 case sstUse: 15114 { 15115 ret = new TUseDatabase(pdbvendor); 15116 break; 15117 } 15118 case sstValues: 15119 { 15120 ret = new TSelectSqlStatement(pdbvendor); 15121 break; 15122 } 15123 case sstResetSession: 15124 { 15125 ret = new TResetSessionStmt(pdbvendor); 15126 break; 15127 } 15128 case sstunload: 15129 lcisnewsql = true; 15130 if ( pstate != EFindSqlStateType.stnormal ) 15131 { 15132 lcisnewsql = false; 15133 } 15134 if ( lcisnewsql ) { 15135 ret = new TUnloadStmt(pdbvendor); 15136 ret.sqlstatementtype = gnewsqlstatementtype; 15137 } 15138 break; 15139 case sstmsck: 15140 { 15141 ret = new TMSCKStmt(pdbvendor); 15142 break; 15143 } 15144 case sstcreatedatabase: 15145 { 15146 ret = new TCreateDatabaseSqlStatement(pdbvendor); 15147 break; 15148 } 15149 case sstalterdatabase: 15150 { 15151 ret = new TAlterDatabaseStmt(pdbvendor); 15152 break; 15153 } 15154 case sstdropdatabase: 15155 ret = new TDropDatabaseStmt(pdbvendor); 15156 break; 15157 default: 15158 { 15159 ret = new TUnknownSqlStatement(pdbvendor); 15160 ret.sqlstatementtype = gnewsqlstatementtype; 15161 break; 15162 } 15163 } // case 15164 15165 return ret; 15166 15167 } 15168 15169 TCustomSqlStatement issparksql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 15170 15171 TCustomSqlStatement ret = null; 15172 int k; 15173 boolean lcisnewsql; 15174 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 15175 15176 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 15177 15178 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 15179 || (pcst.tokencode == TBaseType.cmtslashstar) 15180 || (pcst.tokencode == TBaseType.lexspace) 15181 || (pcst.tokencode == TBaseType.lexnewline) 15182 || (pcst.tokentype == ETokenType.ttsemicolon) ) 15183 { 15184 return ret; 15185 } 15186 15187 int lcpos = pcst.posinlist; 15188 TSourceTokenList lcsourcetokenlist = pcst.container; 15189 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 15190 15191 //subquery after semicolon || at first line 15192 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 15193 { 15194 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 15195 if ( k >0 ) 15196 { 15197 ret = new TSelectSqlStatement(pdbvendor); 15198 } 15199 15200 return ret; 15201 } 15202 15203 //cte 15204 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 15205 { 15206 ret = findcte(pcst,pdbvendor); 15207 if ( (ret != null) ) return ret; 15208 } 15209 15210 15211 gnewsqlstatementtype = findsparksqlcmd(pcst); 15212 15213 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15214 15215 if ((gnewsqlstatementtype == ESqlStatementType.sstinvalid)&&(pcst.tokencode == TBaseType.rrw_create)){ 15216 //if (pcst.container.nextsolidtoken(pcst.posinlist,15,)) 15217 TSourceToken viewToken = pcst.container.searchToken(TBaseType.rrw_view,"",pcst,15); 15218 if (viewToken != null){ 15219 gnewsqlstatementtype = ESqlStatementType.sstcreateview; 15220 } 15221 } 15222 switch (gnewsqlstatementtype){ 15223 case sstinvalid: 15224 { 15225 ret = null; 15226 break; 15227 } 15228 case sstselect: 15229 { 15230 lcisnewsql = true; 15231 15232 if ( pstate != EFindSqlStateType.stnormal ) 15233 { 15234 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15235 if ( TBaseType.assigned(lcprevsolidtoken) ) 15236 { 15237 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 15238 lcisnewsql = false; //subqery 15239 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 15240 lcisnewsql = false; 15241 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 15242 lcisnewsql = false; 15243 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 15244 lcisnewsql = false; 15245 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 15246 lcisnewsql = false; 15247 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 15248 lcisnewsql = false; 15249 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 15250 { 15251 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 15252 lcisnewsql = false; 15253 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 15254 lcisnewsql = false; 15255 } 15256 15257 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 15258 { 15259 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 15260 if ( TBaseType.assigned(lcpprevsolidtoken) ) 15261 { 15262 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 15263 lcisnewsql = false; 15264 } 15265 } 15266 15267 } 15268 15269 15270 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15271 { 15272 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 15273 lcisnewsql = false; 15274 } 15275 15276 } 15277 15278 if ( lcisnewsql ) 15279 ret = new TSelectSqlStatement(pdbvendor); 15280 break; 15281 } 15282 case sstinsert: 15283 { 15284 lcisnewsql = true; 15285 if ( pstate != EFindSqlStateType.stnormal ) 15286 { 15287 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15288 { 15289 15290 } 15291 } 15292 15293 if ( lcisnewsql ) 15294 ret = new TInsertSqlStatement(pdbvendor); 15295 ret.sqlstatementtype = gnewsqlstatementtype; 15296 break; 15297 } 15298 case sstupdate: 15299 { 15300 lcisnewsql = true; 15301 if ( pstate != EFindSqlStateType.stnormal ) 15302 { 15303 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15304 if ( TBaseType.assigned(lcprevsolidtoken) ) 15305 { // 15306 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 15307 lcisnewsql = false; 15308 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 15309 lcisnewsql = false; 15310 } 15311 15312 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 15313 if ( TBaseType.assigned(lcnextsolidtoken) ) 15314 { 15315 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 15316 { 15317 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 15318 if ( k == 0 ) lcisnewsql = false; 15319 } 15320 } 15321 15322 15323 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15324 { 15325 } 15326 } 15327 15328 if ( lcisnewsql ) 15329 { 15330 ret = new TUpdateSqlStatement(pdbvendor); 15331 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 15332 } 15333 break; 15334 } 15335 case sstdelete: 15336 { 15337 lcisnewsql = true; 15338 15339 if ( pstate != EFindSqlStateType.stnormal ) 15340 { 15341 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15342 if ( TBaseType.assigned(lcprevsolidtoken) ) 15343 { 15344 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 15345 lcisnewsql = false; 15346 } 15347 15348 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15349 { 15350 } 15351 } 15352 15353 if ( lcisnewsql ) 15354 ret = new TDeleteSqlStatement(pdbvendor); 15355 break; 15356 } 15357 case sstcreatetable: 15358 { 15359 ret = new TCreateTableSqlStatement(pdbvendor); 15360 break; 15361 } 15362 case sstcreateview: 15363 { 15364 ret = new TCreateViewSqlStatement(pdbvendor); 15365 break; 15366 } 15367 case sstcreatedatabase: 15368 { 15369 ret = new TCreateDatabaseSqlStatement(pdbvendor); 15370 break; 15371 } 15372 case sstdroptable: 15373 { 15374 ret = new TDropTableSqlStatement(pdbvendor); 15375 break; 15376 } 15377 case sstdropview: 15378 { 15379 ret = new TDropViewSqlStatement(pdbvendor); 15380 break; 15381 } 15382 case sstaltertable: 15383 { 15384 ret = new TAlterTableStatement(pdbvendor); 15385 break; 15386 } 15387 case sstset: 15388 case sstReset: 15389 case sstSetTimeZone: 15390 { 15391 lcisnewsql = true; 15392 if ( pstate != EFindSqlStateType.stnormal ) 15393 { 15394 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15395 { 15396 lcisnewsql = false; 15397 } 15398 } 15399 15400 if ( lcisnewsql ) 15401 { 15402 ret = new TSetStmt(pdbvendor); 15403 } 15404 break; 15405 } 15406 case sstcreatefunction: 15407 { 15408 ret = new TCreateFunctionStmt(pdbvendor); 15409 break; 15410 } 15411 case sstTruncate: 15412 { 15413 ret = new TTruncateStatement(pdbvendor); 15414 break; 15415 } 15416 case sstdescribe: 15417 { 15418 ret = new TDescribeStmt(pdbvendor); 15419 break; 15420 } 15421 case sstExplain: 15422 { 15423 ret = new TExplainPlan(pdbvendor); 15424 break; 15425 } 15426 case sstUse: 15427 { 15428 ret = new TUseDatabase(pdbvendor); 15429 break; 15430 } 15431 case sstLoadData: 15432 { 15433 ret = new TLoadDataStmt(pdbvendor); 15434 break; 15435 } 15436 case sstShowColumns: 15437 case sstShowCreateTable: 15438 case sstShowDatabases: 15439 case sstShowFunctions: 15440 case sstShowPartitions: 15441 case sstShowTableExtended: 15442 case sstShowTables: 15443 case sstShowTblProperties: 15444 case sstShowViews: 15445 case sstShowUser: 15446 ret = new TShowStmt(pdbvendor); 15447 ret.sqlstatementtype = gnewsqlstatementtype; 15448 break; 15449 case sstalterdatabase: 15450 ret = new TAlterDatabaseStmt(pdbvendor); 15451 break; 15452 case sstdescribeDatabase: 15453 case sstdescribeTable: 15454 case sstdescribeFunction: 15455 ret = new TDescribeStmt(pdbvendor); 15456 break; 15457 case sstalterview: 15458 ret = new TAlterViewStatement(pdbvendor); 15459 break; 15460 case sstAddFile: 15461 case sstAddJar: 15462 case sstListFile: 15463 case sstListJar: 15464 ret = new TResourceManagement(pdbvendor); 15465 ret.sqlstatementtype = gnewsqlstatementtype; 15466 break; 15467 case sstdropdatabase: 15468 ret = new TDropDatabaseStmt(pdbvendor); 15469 break; 15470 case sstdropfunction: 15471 ret = new TDropFunctionStmt(pdbvendor); 15472 break; 15473 case ssttruncatetable: 15474 ret = new TTruncateStatement(pdbvendor); 15475 break; 15476 case sstmsck: 15477 { 15478 ret = new TMSCKStmt(pdbvendor); 15479 break; 15480 } 15481 case sstanalyzeTable: 15482 { 15483 ret = new TAnalyzeStmt(pdbvendor); 15484 break; 15485 } 15486 case sstCacheTable: 15487 case sstUnCacheTable: 15488 case sstClearCache: 15489 ret = new TCacheTable(pdbvendor); 15490 break; 15491 case sstRefreshTable: 15492 case sstRefreshFunction: 15493 case sstRefresh: 15494 ret = new TRefresh(pdbvendor); 15495 break; 15496 default: 15497 { 15498 ret = new TUnknownSqlStatement(pdbvendor); 15499 ret.sqlstatementtype = gnewsqlstatementtype; 15500 break; 15501 } 15502 } // case 15503 15504 return ret; 15505 15506 } 15507 15508 TCustomSqlStatement ismysqlsql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 15509 TCustomSqlStatement ret = null; 15510 int k; 15511 boolean lcisnewsql; 15512 TSourceToken lcpprevsolidtoken,lcnextsolidtoken; 15513 15514 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 15515 15516 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 15517 || (pcst.tokencode == TBaseType.cmtslashstar) 15518 || (pcst.tokencode == TBaseType.lexspace) 15519 || (pcst.tokencode == TBaseType.lexnewline) 15520 || (pcst.tokentype == ETokenType.ttsemicolon) ) 15521 { 15522 return ret; 15523 } 15524 15525 int lcpos = pcst.posinlist; 15526 TSourceTokenList lcsourcetokenlist = pcst.container; 15527 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 15528 15529 //subquery after semicolon || at first line 15530 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 15531 { 15532 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 15533 if ( k >0 ) 15534 { 15535 ret = new TSelectSqlStatement(pdbvendor); 15536 } 15537 15538 return ret; 15539 } 15540 15541 //cte 15542 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 15543 { 15544 ret = findcte(pcst,pdbvendor); 15545 if ( (ret != null) ) return ret; 15546 } 15547 15548 15549 //cte 15550// if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == rrw_with) ) 15551// { 15552// ret = tselectsqlstatement.create(pdbvendor); 15553// tselectsqlstatement(ret).isctequery = true; 15554// exit; 15555// } 15556// 15557 15558 gnewsqlstatementtype = findmysqlcmd(pcst); 15559 15560 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15561 15562 if ((gnewsqlstatementtype == ESqlStatementType.sstinvalid)&&(pcst.tokencode == TBaseType.rrw_create)){ 15563 //if (pcst.container.nextsolidtoken(pcst.posinlist,15,)) 15564 TSourceToken viewToken = pcst.container.searchToken(TBaseType.rrw_view,"",pcst,15); 15565 if (viewToken != null){ 15566 gnewsqlstatementtype = ESqlStatementType.sstcreateview; 15567 } 15568 } 15569 switch (gnewsqlstatementtype){ 15570 case sstinvalid: 15571 { 15572 ret = null; 15573 break; 15574 } 15575 case sstselect: 15576 { 15577 lcisnewsql = true; 15578 15579 if ( pstate != EFindSqlStateType.stnormal ) 15580 { 15581 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15582 if ( TBaseType.assigned(lcprevsolidtoken) ) 15583 { 15584 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 15585 lcisnewsql = false; //subqery 15586 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 15587 lcisnewsql = false; 15588 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 15589 lcisnewsql = false; 15590 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 15591 lcisnewsql = false; 15592 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 15593 lcisnewsql = false; 15594 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 15595 lcisnewsql = false; 15596 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 15597 { 15598 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 15599 lcisnewsql = false; 15600 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 15601 lcisnewsql = false; 15602 } 15603 15604 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 15605 { 15606 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 15607 if ( TBaseType.assigned(lcpprevsolidtoken) ) 15608 { 15609 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 15610 lcisnewsql = false; 15611 } 15612 } 15613 15614 } 15615 15616 15617 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15618 { 15619 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 15620 lcisnewsql = false; 15621 } 15622 15623 } 15624 15625 if ( lcisnewsql ) 15626 ret = new TSelectSqlStatement(pdbvendor); 15627 break; 15628 } 15629 case sstinsert: 15630 case sstmysqlreplace: 15631 { 15632 lcisnewsql = true; 15633 if ( pstate != EFindSqlStateType.stnormal ) 15634 { 15635 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15636 { 15637 15638 } 15639 } 15640 15641 if ( lcisnewsql ) 15642 ret = new TInsertSqlStatement(pdbvendor); 15643 ret.sqlstatementtype = gnewsqlstatementtype; 15644 break; 15645 } 15646 case sstupdate: 15647 { 15648 lcisnewsql = true; 15649 if ( pstate != EFindSqlStateType.stnormal ) 15650 { 15651 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15652 if ( TBaseType.assigned(lcprevsolidtoken) ) 15653 { // 15654 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 15655 lcisnewsql = false; 15656 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 15657 lcisnewsql = false; 15658 } 15659 15660 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 15661 if ( TBaseType.assigned(lcnextsolidtoken) ) 15662 { 15663 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 15664 { 15665 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 15666 if ( k == 0 ) lcisnewsql = false; 15667 } 15668 } 15669 15670 15671 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15672 { 15673 } 15674 } 15675 15676 if ( lcisnewsql ) 15677 { 15678 ret = new TUpdateSqlStatement(pdbvendor); 15679 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 15680 } 15681 break; 15682 } 15683 case sstdelete: 15684 { 15685 lcisnewsql = true; 15686 15687 if ( pstate != EFindSqlStateType.stnormal ) 15688 { 15689 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15690 if ( TBaseType.assigned(lcprevsolidtoken) ) 15691 { 15692 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 15693 lcisnewsql = false; 15694 } 15695 15696 if ( TBaseType.assigned(lccurrentsqlstatement) ) 15697 { 15698 } 15699 } 15700 15701 if ( lcisnewsql ) 15702 ret = new TDeleteSqlStatement(pdbvendor); 15703 break; 15704 } 15705 case sstmerge: 15706 { 15707 ret = new TMergeSqlStatement(pdbvendor); 15708 ret.sqlstatementtype = gnewsqlstatementtype; 15709 break; 15710 } 15711 case sstcommit: 15712 { 15713 ret = new TUnknownSqlStatement(pdbvendor); 15714 ret.sqlstatementtype = gnewsqlstatementtype; 15715 break; 15716 } 15717 case sstrollback: 15718 { 15719 ret = new TUnknownSqlStatement(pdbvendor); 15720 ret.sqlstatementtype = gnewsqlstatementtype; 15721 break; 15722 } 15723 case sstsavepoint: 15724 { 15725 ret = new TUnknownSqlStatement(pdbvendor); 15726 ret.sqlstatementtype = gnewsqlstatementtype; 15727 break; 15728 } 15729 case sstRevoke: 15730 { 15731 ret = new TUnknownSqlStatement(pdbvendor); 15732 ret.sqlstatementtype = gnewsqlstatementtype; 15733 break; 15734 } 15735 case sstcreatetable: 15736 { 15737 ret = new TCreateTableSqlStatement(pdbvendor); 15738 break; 15739 } 15740 case sstcreateview: 15741 { 15742 ret = new TCreateViewSqlStatement(pdbvendor); 15743 break; 15744 } 15745 case sstmysqlcreateindex: 15746 { 15747 ret = new TCreateIndexSqlStatement(pdbvendor); 15748 break; 15749 } 15750 case sstcreatedatabase: 15751 { 15752 ret = new TCreateDatabaseSqlStatement(pdbvendor); 15753 break; 15754 } 15755 case sstmysqldroptable: 15756 case sstdroptable: 15757 { 15758 ret = new TDropTableSqlStatement(pdbvendor); 15759 break; 15760 } 15761 case sstdropview: 15762 { 15763 ret = new TDropViewSqlStatement(pdbvendor); 15764 break; 15765 } 15766 case sstdropindex: 15767 { 15768 ret = new TDropIndexSqlStatement(pdbvendor); 15769 break; 15770 } 15771 case sstaltertable: 15772 { 15773 ret = new TAlterTableStatement(pdbvendor); 15774 break; 15775 } 15776 case sstaltersession: 15777 { 15778 ret = new TAlterSessionStatement(pdbvendor); 15779 break; 15780 } 15781 case sstmysqlset: 15782 { 15783 ret = new TSetStmt(pdbvendor); 15784 break; 15785 } 15786 case sstmysqlcreateprocedure: 15787 { 15788 ret = new TCreateProcedureStmt(pdbvendor); 15789 break; 15790 } 15791 case sstmysqlcreatefunction: 15792 { 15793 ret = new TCreateFunctionStmt(pdbvendor); 15794 break; 15795 } 15796 case sstcreatetrigger: 15797 { 15798 ret = new TCreateTriggerStmt(pdbvendor); 15799 break; 15800 } 15801 case sstmysqlcall: 15802 { 15803 ret = new TCallStatement(pdbvendor); 15804 break; 15805 } 15806 case sstmysqltruncate: 15807 { 15808 ret = new TTruncateStatement(pdbvendor); 15809 break; 15810 } 15811 case sstmysqlprepare: 15812 { 15813 ret = new TPrepareStmt(pdbvendor); 15814 break; 15815 } 15816 case sstdescribe: 15817 { 15818 ret = new TDescribeStmt(pdbvendor); 15819 break; 15820 } 15821 case sstExplain: 15822 { 15823 ret = new TExplainPlan(pdbvendor); 15824 break; 15825 } 15826 case sstmysqldropindex: 15827 { 15828 ret = new TDropIndexSqlStatement(pdbvendor); 15829 break; 15830 } 15831 case sstmysqldropprocedure: 15832 { 15833 ret = new TDropProcedureStmt(pdbvendor); 15834 break; 15835 } 15836 case sstmysqlsignal: 15837 { 15838 ret = new TMySQLSignal(pdbvendor); 15839 break; 15840 } 15841 case sstmysqlstarttransaction: 15842 { 15843 if ( pstate == EFindSqlStateType.stnormal ) 15844 { 15845 ret = new TUnknownSqlStatement(pdbvendor); 15846 ret.sqlstatementtype = gnewsqlstatementtype; 15847 } 15848 break; 15849 } 15850 case sstmysqluse: 15851 { 15852 ret = new TUseDatabase(pdbvendor); 15853 break; 15854 } 15855 case sstmysqlexecute: 15856 { 15857 ret = new TExecuteSqlStatement(pdbvendor); 15858 ret.sqlstatementtype = gnewsqlstatementtype; 15859 break; 15860 } 15861 case sstmysqlcreatedatabase: 15862 { 15863 ret = new TCreateDatabaseSqlStatement(pdbvendor); 15864 break; 15865 } 15866 case sstmysqlrenametable: 15867 { 15868 ret = new TRenameStmt(pdbvendor); 15869 break; 15870 } 15871 case sstmysqlshowindex: 15872 ret = new TShowIndexStmt(pdbvendor); 15873 break; 15874 case sstmysqlloaddatainfile: 15875 ret = new TLoadDataStmt(pdbvendor); 15876 break; 15877 case sstmysqlshowlogs: 15878 case sstmysqlshowbinlogevents: 15879 case sstmysqlshowcharacterset: 15880 case sstmysqlshowcollation: 15881 case sstmysqlshowcolumns: 15882 case sstmysqlshowwarnings: 15883 case sstmysqlshowcreatedatabase: 15884 case sstmysqlshowcreatefunction: 15885 case sstmysqlshowcreateprocedure: 15886 case sstmysqlshowcreatetable: 15887 case sstmysqlshowcreateview: 15888 case sstmysqlshowdatabases: 15889 case sstmysqlshowerrors: 15890 case sstmysqlshowfields: 15891 case sstmysqlshowprocesslist: 15892 case sstmysqlshowtables: 15893 case sstmysqlshowfunctionstatus: 15894 case sstmysqlshowstatus: 15895 case sstmysqlshowvariables: 15896 case sstmysqlshowgrants: 15897 case sstmysqlshowinnodbstatus: 15898 case sstmysqlshowmasterlogs: 15899 case sstmysqlshowplugins: 15900 case sstmysqlshowprivileges: 15901 case sstmysqlshowprofile: 15902 case sstmysqlshowprofiles: 15903 case sstmysqlshowslavehosts: 15904 case sstmysqlshowslavestatus: 15905 case sstmysqlshowtablestatus: 15906 case sstmysqlshowtriggers: 15907 case sstmysqlshowcreateschema: 15908 case sstmysqlshowengines: 15909 ret = new TMySQLShowStmt(pdbvendor); 15910 ret.sqlstatementtype = gnewsqlstatementtype; 15911 break; 15912 case sstmysqlshowengine: 15913 ret = new TShowEngineStmt(pdbvendor); 15914 break; 15915 case sstmysqlshowreplicaStatus: 15916 ret = new TShowStmt(pdbvendor); 15917 ret.sqlstatementtype = gnewsqlstatementtype; 15918 break; 15919 case sstmysqlalterfunction: 15920 ret = new TAlterFunctionStmt(pdbvendor); 15921 break; 15922 case sstmysqlalterprocedure: 15923 ret = new TAlterProcedureStmt(pdbvendor); 15924 break; 15925 case sstmysqldropfunction: 15926 ret = new TDropFunctionStmt(pdbvendor); 15927 break; 15928 case sstmysqldroptrigger: 15929 ret = new TDropTriggerSqlStatement(pdbvendor); 15930 break; 15931 case sstmysqloptimizetable: 15932 ret = new TMySQLOptimizeTableStmt(pdbvendor); 15933 break; 15934 case sstmysqlalterview: 15935 ret = new TAlterViewStatement(pdbvendor); 15936 break; 15937 default: 15938 { 15939 ret = new TUnknownSqlStatement(pdbvendor); 15940 ret.sqlstatementtype = gnewsqlstatementtype; 15941 break; 15942 } 15943 } // case 15944 15945 return ret; 15946} 15947 15948TCustomSqlStatement ismdxsql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 15949 TCustomSqlStatement ret = null; 15950 15951 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 15952 15953 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 15954 || (pcst.tokencode == TBaseType.cmtslashstar) 15955 || (pcst.tokencode == TBaseType.lexspace) 15956 || (pcst.tokencode == TBaseType.lexnewline) 15957 || (pcst.tokentype == ETokenType.ttsemicolon) ) 15958 { 15959 return null; 15960 } 15961 15962 int lcpos = pcst.posinlist; 15963 TSourceTokenList lcsourcetokenlist = pcst.container; 15964 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 15965 15966 15967 //with clause before statement 15968 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 15969 { 15970 ret = findMdxStmtBeginWithClause(pcst,pdbvendor); 15971 if ( (ret != null) ) return ret; 15972 } 15973 15974 gnewsqlstatementtype = findmdxcmd(pcst); 15975 15976 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 15977 switch (gnewsqlstatementtype) { // 15978 case sstinvalid: 15979 { 15980 ret = null; 15981 if ( pstate == EFindSqlStateType.stnormal ) 15982 { 15983 //treat all unregonized statement as an expression 15984 ret = new TMdxExpression(EDbVendor.dbvmdx); 15985 } 15986 break; 15987 } 15988 case sstmdxselect: 15989 { 15990 boolean lcisnewsql = true; 15991 15992 if ( pstate != EFindSqlStateType.stnormal ) 15993 { 15994 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect ) 15995 { 15996 if ( lccurrentsqlstatement.isctequery ) 15997 lcisnewsql = false; 15998 } 15999 } 16000 16001 if ( lcisnewsql ) 16002 ret = new TMdxSelect(pdbvendor); 16003 16004 break; 16005 } 16006 case sstmdxupdate: 16007 { 16008 boolean lcisnewsql = true; 16009 if ( pstate != EFindSqlStateType.stnormal ) 16010 { 16011 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16012 if ( (lcprevsolidtoken != null) ) 16013 { // 16014 } 16015 16016 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 16017 if ( (lcnextsolidtoken != null) ) 16018 { 16019 } 16020 16021 if ( (lccurrentsqlstatement != null) ) 16022 { 16023 } 16024 } 16025 16026 if ( lcisnewsql ) 16027 { 16028 ret = new TMdxUpdate(pdbvendor); 16029 } 16030 break; 16031 } 16032 case sstmdxaltercube: 16033 { 16034 ret = new TMdxAlterCube(pdbvendor); 16035 break; 16036 } 16037 case sstmdxcalculate: 16038 { 16039 ret = new TMdxCalculate(pdbvendor); 16040 break; 16041 } 16042 case sstmdxcall: 16043 { 16044 ret = new TMdxCall(pdbvendor); 16045 break; 16046 } 16047 case sstmdxcase: 16048 { 16049 ret = new TMdxCase(pdbvendor); 16050 break; 16051 } 16052 case sstmdxclearcalculations: 16053 { 16054 ret = new TMdxClearCalculations(pdbvendor); 16055 break; 16056 } 16057 case sstmdxcreateaction: 16058 { 16059 ret = new TMdxCreateAction(pdbvendor); 16060 break; 16061 } 16062 case sstmdxcreatemember: 16063 { 16064 ret = new TMdxCreateMember(pdbvendor); 16065 break; 16066 } 16067 case sstmdxcreatecellcalculation: 16068 { 16069 ret = new TMdxCreateCellCalculation(pdbvendor); 16070 break; 16071 } 16072 case sstmdxcreateglobalcube: 16073 { 16074 ret = new TMdxCreateGlobalCube(pdbvendor); 16075 break; 16076 } 16077 case sstmdxcreateset: 16078 { 16079 ret = new TMdxCreateSet(pdbvendor); 16080 break; 16081 } 16082 case sstmdxcreatesessioncube: 16083 { 16084 ret = new TMdxCreateSessionCube(pdbvendor); 16085 break; 16086 } 16087 case sstmdxcreatesubcube: 16088 { 16089 ret = new TMdxCreateSubCube(pdbvendor); 16090 break; 16091 } 16092 case sstmdxdrillthrough: 16093 { 16094 ret = new TMdxDrillthrough(pdbvendor); 16095 break; 16096 } 16097 case sstmdxdropaction: 16098 { 16099 ret = new TMdxDropAction(pdbvendor); 16100 break; 16101 } 16102 case sstmdxdropmember: 16103 { 16104 ret = new TMdxDropMember(pdbvendor);//ret = new TMdxCreateSessionCube(pdbvendor); 16105 break; 16106 } 16107 case sstmdxdropcellcalculation: 16108 { 16109 ret = new TMdxDropCellCalculation(pdbvendor); 16110 break; 16111 } 16112 case sstmdxdropset: 16113 { 16114 ret = new TMdxDropSet(pdbvendor); 16115 break; 16116 } 16117 case sstmdxdropsubcube: 16118 { 16119 ret = new TMdxDropSubcube(pdbvendor); 16120 break; 16121 } 16122 case sstmdxfreeze: 16123 { 16124 ret = new TMdxFreeze(pdbvendor); 16125 break; 16126 } 16127 case sstmdxif: 16128 { 16129 ret = new TMdxIf(pdbvendor); 16130 break; 16131 } 16132 case sstmdxrefreshcube: 16133 { 16134 ret = new TMdxRefreshCube(pdbvendor); 16135 break; 16136 } 16137 case sstmdxscope: 16138 { 16139 ret = new TMdxScope(pdbvendor); 16140 break; 16141 } 16142 case sstmdxcreatemeasure: 16143 { 16144 ret = new TMdxCreateMeasure(pdbvendor); 16145 break; 16146 } 16147 case sstmdxexisting: 16148 default: 16149 { 16150 ret = new TUnknownSqlStatement(pdbvendor); 16151 ret.sqlstatementtype = gnewsqlstatementtype; 16152 break; 16153 } 16154 } // case 16155 16156 return ret; 16157} 16158 16159 16160public ESqlStatementType findsybasecmdusedbyyacc(TSourceToken pcst){ 16161 ESqlStatementType ret = ESqlStatementType.sstinvalid; 16162 16163 int lcpos = pcst.posinlist; 16164 TSourceTokenList lcsourcetokenlist = pcst.container; 16165 16166 //subquery after semicolon or at first line 16167 if ( (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 16168 { 16169 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 16170 if ( k >0 ) 16171 { 16172 ret = ESqlStatementType.sstselect; 16173 } 16174 16175 return ret; 16176 } 16177 16178 16179 ret = findsybasecmd(pcst); 16180 // execute can't be used to delimite other sql 16181 if ( ret == ESqlStatementType.sstmssqlexec ) 16182 ret = ESqlStatementType.sstinvalid; 16183 16184 return ret; 16185} 16186 16187public ESqlStatementType findmssqlcmdusedbyyacc(TSourceToken pcst){ 16188 ESqlStatementType ret = ESqlStatementType.sstinvalid; 16189 16190 int lcpos = pcst.posinlist; 16191 TSourceTokenList lcsourcetokenlist = pcst.container; 16192 16193 //subquery after semicolon or at first line 16194 if ( (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 16195 { 16196 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 16197 if ( k >0 ) 16198 { 16199 ret = ESqlStatementType.sstselect; 16200 } 16201 16202 return ret; 16203 } 16204 16205 16206 ret = findmssqlcmd(pcst); 16207 // execute can't be used to delimite other sql 16208 if ( ret == ESqlStatementType.sstmssqlexec ) 16209 ret = ESqlStatementType.sstinvalid; 16210 16211 return ret; 16212} 16213 16214 16215TCustomSqlStatement ishive(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 16216 TCustomSqlStatement ret = null; 16217 16218 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 16219 16220 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 16221 || (pcst.tokencode == TBaseType.cmtslashstar) 16222 || (pcst.tokencode == TBaseType.lexspace) 16223 || (pcst.tokencode == TBaseType.lexnewline) 16224 || (pcst.tokentype == ETokenType.ttsemicolon) ) 16225 { 16226 return null; 16227 } 16228 16229 int lcpos = pcst.posinlist; 16230 TSourceTokenList lcsourcetokenlist = pcst.container; 16231 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 16232 16233 16234 //from query 16235 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_from) ) 16236 { 16237 if (pcst.container == null){ 16238 return new TSelectSqlStatement(pdbvendor); 16239 } 16240 16241 // search select or insert who comes first, 16242 int lcpos1 = pcst.posinlist; 16243 TSourceTokenList lcsourcetokenlist1 = pcst.container; 16244 TSourceToken tmpSt; 16245 int parenthesisCnt = 0; 16246 for(int k=lcpos1+1;k<lcsourcetokenlist1.size();k++){ 16247 tmpSt = lcsourcetokenlist1.get(k); 16248 if (tmpSt.tokencode == ';') break; 16249 if (tmpSt.tokencode == '(') parenthesisCnt++; 16250 if (tmpSt.tokencode == ')') parenthesisCnt--; 16251 if (parenthesisCnt == 0){ 16252 if (tmpSt.tokencode == TBaseType.rrw_select){ 16253 ret = new TSelectSqlStatement(pdbvendor); 16254 break; 16255 }else if (tmpSt.tokencode == TBaseType.rrw_insert){ 16256 ret = new TInsertSqlStatement(pdbvendor); 16257 break; 16258 } 16259 } 16260 } 16261 16262 if (ret == null){ 16263 ret = new TSelectSqlStatement(pdbvendor); 16264// FROM ( 16265// FROM pv_users 16266// MAP pv_users.userid, pv_users.date 16267// USING 'map_script' 16268// AS dt, uid 16269// CLUSTER BY dt) map_output; 16270 } 16271 16272 return ret; 16273 } 16274 16275 //cte 16276 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 16277 { 16278 ret = findcte(pcst,pdbvendor); 16279 if ( (ret != null) ) return ret; 16280 } 16281 16282 gnewsqlstatementtype = findhivecmd(pcst); 16283 16284 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16285 switch (gnewsqlstatementtype) { // 16286 case sstinvalid: 16287 { 16288 ret = null; 16289 break; 16290 } 16291 case sstselect: 16292 { 16293 boolean lcisnewsql = true; 16294 16295 if ( pstate != EFindSqlStateType.stnormal ) 16296 { 16297 16298 if ( (lccurrentsqlstatement != null) ) 16299 { 16300 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.ssthiveFromQuery ) 16301 //if (((TSelectSqlStatement)lccurrentsqlstatement).getSelectToken().tokencode == TBaseType.rrw_from) 16302 lcisnewsql = false; 16303 } 16304 16305 } 16306 16307 if ( lcisnewsql ) 16308 ret = new TSelectSqlStatement(pdbvendor); 16309 16310 break; 16311 } 16312 case sstinsert: 16313 { 16314 boolean lcisnewsql = true; 16315 if ( pstate != EFindSqlStateType.stnormal ) 16316 { 16317 if ( (lccurrentsqlstatement != null) ) 16318 { 16319 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.ssthiveFromQuery ) 16320 // if (((TSelectSqlStatement)lccurrentsqlstatement).getSelectToken().tokencode == TBaseType.rrw_from) 16321 lcisnewsql = false; 16322 } 16323 } 16324 16325 if ( lcisnewsql ) 16326 ret = new TInsertSqlStatement(pdbvendor); 16327 16328 break; 16329 } 16330 case sstTruncate: 16331 { 16332 ret = new TTruncateStatement(pdbvendor); 16333 break; 16334 } 16335 case sstalterdatabase: 16336 { 16337 ret = new TAlterDatabaseStmt(pdbvendor); 16338 break; 16339 } 16340 case sstalterindex: 16341 { 16342 ret = new TAlterIndexStmt(pdbvendor); 16343 break; 16344 } 16345 case sstaltertable: 16346 { 16347 ret = new TAlterTableStatement(pdbvendor); 16348 break; 16349 } 16350 case sstalterview: 16351 { 16352 ret = new TAlterViewStatement(pdbvendor); 16353 break; 16354 } 16355 case sstanalyzeTable: 16356 { 16357 ret = new TAnalyzeStmt(pdbvendor); 16358 break; 16359 } 16360 case sstcreatedatabase: 16361 { 16362 ret = new TCreateDatabaseSqlStatement(pdbvendor); 16363 break; 16364 } 16365 case sstcreatetable: 16366 { 16367 ret = new TCreateTableSqlStatement(pdbvendor); 16368 break; 16369 } 16370 case sstcreateindex: 16371 { 16372 ret = new TCreateIndexSqlStatement(pdbvendor); 16373 break; 16374 } 16375 case sstcreateview: 16376 { 16377 ret = new TCreateViewSqlStatement(pdbvendor); 16378 break; 16379 } 16380 case ssthiveCreateRole: 16381 { 16382 ret = new THiveCreateRole(pdbvendor); 16383 break; 16384 } 16385 case ssthiveCreateFunction: 16386 { 16387 ret = new THiveCreateFunction(pdbvendor); 16388 break; 16389 } 16390 case ssthiveDesc: 16391 { 16392 ret = new THiveDescribe(pdbvendor); 16393 break; 16394 } 16395 case ssthiveDropDatabase: 16396 { 16397 ret = new THiveDropDatabase(pdbvendor); 16398 break; 16399 } 16400 case sstdropindex: 16401 { 16402 ret = new TDropIndexSqlStatement(pdbvendor); 16403 break; 16404 } 16405 case ssthiveDropRole: 16406 { 16407 ret = new THiveDropRole(pdbvendor); 16408 break; 16409 } 16410 case sstdroptable: 16411 { 16412 ret = new TDropTableSqlStatement(pdbvendor); 16413 break; 16414 } 16415 case ssthiveDropFunciton: 16416 { 16417 ret = new THiveDropFunction(pdbvendor); 16418 break; 16419 } 16420 case sstdropview: 16421 { 16422 ret = new TDropViewSqlStatement(pdbvendor); 16423 break; 16424 } 16425 case ssthiveExplain: 16426 { 16427 ret = new THiveExplain(pdbvendor); 16428 break; 16429 } 16430 case ssthiveExportTable: 16431 { 16432 ret = new THiveExportTable(pdbvendor); 16433 break; 16434 } 16435 case ssthiveGrant: 16436 { 16437 ret = new THiveGrant(pdbvendor); 16438 break; 16439 } 16440 case ssthiveGrantRole: 16441 { 16442 ret = new THiveGrantRole(pdbvendor); 16443 break; 16444 } 16445 case ssthiveImportTable: 16446 { 16447 ret = new THiveImportTable(pdbvendor); 16448 break; 16449 } 16450 case ssthiveLoad: 16451 { 16452 ret = new THiveLoad(pdbvendor); 16453 break; 16454 } 16455 case ssthiveLockTable: 16456 { 16457 ret = new TLockTableStmt(pdbvendor); 16458 break; 16459 } 16460 case sstmsck: 16461 { 16462 ret = new TMSCKStmt(pdbvendor); 16463 break; 16464 } 16465 case ssthiveRevoke: 16466 { 16467 ret = new THiveRevoke(pdbvendor); 16468 break; 16469 } 16470 case ssthiveRevokeRole: 16471 { 16472 ret = new THiveRevokeRole(pdbvendor); 16473 break; 16474 } 16475 case ssthiveSet: 16476 { 16477 ret = new THiveSet(pdbvendor); 16478 break; 16479 } 16480 case ssthiveShow: 16481 { 16482 ret = new THiveShow(pdbvendor); 16483 break; 16484 } 16485 case ssthiveShowGrants: 16486 { 16487 ret = new THiveShowGrant(pdbvendor); 16488 break; 16489 } 16490 case ssthiveShowRoleGrants: 16491 { 16492 ret = new THiveShowRoleGrant(pdbvendor); 16493 break; 16494 } 16495 case ssthiveUnlockTable: 16496 { 16497 ret = new THiveUnlockTable(pdbvendor); 16498 break; 16499 } 16500 case ssthiveSwitchDatabase: 16501 { 16502 ret = new TUseDatabase(pdbvendor); 16503 break; 16504 } 16505 case sstmerge: 16506 { 16507 ret = new TMergeSqlStatement(pdbvendor); 16508 break; 16509 } 16510 case sstupdate: 16511 { 16512 ret = new TUpdateSqlStatement(pdbvendor); 16513 break; 16514 } 16515 case sstdelete: 16516 { 16517 ret = new TDeleteSqlStatement(pdbvendor); 16518 break; 16519 } 16520 case sstCreateMacro: 16521 ret = new TCreateMacro(pdbvendor); 16522 break; 16523 case sstDropMacro: 16524 ret = new TDropMacro(pdbvendor); 16525 break; 16526 case sstcreatematerializedview: 16527 ret = new TCreateMaterializedSqlStatement(pdbvendor); 16528 break; 16529 case sstupsert: 16530 ret = new TUpsertStmt(pdbvendor); 16531 break; 16532 default: 16533 { 16534 ret = new TUnknownSqlStatement(pdbvendor); 16535 ret.sqlstatementtype = gnewsqlstatementtype; 16536 break; 16537 } 16538 } // case 16539 16540 return ret; 16541} 16542 16543 TCustomSqlStatement isvertica(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 16544 TCustomSqlStatement ret = null; 16545 16546 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 16547 16548 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 16549 || (pcst.tokencode == TBaseType.cmtslashstar) 16550 || (pcst.tokencode == TBaseType.lexspace) 16551 || (pcst.tokencode == TBaseType.lexnewline) 16552 || (pcst.tokentype == ETokenType.ttsemicolon) ) 16553 { 16554 return null; 16555 } 16556 16557 int lcpos = pcst.posinlist; 16558 TSourceTokenList lcsourcetokenlist = pcst.container; 16559 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 16560 16561 //subquery after semicolon or at first line 16562 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 16563 { 16564 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 16565 if ( k >0 ) 16566 { 16567 ret = new TSelectSqlStatement(pdbvendor); 16568 } 16569 16570 return ret; 16571 } 16572 16573 //cte 16574 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 16575 { 16576 ret = findcte(pcst,pdbvendor); 16577 if ( (ret != null) ) return ret; 16578 } 16579 16580 gnewsqlstatementtype = findverticacmd(pcst); 16581 16582 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16583 switch (gnewsqlstatementtype) { // 16584 case sstinvalid: 16585 { 16586 ret = null; 16587 16588 if ( pstate == EFindSqlStateType.stnormal ) 16589 { 16590 if ( pcst.tokencode == TBaseType.label_begin ) 16591 { 16592 ret = new TCommonBlock(pdbvendor); 16593 gnewsqlstatementtype = ret.sqlstatementtype; 16594 } 16595 else if ( pcst.tokencode == TBaseType.rrw_declare ) 16596 { 16597 ret = new TCommonBlock(pdbvendor); 16598 gnewsqlstatementtype = ret.sqlstatementtype; 16599 } 16600 else if ( pcst.tokencode == TBaseType.rrw_begin ) 16601 { 16602 ret = new TCommonBlock(pdbvendor); 16603 gnewsqlstatementtype = ret.sqlstatementtype; 16604 } 16605 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 16606 { 16607 ret = new TPlsqlCreateProcedure(pdbvendor); 16608 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 16609 gnewsqlstatementtype = ret.sqlstatementtype; 16610 } 16611 else if ( pcst.tokencode == TBaseType.rrw_function ) 16612 { 16613 ret = new TPlsqlCreateFunction(pdbvendor); 16614 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 16615 gnewsqlstatementtype = ret.sqlstatementtype; 16616 } 16617 else if ( pcst.tokencode == TBaseType.rrw_package ) 16618 { 16619 ret = new TPlsqlCreatePackage(pdbvendor); 16620 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 16621 gnewsqlstatementtype = ret.sqlstatementtype; 16622 } 16623 } 16624 break; 16625 } 16626 case sstselect: 16627 { 16628 boolean lcisnewsql = true; 16629 16630 if ( pstate != EFindSqlStateType.stnormal ) 16631 { 16632 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16633 if ( (lcprevsolidtoken != null) ) 16634 { 16635 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 16636 lcisnewsql = false; //subqery 16637 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 16638 lcisnewsql = false; 16639 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 16640 lcisnewsql = false; 16641 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 16642 lcisnewsql = false; 16643 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 16644 lcisnewsql = false; 16645 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 16646 lcisnewsql = false; 16647 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 16648 { 16649 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 16650 lcisnewsql = false; 16651 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 16652 lcisnewsql = false; 16653 } 16654 16655 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 16656 { 16657 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 16658 if ( (lcpprevsolidtoken != null) ) 16659 { 16660 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 16661 lcisnewsql = false; 16662 } 16663 } 16664 16665 } 16666 16667 16668 if ( (lccurrentsqlstatement != null) ) 16669 { 16670 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 16671 lcisnewsql = false; 16672 } 16673 16674 } 16675 16676 if ( lcisnewsql ) 16677 ret = new TSelectSqlStatement(pdbvendor); 16678 16679 break; 16680 } 16681 case sstinsert: 16682 { 16683 boolean lcisnewsql = true; 16684 if ( pstate != EFindSqlStateType.stnormal ) 16685 { 16686 if ( (lccurrentsqlstatement != null) ) 16687 { 16688 16689 } 16690 } 16691 16692 if ( lcisnewsql ) 16693 ret = new TInsertSqlStatement(pdbvendor); 16694 16695 break; 16696 } 16697 case sstupdate: 16698 { 16699 boolean lcisnewsql = true; 16700 if ( pstate != EFindSqlStateType.stnormal ) 16701 { 16702 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16703 if ( (lcprevsolidtoken != null) ) 16704 { // 16705 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 16706 lcisnewsql = false; 16707 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 16708 lcisnewsql = false; 16709 } 16710 16711 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 16712 if ( (lcnextsolidtoken != null) ) 16713 { 16714 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 16715 { 16716 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 16717 if ( k == 0 ) lcisnewsql = false; 16718 } 16719 } 16720 16721 16722 if ( (lccurrentsqlstatement != null) ) 16723 { 16724 } 16725 } 16726 16727 if ( lcisnewsql ) 16728 { 16729 ret = new TUpdateSqlStatement(pdbvendor); 16730 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 16731 } 16732 break; 16733 } 16734 case sstdelete: 16735 { 16736 boolean lcisnewsql = true; 16737 16738 if ( pstate != EFindSqlStateType.stnormal ) 16739 { 16740 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 16741 if ( (lcprevsolidtoken != null) ) 16742 { 16743 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 16744 lcisnewsql = false; 16745 } 16746 16747 if ( (lccurrentsqlstatement != null) ) 16748 { 16749 } 16750 } 16751 16752 if ( lcisnewsql ) 16753 ret = new TDeleteSqlStatement(pdbvendor); 16754 16755 break; 16756 } 16757 case sstmerge: 16758 { 16759 ret = new TMergeSqlStatement(pdbvendor); 16760 ret.sqlstatementtype = gnewsqlstatementtype; 16761 break; 16762 } 16763 case sstcommit: 16764 case sstEnd: 16765 { 16766 ret = new TCommitStmt(pdbvendor); 16767 ret.sqlstatementtype = gnewsqlstatementtype; 16768 break; 16769 } 16770 case sstrollback: 16771 { 16772 ret = new TRollbackStmt(pdbvendor); 16773 ret.sqlstatementtype = gnewsqlstatementtype; 16774 break; 16775 } 16776 case sstsavepoint: 16777 { 16778 ret = new TSavepointStmt(pdbvendor); 16779 ret.sqlstatementtype = gnewsqlstatementtype; 16780 break; 16781 } 16782 case sstRevoke: 16783 { 16784 ret = new TRevokeStmt(pdbvendor); 16785 ret.sqlstatementtype = gnewsqlstatementtype; 16786 break; 16787 } 16788 case sstGrant: 16789 { 16790 ret = new TGrantStmt(pdbvendor); 16791 ret.sqlstatementtype = gnewsqlstatementtype; 16792 break; 16793 } 16794 case sstTruncate: 16795 { 16796 ret = new TTruncateStatement(pdbvendor); 16797 ret.sqlstatementtype = gnewsqlstatementtype; 16798 break; 16799 } 16800 case sstcreatetable: 16801 { 16802 ret = new TCreateTableSqlStatement(pdbvendor); 16803 break; 16804 } 16805 case sstcreateview: 16806 { 16807 ret = new TCreateViewSqlStatement(pdbvendor); 16808 break; 16809 } 16810 case sstcreateindex: 16811 { 16812 ret = new TCreateIndexSqlStatement(pdbvendor); 16813 break; 16814 } 16815 case sstcreatedatabase: 16816 { 16817 ret = new TCreateDatabaseSqlStatement(pdbvendor); 16818 break; 16819 } 16820 case sstdroptable: 16821 { 16822 ret = new TDropTableSqlStatement(pdbvendor); 16823 break; 16824 } 16825 case sstdropview: 16826 { 16827 ret = new TDropViewSqlStatement(pdbvendor); 16828 break; 16829 } 16830 case sstdropindex: 16831 { 16832 ret = new TDropIndexSqlStatement(pdbvendor); 16833 break; 16834 } 16835 case sstaltertable: 16836 { 16837 ret = new TAlterTableStatement(pdbvendor); 16838 break; 16839 } 16840 case sstaltersession: 16841 { 16842 ret = new TAlterSessionStatement(pdbvendor); 16843 break; 16844 } 16845 case sstcreateprocedure: 16846 { 16847 ret = new TCreateProcedureStmt(pdbvendor); 16848 break; 16849 } 16850 case sstCommentOn: 16851 { 16852 ret = new TCommentOnSqlStmt(pdbvendor); 16853 break; 16854 } 16855 case sstcreatesequence: 16856 { 16857 ret = new TCreateSequenceStmt(pdbvendor); 16858 break; 16859 } 16860 case sstcreatefunction: 16861 ret = new TVerticaCreateFunction(pdbvendor); 16862 break; 16863 case sstaltersequence: 16864 ret = new TAlterSequenceStatement(pdbvendor); 16865 break; 16866 case sstAlterAccessPolicy: 16867 ret = new TAlterAccessPolicy(pdbvendor); 16868 break; 16869 case sstAlterAuthentication: 16870 ret = new TAlterAuthentication(pdbvendor); 16871 break; 16872 case sstalterdatabase: 16873 ret = new TAlterDatabaseStmt(pdbvendor); 16874 break; 16875 case sstAlterFaultGroup: 16876 ret = new TAlterFaultGroup(pdbvendor); 16877 break; 16878 case sstalterfunction: 16879 ret = new TAlterFunctionStmt(pdbvendor); 16880 break; 16881 case sstAlterLibrary: 16882 ret = new TAlterLibraryStmt(pdbvendor); 16883 break; 16884 case sstAlterNode: 16885 ret = new TAlterNode(pdbvendor); 16886 break; 16887 case sstAlterNetworkInterface: 16888 ret = new TAlterNetworkInterface(pdbvendor); 16889 break; 16890 case sstAlterProjection: 16891 ret = new TAlterProjectionRename(pdbvendor); 16892 break; 16893 case sstAlterProfile: 16894 ret = new TAlterProfile(pdbvendor); 16895 break; 16896 case sstAlterResourcePool: 16897 ret = new TAlterResourcePool(pdbvendor); 16898 break; 16899 case sstAlterRole: 16900 ret = new TAlterRoleStmt(pdbvendor); 16901 break; 16902 case sstAlterSchema: 16903 ret = new TAlterSchemaStmt(pdbvendor); 16904 break; 16905 case sstAlterSubnet: 16906 ret = new TAlterSubnet(pdbvendor); 16907 break; 16908 case sstBegin: 16909 case sstStartTransaction: 16910 ret = new TBeginTran(pdbvendor); 16911 break; 16912 case sstReleaseSavepoint: 16913 ret = new TReleaseSavepointStmt(pdbvendor); 16914 break; 16915 case sstconnect: 16916 ret = new TConnectStmt(pdbvendor); 16917 break; 16918 case sstCreateAccessPolicy: 16919 ret = new TCreateAccessPolicy(pdbvendor); 16920 break; 16921 case sstCreateAuthentication: 16922 ret = new TCreateAuthentication(pdbvendor); 16923 break; 16924 case sstCreateFaultGroup: 16925 ret = new TCreateFaultGroup(pdbvendor); 16926 break; 16927 case sstCreateHCatalogSchema: 16928 ret = new TCreateHCatalogSchema(pdbvendor); 16929 break; 16930 case sstCreateSubnet: 16931 ret = new TCreateSubnet(pdbvendor); 16932 break; 16933 case sstcreateuser: 16934 ret = new TCreateUserStmt(pdbvendor); 16935 break; 16936 case sstDisconnect: 16937 ret = new TDisconnectStmt(pdbvendor); 16938 break; 16939 case sstDropAccessPolicy: 16940 ret = new TDropAccessPolicy(pdbvendor); 16941 break; 16942 case sstDropAggregateFunction: 16943 ret = new TDropAggregateFunction(pdbvendor); 16944 break; 16945 case sstDropAuthentication: 16946 ret = new TDropAuthentication(pdbvendor); 16947 break; 16948 case sstDropFaultGroup: 16949 ret = new TDropFaultGroup(pdbvendor); 16950 break; 16951 case sstdropfunction: 16952 ret = new TDropFunctionStmt(pdbvendor); 16953 break; 16954 case sstDropLibrary: 16955 ret = new TDropLibraryStmt(pdbvendor); 16956 break; 16957 case sstDropNetworkInterface: 16958 ret = new TDropNetworkInterface(pdbvendor); 16959 break; 16960 case sstdropprocedure: 16961 ret = new TDropProcedureStmt(pdbvendor); 16962 break; 16963 case sstDropProjection: 16964 ret = new TDropProjectionStmt(pdbvendor); 16965 break; 16966 case sstDropResourcePool: 16967 ret = new TDropResourcePool(pdbvendor); 16968 break; 16969 case sstdroprole: 16970 ret = new TDropRoleStmt(pdbvendor); 16971 break; 16972 case sstdropschema: 16973 ret = new TDropSchemaSqlStatement(pdbvendor); 16974 break; 16975 case sstdropsequence: 16976 ret = new TDropSequenceStmt(pdbvendor); 16977 break; 16978 case sstDropSubnet: 16979 ret = new TDropSubnet(pdbvendor); 16980 break; 16981 case sstDropTextIndex: 16982 ret = new TDropTextIndex(pdbvendor); 16983 break; 16984 case sstDropTransformFunction: 16985 ret = new TDropTransformFunction(pdbvendor); 16986 break; 16987 case sstdropuser: 16988 ret = new TDropUserStmt(pdbvendor); 16989 break; 16990 case sstExplain: 16991 { 16992 ret = new TExplainPlan(pdbvendor); 16993 break; 16994 } 16995 case sstExportToVertica: 16996 ret = new TExportToVertica(pdbvendor); 16997 break; 16998 case sstProfile: 16999 ret = new TProfileStmt(pdbvendor); 17000 break; 17001 case sstset: 17002 ret = new TVerticaSetStmt(pdbvendor); 17003 break; 17004 case sstShow: 17005 ret = new TVerticaShow(pdbvendor); 17006 break; 17007 case sstcall: 17008 ret = new TCallStatement(pdbvendor); 17009 break; 17010 default: 17011 { 17012 ret = new TUnknownSqlStatement(pdbvendor); 17013 ret.sqlstatementtype = gnewsqlstatementtype; 17014 break; 17015 } 17016 } // case 17017 17018 return ret; 17019 } 17020 17021 17022 TCustomSqlStatement iscouchbase(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 17023 TCustomSqlStatement ret = null; 17024 17025 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 17026 17027 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 17028 || (pcst.tokencode == TBaseType.cmtslashstar) 17029 || (pcst.tokencode == TBaseType.lexspace) 17030 || (pcst.tokencode == TBaseType.lexnewline) 17031 || (pcst.tokentype == ETokenType.ttsemicolon) ) 17032 { 17033 return null; 17034 } 17035 17036 int lcpos = pcst.posinlist; 17037 TSourceTokenList lcsourcetokenlist = pcst.container; 17038 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 17039 17040 //subquery after semicolon or at first line 17041 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 17042 { 17043 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 17044 if ( k >0 ) 17045 { 17046 ret = new TSelectSqlStatement(pdbvendor); 17047 } 17048 17049 return ret; 17050 } 17051 17052 //cte 17053 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 17054 { 17055 ret = findcte(pcst,pdbvendor); 17056 if ( (ret != null) ) return ret; 17057 } 17058 17059 gnewsqlstatementtype = findcouchbasecmd(pcst); 17060 17061 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 17062 switch (gnewsqlstatementtype) { // 17063 case sstinvalid: 17064 { 17065 ret = null; 17066 17067 if ( pstate == EFindSqlStateType.stnormal ) 17068 { 17069 if ( pcst.tokencode == TBaseType.label_begin ) 17070 { 17071 ret = new TCommonBlock(pdbvendor); 17072 gnewsqlstatementtype = ret.sqlstatementtype; 17073 } 17074 else if ( pcst.tokencode == TBaseType.rrw_declare ) 17075 { 17076 ret = new TCommonBlock(pdbvendor); 17077 gnewsqlstatementtype = ret.sqlstatementtype; 17078 } 17079 else if ( pcst.tokencode == TBaseType.rrw_begin ) 17080 { 17081 ret = new TCommonBlock(pdbvendor); 17082 gnewsqlstatementtype = ret.sqlstatementtype; 17083 } 17084 else if ( pcst.tokencode == TBaseType.rrw_procedure ) 17085 { 17086 ret = new TPlsqlCreateProcedure(pdbvendor); 17087 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createprocedure; 17088 gnewsqlstatementtype = ret.sqlstatementtype; 17089 } 17090 else if ( pcst.tokencode == TBaseType.rrw_function ) 17091 { 17092 ret = new TPlsqlCreateFunction(pdbvendor); 17093 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createfunction; 17094 gnewsqlstatementtype = ret.sqlstatementtype; 17095 } 17096 else if ( pcst.tokencode == TBaseType.rrw_package ) 17097 { 17098 ret = new TPlsqlCreatePackage(pdbvendor); 17099 // ret.sqlstatementtype = ESqlStatementType.sstplsql_createpackage; 17100 gnewsqlstatementtype = ret.sqlstatementtype; 17101 } 17102 } 17103 break; 17104 } 17105 case sstselect: 17106 { 17107 boolean lcisnewsql = true; 17108 17109 if ( pstate != EFindSqlStateType.stnormal ) 17110 { 17111 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 17112 if ( (lcprevsolidtoken != null) ) 17113 { 17114 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 17115 lcisnewsql = false; //subqery 17116 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 17117 lcisnewsql = false; 17118 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 17119 lcisnewsql = false; 17120 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 17121 lcisnewsql = false; 17122 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 17123 lcisnewsql = false; 17124 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 17125 lcisnewsql = false; 17126 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 17127 { 17128 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 17129 lcisnewsql = false; 17130 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 17131 lcisnewsql = false; 17132 } 17133 17134 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 17135 { 17136 TSourceToken lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 17137 if ( (lcpprevsolidtoken != null) ) 17138 { 17139 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 17140 lcisnewsql = false; 17141 } 17142 } 17143 17144 } 17145 17146 17147 if ( (lccurrentsqlstatement != null) ) 17148 { 17149 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 17150 lcisnewsql = false; 17151 } 17152 17153 } 17154 17155 if ( lcisnewsql ) 17156 ret = new TSelectSqlStatement(pdbvendor); 17157 17158 break; 17159 } 17160 case sstinsert: 17161 { 17162 boolean lcisnewsql = true; 17163 if ( pstate != EFindSqlStateType.stnormal ) 17164 { 17165 if ( (lccurrentsqlstatement != null) ) 17166 { 17167 17168 } 17169 } 17170 17171 if ( lcisnewsql ) 17172 ret = new TInsertSqlStatement(pdbvendor); 17173 17174 break; 17175 } 17176 case sstupdate: 17177 { 17178 boolean lcisnewsql = true; 17179 if ( pstate != EFindSqlStateType.stnormal ) 17180 { 17181 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 17182 if ( (lcprevsolidtoken != null) ) 17183 { // 17184 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 17185 lcisnewsql = false; 17186 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 17187 lcisnewsql = false; 17188 } 17189 17190 TSourceToken lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 17191 if ( (lcnextsolidtoken != null) ) 17192 { 17193 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 17194 { 17195 int k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 17196 if ( k == 0 ) lcisnewsql = false; 17197 } 17198 } 17199 17200 17201 if ( (lccurrentsqlstatement != null) ) 17202 { 17203 } 17204 } 17205 17206 if ( lcisnewsql ) 17207 { 17208 ret = new TUpdateSqlStatement(pdbvendor); 17209 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 17210 } 17211 break; 17212 } 17213 case sstdelete: 17214 { 17215 boolean lcisnewsql = true; 17216 17217 if ( pstate != EFindSqlStateType.stnormal ) 17218 { 17219 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 17220 if ( (lcprevsolidtoken != null) ) 17221 { 17222 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 17223 lcisnewsql = false; 17224 } 17225 17226 if ( (lccurrentsqlstatement != null) ) 17227 { 17228 } 17229 } 17230 17231 if ( lcisnewsql ) 17232 ret = new TDeleteSqlStatement(pdbvendor); 17233 17234 break; 17235 } 17236 case sstmerge: 17237 { 17238 ret = new TMergeSqlStatement(pdbvendor); 17239 ret.sqlstatementtype = gnewsqlstatementtype; 17240 break; 17241 } 17242 case sstcreateindex: 17243 { 17244 ret = new TCreateIndexSqlStatement(pdbvendor); 17245 break; 17246 } 17247 case sstdropindex: 17248 { 17249 ret = new TDropIndexSqlStatement(pdbvendor); 17250 break; 17251 } 17252 case sstBuildIndex: 17253 ret = new TTBuildIndexesStmt(pdbvendor); 17254 break; 17255 case sstinfer: 17256 ret = new TInferKeyspaceStmt(pdbvendor); 17257 break; 17258 case sstupsert: 17259 ret = new TUpsertStmt(pdbvendor); 17260 break; 17261 case sstExplain: 17262 { 17263 ret = new TExplainPlan(pdbvendor); 17264 break; 17265 } 17266 case sstprepare: 17267 { 17268 ret = new TExplainPlan(pdbvendor); 17269 ret.sqlstatementtype = ESqlStatementType.sstprepare; 17270 break; 17271 } 17272 case sstExecutePreparedStmt: 17273 ret = new TExecuteSqlStatement(pdbvendor); 17274 break; 17275 default: 17276 { 17277 ret = new TUnknownSqlStatement(pdbvendor); 17278 ret.sqlstatementtype = gnewsqlstatementtype; 17279 break; 17280 } 17281 } // case 17282 17283 return ret; 17284 } 17285 17286 /** 17287 * Generic method for yacc parsers to find SQL command type. 17288 * Delegates to vendor-specific implementations where available. 17289 * Added temporarily for revert testing - uses token's dbvendor field. 17290 */ 17291 public ESqlStatementType findCmdUsedByYacc(TSourceToken token) { 17292 EDbVendor vendor = token.getDbvendor(); 17293 if (vendor == null) { 17294 return ESqlStatementType.sstinvalid; 17295 } 17296 17297 // Delegate to vendor-specific methods where they exist 17298 switch (vendor) { 17299 case dbvmssql: 17300 return findmssqlcmdusedbyyacc(token); 17301 case dbvsybase: 17302 return findsybasecmdusedbyyacc(token); 17303 case dbvsybasease: 17304 return findsybaseasecmdusedbyyacc(token); 17305 case dbvsqlanywhere: 17306 return findsqlanywherecmdusedbyyacc(token); 17307 case dbvsybaseiq: 17308 return findsybaseiqcmdusedbyyacc(token); 17309 // For other vendors, use generic command finding 17310 default: 17311 TSqlCmdList cmdList = getSqlCmdList(vendor); 17312 if (cmdList == null || cmdList.size() == 0) { 17313 return ESqlStatementType.sstunknown; 17314 } 17315 // Use generic finddbcmd for vendors without specific yacc methods 17316 return finddbcmd(token, cmdList); 17317 } 17318 } 17319 17320 17321 // ---- Sybase ASE fork (dbvsybasease): full-family recognition; rejection of 17322 // ---- foreign statements is the parser policy layer, not this table. 17323void initsybaseasecmds(){ 17324// cmd must be sort alphabetically 17325 addsybaseasecmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"counter","signature"," "," "," "," "); 17326 addsybaseasecmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"signature"," "," "," "," "," "); 17327//alter 17328 addsybaseasecmds(ESqlStatementType.sstmssqlalterapplicationrole, TBaseType.rrw_alter,"application","role"," "," "," "," "); 17329 addsybaseasecmds(ESqlStatementType.sstmssqlalterassembly, TBaseType.rrw_alter,"assembly"," "," "," "," "," "); 17330 addsybaseasecmds(ESqlStatementType.sstmssqlalterasymmetrickey, TBaseType.rrw_alter,"asymmetric","key"," "," "," "," "); 17331 addsybaseasecmds(ESqlStatementType.sstmssqlalterauthorization, TBaseType.rrw_alter,"authorization"," "," "," "," "," "); 17332 addsybaseasecmds(ESqlStatementType.sstmssqlaltercertificate, TBaseType.rrw_alter,"certificate"," "," "," "," "," "); 17333 addsybaseasecmds(ESqlStatementType.sstmssqlaltercredential, TBaseType.rrw_alter,"credential"," "," "," "," "," "); 17334 addsybaseasecmds(ESqlStatementType.sstmssqlalterdatabase, TBaseType.rrw_alter,"database"," "," "," "," "," "); 17335 addsybaseasecmds(ESqlStatementType.sstsybasealterdbspace, TBaseType.rrw_alter,"dbspace"," "," "," "," "," "); 17336 addsybaseasecmds(ESqlStatementType.sstsybasealterdomain, TBaseType.rrw_alter,"domain"," "," "," "," "," "); 17337 addsybaseasecmds(ESqlStatementType.sstmssqlalterendpoint, TBaseType.rrw_alter,"endpoint"," "," "," "," "," "); 17338 addsybaseasecmds(ESqlStatementType.sstmssqlalterfulltextcatalog, TBaseType.rrw_alter,"fulltext","catalog"," "," "," "," "); 17339 addsybaseasecmds(ESqlStatementType.sstmssqlalterfulltextindex, TBaseType.rrw_alter,"fulltext","index"," "," "," "," "); 17340 addsybaseasecmds(ESqlStatementType.sstmssqlalterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 17341 addsybaseasecmds(ESqlStatementType.sstmssqlalterindex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 17342 addsybaseasecmds(ESqlStatementType.sstmssqlalterlogin, TBaseType.rrw_alter,"login"," "," "," "," "," "); 17343 addsybaseasecmds(ESqlStatementType.sstmssqlaltermasterkey, TBaseType.rrw_alter,"master","key"," "," "," "," "); 17344 addsybaseasecmds(ESqlStatementType.sstmssqlaltermessagetype, TBaseType.rrw_alter,"message","type"," "," "," "," "); 17345 addsybaseasecmds(ESqlStatementType.sstmssqlalterpartitionfunction, TBaseType.rrw_alter,"partition","function"," "," "," "," "); 17346 addsybaseasecmds(ESqlStatementType.sstmssqlalterpartitionscheme, TBaseType.rrw_alter,"partition","scheme"," "," "," "," "); 17347 addsybaseasecmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"proc"," "," "," "," "," "); 17348 addsybaseasecmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 17349 addsybaseasecmds(ESqlStatementType.sstmssqlalterqueue, TBaseType.rrw_alter,"queue"," "," "," "," "," "); 17350 addsybaseasecmds(ESqlStatementType.sstmssqlalterremoteservicebinding, TBaseType.rrw_alter,"remote","service","binding"," "," "," "); 17351 addsybaseasecmds(ESqlStatementType.sstmssqlalterrole, TBaseType.rrw_alter,"role"," "," "," "," "," "); 17352 addsybaseasecmds(ESqlStatementType.sstmssqlalterroute, TBaseType.rrw_alter,"route"," "," "," "," "," "); 17353 addsybaseasecmds(ESqlStatementType.sstmssqlalterschema, TBaseType.rrw_alter,"schema"," "," "," "," "," "); 17354 addsybaseasecmds(ESqlStatementType.sstsybasealterserver, TBaseType.rrw_alter,"server"," "," "," "," "," "); 17355 addsybaseasecmds(ESqlStatementType.sstmssqlalterservice, TBaseType.rrw_alter,"service"," "," "," "," "," "); 17356 addsybaseasecmds(ESqlStatementType.sstmssqlalterservicemasterkey, TBaseType.rrw_alter,"service","master","key"," "," "," "); 17357 addsybaseasecmds(ESqlStatementType.sstmssqlaltersymmetrickey, TBaseType.rrw_alter,"symmetric","key"," "," "," "," "); 17358 addsybaseasecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 17359 addsybaseasecmds(ESqlStatementType.sstmssqlaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 17360 addsybaseasecmds(ESqlStatementType.sstmssqlalteruser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 17361 addsybaseasecmds(ESqlStatementType.sstmssqlalterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 17362 addsybaseasecmds(ESqlStatementType.sstmssqlalterxmlschemacollection, TBaseType.rrw_alter,"xml","schema","collection"," "," "," "); 17363//backup 17364 addsybaseasecmds(ESqlStatementType.sstmssqlbackupdatabase, TBaseType.rrw_backup,"database"," "," "," "," "," "); 17365 addsybaseasecmds(ESqlStatementType.sstmssqlbackupcertificate, TBaseType.rrw_backup,"certificate"," "," "," "," "," "); 17366 addsybaseasecmds(ESqlStatementType.sstmssqlbackuplog, TBaseType.rrw_backup,"log"," "," "," "," "," "); 17367 addsybaseasecmds(ESqlStatementType.sstmssqlbackupmasterkey, TBaseType.rrw_backup,"master","key"," "," "," "," "); 17368 addsybaseasecmds(ESqlStatementType.sstmssqlbackupservicemasterkey, TBaseType.rrw_backup,"service","master","key"," "," "," "); 17369//begin 17370 addsybaseasecmds(ESqlStatementType.sstmssqlbegincatch, TBaseType.rrw_begin,"catch"," "," "," "," "," "); 17371 addsybaseasecmds(ESqlStatementType.sstmssqlbeginconversationtimer, TBaseType.rrw_begin,"conversation","timer"," "," "," "," "); 17372 addsybaseasecmds(ESqlStatementType.sstmssqlbegindialog, TBaseType.rrw_begin,"dialog"," "," "," "," "," "); 17373 addsybaseasecmds(ESqlStatementType.sstmssqlbegindistributed, TBaseType.rrw_begin,"distributed"," "," "," "," "," "); 17374 addsybaseasecmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"tran"," "," "," "," "," "); 17375 addsybaseasecmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"transaction"," "," "," "," "," "); 17376 addsybaseasecmds(ESqlStatementType.sstmssqlbegintry, TBaseType.rrw_begin,"try"," "," "," "," "," "); 17377//break 17378 addsybaseasecmds(ESqlStatementType.sstbreak, TBaseType.rrw_break," "," "," "," "," "," "); 17379//bulk insert 17380 addsybaseasecmds(ESqlStatementType.sstmssqlbulkinsert, TBaseType.rrw_bulk,"insert"," "," "," "," "," "); 17381 17382 addsybaseasecmds(ESqlStatementType.sstcall, TBaseType.rrw_call," "," "," "," "," "," "); 17383 17384//checkpoint 17385 addsybaseasecmds(ESqlStatementType.sstmssqlcheckpoint, TBaseType.rrw_checkpoint," "," "," "," "," "," "); 17386//close 17387 addsybaseasecmds(ESqlStatementType.sstmssqlclose, TBaseType.rrw_close," "," "," "," "," "," "); 17388 addsybaseasecmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"all", "symmetric", "keys"," "," "," "); 17389 addsybaseasecmds(ESqlStatementType.sstmssqlclosemasterkey, TBaseType.rrw_close,"master", "key"," "," "," "," "); 17390 addsybaseasecmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"symmetric", "key"," "," "," "," "); 17391//commit 17392 addsybaseasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit," "," "," "," "," "," "); 17393 addsybaseasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"work"," "," "," "," "," "); 17394 addsybaseasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"tran"," "," "," "," "," "); 17395 addsybaseasecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"transaction"," "," "," "," "," "); 17396//continue 17397 addsybaseasecmds(ESqlStatementType.sstmssqlcontinue, TBaseType.rrw_continue," "," "," "," "," "," "); 17398//create 17399 addsybaseasecmds(ESqlStatementType.sstmssqlcreateaggregate, TBaseType.rrw_create,"aggregate"," "," "," "," "," "); 17400 addsybaseasecmds(ESqlStatementType.sstmssqlcreateapplicationrole, TBaseType.rrw_create,"application", "role"," "," "," "," "); 17401 addsybaseasecmds(ESqlStatementType.sstmssqlcreateassembly, TBaseType.rrw_create,"assembly"," "," "," "," "," "); 17402 addsybaseasecmds(ESqlStatementType.sstmssqlcreateasymmetrickey, TBaseType.rrw_create,"asymmetric", "key"," "," "," "," "); 17403 addsybaseasecmds(ESqlStatementType.sstmssqlcreatecertificate, TBaseType.rrw_create,"certificate"," "," "," "," "," "); 17404 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"clustered","index"," "," "," "," "); 17405 addsybaseasecmds(ESqlStatementType.sstmssqlcreatecontract, TBaseType.rrw_create,"contract"," "," "," "," "," "); 17406 addsybaseasecmds(ESqlStatementType.sstmssqlcreatecredential, TBaseType.rrw_create,"credential"," "," "," "," "," "); 17407 addsybaseasecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 17408 addsybaseasecmds(ESqlStatementType.sstsybasecreatedbspace, TBaseType.rrw_create,"dbspace"," "," "," "," "," "); 17409 addsybaseasecmds(ESqlStatementType.sstsybasecreatedomain, TBaseType.rrw_create,"domain"," "," "," "," "," "); 17410 addsybaseasecmds(ESqlStatementType.sstmssqlcreatedefault, TBaseType.rrw_create,"default"," "," "," "," "," "); 17411 addsybaseasecmds(ESqlStatementType.sstmssqlcreateendpoint, TBaseType.rrw_create,"endpoint"," "," "," "," "," "); 17412 addsybaseasecmds(ESqlStatementType.sstmssqlcreateeventnotification, TBaseType.rrw_create,"event", "notification"," "," "," "," "); 17413 addsybaseasecmds(ESqlStatementType.sstsybasecreateexistingtable, TBaseType.rrw_create,"existing","table"," "," "," "," "); 17414 addsybaseasecmds(ESqlStatementType.sstsybasecreateexternlogin, TBaseType.rrw_create,"externlogin"," "," "," "," "," "); 17415 addsybaseasecmds(ESqlStatementType.sstmssqlcreatefulltextcatalog, TBaseType.rrw_create,"fulltext", "catalog"," "," "," "," "); 17416 addsybaseasecmds(ESqlStatementType.sstmssqlcreatefulltextindex, TBaseType.rrw_create,"fulltext", "index"," "," "," "," "); 17417 addsybaseasecmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 17418 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 17419 addsybaseasecmds(ESqlStatementType.sstsybasecreatejoinindex, TBaseType.rrw_create,"join","index"," "," "," "," "); 17420 addsybaseasecmds(ESqlStatementType.sstmssqlcreatelogin, TBaseType.rrw_create,"login"," "," "," "," "," "); 17421 addsybaseasecmds(ESqlStatementType.sstmssqlcreatemasterkey, TBaseType.rrw_create,"master","key"," "," "," "," "); 17422 addsybaseasecmds(ESqlStatementType.sstmssqlcreatemessagetype, TBaseType.rrw_create,"message","type"," "," "," "," "); 17423 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"nonclustered","index"," "," "," "," "); 17424 addsybaseasecmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"or","replace","function"," "," "," "); 17425 addsybaseasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","replace","proc"," "," "," "); 17426 addsybaseasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","replace","procedure"," "," "," "); 17427 addsybaseasecmds(ESqlStatementType.sstmssqlcreatepartitionfunction, TBaseType.rrw_create,"partition","function"," "," "," "," "); 17428 addsybaseasecmds(ESqlStatementType.sstmssqlcreatepartitionscheme, TBaseType.rrw_create,"partition","scheme"," "," "," "," "); 17429 addsybaseasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"proc"," "," "," "," "," "); 17430 addsybaseasecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 17431 addsybaseasecmds(ESqlStatementType.sstmssqlcreatequeue, TBaseType.rrw_create,"queue"," "," "," "," "," "); 17432 addsybaseasecmds(ESqlStatementType.sstmssqlcreateremoteservicebinding, TBaseType.rrw_create,"remote", "service", "binding"," "," "," "); 17433 addsybaseasecmds(ESqlStatementType.sstmssqlcreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 17434 addsybaseasecmds(ESqlStatementType.sstmssqlcreateroute, TBaseType.rrw_create,"route"," "," "," "," "," "); 17435 addsybaseasecmds(ESqlStatementType.sstmssqlcreaterule, TBaseType.rrw_create,"rule"," "," "," "," "," "); 17436 addsybaseasecmds(ESqlStatementType.sstmssqlcreateschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 17437 addsybaseasecmds(ESqlStatementType.sstsybasecreateserver, TBaseType.rrw_create,"server"," "," "," "," "," "); 17438 addsybaseasecmds(ESqlStatementType.sstmssqlcreateservice, TBaseType.rrw_create,"service"," "," "," "," "," "); 17439 addsybaseasecmds(ESqlStatementType.sstmssqlcreatestatistics, TBaseType.rrw_create,"statistics"," "," "," "," "," "); 17440 addsybaseasecmds(ESqlStatementType.sstmssqlcreatesymmetrickey, TBaseType.rrw_create,"symmetric", "key"," "," "," "," "); 17441 addsybaseasecmds(ESqlStatementType.sstmssqlcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 17442 addsybaseasecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 17443 addsybaseasecmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 17444 addsybaseasecmds(ESqlStatementType.sstmssqlcreatetype, TBaseType.rrw_create,"type"," "," "," "," "," "); 17445 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"cmp","index"," "," "," "," "); 17446 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"date","index"," "," "," "," "); 17447 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"dttm","index"," "," "," "," "); 17448 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"hg","index"," "," "," "," "); 17449 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"hng","index"," "," "," "," "); 17450 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"lf","index"," "," "," "," "); 17451 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"time","index"," "," "," "," "); 17452 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"wd","index"," "," "," "," "); 17453 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","clustered","index"," "," "," "); 17454 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 17455 addsybaseasecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","nonclustered","index"," "," "," "); 17456 addsybaseasecmds(ESqlStatementType.sstmssqlcreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 17457 addsybaseasecmds(ESqlStatementType.sstsybasecreatevariable, TBaseType.rrw_create,"variable"," "," "," "," "," "); 17458 addsybaseasecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 17459 addsybaseasecmds(ESqlStatementType.sstmssqlcreatexmlschemacollection, TBaseType.rrw_create,"xml", "schema", "collection"," "," "," "); 17460// DBCC 17461 addsybaseasecmds(ESqlStatementType.sstmssqldbcc, TBaseType.rrw_dbcc," "," "," "," "," "," "); 17462//DEALLOCATE 17463 addsybaseasecmds(ESqlStatementType.sstmssqldeallocate, TBaseType.rrw_deallocate," "," "," "," "," "," "); 17464//DECLARE 17465 addsybaseasecmds(ESqlStatementType.sstsybasedeallocatedescriptor, TBaseType.rrw_deallocate,"descriptor"," "," "," "," "," "); 17466 addsybaseasecmds(ESqlStatementType.sstmssqldeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 17467//DELETE 17468 addsybaseasecmds(ESqlStatementType.sstsybasedeclarelocaltemptable, TBaseType.rrw_declare,"local","temporary","table"," "," "," "); 17469 addsybaseasecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 17470 17471//DELETE statistics 17472 addsybaseasecmds(ESqlStatementType.sstsybaseDeleteStatistics, TBaseType.rrw_delete,"shared","statistics"," "," "," "," "); 17473 addsybaseasecmds(ESqlStatementType.sstsybaseDeleteStatistics, TBaseType.rrw_delete,"statistics"," "," "," "," "," "); 17474 17475//DENY 17476 addsybaseasecmds(ESqlStatementType.sstmssqldeny, TBaseType.rrw_deny," "," "," "," "," "," "); 17477//DISABLE TRIGGER 17478 addsybaseasecmds(ESqlStatementType.sstmssqldisabletrigger, TBaseType.rrw_disable,"trigger"," "," "," "," "," "); 17479//drop 17480 addsybaseasecmds(ESqlStatementType.sstmssqldropaggregate, TBaseType.rrw_drop,"aggregate"," "," "," "," "," "); 17481 addsybaseasecmds(ESqlStatementType.sstmssqldropapplicationrole, TBaseType.rrw_drop,"application", "role"," "," "," "," "); 17482 addsybaseasecmds(ESqlStatementType.sstmssqldropassembly, TBaseType.rrw_drop,"assembly"," "," "," "," "," "); 17483 addsybaseasecmds(ESqlStatementType.sstmssqldropasymmetrickey, TBaseType.rrw_drop,"asymmetric", "key"," "," "," "," "); 17484 addsybaseasecmds(ESqlStatementType.sstmssqldropcertificate, TBaseType.rrw_drop,"certificate"," "," "," "," "," "); 17485 addsybaseasecmds(ESqlStatementType.sstsybasedropconnection, TBaseType.rrw_drop,"connection"," "," "," "," "," "); 17486 addsybaseasecmds(ESqlStatementType.sstmssqldropcontract, TBaseType.rrw_drop,"contract"," "," "," "," "," "); 17487 addsybaseasecmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"counter", "signature"," "," "," "," "); 17488 addsybaseasecmds(ESqlStatementType.sstmssqldropcredential, TBaseType.rrw_drop,"credential"," "," "," "," "," "); 17489 addsybaseasecmds(ESqlStatementType.sstmssqldropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 17490 addsybaseasecmds(ESqlStatementType.sstmssqldropdefault, TBaseType.rrw_drop,"default"," "," "," "," "," "); 17491 addsybaseasecmds(ESqlStatementType.sstmssqldropendpoint, TBaseType.rrw_drop,"endpoint"," "," "," "," "," "); 17492 addsybaseasecmds(ESqlStatementType.sstmssqldropeventnotification, TBaseType.rrw_drop,"event", "notification"," "," "," "," "); 17493 addsybaseasecmds(ESqlStatementType.sstsybasedropexternlogin, TBaseType.rrw_drop,"externlogin"," "," "," "," "," "); 17494 addsybaseasecmds(ESqlStatementType.sstmssqldropfulltextcatalog, TBaseType.rrw_drop,"fulltext", "catalog"," "," "," "," "); 17495 addsybaseasecmds(ESqlStatementType.sstmssqldropfulltextindex, TBaseType.rrw_drop,"fulltext", "index"," "," "," "," "); 17496 addsybaseasecmds(ESqlStatementType.sstmssqldropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 17497 addsybaseasecmds(ESqlStatementType.sstmssqldropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 17498 addsybaseasecmds(ESqlStatementType.sstmssqldroplogin, TBaseType.rrw_drop,"login"," "," "," "," "," "); 17499 addsybaseasecmds(ESqlStatementType.sstmssqldropmasterkey, TBaseType.rrw_drop,"master", "key"," "," "," "," "); 17500 addsybaseasecmds(ESqlStatementType.sstmssqldropmessagetype, TBaseType.rrw_drop,"message", "type"," "," "," "," "); 17501 addsybaseasecmds(ESqlStatementType.sstmssqldroppartitionfunction, TBaseType.rrw_drop,"partition", "function"," "," "," "," "); 17502 addsybaseasecmds(ESqlStatementType.sstmssqldroppartitionscheme, TBaseType.rrw_drop,"partition", "scheme"," "," "," "," "); 17503 addsybaseasecmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"proc"," "," "," "," "," "); 17504 addsybaseasecmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 17505 addsybaseasecmds(ESqlStatementType.sstmssqldropqueue, TBaseType.rrw_drop,"queue"," "," "," "," "," "); 17506 addsybaseasecmds(ESqlStatementType.sstmssqldropremoteservicebinding, TBaseType.rrw_drop,"remote", "service", "binding"," "," "," "); 17507 addsybaseasecmds(ESqlStatementType.sstmssqldroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 17508 addsybaseasecmds(ESqlStatementType.sstmssqldroproute, TBaseType.rrw_drop,"route"," "," "," "," "," "); 17509 addsybaseasecmds(ESqlStatementType.sstmssqldroprule, TBaseType.rrw_drop,"rule"," "," "," "," "," "); 17510 addsybaseasecmds(ESqlStatementType.sstmssqldropschema, TBaseType.rrw_drop,"schema"," "," "," "," "," "); 17511 addsybaseasecmds(ESqlStatementType.sstsybasedropserver, TBaseType.rrw_drop,"server"," "," "," "," "," "); 17512 addsybaseasecmds(ESqlStatementType.sstmssqldropservice, TBaseType.rrw_drop,"service"," "," "," "," "," "); 17513 addsybaseasecmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"signature"," "," "," "," "," "); 17514 addsybaseasecmds(ESqlStatementType.sstsybasedropstatement, TBaseType.rrw_drop,"statement"," "," "," "," "," "); 17515 addsybaseasecmds(ESqlStatementType.sstmssqldropstatistics, TBaseType.rrw_drop,"statistics"," "," "," "," "," "); 17516 addsybaseasecmds(ESqlStatementType.sstmssqldropsymmetrickey, TBaseType.rrw_drop,"symmetric", "key"," "," "," "," "); 17517 addsybaseasecmds(ESqlStatementType.sstmssqldropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 17518 addsybaseasecmds(ESqlStatementType.sstmssqldroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 17519 addsybaseasecmds(ESqlStatementType.sstmssqldroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 17520 addsybaseasecmds(ESqlStatementType.sstmssqldroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 17521 addsybaseasecmds(ESqlStatementType.sstmssqldropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 17522 addsybaseasecmds(ESqlStatementType.sstsybasedropvariable, TBaseType.rrw_drop,"variable"," "," "," "," "," "); 17523 addsybaseasecmds(ESqlStatementType.sstmssqldropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 17524 addsybaseasecmds(ESqlStatementType.sstmssqldropxmlschemacollection, TBaseType.rrw_drop,"xml", "schema", "collection"," "," "," "); 17525 17526 addsybaseasecmds(ESqlStatementType.sstsybasedumpTran, TBaseType.rrw_sybase_dump,"tran"," "," "," "," "," "); 17527 addsybaseasecmds(ESqlStatementType.sstsybasedumpTran, TBaseType.rrw_sybase_dump,"transaction"," "," "," "," "," "); 17528 addsybaseasecmds(ESqlStatementType.sstsybaseallocatedescriptor, TBaseType.rrw_allocate,"descriptor"," "," "," "," "," "); 17529 addsybaseasecmds(ESqlStatementType.sstcomment, TBaseType.rrw_comment," "," "," "," "," "," "); 17530 addsybaseasecmds(ESqlStatementType.sstconnect, TBaseType.rrw_connect," "," "," "," "," "," "); 17531 addsybaseasecmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe," "," "," "," "," "," "); 17532 addsybaseasecmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 17533 addsybaseasecmds(ESqlStatementType.sstsybasegetdescriptor, TBaseType.rrw_get,"descriptor"," "," "," "," "," "); 17534 addsybaseasecmds(ESqlStatementType.sstsybasestartdatabase, TBaseType.rrw_start,"database"," "," "," "," "," "); 17535 addsybaseasecmds(ESqlStatementType.sstsybasestartengine, TBaseType.rrw_start,"engine"," "," "," "," "," "); 17536 addsybaseasecmds(ESqlStatementType.sstsybasestopdatabase, TBaseType.rrw_stop,"database"," "," "," "," "," "); 17537 addsybaseasecmds(ESqlStatementType.sstsybasestopengine, TBaseType.rrw_stop,"engine"," "," "," "," "," "); 17538 addsybaseasecmds(ESqlStatementType.sstsybaseforwardto, TBaseType.rrw_sybase_forward,"to"," "," "," "," "," "); 17539 addsybaseasecmds(ESqlStatementType.sstsybaseinstalljava, TBaseType.rrw_sybase_install,"java"," "," "," "," "," "); 17540 addsybaseasecmds(ESqlStatementType.sstsybaseiqutilities, TBaseType.rrw_sybase_iq,"utilities"," "," "," "," "," "); 17541 addsybaseasecmds(ESqlStatementType.sstsybasemessage, TBaseType.rrw_sybase_message," "," "," "," "," "," "); 17542 addsybaseasecmds(ESqlStatementType.sstsybaseoutput, TBaseType.rrw_sybase_output,"to"," "," "," "," "," "); 17543 addsybaseasecmds(ESqlStatementType.sstsybaseput, TBaseType.rrw_sybase_put," "," "," "," "," "," "); 17544 addsybaseasecmds(ESqlStatementType.sstsybaseread, TBaseType.rrw_sybase_read," "," "," "," "," "," "); 17545 addsybaseasecmds(ESqlStatementType.sstsybaseremovejava, TBaseType.rrw_sybase_remove,"java"," "," "," "," "," "); 17546 addsybaseasecmds(ESqlStatementType.sstsybasesynchronizejoinindex, TBaseType.rrw_sybase_synchronize,"join","index"," "," "," "," "); 17547 addsybaseasecmds(ESqlStatementType.sstsybasetriggerevent, TBaseType.rrw_sybase_trigger,"event"," "," "," "," "," "); 17548//if 17549 addsybaseasecmds(ESqlStatementType.sstmssqlif, TBaseType.rrw_if," "," "," "," "," "," "); 17550//enable trigger 17551 addsybaseasecmds(ESqlStatementType.sstmssqlenabletrigger, TBaseType.rrw_enable,"trigger"," "," "," "," "," "); 17552//END CONVERSATION 17553// addsybaseasecmds(ESqlStatementType.sstMssqlEndCatch,TBaseType.rrw_end,'catch'); 17554 addsybaseasecmds(ESqlStatementType.sstmssqlendconversation, TBaseType.rrw_end,"conversation"," "," "," "," "," "); 17555// addsybaseasecmds(ESqlStatementType.sstMssqlEndTry,TBaseType.rrw_end,'try'); 17556//exec 17557//exec as 17558 addsybaseasecmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_exec," "," "," "," "," "," "); 17559 addsybaseasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","caller"," "," "," "," "); 17560 addsybaseasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","login"," "," "," "," "); 17561 addsybaseasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","user"," "," "," "," "); 17562 addsybaseasecmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_execute, " "," "," "," "," "," "); 17563 addsybaseasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","caller"," "," "," "," "); 17564 addsybaseasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","login"," "," "," "," "); 17565 addsybaseasecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","user"," "," "," "," "); 17566//fetch 17567 addsybaseasecmds(ESqlStatementType.sstmssqlfetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 17568//go 17569 addsybaseasecmds(ESqlStatementType.sstmssqlgo, TBaseType.rrw_go," "," "," "," "," "," "); 17570//goto 17571 addsybaseasecmds(ESqlStatementType.sstmssqlgoto, TBaseType.rrw_goto," "," "," "," "," "," "); 17572//GRANT 17573 addsybaseasecmds(ESqlStatementType.sstmssqlgrant, TBaseType.rrw_grant," "," "," "," "," "," "); 17574//GRANT 17575 addsybaseasecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 17576 17577 addsybaseasecmds(ESqlStatementType.sstsybaseInsertBulk, TBaseType.rrw_insert,"bulk"," "," "," "," "," "); 17578//KILL 17579 addsybaseasecmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 17580//KILL 17581 addsybaseasecmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 17582 addsybaseasecmds(ESqlStatementType.sstmssqlkillquerynotificationsubscription, TBaseType.rrw_kill,"kill", "query", "notification", "subscription"," "," "); 17583 addsybaseasecmds(ESqlStatementType.sstmssqlkillstats, TBaseType.rrw_kill,"stats"," "," "," "," "," "); 17584 17585 addsybaseasecmds(ESqlStatementType.sstload,TBaseType.rrw_load,"table"," "," "," "," "," "); 17586// 17587 addsybaseasecmds(ESqlStatementType.sstsybaselocktable,TBaseType.rw_locktable,"table"," "," "," "," "," "); 17588//MOVE CONVERSATION 17589 addsybaseasecmds(ESqlStatementType.sstmssqlmoveconversation, TBaseType.rrw_move,"conversation"," "," "," "," "," "); 17590//merge 17591 addsybaseasecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 17592//open 17593 addsybaseasecmds(ESqlStatementType.sstmssqlopen, TBaseType.rrw_open," "," "," "," "," "," "); 17594 addsybaseasecmds(ESqlStatementType.sstmssqlopenmasterkey, TBaseType.rrw_open,"master", "key"," "," "," "," "); 17595 addsybaseasecmds(ESqlStatementType.sstmssqlopensymmetrickey, TBaseType.rrw_open,"symmetric", "key"," "," "," "," "); 17596//PRINT 17597 addsybaseasecmds(ESqlStatementType.sstmssqlprint, TBaseType.rrw_print," "," "," "," "," "," "); 17598//RAISERROR 17599 addsybaseasecmds(ESqlStatementType.sstmssqlraiserror, TBaseType.rrw_raiserror," "," "," "," "," "," "); 17600//READTEXT 17601 addsybaseasecmds(ESqlStatementType.sstmssqlreadtext, TBaseType.rrw_readtext," "," "," "," "," "," "); 17602//RECEIVE 17603 addsybaseasecmds(ESqlStatementType.sstmssqlreceive, TBaseType.rrw_receive," "," "," "," "," "," "); 17604//RECONFIGURE 17605 addsybaseasecmds(ESqlStatementType.sstmssqlreconfigure, TBaseType.rrw_reconfigure," "," "," "," "," "," "); 17606//RESTORE 17607 addsybaseasecmds(ESqlStatementType.sstmssqlrestoredatabase, TBaseType.rrw_restore,"database"," "," "," "," "," "); 17608 addsybaseasecmds(ESqlStatementType.sstmssqlrestorefilelistonly, TBaseType.rrw_restore,"filelistonly"," "," "," "," "," "); 17609 addsybaseasecmds(ESqlStatementType.sstmssqlrestoreheaderonly, TBaseType.rrw_restore,"headeronly"," "," "," "," "," "); 17610 addsybaseasecmds(ESqlStatementType.sstmssqlrestorelabelonly, TBaseType.rrw_restore,"labelonly"," "," "," "," "," "); 17611 addsybaseasecmds(ESqlStatementType.sstmssqlrestorelog, TBaseType.rrw_restore,"log"," "," "," "," "," "); 17612 addsybaseasecmds(ESqlStatementType.sstmssqlrestoremasterkey, TBaseType.rrw_restore,"master","key"," "," "," "," "); 17613 addsybaseasecmds(ESqlStatementType.sstmssqlrestorerewindonly, TBaseType.rrw_restore,"rewindonly"," "," "," "," "," "); 17614 addsybaseasecmds(ESqlStatementType.sstmssqlrestoreservicemasterkey, TBaseType.rrw_restore,"service","master","key"," "," "," "); 17615 addsybaseasecmds(ESqlStatementType.sstmssqlrestoreverifyonly, TBaseType.rrw_restore,"verifyonly"," "," "," "," "," "); 17616//RETURN 17617 addsybaseasecmds(ESqlStatementType.sstmssqlreturn, TBaseType.rrw_return," "," "," "," "," "," "); 17618//REVERT 17619 addsybaseasecmds(ESqlStatementType.sstmssqlrevert, TBaseType.rrw_revert," "," "," "," "," "," "); 17620//REVOKE 17621 addsybaseasecmds(ESqlStatementType.sstmssqlrevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 17622//ROLLBACK 17623 addsybaseasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 17624 addsybaseasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"tran"," "," "," "," "," "); 17625 addsybaseasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"transaction"," "," "," "," "," "); 17626 addsybaseasecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"work"," "," "," "," "," "); 17627//SAVE 17628 addsybaseasecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save," "," "," "," "," "," "); 17629 addsybaseasecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"tran"," "," "," "," "," "); 17630 addsybaseasecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"transaction"," "," "," "," "," "); 17631//SELECT 17632 addsybaseasecmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 17633//SEND ON CONVERSATION 17634 addsybaseasecmds(ESqlStatementType.sstmssqlsendonconversation, TBaseType.rrw_send,"on","conversation"," "," "," "," "); 17635//SET 17636 addsybaseasecmds(ESqlStatementType.sstmssqlset, TBaseType.rrw_set," "," "," "," "," "," "); 17637//SET 17638 addsybaseasecmds(ESqlStatementType.sstmssqlsetuser,TBaseType.rrw_setuser," "," "," "," "," "," "); 17639//SHUTDOWN 17640 addsybaseasecmds(ESqlStatementType.sstmssqlshutdown, TBaseType.rrw_shutdown," "," "," "," "," "," "); 17641//SIGN 17642// addsybaseasecmds(ESqlStatementType.sstmssqlsign, rrw_sign," "," "," "," "," "," "); 17643//TRUNCATE TABLE 17644 addsybaseasecmds(ESqlStatementType.sstmssqltruncatetable, TBaseType.rrw_truncate,"table"," "," "," "," "," "); 17645//UPDATE 17646 addsybaseasecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 17647//UPDATE all STATISTICS 17648 addsybaseasecmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"all","statistics"," "," "," "," "); 17649//UPDATE index STATISTICS 17650 addsybaseasecmds(ESqlStatementType.sstsybaseupdateindexstatistics, TBaseType.rrw_update,"index","statistics"," "," "," "," "); 17651//UPDATE STATISTICS 17652 addsybaseasecmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"statistics"," "," "," "," "," "); 17653//UPDATETEXT 17654 addsybaseasecmds(ESqlStatementType.sstmssqlupdatetext, TBaseType.rrw_updatetext," "," "," "," "," "," "); 17655//USE 17656 addsybaseasecmds(ESqlStatementType.sstmssqluse, TBaseType.rrw_use," "," "," "," "," "," "); 17657//WAITFOR 17658 addsybaseasecmds(ESqlStatementType.sstmssqlwaitfor, TBaseType.rrw_waitfor," "," "," "," "," "," "); 17659//WHILE 17660 addsybaseasecmds(ESqlStatementType.sstmssqlwhile, TBaseType.rrw_while," "," "," "," "," "," "); 17661//WITH, don't recongize here, let isMssqlSql do it 17662// addsybaseasecmds(ESqlStatementType.sstMssqlCTE,rrw_WITH,' '); 17663//WITH XMLNAMESPACES 17664 addsybaseasecmds(ESqlStatementType.sstmssqlwithxmlnamespaces, TBaseType.rrw_with,"xmlnamespaces"," "," "," "," "," "); 17665//WRITETEXT 17666 addsybaseasecmds(ESqlStatementType.sstsybaseWritetext, TBaseType.rrw_writetext," "," "," "," "," "," "); 17667 17668} 17669 17670 // ---- Sybase ASE fork (dbvsybasease): full-family recognition; rejection of 17671 // ---- foreign statements is the parser policy layer, not this table. 17672 TCustomSqlStatement issybaseasesql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 17673 TCustomSqlStatement ret = null; 17674 int k; 17675 boolean lcisnewsql; 17676 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 17677 17678 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 17679 17680 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 17681 || (pcst.tokencode == TBaseType.cmtslashstar) 17682 || (pcst.tokencode == TBaseType.lexspace) 17683 || (pcst.tokencode == TBaseType.lexnewline) 17684 || (pcst.tokentype == ETokenType.ttsemicolon) ) 17685 { 17686 return ret; 17687 } 17688 17689 int lcpos = pcst.posinlist; 17690 TSourceTokenList lcsourcetokenlist = pcst.container; 17691 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 17692 17693 //subquery after semicolon || at first line 17694 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 17695 { 17696 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 17697 if ( k >0 ) 17698 { 17699 ret = new TSelectSqlStatement(pdbvendor); 17700 } 17701 17702 return ret; 17703 } 17704 17705 //cte 17706 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 17707 { 17708 ret = findcte(pcst,pdbvendor); 17709 if ( (ret != null) ) return ret; 17710 } 17711 17712 gnewsqlstatementtype = findsybaseasecmd(pcst); 17713 17714 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 17715 switch(gnewsqlstatementtype ) { // 17716 case sstinvalid: 17717 { 17718 if ( pcst.tokencode == TBaseType.mslabel ) 17719 { 17720 ret = new TMssqlLabel(pdbvendor); 17721 } 17722 else 17723 ret = null; 17724 17725 break; 17726 } 17727 case sstselect: 17728 { 17729 lcisnewsql = true; 17730 17731 if ( pstate != EFindSqlStateType.stnormal ) 17732 { 17733 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 17734 if ( (lcprevsolidtoken != null) ) 17735 { 17736 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 17737 lcisnewsql = false; //subqery 17738 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 17739 lcisnewsql = false; 17740 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 17741 lcisnewsql = false; 17742 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 17743 lcisnewsql = false; 17744 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 17745 lcisnewsql = false; 17746 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 17747 lcisnewsql = false; 17748 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 17749 { 17750 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 17751 lcisnewsql = false; 17752 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 17753 lcisnewsql = false; 17754 } 17755 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 17756 { 17757 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlset ) 17758 lcisnewsql = false; 17759 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldeclare ) 17760 lcisnewsql = false; 17761 } 17762 17763 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 17764 { 17765 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 17766 if ( (lcpprevsolidtoken != null) ) 17767 { 17768 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 17769 lcisnewsql = false; 17770 } 17771 } 17772 17773 } 17774 17775 if ( (lccurrentsqlstatement != null) ) 17776 { 17777 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 17778 { 17779 } 17780 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 17781 { 17782 if ( (lcprevsolidtoken != null) ) 17783 { 17784 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 17785 lcisnewsql = false; 17786 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 17787 lcisnewsql = false; 17788 } 17789 } else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 17790 { 17791 if ( (lcprevsolidtoken != null) ) 17792 { 17793 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 17794 lcisnewsql = false; 17795 } 17796 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 17797 lcisnewsql = false; 17798 } 17799 } 17800 17801 } 17802 17803 if ( lcisnewsql ) 17804 ret = new TSelectSqlStatement(pdbvendor); 17805 17806 break; 17807 17808 } 17809 case sstinsert: 17810 { 17811 lcisnewsql = true; 17812 if ( pstate != EFindSqlStateType.stnormal ) 17813 { 17814 if ( (lccurrentsqlstatement != null) ) 17815 { 17816 // merge 17817 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 17818 { 17819 if (lcprevsolidtoken != null) 17820 { 17821 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 17822 {lcisnewsql = false;} 17823 } 17824 } 17825 17826 // bulk insert 17827 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlbulkinsert ) 17828 { 17829 if ( (lcprevsolidtoken != null) ) 17830 { 17831 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_bulk ) 17832 lcisnewsql = false; 17833 } 17834 } 17835 17836 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 17837 { 17838 if ( (lcprevsolidtoken != null) ) 17839 { 17840 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 17841 lcisnewsql = false; 17842 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 17843 lcisnewsql = false; 17844 } 17845 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) { 17846 if ( (lcprevsolidtoken != null) ) 17847 { 17848 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 17849 lcisnewsql = false; 17850 } 17851 } 17852 17853 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 17854 { 17855 if ( (lcprevsolidtoken != null) ) 17856 { 17857 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 17858 lcisnewsql = false; 17859 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 17860 lcisnewsql = false; 17861 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 17862 lcisnewsql = false; 17863 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 17864 lcisnewsql = false; 17865 } 17866 } 17867 17868 17869 } 17870 } 17871 17872 if ( lcisnewsql ) 17873 { 17874 ret = new TInsertSqlStatement(pdbvendor); 17875 ret.dummytag = 1; // select stmt in insert is permitted 17876 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 17877 { 17878 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 17879 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 17880 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 17881 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 17882 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ) break; 17883 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 17884 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 17885 } // for ( 17886 if ( k > lcsourcetokenlist.size() - 1 ) 17887 k = lcsourcetokenlist.size() - 1; 17888 17889 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 17890 { 17891 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 17892 } // for ( 17893 17894 } 17895 17896 break; 17897 } 17898 case sstsybaseInsertBulk: 17899 { 17900 ret = new TInsertBulk(pdbvendor); 17901 break; 17902 } 17903 case sstupdate: 17904 { 17905 lcisnewsql = true; 17906 if ( pstate != EFindSqlStateType.stnormal ) 17907 { 17908 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 17909 if ( (lcprevsolidtoken != null) ) 17910 { // 17911 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 17912 lcisnewsql = false; 17913 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 17914 lcisnewsql = false; 17915 } 17916 17917 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 17918 if ( TBaseType.assigned(lcnextsolidtoken) ) 17919 { 17920 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 17921 { 17922 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 17923 if ( k == 0 ) lcisnewsql = false; 17924 } 17925 } 17926 17927 17928 if ( TBaseType.assigned(lccurrentsqlstatement) ) 17929 { 17930 // merge 17931 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 17932 { 17933 if (lcprevsolidtoken != null) 17934 { 17935 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 17936 {lcisnewsql = false;} 17937 } 17938 } 17939 17940 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 17941 { 17942 if ( TBaseType.assigned(lcprevsolidtoken) ) 17943 { 17944 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 17945 lcisnewsql = false; 17946 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 17947 lcisnewsql = false; 17948 } 17949 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 17950 { 17951 if ( TBaseType.assigned(lcprevsolidtoken) ) 17952 { 17953 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 17954 lcisnewsql = false; 17955 } 17956 } 17957 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 17958 { 17959 if ( TBaseType.assigned(lcprevsolidtoken) ) 17960 { 17961 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 17962 lcisnewsql = false; 17963 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 17964 lcisnewsql = false; 17965 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 17966 lcisnewsql = false; 17967 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 17968 lcisnewsql = false; 17969 } 17970 } 17971 17972 } 17973 } 17974 17975 if ( lcisnewsql ) 17976 { 17977 ret = new TUpdateSqlStatement(pdbvendor); 17978 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 17979 } 17980 17981 break; 17982 } 17983 case sstdelete: 17984 { 17985 lcisnewsql = true; 17986 17987 if ( pstate != EFindSqlStateType.stnormal ) 17988 { 17989 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 17990 if ( TBaseType.assigned(lcprevsolidtoken) ) 17991 { 17992 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 17993 lcisnewsql = false; 17994 } 17995 17996 if ( TBaseType.assigned(lccurrentsqlstatement) ) 17997 { 17998 // merge 17999 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 18000 { 18001 if (lcprevsolidtoken != null) 18002 { 18003 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 18004 {lcisnewsql = false;} 18005 } 18006 } 18007 18008 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 18009 { 18010 if ( TBaseType.assigned(lcprevsolidtoken) ) 18011 { 18012 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 18013 lcisnewsql = false; 18014 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 18015 lcisnewsql = false; 18016 } 18017 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 18018 { 18019 if ( TBaseType.assigned(lcprevsolidtoken) ) 18020 { 18021 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 18022 lcisnewsql = false; 18023 } 18024 } 18025 18026 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 18027 { 18028 if ( TBaseType.assigned(lcprevsolidtoken) ) 18029 { 18030 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 18031 lcisnewsql = false; 18032 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 18033 lcisnewsql = false; 18034 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 18035 lcisnewsql = false; 18036 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 18037 lcisnewsql = false; 18038 } 18039 } 18040 18041 } 18042 } 18043 18044 if ( lcisnewsql ) 18045 ret = new TDeleteSqlStatement(pdbvendor); 18046 18047 break; 18048 } 18049 case sstcreatetable: 18050 { 18051 ret = new TCreateTableSqlStatement(pdbvendor); 18052 break; 18053 } 18054 case sstcreateview: 18055 { 18056 ret = new TCreateViewSqlStatement(pdbvendor); 18057 break; 18058 } 18059 case sstaltertable: 18060 { 18061 ret = new TAlterTableStatement(pdbvendor); 18062 break; 18063 } 18064 case sstmssqlfetch: 18065 { 18066 ret = new TMssqlFetch(pdbvendor); 18067 break; 18068 } 18069 case sstmssqlif : 18070 { 18071 lcisnewsql = true; 18072 if ((lccurrentsqlstatement != null) && ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldropprocedure )) 18073 {lcisnewsql = false;} 18074 // See TSqlCmdsSybaseAse: ASE rejects the clause in the GRAMMAR; 18075 // suppressing the boundary here only makes that rejection a clean 18076 // single-statement error at EXISTS instead of a mis-split. 18077 if (lcisnewsql && DropIfExistsSupport.isDropIfExistsContext(pcst, lcsourcetokenlist.solidtokenbefore(lcpos))) 18078 {lcisnewsql = false;} 18079 if (lcisnewsql){ 18080 ret = new TMssqlIfElse(pdbvendor); 18081 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 18082 } 18083 18084 break; 18085 } 18086 case sstmssqlwhile: 18087 { 18088 ret = new TMssqlIfElse(pdbvendor); 18089 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 18090 break; 18091 } 18092 case sstmssqlcreateprocedure : 18093 case sstmssqlalterprocedure: 18094 { 18095 ret = new TMssqlCreateProcedure(pdbvendor); 18096 break; 18097 } 18098 case sstmssqlcreatefunction : 18099 case sstmssqlalterfunction: 18100 { 18101 ret = new TMssqlCreateFunction(pdbvendor); 18102 break; 18103 } 18104 case sstcreatetrigger : 18105 case sstmssqlaltertrigger: 18106 { 18107 ret = new TCreateTriggerStmt(pdbvendor); 18108 break; 18109 } 18110 case sstmssqlreturn: 18111 { 18112 ret = new TMssqlReturn(pdbvendor); 18113 break; 18114 } 18115 case sstmssqlprint: 18116 { 18117 ret = new TMssqlPrint(pdbvendor); 18118 break; 18119 } 18120 case sstmssqluse: 18121 { 18122 ret = new TUseDatabase(pdbvendor); 18123 break; 18124 } 18125 case sstmssqlgo: 18126 { 18127 ret = new TMssqlGo(pdbvendor); 18128 break; 18129 } 18130 case sstmssqlrevert: 18131 { 18132 ret = new TMssqlRevert(pdbvendor); 18133 break; 18134 } 18135 case sstmssqlgrant: 18136 { 18137 lcisnewsql = true; 18138 // prev tokentext can't be with 18139 if ( pstate != EFindSqlStateType.stnormal ) 18140 { 18141 if ( TBaseType.assigned(lcprevsolidtoken) ) 18142 { 18143 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 18144 { 18145 ret = null; 18146 lcisnewsql = false; 18147 } 18148 } 18149 } 18150 if ( lcisnewsql ) 18151 { 18152 ret = new TGrantStmt(pdbvendor); 18153 //ret.sqlstatementtype = gnewsqlstatementtype; 18154 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 18155 { 18156 lctoken = lcsourcetokenlist.get(k); 18157 if (lctoken.isnonsolidtoken() ) continue; 18158 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 18159 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 18160 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 18161 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 18162 } 18163 } 18164 break; 18165 } 18166 case sstmssqldeclare: 18167 { 18168 ret = new TMssqlDeclare(pdbvendor); 18169 break; 18170 } 18171 case sstmssqlcontinue: 18172 { 18173 lcisnewsql = true; 18174 if ((lccurrentsqlstatement != null) && ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstload )) 18175 {lcisnewsql = false;} 18176 if (lcisnewsql){ 18177 ret = new TMssqlContinue(pdbvendor); 18178 } 18179 18180 break; 18181 } 18182 case sstbreak: 18183 { 18184 ret = new TBreakStmt(pdbvendor); 18185 break; 18186 } 18187 case sstmssqlopen: 18188 { 18189 ret = new TMssqlOpen(pdbvendor); 18190 break; 18191 } 18192 case sstmssqlclose: 18193 { 18194 ret = new TMssqlClose(pdbvendor); 18195 break; 18196 } 18197 case sstmssqlbulkinsert: 18198 { 18199 ret = new TMssqlBulkInsert(pdbvendor); 18200 break; 18201 } 18202 case sstmssqldeallocate: 18203 { 18204 ret = new TMssqlDeallocate(pdbvendor); 18205 break; 18206 } 18207 case sstmssqlraiserror: 18208 { 18209 ret = new TMssqlRaiserror(pdbvendor); 18210 break; 18211 } 18212 case sstmssqlgoto: 18213 { 18214 ret = new TMssqlGoTo(pdbvendor); 18215 break; 18216 } 18217 case sstmssqldropview: 18218 { 18219 ret = new TDropViewSqlStatement(pdbvendor); 18220 break; 18221 } 18222 case sstmssqldroptable: 18223 { 18224 ret = new TDropTableSqlStatement(pdbvendor); 18225 break; 18226 } 18227 case sstmssqldropindex: 18228 { 18229 ret = new TDropIndexSqlStatement(pdbvendor); 18230 break; 18231 } 18232 case sstmssqldroppartitionscheme : 18233 ret = new TDropPartitionSchemeStmt(pdbvendor); 18234 break; 18235 18236 case sstmssqldropaggregate : 18237 case sstmssqldropapplicationrole : 18238 case sstmssqldropassembly : 18239 case sstmssqldropasymmetrickey : 18240 case sstmssqldropcertificate : 18241 case sstmssqldropcontract : 18242 case sstmssqldropcredential : 18243 case sstmssqldropdefault : 18244 case sstmssqldropendpoint : 18245 case sstmssqldropeventnotification : 18246 case sstmssqldropfulltextcatalog : 18247 case sstmssqldropfulltextindex : 18248 case sstmssqldropfunction : 18249 case sstmssqldroplogin : 18250 case sstmssqldropmasterkey : 18251 case sstmssqldropmessagetype : 18252 case sstmssqldroppartitionfunction : 18253 case sstmssqldropprocedure : 18254 case sstmssqldropqueue : 18255 case sstmssqldropremoteservicebinding : 18256 case sstmssqldroprole : 18257 case sstmssqldroproute : 18258 case sstmssqldroprule : 18259 case sstmssqldropschema : 18260 case sstmssqldropservice : 18261 case sstmssqldropsignature: 18262 case sstmssqldropstatistics : 18263 case sstmssqldropsymmetrickey : 18264 case sstmssqldroptrigger : 18265 case sstmssqldroptype : 18266 case sstmssqldropuser : 18267 case sstmssqldropxmlschemacollection: 18268 case sstmssqldropdatabase : 18269 { 18270 ret = new TMssqlDropDbObject(EDbVendor.dbvsybasease); 18271 ret.sqlstatementtype = gnewsqlstatementtype; 18272 break; 18273 } 18274 case sstmssqldropsynonym : 18275 { 18276 ret = new TDropSynonymStmt(pdbvendor); 18277 break; 18278 } 18279 case sstmssqltruncatetable: 18280 { 18281 ret = new TTruncateStatement(pdbvendor); 18282 break; 18283 } 18284 case sstmssqlbegintran: 18285 { 18286 ret = new TBeginTran(pdbvendor); 18287 break; 18288 } 18289 case sstmssqlsavetran: 18290 { 18291 ret = new TMssqlSaveTran(pdbvendor); 18292 break; 18293 } 18294 case sstmssqlcommit: 18295 { 18296 lcisnewsql = true; 18297 18298 if ( TBaseType.assigned(lcprevsolidtoken) ) 18299 { 18300 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 18301 { 18302 18303 lcisnewsql = false; 18304 } 18305 } 18306 18307 if (lcisnewsql){ 18308 ret = new TMssqlCommit(pdbvendor); 18309 } 18310 18311 break; 18312 } 18313 case sstmssqlrollback: 18314 { 18315 ret = new TMssqlRollback(pdbvendor); 18316 break; 18317 } 18318 case sstmssqlreadtext : 18319 case sstmssqldbcc : 18320 case sstmssqlrestore : 18321 case sstmssqlbackup : 18322 { 18323 ret = new TMssqlDummyStmt(pdbvendor); 18324 ret.sqlstatementtype = gnewsqlstatementtype; 18325 break; 18326 } 18327 case sstcreateindex: 18328 { 18329 ret = new TCreateIndexSqlStatement(pdbvendor); 18330 break; 18331 } 18332 case sstmssqlwaitfor: 18333 { 18334 ret = new TMssqlWaitFor(pdbvendor); 18335 break; 18336 } 18337 case sstmerge: 18338 { 18339 lcisnewsql = true; 18340 18341 if (pstate != EFindSqlStateType.stnormal) 18342 { 18343 18344 if (lccurrentsqlstatement != null) 18345 { 18346 // merge union, merge join 18347 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 18348 { 18349 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 18350 if (lcnextsolidtoken != null) 18351 { 18352 if ((lcnextsolidtoken.tokencode == TBaseType.rrw_union) || (lcnextsolidtoken.tokencode == TBaseType.rrw_join)) 18353 { 18354 lcisnewsql = false; 18355 } 18356 } 18357 } 18358 18359 } 18360 18361 TSourceToken lcnexttoken = lcsourcetokenlist.nextsolidtoken(lcpos, 1, false); 18362 if ( (lcnexttoken != null) ) 18363 { 18364 if ( lcnexttoken.tokencode == TBaseType.rrw_sybase_partition ) 18365 lcisnewsql = false; 18366 } 18367 18368 } 18369 18370 if (lcisnewsql) 18371 { 18372 ret = new TMergeSqlStatement(pdbvendor); 18373 ret.sqlstatementtype = gnewsqlstatementtype; 18374 } 18375 18376 break; 18377 } 18378 case sstmssqlbegintry : 18379 case sstmssqlbegincatch: 18380 { 18381 ret = new TMssqlBlock(pdbvendor); 18382 ret.sqlstatementtype = gnewsqlstatementtype; 18383 break; 18384 } 18385 case sstmssqlexec: 18386 { 18387 lcisnewsql = true; 18388 // prev tokentext can't be with 18389 if ( pstate != EFindSqlStateType.stnormal ) 18390 { 18391 if ( TBaseType.assigned(lccurrentsqlstatement) ) 18392 { 18393 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 18394 { 18395 if ( lccurrentsqlstatement.dummytag == 1 ) 18396 { 18397 lcisnewsql = false; 18398 lccurrentsqlstatement.dummytag = 0; // no select is permited after it 18399 } 18400 } 18401 18402 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 18403 { 18404 if ( TBaseType.assigned(lcprevsolidtoken) ) 18405 { 18406 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 18407 lcisnewsql = false; 18408 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 18409 lcisnewsql = false; 18410 } 18411 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ){ 18412 if ( TBaseType.assigned(lcprevsolidtoken) ) 18413 { 18414 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 18415 lcisnewsql = false; 18416 } 18417 } 18418 18419 18420 18421 if ( 18422 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 18423 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 18424 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 18425 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 18426 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 18427 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 18428 ) 18429 { 18430 if ( TBaseType.assigned(lcprevsolidtoken) ) 18431 { 18432 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 18433 lcisnewsql = false; 18434 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 18435 lcisnewsql = false; 18436 } 18437 } 18438 } 18439 } 18440 if ( lcisnewsql ) 18441 { 18442 ret = new TMssqlExecute(pdbvendor); 18443 } 18444 break; 18445 } 18446 case sstmssqlexecuteas: 18447 { 18448 lcisnewsql = true; 18449 // prev tokentext can't be with 18450 if ( pstate != EFindSqlStateType.stnormal ) 18451 { 18452 if ( TBaseType.assigned(lccurrentsqlstatement) ) 18453 { 18454 if ( 18455 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 18456 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 18457 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 18458 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 18459 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 18460 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 18461 ) 18462 { 18463 if ( TBaseType.assigned(lcprevsolidtoken) ) 18464 { 18465 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 18466 lcisnewsql = false; 18467 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 18468 lcisnewsql = false; 18469 } 18470 } 18471 } 18472 } 18473 if ( lcisnewsql ) 18474 { 18475 ret = new TMssqlExecuteAs(pdbvendor); 18476 ret.sqlstatementtype = gnewsqlstatementtype; 18477 } 18478 break; 18479 } 18480 case sstmssqlset: 18481 { 18482 lcisnewsql = true; 18483 if ( pstate != EFindSqlStateType.stnormal ) 18484 { 18485 if ( TBaseType.assigned(lccurrentsqlstatement) ) 18486 { 18487 18488 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlif) 18489 { 18490 TSourceToken lcPPToken = lcsourcetokenlist.searchToken(TBaseType.rrw_update,"",pcst,-10); 18491 if (TBaseType.assigned(lcPPToken)) 18492 { 18493 lcisnewsql = false; 18494 } 18495 } 18496 18497 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 18498 { 18499 if (lcprevsolidtoken != null) 18500 { 18501 if (lcprevsolidtoken.tokencode == TBaseType.rrw_update){ 18502 lcisnewsql = false;} 18503 } 18504 } 18505 18506 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstupdate ) 18507 { 18508 if ( lccurrentsqlstatement.dummytag == 1 ) 18509 { 18510 //update statement still find set clause yet, so this is setclause in update statement 18511 lccurrentsqlstatement.dummytag = 0; 18512 lcisnewsql = false; 18513 } 18514 } 18515 } 18516 18517 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 18518 if ( TBaseType.assigned(lcnextsolidtoken) ) 18519 { //set null, set default 18520 if ( (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(),"null")==0) 18521 || (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(), "default")==0) ) 18522 { 18523 lcisnewsql = false; 18524 } 18525 } 18526 18527 } 18528 18529 if ( lcisnewsql ) 18530 { 18531 ret = new TMssqlSet(pdbvendor); 18532 } 18533 18534 break; 18535 } 18536 case sstmssqlupdatetext: 18537 { 18538 ret = new TMssqlUpdateText(pdbvendor); 18539 break; 18540 } 18541 case sstmssqlendconversation: 18542 { 18543 ret = new TMssqlEndConversation(pdbvendor); 18544 break; 18545 } 18546 case sstmssqlbegindialog: 18547 { 18548 ret = new TMssqlBeginDialog(pdbvendor); 18549 break; 18550 } 18551 case sstmssqlsendonconversation: 18552 { 18553 ret = new TMssqlSendOnConversation(pdbvendor); 18554 break; 18555 } 18556 case sstmssqldisabletrigger : 18557 case sstmssqlenabletrigger: 18558 { 18559 lcisnewsql = true; 18560 if ( TBaseType.assigned(lccurrentsqlstatement) ) 18561 { 18562 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable ) 18563 lcisnewsql = false; 18564 } 18565 18566 if ( lcisnewsql ) 18567 { 18568 ret = new TDisableEnableTriggerStmt(pdbvendor); 18569 ret.sqlstatementtype = gnewsqlstatementtype; 18570 } 18571 break; 18572 } 18573 case sstsybaseWritetext: 18574 { 18575 ret = new TSybaseWritetext(pdbvendor); 18576 break; 18577 } 18578 case sstsybaseDeleteStatistics: 18579 { 18580 ret = new TSybaseDeleteStatistics(pdbvendor); 18581 break; 18582 } 18583 case sstcall: 18584 { 18585 ret = new TCallStatement(pdbvendor); 18586 break; 18587 } 18588 default: 18589 { 18590 ret = new TUnknownSqlStatement(pdbvendor); 18591 ret.sqlstatementtype = gnewsqlstatementtype; 18592 break; 18593 } 18594 } // case 18595 18596 return ret; 18597 } 18598 18599 // ---- Sybase ASE fork (dbvsybasease): full-family recognition; rejection of 18600 // ---- foreign statements is the parser policy layer, not this table. 18601public ESqlStatementType findsybaseasecmdusedbyyacc(TSourceToken pcst){ 18602 ESqlStatementType ret = ESqlStatementType.sstinvalid; 18603 18604 int lcpos = pcst.posinlist; 18605 TSourceTokenList lcsourcetokenlist = pcst.container; 18606 18607 //subquery after semicolon or at first line 18608 if ( (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 18609 { 18610 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 18611 if ( k >0 ) 18612 { 18613 ret = ESqlStatementType.sstselect; 18614 } 18615 18616 return ret; 18617 } 18618 18619 18620 ret = findsybaseasecmd(pcst); 18621 // execute can't be used to delimite other sql 18622 if ( ret == ESqlStatementType.sstmssqlexec ) 18623 ret = ESqlStatementType.sstinvalid; 18624 18625 return ret; 18626} 18627 18628 // ---- SQL Anywhere fork (dbvsqlanywhere): full-family recognition; rejection of 18629 // ---- foreign statements is the parser policy layer, not this table. 18630void initsqlanywherecmds(){ 18631// cmd must be sort alphabetically 18632 addsqlanywherecmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"counter","signature"," "," "," "," "); 18633 addsqlanywherecmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"signature"," "," "," "," "," "); 18634//alter 18635 addsqlanywherecmds(ESqlStatementType.sstmssqlalterapplicationrole, TBaseType.rrw_alter,"application","role"," "," "," "," "); 18636 addsqlanywherecmds(ESqlStatementType.sstmssqlalterassembly, TBaseType.rrw_alter,"assembly"," "," "," "," "," "); 18637 addsqlanywherecmds(ESqlStatementType.sstmssqlalterasymmetrickey, TBaseType.rrw_alter,"asymmetric","key"," "," "," "," "); 18638 addsqlanywherecmds(ESqlStatementType.sstmssqlalterauthorization, TBaseType.rrw_alter,"authorization"," "," "," "," "," "); 18639 addsqlanywherecmds(ESqlStatementType.sstmssqlaltercertificate, TBaseType.rrw_alter,"certificate"," "," "," "," "," "); 18640 addsqlanywherecmds(ESqlStatementType.sstmssqlaltercredential, TBaseType.rrw_alter,"credential"," "," "," "," "," "); 18641 addsqlanywherecmds(ESqlStatementType.sstmssqlalterdatabase, TBaseType.rrw_alter,"database"," "," "," "," "," "); 18642 addsqlanywherecmds(ESqlStatementType.sstsybasealterdbspace, TBaseType.rrw_alter,"dbspace"," "," "," "," "," "); 18643 addsqlanywherecmds(ESqlStatementType.sstsybasealterdomain, TBaseType.rrw_alter,"domain"," "," "," "," "," "); 18644 addsqlanywherecmds(ESqlStatementType.sstmssqlalterendpoint, TBaseType.rrw_alter,"endpoint"," "," "," "," "," "); 18645 addsqlanywherecmds(ESqlStatementType.sstmssqlalterfulltextcatalog, TBaseType.rrw_alter,"fulltext","catalog"," "," "," "," "); 18646 addsqlanywherecmds(ESqlStatementType.sstmssqlalterfulltextindex, TBaseType.rrw_alter,"fulltext","index"," "," "," "," "); 18647 addsqlanywherecmds(ESqlStatementType.sstmssqlalterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 18648 addsqlanywherecmds(ESqlStatementType.sstmssqlalterindex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 18649 addsqlanywherecmds(ESqlStatementType.sstmssqlalterlogin, TBaseType.rrw_alter,"login"," "," "," "," "," "); 18650 addsqlanywherecmds(ESqlStatementType.sstmssqlaltermasterkey, TBaseType.rrw_alter,"master","key"," "," "," "," "); 18651 addsqlanywherecmds(ESqlStatementType.sstmssqlaltermessagetype, TBaseType.rrw_alter,"message","type"," "," "," "," "); 18652 addsqlanywherecmds(ESqlStatementType.sstmssqlalterpartitionfunction, TBaseType.rrw_alter,"partition","function"," "," "," "," "); 18653 addsqlanywherecmds(ESqlStatementType.sstmssqlalterpartitionscheme, TBaseType.rrw_alter,"partition","scheme"," "," "," "," "); 18654 addsqlanywherecmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"proc"," "," "," "," "," "); 18655 addsqlanywherecmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 18656 addsqlanywherecmds(ESqlStatementType.sstmssqlalterqueue, TBaseType.rrw_alter,"queue"," "," "," "," "," "); 18657 addsqlanywherecmds(ESqlStatementType.sstmssqlalterremoteservicebinding, TBaseType.rrw_alter,"remote","service","binding"," "," "," "); 18658 addsqlanywherecmds(ESqlStatementType.sstmssqlalterrole, TBaseType.rrw_alter,"role"," "," "," "," "," "); 18659 addsqlanywherecmds(ESqlStatementType.sstmssqlalterroute, TBaseType.rrw_alter,"route"," "," "," "," "," "); 18660 addsqlanywherecmds(ESqlStatementType.sstmssqlalterschema, TBaseType.rrw_alter,"schema"," "," "," "," "," "); 18661 addsqlanywherecmds(ESqlStatementType.sstsybasealterserver, TBaseType.rrw_alter,"server"," "," "," "," "," "); 18662 addsqlanywherecmds(ESqlStatementType.sstmssqlalterservice, TBaseType.rrw_alter,"service"," "," "," "," "," "); 18663 addsqlanywherecmds(ESqlStatementType.sstmssqlalterservicemasterkey, TBaseType.rrw_alter,"service","master","key"," "," "," "); 18664 addsqlanywherecmds(ESqlStatementType.sstmssqlaltersymmetrickey, TBaseType.rrw_alter,"symmetric","key"," "," "," "," "); 18665 addsqlanywherecmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 18666 addsqlanywherecmds(ESqlStatementType.sstmssqlaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 18667 addsqlanywherecmds(ESqlStatementType.sstmssqlalteruser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 18668 addsqlanywherecmds(ESqlStatementType.sstmssqlalterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 18669 addsqlanywherecmds(ESqlStatementType.sstmssqlalterxmlschemacollection, TBaseType.rrw_alter,"xml","schema","collection"," "," "," "); 18670//backup 18671 addsqlanywherecmds(ESqlStatementType.sstmssqlbackupdatabase, TBaseType.rrw_backup,"database"," "," "," "," "," "); 18672 addsqlanywherecmds(ESqlStatementType.sstmssqlbackupcertificate, TBaseType.rrw_backup,"certificate"," "," "," "," "," "); 18673 addsqlanywherecmds(ESqlStatementType.sstmssqlbackuplog, TBaseType.rrw_backup,"log"," "," "," "," "," "); 18674 addsqlanywherecmds(ESqlStatementType.sstmssqlbackupmasterkey, TBaseType.rrw_backup,"master","key"," "," "," "," "); 18675 addsqlanywherecmds(ESqlStatementType.sstmssqlbackupservicemasterkey, TBaseType.rrw_backup,"service","master","key"," "," "," "); 18676//begin 18677 addsqlanywherecmds(ESqlStatementType.sstmssqlbegincatch, TBaseType.rrw_begin,"catch"," "," "," "," "," "); 18678 addsqlanywherecmds(ESqlStatementType.sstmssqlbeginconversationtimer, TBaseType.rrw_begin,"conversation","timer"," "," "," "," "); 18679 addsqlanywherecmds(ESqlStatementType.sstmssqlbegindialog, TBaseType.rrw_begin,"dialog"," "," "," "," "," "); 18680 addsqlanywherecmds(ESqlStatementType.sstmssqlbegindistributed, TBaseType.rrw_begin,"distributed"," "," "," "," "," "); 18681 addsqlanywherecmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"tran"," "," "," "," "," "); 18682 addsqlanywherecmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"transaction"," "," "," "," "," "); 18683 addsqlanywherecmds(ESqlStatementType.sstmssqlbegintry, TBaseType.rrw_begin,"try"," "," "," "," "," "); 18684//break 18685 addsqlanywherecmds(ESqlStatementType.sstbreak, TBaseType.rrw_break," "," "," "," "," "," "); 18686//bulk insert 18687 addsqlanywherecmds(ESqlStatementType.sstmssqlbulkinsert, TBaseType.rrw_bulk,"insert"," "," "," "," "," "); 18688 18689 addsqlanywherecmds(ESqlStatementType.sstcall, TBaseType.rrw_call," "," "," "," "," "," "); 18690 18691//checkpoint 18692 addsqlanywherecmds(ESqlStatementType.sstmssqlcheckpoint, TBaseType.rrw_checkpoint," "," "," "," "," "," "); 18693//close 18694 addsqlanywherecmds(ESqlStatementType.sstmssqlclose, TBaseType.rrw_close," "," "," "," "," "," "); 18695 addsqlanywherecmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"all", "symmetric", "keys"," "," "," "); 18696 addsqlanywherecmds(ESqlStatementType.sstmssqlclosemasterkey, TBaseType.rrw_close,"master", "key"," "," "," "," "); 18697 addsqlanywherecmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"symmetric", "key"," "," "," "," "); 18698//commit 18699 addsqlanywherecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit," "," "," "," "," "," "); 18700 addsqlanywherecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"work"," "," "," "," "," "); 18701 addsqlanywherecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"tran"," "," "," "," "," "); 18702 addsqlanywherecmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"transaction"," "," "," "," "," "); 18703//continue 18704 addsqlanywherecmds(ESqlStatementType.sstmssqlcontinue, TBaseType.rrw_continue," "," "," "," "," "," "); 18705//create 18706 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateaggregate, TBaseType.rrw_create,"aggregate"," "," "," "," "," "); 18707 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateapplicationrole, TBaseType.rrw_create,"application", "role"," "," "," "," "); 18708 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateassembly, TBaseType.rrw_create,"assembly"," "," "," "," "," "); 18709 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateasymmetrickey, TBaseType.rrw_create,"asymmetric", "key"," "," "," "," "); 18710 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatecertificate, TBaseType.rrw_create,"certificate"," "," "," "," "," "); 18711 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"clustered","index"," "," "," "," "); 18712 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatecontract, TBaseType.rrw_create,"contract"," "," "," "," "," "); 18713 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatecredential, TBaseType.rrw_create,"credential"," "," "," "," "," "); 18714 addsqlanywherecmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 18715 addsqlanywherecmds(ESqlStatementType.sstsybasecreatedbspace, TBaseType.rrw_create,"dbspace"," "," "," "," "," "); 18716 addsqlanywherecmds(ESqlStatementType.sstsybasecreatedomain, TBaseType.rrw_create,"domain"," "," "," "," "," "); 18717 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatedefault, TBaseType.rrw_create,"default"," "," "," "," "," "); 18718 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateendpoint, TBaseType.rrw_create,"endpoint"," "," "," "," "," "); 18719 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateeventnotification, TBaseType.rrw_create,"event", "notification"," "," "," "," "); 18720 addsqlanywherecmds(ESqlStatementType.sstsybasecreateexistingtable, TBaseType.rrw_create,"existing","table"," "," "," "," "); 18721 addsqlanywherecmds(ESqlStatementType.sstsybasecreateexternlogin, TBaseType.rrw_create,"externlogin"," "," "," "," "," "); 18722 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatefulltextcatalog, TBaseType.rrw_create,"fulltext", "catalog"," "," "," "," "); 18723 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatefulltextindex, TBaseType.rrw_create,"fulltext", "index"," "," "," "," "); 18724 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 18725 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 18726 addsqlanywherecmds(ESqlStatementType.sstsybasecreatejoinindex, TBaseType.rrw_create,"join","index"," "," "," "," "); 18727 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatelogin, TBaseType.rrw_create,"login"," "," "," "," "," "); 18728 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatemasterkey, TBaseType.rrw_create,"master","key"," "," "," "," "); 18729 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatemessagetype, TBaseType.rrw_create,"message","type"," "," "," "," "); 18730 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"nonclustered","index"," "," "," "," "); 18731 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"or","replace","function"," "," "," "); 18732 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","replace","proc"," "," "," "); 18733 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","replace","procedure"," "," "," "); 18734 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatepartitionfunction, TBaseType.rrw_create,"partition","function"," "," "," "," "); 18735 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatepartitionscheme, TBaseType.rrw_create,"partition","scheme"," "," "," "," "); 18736 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"proc"," "," "," "," "," "); 18737 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 18738 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatequeue, TBaseType.rrw_create,"queue"," "," "," "," "," "); 18739 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateremoteservicebinding, TBaseType.rrw_create,"remote", "service", "binding"," "," "," "); 18740 addsqlanywherecmds(ESqlStatementType.sstmssqlcreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 18741 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateroute, TBaseType.rrw_create,"route"," "," "," "," "," "); 18742 addsqlanywherecmds(ESqlStatementType.sstmssqlcreaterule, TBaseType.rrw_create,"rule"," "," "," "," "," "); 18743 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 18744 addsqlanywherecmds(ESqlStatementType.sstsybasecreateserver, TBaseType.rrw_create,"server"," "," "," "," "," "); 18745 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateservice, TBaseType.rrw_create,"service"," "," "," "," "," "); 18746 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatestatistics, TBaseType.rrw_create,"statistics"," "," "," "," "," "); 18747 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatesymmetrickey, TBaseType.rrw_create,"symmetric", "key"," "," "," "," "); 18748 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 18749 addsqlanywherecmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 18750 addsqlanywherecmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 18751 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatetype, TBaseType.rrw_create,"type"," "," "," "," "," "); 18752 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"cmp","index"," "," "," "," "); 18753 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"date","index"," "," "," "," "); 18754 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"dttm","index"," "," "," "," "); 18755 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"hg","index"," "," "," "," "); 18756 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"hng","index"," "," "," "," "); 18757 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"lf","index"," "," "," "," "); 18758 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"time","index"," "," "," "," "); 18759 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"wd","index"," "," "," "," "); 18760 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","clustered","index"," "," "," "); 18761 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 18762 addsqlanywherecmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","nonclustered","index"," "," "," "); 18763 addsqlanywherecmds(ESqlStatementType.sstmssqlcreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 18764 addsqlanywherecmds(ESqlStatementType.sstsybasecreatevariable, TBaseType.rrw_create,"variable"," "," "," "," "," "); 18765 addsqlanywherecmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 18766 addsqlanywherecmds(ESqlStatementType.sstmssqlcreatexmlschemacollection, TBaseType.rrw_create,"xml", "schema", "collection"," "," "," "); 18767// DBCC 18768 addsqlanywherecmds(ESqlStatementType.sstmssqldbcc, TBaseType.rrw_dbcc," "," "," "," "," "," "); 18769//DEALLOCATE 18770 addsqlanywherecmds(ESqlStatementType.sstmssqldeallocate, TBaseType.rrw_deallocate," "," "," "," "," "," "); 18771//DECLARE 18772 addsqlanywherecmds(ESqlStatementType.sstsybasedeallocatedescriptor, TBaseType.rrw_deallocate,"descriptor"," "," "," "," "," "); 18773 addsqlanywherecmds(ESqlStatementType.sstmssqldeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 18774//DELETE 18775 addsqlanywherecmds(ESqlStatementType.sstsybasedeclarelocaltemptable, TBaseType.rrw_declare,"local","temporary","table"," "," "," "); 18776 addsqlanywherecmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 18777 18778//DELETE statistics 18779 addsqlanywherecmds(ESqlStatementType.sstsybaseDeleteStatistics, TBaseType.rrw_delete,"shared","statistics"," "," "," "," "); 18780 addsqlanywherecmds(ESqlStatementType.sstsybaseDeleteStatistics, TBaseType.rrw_delete,"statistics"," "," "," "," "," "); 18781 18782//DENY 18783 addsqlanywherecmds(ESqlStatementType.sstmssqldeny, TBaseType.rrw_deny," "," "," "," "," "," "); 18784//DISABLE TRIGGER 18785 addsqlanywherecmds(ESqlStatementType.sstmssqldisabletrigger, TBaseType.rrw_disable,"trigger"," "," "," "," "," "); 18786//drop 18787 addsqlanywherecmds(ESqlStatementType.sstmssqldropaggregate, TBaseType.rrw_drop,"aggregate"," "," "," "," "," "); 18788 addsqlanywherecmds(ESqlStatementType.sstmssqldropapplicationrole, TBaseType.rrw_drop,"application", "role"," "," "," "," "); 18789 addsqlanywherecmds(ESqlStatementType.sstmssqldropassembly, TBaseType.rrw_drop,"assembly"," "," "," "," "," "); 18790 addsqlanywherecmds(ESqlStatementType.sstmssqldropasymmetrickey, TBaseType.rrw_drop,"asymmetric", "key"," "," "," "," "); 18791 addsqlanywherecmds(ESqlStatementType.sstmssqldropcertificate, TBaseType.rrw_drop,"certificate"," "," "," "," "," "); 18792 addsqlanywherecmds(ESqlStatementType.sstsybasedropconnection, TBaseType.rrw_drop,"connection"," "," "," "," "," "); 18793 addsqlanywherecmds(ESqlStatementType.sstmssqldropcontract, TBaseType.rrw_drop,"contract"," "," "," "," "," "); 18794 addsqlanywherecmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"counter", "signature"," "," "," "," "); 18795 addsqlanywherecmds(ESqlStatementType.sstmssqldropcredential, TBaseType.rrw_drop,"credential"," "," "," "," "," "); 18796 addsqlanywherecmds(ESqlStatementType.sstmssqldropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 18797 addsqlanywherecmds(ESqlStatementType.sstmssqldropdefault, TBaseType.rrw_drop,"default"," "," "," "," "," "); 18798 addsqlanywherecmds(ESqlStatementType.sstmssqldropendpoint, TBaseType.rrw_drop,"endpoint"," "," "," "," "," "); 18799 addsqlanywherecmds(ESqlStatementType.sstmssqldropeventnotification, TBaseType.rrw_drop,"event", "notification"," "," "," "," "); 18800 addsqlanywherecmds(ESqlStatementType.sstsybasedropexternlogin, TBaseType.rrw_drop,"externlogin"," "," "," "," "," "); 18801 addsqlanywherecmds(ESqlStatementType.sstmssqldropfulltextcatalog, TBaseType.rrw_drop,"fulltext", "catalog"," "," "," "," "); 18802 addsqlanywherecmds(ESqlStatementType.sstmssqldropfulltextindex, TBaseType.rrw_drop,"fulltext", "index"," "," "," "," "); 18803 addsqlanywherecmds(ESqlStatementType.sstmssqldropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 18804 addsqlanywherecmds(ESqlStatementType.sstmssqldropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 18805 addsqlanywherecmds(ESqlStatementType.sstmssqldroplogin, TBaseType.rrw_drop,"login"," "," "," "," "," "); 18806 addsqlanywherecmds(ESqlStatementType.sstmssqldropmasterkey, TBaseType.rrw_drop,"master", "key"," "," "," "," "); 18807 addsqlanywherecmds(ESqlStatementType.sstmssqldropmessagetype, TBaseType.rrw_drop,"message", "type"," "," "," "," "); 18808 addsqlanywherecmds(ESqlStatementType.sstmssqldroppartitionfunction, TBaseType.rrw_drop,"partition", "function"," "," "," "," "); 18809 addsqlanywherecmds(ESqlStatementType.sstmssqldroppartitionscheme, TBaseType.rrw_drop,"partition", "scheme"," "," "," "," "); 18810 addsqlanywherecmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"proc"," "," "," "," "," "); 18811 addsqlanywherecmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 18812 addsqlanywherecmds(ESqlStatementType.sstmssqldropqueue, TBaseType.rrw_drop,"queue"," "," "," "," "," "); 18813 addsqlanywherecmds(ESqlStatementType.sstmssqldropremoteservicebinding, TBaseType.rrw_drop,"remote", "service", "binding"," "," "," "); 18814 addsqlanywherecmds(ESqlStatementType.sstmssqldroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 18815 addsqlanywherecmds(ESqlStatementType.sstmssqldroproute, TBaseType.rrw_drop,"route"," "," "," "," "," "); 18816 addsqlanywherecmds(ESqlStatementType.sstmssqldroprule, TBaseType.rrw_drop,"rule"," "," "," "," "," "); 18817 addsqlanywherecmds(ESqlStatementType.sstmssqldropschema, TBaseType.rrw_drop,"schema"," "," "," "," "," "); 18818 addsqlanywherecmds(ESqlStatementType.sstsybasedropserver, TBaseType.rrw_drop,"server"," "," "," "," "," "); 18819 addsqlanywherecmds(ESqlStatementType.sstmssqldropservice, TBaseType.rrw_drop,"service"," "," "," "," "," "); 18820 addsqlanywherecmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"signature"," "," "," "," "," "); 18821 addsqlanywherecmds(ESqlStatementType.sstsybasedropstatement, TBaseType.rrw_drop,"statement"," "," "," "," "," "); 18822 addsqlanywherecmds(ESqlStatementType.sstmssqldropstatistics, TBaseType.rrw_drop,"statistics"," "," "," "," "," "); 18823 addsqlanywherecmds(ESqlStatementType.sstmssqldropsymmetrickey, TBaseType.rrw_drop,"symmetric", "key"," "," "," "," "); 18824 addsqlanywherecmds(ESqlStatementType.sstmssqldropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 18825 addsqlanywherecmds(ESqlStatementType.sstmssqldroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 18826 addsqlanywherecmds(ESqlStatementType.sstmssqldroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 18827 addsqlanywherecmds(ESqlStatementType.sstmssqldroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 18828 addsqlanywherecmds(ESqlStatementType.sstmssqldropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 18829 addsqlanywherecmds(ESqlStatementType.sstsybasedropvariable, TBaseType.rrw_drop,"variable"," "," "," "," "," "); 18830 addsqlanywherecmds(ESqlStatementType.sstmssqldropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 18831 addsqlanywherecmds(ESqlStatementType.sstmssqldropxmlschemacollection, TBaseType.rrw_drop,"xml", "schema", "collection"," "," "," "); 18832 18833 addsqlanywherecmds(ESqlStatementType.sstsybasedumpTran, TBaseType.rrw_sybase_dump,"tran"," "," "," "," "," "); 18834 addsqlanywherecmds(ESqlStatementType.sstsybasedumpTran, TBaseType.rrw_sybase_dump,"transaction"," "," "," "," "," "); 18835 addsqlanywherecmds(ESqlStatementType.sstsybaseallocatedescriptor, TBaseType.rrw_allocate,"descriptor"," "," "," "," "," "); 18836 addsqlanywherecmds(ESqlStatementType.sstcomment, TBaseType.rrw_comment," "," "," "," "," "," "); 18837 addsqlanywherecmds(ESqlStatementType.sstconnect, TBaseType.rrw_connect," "," "," "," "," "," "); 18838 addsqlanywherecmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe," "," "," "," "," "," "); 18839 addsqlanywherecmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 18840 addsqlanywherecmds(ESqlStatementType.sstsybasegetdescriptor, TBaseType.rrw_get,"descriptor"," "," "," "," "," "); 18841 addsqlanywherecmds(ESqlStatementType.sstsybasestartdatabase, TBaseType.rrw_start,"database"," "," "," "," "," "); 18842 addsqlanywherecmds(ESqlStatementType.sstsybasestartengine, TBaseType.rrw_start,"engine"," "," "," "," "," "); 18843 addsqlanywherecmds(ESqlStatementType.sstsybasestopdatabase, TBaseType.rrw_stop,"database"," "," "," "," "," "); 18844 addsqlanywherecmds(ESqlStatementType.sstsybasestopengine, TBaseType.rrw_stop,"engine"," "," "," "," "," "); 18845 addsqlanywherecmds(ESqlStatementType.sstsybaseforwardto, TBaseType.rrw_sybase_forward,"to"," "," "," "," "," "); 18846 addsqlanywherecmds(ESqlStatementType.sstsybaseinstalljava, TBaseType.rrw_sybase_install,"java"," "," "," "," "," "); 18847 addsqlanywherecmds(ESqlStatementType.sstsybaseiqutilities, TBaseType.rrw_sybase_iq,"utilities"," "," "," "," "," "); 18848 addsqlanywherecmds(ESqlStatementType.sstsybasemessage, TBaseType.rrw_sybase_message," "," "," "," "," "," "); 18849 addsqlanywherecmds(ESqlStatementType.sstsybaseoutput, TBaseType.rrw_sybase_output,"to"," "," "," "," "," "); 18850 addsqlanywherecmds(ESqlStatementType.sstsybaseput, TBaseType.rrw_sybase_put," "," "," "," "," "," "); 18851 addsqlanywherecmds(ESqlStatementType.sstsybaseread, TBaseType.rrw_sybase_read," "," "," "," "," "," "); 18852 addsqlanywherecmds(ESqlStatementType.sstsybaseremovejava, TBaseType.rrw_sybase_remove,"java"," "," "," "," "," "); 18853 addsqlanywherecmds(ESqlStatementType.sstsybasesynchronizejoinindex, TBaseType.rrw_sybase_synchronize,"join","index"," "," "," "," "); 18854 addsqlanywherecmds(ESqlStatementType.sstsybasetriggerevent, TBaseType.rrw_sybase_trigger,"event"," "," "," "," "," "); 18855//if 18856 addsqlanywherecmds(ESqlStatementType.sstmssqlif, TBaseType.rrw_if," "," "," "," "," "," "); 18857//enable trigger 18858 addsqlanywherecmds(ESqlStatementType.sstmssqlenabletrigger, TBaseType.rrw_enable,"trigger"," "," "," "," "," "); 18859//END CONVERSATION 18860// addsqlanywherecmds(ESqlStatementType.sstMssqlEndCatch,TBaseType.rrw_end,'catch'); 18861 addsqlanywherecmds(ESqlStatementType.sstmssqlendconversation, TBaseType.rrw_end,"conversation"," "," "," "," "," "); 18862// addsqlanywherecmds(ESqlStatementType.sstMssqlEndTry,TBaseType.rrw_end,'try'); 18863//exec 18864//exec as 18865 addsqlanywherecmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_exec," "," "," "," "," "," "); 18866 addsqlanywherecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","caller"," "," "," "," "); 18867 addsqlanywherecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","login"," "," "," "," "); 18868 addsqlanywherecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","user"," "," "," "," "); 18869 addsqlanywherecmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_execute, " "," "," "," "," "," "); 18870 addsqlanywherecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","caller"," "," "," "," "); 18871 addsqlanywherecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","login"," "," "," "," "); 18872 addsqlanywherecmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","user"," "," "," "," "); 18873//fetch 18874 addsqlanywherecmds(ESqlStatementType.sstmssqlfetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 18875//go 18876 addsqlanywherecmds(ESqlStatementType.sstmssqlgo, TBaseType.rrw_go," "," "," "," "," "," "); 18877//goto 18878 addsqlanywherecmds(ESqlStatementType.sstmssqlgoto, TBaseType.rrw_goto," "," "," "," "," "," "); 18879//GRANT 18880 addsqlanywherecmds(ESqlStatementType.sstmssqlgrant, TBaseType.rrw_grant," "," "," "," "," "," "); 18881//GRANT 18882 addsqlanywherecmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 18883 18884 addsqlanywherecmds(ESqlStatementType.sstsybaseInsertBulk, TBaseType.rrw_insert,"bulk"," "," "," "," "," "); 18885//KILL 18886 addsqlanywherecmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 18887//KILL 18888 addsqlanywherecmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 18889 addsqlanywherecmds(ESqlStatementType.sstmssqlkillquerynotificationsubscription, TBaseType.rrw_kill,"kill", "query", "notification", "subscription"," "," "); 18890 addsqlanywherecmds(ESqlStatementType.sstmssqlkillstats, TBaseType.rrw_kill,"stats"," "," "," "," "," "); 18891 18892 addsqlanywherecmds(ESqlStatementType.sstload,TBaseType.rrw_load,"table"," "," "," "," "," "); 18893// 18894 addsqlanywherecmds(ESqlStatementType.sstsybaselocktable,TBaseType.rw_locktable,"table"," "," "," "," "," "); 18895//MOVE CONVERSATION 18896 addsqlanywherecmds(ESqlStatementType.sstmssqlmoveconversation, TBaseType.rrw_move,"conversation"," "," "," "," "," "); 18897//merge 18898 addsqlanywherecmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 18899//open 18900 addsqlanywherecmds(ESqlStatementType.sstmssqlopen, TBaseType.rrw_open," "," "," "," "," "," "); 18901 addsqlanywherecmds(ESqlStatementType.sstmssqlopenmasterkey, TBaseType.rrw_open,"master", "key"," "," "," "," "); 18902 addsqlanywherecmds(ESqlStatementType.sstmssqlopensymmetrickey, TBaseType.rrw_open,"symmetric", "key"," "," "," "," "); 18903//PRINT 18904 addsqlanywherecmds(ESqlStatementType.sstmssqlprint, TBaseType.rrw_print," "," "," "," "," "," "); 18905//RAISERROR 18906 addsqlanywherecmds(ESqlStatementType.sstmssqlraiserror, TBaseType.rrw_raiserror," "," "," "," "," "," "); 18907//READTEXT 18908 addsqlanywherecmds(ESqlStatementType.sstmssqlreadtext, TBaseType.rrw_readtext," "," "," "," "," "," "); 18909//RECEIVE 18910 addsqlanywherecmds(ESqlStatementType.sstmssqlreceive, TBaseType.rrw_receive," "," "," "," "," "," "); 18911//RECONFIGURE 18912 addsqlanywherecmds(ESqlStatementType.sstmssqlreconfigure, TBaseType.rrw_reconfigure," "," "," "," "," "," "); 18913//RESTORE 18914 addsqlanywherecmds(ESqlStatementType.sstmssqlrestoredatabase, TBaseType.rrw_restore,"database"," "," "," "," "," "); 18915 addsqlanywherecmds(ESqlStatementType.sstmssqlrestorefilelistonly, TBaseType.rrw_restore,"filelistonly"," "," "," "," "," "); 18916 addsqlanywherecmds(ESqlStatementType.sstmssqlrestoreheaderonly, TBaseType.rrw_restore,"headeronly"," "," "," "," "," "); 18917 addsqlanywherecmds(ESqlStatementType.sstmssqlrestorelabelonly, TBaseType.rrw_restore,"labelonly"," "," "," "," "," "); 18918 addsqlanywherecmds(ESqlStatementType.sstmssqlrestorelog, TBaseType.rrw_restore,"log"," "," "," "," "," "); 18919 addsqlanywherecmds(ESqlStatementType.sstmssqlrestoremasterkey, TBaseType.rrw_restore,"master","key"," "," "," "," "); 18920 addsqlanywherecmds(ESqlStatementType.sstmssqlrestorerewindonly, TBaseType.rrw_restore,"rewindonly"," "," "," "," "," "); 18921 addsqlanywherecmds(ESqlStatementType.sstmssqlrestoreservicemasterkey, TBaseType.rrw_restore,"service","master","key"," "," "," "); 18922 addsqlanywherecmds(ESqlStatementType.sstmssqlrestoreverifyonly, TBaseType.rrw_restore,"verifyonly"," "," "," "," "," "); 18923//RETURN 18924 addsqlanywherecmds(ESqlStatementType.sstmssqlreturn, TBaseType.rrw_return," "," "," "," "," "," "); 18925//REVERT 18926 addsqlanywherecmds(ESqlStatementType.sstmssqlrevert, TBaseType.rrw_revert," "," "," "," "," "," "); 18927//REVOKE 18928 addsqlanywherecmds(ESqlStatementType.sstmssqlrevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 18929//ROLLBACK 18930 addsqlanywherecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 18931 addsqlanywherecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"tran"," "," "," "," "," "); 18932 addsqlanywherecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"transaction"," "," "," "," "," "); 18933 addsqlanywherecmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"work"," "," "," "," "," "); 18934//SAVE 18935 addsqlanywherecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save," "," "," "," "," "," "); 18936 addsqlanywherecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"tran"," "," "," "," "," "); 18937 addsqlanywherecmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"transaction"," "," "," "," "," "); 18938//SELECT 18939 addsqlanywherecmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 18940//SEND ON CONVERSATION 18941 addsqlanywherecmds(ESqlStatementType.sstmssqlsendonconversation, TBaseType.rrw_send,"on","conversation"," "," "," "," "); 18942//SET 18943 addsqlanywherecmds(ESqlStatementType.sstmssqlset, TBaseType.rrw_set," "," "," "," "," "," "); 18944//SET 18945 addsqlanywherecmds(ESqlStatementType.sstmssqlsetuser,TBaseType.rrw_setuser," "," "," "," "," "," "); 18946//SHUTDOWN 18947 addsqlanywherecmds(ESqlStatementType.sstmssqlshutdown, TBaseType.rrw_shutdown," "," "," "," "," "," "); 18948//SIGN 18949// addsqlanywherecmds(ESqlStatementType.sstmssqlsign, rrw_sign," "," "," "," "," "," "); 18950//TRUNCATE TABLE 18951 addsqlanywherecmds(ESqlStatementType.sstmssqltruncatetable, TBaseType.rrw_truncate,"table"," "," "," "," "," "); 18952//UPDATE 18953 addsqlanywherecmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 18954//UPDATE all STATISTICS 18955 addsqlanywherecmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"all","statistics"," "," "," "," "); 18956//UPDATE index STATISTICS 18957 addsqlanywherecmds(ESqlStatementType.sstsybaseupdateindexstatistics, TBaseType.rrw_update,"index","statistics"," "," "," "," "); 18958//UPDATE STATISTICS 18959 addsqlanywherecmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"statistics"," "," "," "," "," "); 18960//UPDATETEXT 18961 addsqlanywherecmds(ESqlStatementType.sstmssqlupdatetext, TBaseType.rrw_updatetext," "," "," "," "," "," "); 18962//USE 18963 addsqlanywherecmds(ESqlStatementType.sstmssqluse, TBaseType.rrw_use," "," "," "," "," "," "); 18964//WAITFOR 18965 addsqlanywherecmds(ESqlStatementType.sstmssqlwaitfor, TBaseType.rrw_waitfor," "," "," "," "," "," "); 18966//WHILE 18967 addsqlanywherecmds(ESqlStatementType.sstmssqlwhile, TBaseType.rrw_while," "," "," "," "," "," "); 18968//WITH, don't recongize here, let isMssqlSql do it 18969// addsqlanywherecmds(ESqlStatementType.sstMssqlCTE,rrw_WITH,' '); 18970//WITH XMLNAMESPACES 18971 addsqlanywherecmds(ESqlStatementType.sstmssqlwithxmlnamespaces, TBaseType.rrw_with,"xmlnamespaces"," "," "," "," "," "); 18972//WRITETEXT 18973 addsqlanywherecmds(ESqlStatementType.sstsybaseWritetext, TBaseType.rrw_writetext," "," "," "," "," "," "); 18974 18975} 18976 18977 // ---- SQL Anywhere fork (dbvsqlanywhere): full-family recognition; rejection of 18978 // ---- foreign statements is the parser policy layer, not this table. 18979 TCustomSqlStatement issqlanywheresql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 18980 TCustomSqlStatement ret = null; 18981 int k; 18982 boolean lcisnewsql; 18983 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 18984 18985 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 18986 18987 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 18988 || (pcst.tokencode == TBaseType.cmtslashstar) 18989 || (pcst.tokencode == TBaseType.lexspace) 18990 || (pcst.tokencode == TBaseType.lexnewline) 18991 || (pcst.tokentype == ETokenType.ttsemicolon) ) 18992 { 18993 return ret; 18994 } 18995 18996 int lcpos = pcst.posinlist; 18997 TSourceTokenList lcsourcetokenlist = pcst.container; 18998 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 18999 19000 //subquery after semicolon || at first line 19001 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 19002 { 19003 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 19004 if ( k >0 ) 19005 { 19006 ret = new TSelectSqlStatement(pdbvendor); 19007 } 19008 19009 return ret; 19010 } 19011 19012 //cte 19013 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 19014 { 19015 ret = findcte(pcst,pdbvendor); 19016 if ( (ret != null) ) return ret; 19017 } 19018 19019 gnewsqlstatementtype = findsqlanywherecmd(pcst); 19020 19021 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 19022 switch(gnewsqlstatementtype ) { // 19023 case sstinvalid: 19024 { 19025 if ( pcst.tokencode == TBaseType.mslabel ) 19026 { 19027 ret = new TMssqlLabel(pdbvendor); 19028 } 19029 else 19030 ret = null; 19031 19032 break; 19033 } 19034 case sstselect: 19035 { 19036 lcisnewsql = true; 19037 19038 if ( pstate != EFindSqlStateType.stnormal ) 19039 { 19040 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 19041 if ( (lcprevsolidtoken != null) ) 19042 { 19043 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 19044 lcisnewsql = false; //subqery 19045 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 19046 lcisnewsql = false; 19047 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 19048 lcisnewsql = false; 19049 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 19050 lcisnewsql = false; 19051 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 19052 lcisnewsql = false; 19053 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 19054 lcisnewsql = false; 19055 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 19056 { 19057 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 19058 lcisnewsql = false; 19059 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 19060 lcisnewsql = false; 19061 } 19062 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 19063 { 19064 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlset ) 19065 lcisnewsql = false; 19066 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldeclare ) 19067 lcisnewsql = false; 19068 } 19069 19070 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 19071 { 19072 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 19073 if ( (lcpprevsolidtoken != null) ) 19074 { 19075 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 19076 lcisnewsql = false; 19077 } 19078 } 19079 19080 } 19081 19082 if ( (lccurrentsqlstatement != null) ) 19083 { 19084 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 19085 { 19086 } 19087 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 19088 { 19089 if ( (lcprevsolidtoken != null) ) 19090 { 19091 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 19092 lcisnewsql = false; 19093 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 19094 lcisnewsql = false; 19095 } 19096 } else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 19097 { 19098 if ( (lcprevsolidtoken != null) ) 19099 { 19100 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 19101 lcisnewsql = false; 19102 } 19103 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 19104 lcisnewsql = false; 19105 } 19106 } 19107 19108 } 19109 19110 if ( lcisnewsql ) 19111 ret = new TSelectSqlStatement(pdbvendor); 19112 19113 break; 19114 19115 } 19116 case sstinsert: 19117 { 19118 lcisnewsql = true; 19119 if ( pstate != EFindSqlStateType.stnormal ) 19120 { 19121 if ( (lccurrentsqlstatement != null) ) 19122 { 19123 // merge 19124 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 19125 { 19126 if (lcprevsolidtoken != null) 19127 { 19128 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 19129 {lcisnewsql = false;} 19130 } 19131 } 19132 19133 // bulk insert 19134 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlbulkinsert ) 19135 { 19136 if ( (lcprevsolidtoken != null) ) 19137 { 19138 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_bulk ) 19139 lcisnewsql = false; 19140 } 19141 } 19142 19143 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 19144 { 19145 if ( (lcprevsolidtoken != null) ) 19146 { 19147 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 19148 lcisnewsql = false; 19149 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 19150 lcisnewsql = false; 19151 } 19152 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) { 19153 if ( (lcprevsolidtoken != null) ) 19154 { 19155 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 19156 lcisnewsql = false; 19157 } 19158 } 19159 19160 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 19161 { 19162 if ( (lcprevsolidtoken != null) ) 19163 { 19164 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 19165 lcisnewsql = false; 19166 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 19167 lcisnewsql = false; 19168 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 19169 lcisnewsql = false; 19170 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 19171 lcisnewsql = false; 19172 } 19173 } 19174 19175 19176 } 19177 } 19178 19179 if ( lcisnewsql ) 19180 { 19181 ret = new TInsertSqlStatement(pdbvendor); 19182 ret.dummytag = 1; // select stmt in insert is permitted 19183 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 19184 { 19185 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 19186 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 19187 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 19188 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 19189 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ) break; 19190 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 19191 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 19192 } // for ( 19193 if ( k > lcsourcetokenlist.size() - 1 ) 19194 k = lcsourcetokenlist.size() - 1; 19195 19196 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 19197 { 19198 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 19199 } // for ( 19200 19201 } 19202 19203 break; 19204 } 19205 case sstsybaseInsertBulk: 19206 { 19207 ret = new TInsertBulk(pdbvendor); 19208 break; 19209 } 19210 case sstupdate: 19211 { 19212 lcisnewsql = true; 19213 if ( pstate != EFindSqlStateType.stnormal ) 19214 { 19215 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 19216 if ( (lcprevsolidtoken != null) ) 19217 { // 19218 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 19219 lcisnewsql = false; 19220 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 19221 lcisnewsql = false; 19222 } 19223 19224 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 19225 if ( TBaseType.assigned(lcnextsolidtoken) ) 19226 { 19227 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 19228 { 19229 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 19230 if ( k == 0 ) lcisnewsql = false; 19231 } 19232 } 19233 19234 19235 if ( TBaseType.assigned(lccurrentsqlstatement) ) 19236 { 19237 // merge 19238 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 19239 { 19240 if (lcprevsolidtoken != null) 19241 { 19242 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 19243 {lcisnewsql = false;} 19244 } 19245 } 19246 19247 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 19248 { 19249 if ( TBaseType.assigned(lcprevsolidtoken) ) 19250 { 19251 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 19252 lcisnewsql = false; 19253 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 19254 lcisnewsql = false; 19255 } 19256 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 19257 { 19258 if ( TBaseType.assigned(lcprevsolidtoken) ) 19259 { 19260 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 19261 lcisnewsql = false; 19262 } 19263 } 19264 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 19265 { 19266 if ( TBaseType.assigned(lcprevsolidtoken) ) 19267 { 19268 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 19269 lcisnewsql = false; 19270 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 19271 lcisnewsql = false; 19272 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 19273 lcisnewsql = false; 19274 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 19275 lcisnewsql = false; 19276 } 19277 } 19278 19279 } 19280 } 19281 19282 if ( lcisnewsql ) 19283 { 19284 ret = new TUpdateSqlStatement(pdbvendor); 19285 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 19286 } 19287 19288 break; 19289 } 19290 case sstdelete: 19291 { 19292 lcisnewsql = true; 19293 19294 if ( pstate != EFindSqlStateType.stnormal ) 19295 { 19296 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 19297 if ( TBaseType.assigned(lcprevsolidtoken) ) 19298 { 19299 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 19300 lcisnewsql = false; 19301 } 19302 19303 if ( TBaseType.assigned(lccurrentsqlstatement) ) 19304 { 19305 // merge 19306 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 19307 { 19308 if (lcprevsolidtoken != null) 19309 { 19310 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 19311 {lcisnewsql = false;} 19312 } 19313 } 19314 19315 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 19316 { 19317 if ( TBaseType.assigned(lcprevsolidtoken) ) 19318 { 19319 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 19320 lcisnewsql = false; 19321 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 19322 lcisnewsql = false; 19323 } 19324 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 19325 { 19326 if ( TBaseType.assigned(lcprevsolidtoken) ) 19327 { 19328 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 19329 lcisnewsql = false; 19330 } 19331 } 19332 19333 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 19334 { 19335 if ( TBaseType.assigned(lcprevsolidtoken) ) 19336 { 19337 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 19338 lcisnewsql = false; 19339 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 19340 lcisnewsql = false; 19341 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 19342 lcisnewsql = false; 19343 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 19344 lcisnewsql = false; 19345 } 19346 } 19347 19348 } 19349 } 19350 19351 if ( lcisnewsql ) 19352 ret = new TDeleteSqlStatement(pdbvendor); 19353 19354 break; 19355 } 19356 case sstcreatetable: 19357 { 19358 ret = new TCreateTableSqlStatement(pdbvendor); 19359 break; 19360 } 19361 case sstcreateview: 19362 { 19363 ret = new TCreateViewSqlStatement(pdbvendor); 19364 break; 19365 } 19366 case sstaltertable: 19367 { 19368 ret = new TAlterTableStatement(pdbvendor); 19369 break; 19370 } 19371 case sstmssqlfetch: 19372 { 19373 ret = new TMssqlFetch(pdbvendor); 19374 break; 19375 } 19376 case sstmssqlif : 19377 { 19378 lcisnewsql = true; 19379 if ((lccurrentsqlstatement != null) && ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldropprocedure )) 19380 {lcisnewsql = false;} 19381 // `DROP TABLE IF EXISTS t` and friends: the IF belongs to the DROP. 19382 // Mirrors TSqlCmds<Vendor>.isDropIfExistsContext in the modular 19383 // providers, which this monolithic path is the fallback for. 19384 if (lcisnewsql && DropIfExistsSupport.isDropIfExistsContext(pcst, lcsourcetokenlist.solidtokenbefore(lcpos))) 19385 {lcisnewsql = false;} 19386 if (lcisnewsql){ 19387 ret = new TMssqlIfElse(pdbvendor); 19388 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 19389 } 19390 19391 break; 19392 } 19393 case sstmssqlwhile: 19394 { 19395 ret = new TMssqlIfElse(pdbvendor); 19396 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 19397 break; 19398 } 19399 case sstmssqlcreateprocedure : 19400 case sstmssqlalterprocedure: 19401 { 19402 ret = new TMssqlCreateProcedure(pdbvendor); 19403 break; 19404 } 19405 case sstmssqlcreatefunction : 19406 case sstmssqlalterfunction: 19407 { 19408 ret = new TMssqlCreateFunction(pdbvendor); 19409 break; 19410 } 19411 case sstcreatetrigger : 19412 case sstmssqlaltertrigger: 19413 { 19414 ret = new TCreateTriggerStmt(pdbvendor); 19415 break; 19416 } 19417 case sstmssqlreturn: 19418 { 19419 ret = new TMssqlReturn(pdbvendor); 19420 break; 19421 } 19422 case sstmssqlprint: 19423 { 19424 ret = new TMssqlPrint(pdbvendor); 19425 break; 19426 } 19427 case sstmssqluse: 19428 { 19429 ret = new TUseDatabase(pdbvendor); 19430 break; 19431 } 19432 case sstmssqlgo: 19433 { 19434 ret = new TMssqlGo(pdbvendor); 19435 break; 19436 } 19437 case sstmssqlrevert: 19438 { 19439 ret = new TMssqlRevert(pdbvendor); 19440 break; 19441 } 19442 case sstmssqlgrant: 19443 { 19444 lcisnewsql = true; 19445 // prev tokentext can't be with 19446 if ( pstate != EFindSqlStateType.stnormal ) 19447 { 19448 if ( TBaseType.assigned(lcprevsolidtoken) ) 19449 { 19450 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 19451 { 19452 ret = null; 19453 lcisnewsql = false; 19454 } 19455 } 19456 } 19457 if ( lcisnewsql ) 19458 { 19459 ret = new TGrantStmt(pdbvendor); 19460 //ret.sqlstatementtype = gnewsqlstatementtype; 19461 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 19462 { 19463 lctoken = lcsourcetokenlist.get(k); 19464 if (lctoken.isnonsolidtoken() ) continue; 19465 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 19466 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 19467 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 19468 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 19469 } 19470 } 19471 break; 19472 } 19473 case sstmssqldeclare: 19474 { 19475 ret = new TMssqlDeclare(pdbvendor); 19476 break; 19477 } 19478 case sstmssqlcontinue: 19479 { 19480 lcisnewsql = true; 19481 if ((lccurrentsqlstatement != null) && ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstload )) 19482 {lcisnewsql = false;} 19483 if (lcisnewsql){ 19484 ret = new TMssqlContinue(pdbvendor); 19485 } 19486 19487 break; 19488 } 19489 case sstbreak: 19490 { 19491 ret = new TBreakStmt(pdbvendor); 19492 break; 19493 } 19494 case sstmssqlopen: 19495 { 19496 ret = new TMssqlOpen(pdbvendor); 19497 break; 19498 } 19499 case sstmssqlclose: 19500 { 19501 ret = new TMssqlClose(pdbvendor); 19502 break; 19503 } 19504 case sstmssqlbulkinsert: 19505 { 19506 ret = new TMssqlBulkInsert(pdbvendor); 19507 break; 19508 } 19509 case sstmssqldeallocate: 19510 { 19511 ret = new TMssqlDeallocate(pdbvendor); 19512 break; 19513 } 19514 case sstmssqlraiserror: 19515 { 19516 ret = new TMssqlRaiserror(pdbvendor); 19517 break; 19518 } 19519 case sstmssqlgoto: 19520 { 19521 ret = new TMssqlGoTo(pdbvendor); 19522 break; 19523 } 19524 case sstmssqldropview: 19525 { 19526 ret = new TDropViewSqlStatement(pdbvendor); 19527 break; 19528 } 19529 case sstmssqldroptable: 19530 { 19531 ret = new TDropTableSqlStatement(pdbvendor); 19532 break; 19533 } 19534 case sstmssqldropindex: 19535 { 19536 ret = new TDropIndexSqlStatement(pdbvendor); 19537 break; 19538 } 19539 case sstmssqldroppartitionscheme : 19540 ret = new TDropPartitionSchemeStmt(pdbvendor); 19541 break; 19542 19543 case sstmssqldropaggregate : 19544 case sstmssqldropapplicationrole : 19545 case sstmssqldropassembly : 19546 case sstmssqldropasymmetrickey : 19547 case sstmssqldropcertificate : 19548 case sstmssqldropcontract : 19549 case sstmssqldropcredential : 19550 case sstmssqldropdefault : 19551 case sstmssqldropendpoint : 19552 case sstmssqldropeventnotification : 19553 case sstmssqldropfulltextcatalog : 19554 case sstmssqldropfulltextindex : 19555 case sstmssqldropfunction : 19556 case sstmssqldroplogin : 19557 case sstmssqldropmasterkey : 19558 case sstmssqldropmessagetype : 19559 case sstmssqldroppartitionfunction : 19560 case sstmssqldropprocedure : 19561 case sstmssqldropqueue : 19562 case sstmssqldropremoteservicebinding : 19563 case sstmssqldroprole : 19564 case sstmssqldroproute : 19565 case sstmssqldroprule : 19566 case sstmssqldropschema : 19567 case sstmssqldropservice : 19568 case sstmssqldropsignature: 19569 case sstmssqldropstatistics : 19570 case sstmssqldropsymmetrickey : 19571 case sstmssqldroptrigger : 19572 case sstmssqldroptype : 19573 case sstmssqldropuser : 19574 case sstmssqldropxmlschemacollection: 19575 case sstmssqldropdatabase : 19576 { 19577 ret = new TMssqlDropDbObject(EDbVendor.dbvsqlanywhere); 19578 ret.sqlstatementtype = gnewsqlstatementtype; 19579 break; 19580 } 19581 case sstmssqldropsynonym : 19582 { 19583 ret = new TDropSynonymStmt(pdbvendor); 19584 break; 19585 } 19586 case sstmssqltruncatetable: 19587 { 19588 ret = new TTruncateStatement(pdbvendor); 19589 break; 19590 } 19591 case sstmssqlbegintran: 19592 { 19593 ret = new TBeginTran(pdbvendor); 19594 break; 19595 } 19596 case sstmssqlsavetran: 19597 { 19598 ret = new TMssqlSaveTran(pdbvendor); 19599 break; 19600 } 19601 case sstmssqlcommit: 19602 { 19603 lcisnewsql = true; 19604 19605 if ( TBaseType.assigned(lcprevsolidtoken) ) 19606 { 19607 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 19608 { 19609 19610 lcisnewsql = false; 19611 } 19612 } 19613 19614 if (lcisnewsql){ 19615 ret = new TMssqlCommit(pdbvendor); 19616 } 19617 19618 break; 19619 } 19620 case sstmssqlrollback: 19621 { 19622 ret = new TMssqlRollback(pdbvendor); 19623 break; 19624 } 19625 case sstmssqlreadtext : 19626 case sstmssqldbcc : 19627 case sstmssqlrestore : 19628 case sstmssqlbackup : 19629 { 19630 ret = new TMssqlDummyStmt(pdbvendor); 19631 ret.sqlstatementtype = gnewsqlstatementtype; 19632 break; 19633 } 19634 case sstcreateindex: 19635 { 19636 ret = new TCreateIndexSqlStatement(pdbvendor); 19637 break; 19638 } 19639 case sstmssqlwaitfor: 19640 { 19641 ret = new TMssqlWaitFor(pdbvendor); 19642 break; 19643 } 19644 case sstmerge: 19645 { 19646 lcisnewsql = true; 19647 19648 if (pstate != EFindSqlStateType.stnormal) 19649 { 19650 19651 if (lccurrentsqlstatement != null) 19652 { 19653 // merge union, merge join 19654 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 19655 { 19656 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 19657 if (lcnextsolidtoken != null) 19658 { 19659 if ((lcnextsolidtoken.tokencode == TBaseType.rrw_union) || (lcnextsolidtoken.tokencode == TBaseType.rrw_join)) 19660 { 19661 lcisnewsql = false; 19662 } 19663 } 19664 } 19665 19666 } 19667 19668 TSourceToken lcnexttoken = lcsourcetokenlist.nextsolidtoken(lcpos, 1, false); 19669 if ( (lcnexttoken != null) ) 19670 { 19671 if ( lcnexttoken.tokencode == TBaseType.rrw_sybase_partition ) 19672 lcisnewsql = false; 19673 } 19674 19675 } 19676 19677 if (lcisnewsql) 19678 { 19679 ret = new TMergeSqlStatement(pdbvendor); 19680 ret.sqlstatementtype = gnewsqlstatementtype; 19681 } 19682 19683 break; 19684 } 19685 case sstmssqlbegintry : 19686 case sstmssqlbegincatch: 19687 { 19688 ret = new TMssqlBlock(pdbvendor); 19689 ret.sqlstatementtype = gnewsqlstatementtype; 19690 break; 19691 } 19692 case sstmssqlexec: 19693 { 19694 lcisnewsql = true; 19695 // prev tokentext can't be with 19696 if ( pstate != EFindSqlStateType.stnormal ) 19697 { 19698 if ( TBaseType.assigned(lccurrentsqlstatement) ) 19699 { 19700 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 19701 { 19702 if ( lccurrentsqlstatement.dummytag == 1 ) 19703 { 19704 lcisnewsql = false; 19705 lccurrentsqlstatement.dummytag = 0; // no select is permited after it 19706 } 19707 } 19708 19709 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 19710 { 19711 if ( TBaseType.assigned(lcprevsolidtoken) ) 19712 { 19713 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 19714 lcisnewsql = false; 19715 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 19716 lcisnewsql = false; 19717 } 19718 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ){ 19719 if ( TBaseType.assigned(lcprevsolidtoken) ) 19720 { 19721 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 19722 lcisnewsql = false; 19723 } 19724 } 19725 19726 19727 19728 if ( 19729 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 19730 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 19731 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 19732 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 19733 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 19734 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 19735 ) 19736 { 19737 if ( TBaseType.assigned(lcprevsolidtoken) ) 19738 { 19739 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 19740 lcisnewsql = false; 19741 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 19742 lcisnewsql = false; 19743 } 19744 } 19745 } 19746 } 19747 if ( lcisnewsql ) 19748 { 19749 ret = new TMssqlExecute(pdbvendor); 19750 } 19751 break; 19752 } 19753 case sstmssqlexecuteas: 19754 { 19755 lcisnewsql = true; 19756 // prev tokentext can't be with 19757 if ( pstate != EFindSqlStateType.stnormal ) 19758 { 19759 if ( TBaseType.assigned(lccurrentsqlstatement) ) 19760 { 19761 if ( 19762 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 19763 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 19764 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 19765 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 19766 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 19767 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 19768 ) 19769 { 19770 if ( TBaseType.assigned(lcprevsolidtoken) ) 19771 { 19772 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 19773 lcisnewsql = false; 19774 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 19775 lcisnewsql = false; 19776 } 19777 } 19778 } 19779 } 19780 if ( lcisnewsql ) 19781 { 19782 ret = new TMssqlExecuteAs(pdbvendor); 19783 ret.sqlstatementtype = gnewsqlstatementtype; 19784 } 19785 break; 19786 } 19787 case sstmssqlset: 19788 { 19789 lcisnewsql = true; 19790 if ( pstate != EFindSqlStateType.stnormal ) 19791 { 19792 if ( TBaseType.assigned(lccurrentsqlstatement) ) 19793 { 19794 19795 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlif) 19796 { 19797 TSourceToken lcPPToken = lcsourcetokenlist.searchToken(TBaseType.rrw_update,"",pcst,-10); 19798 if (TBaseType.assigned(lcPPToken)) 19799 { 19800 lcisnewsql = false; 19801 } 19802 } 19803 19804 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 19805 { 19806 if (lcprevsolidtoken != null) 19807 { 19808 if (lcprevsolidtoken.tokencode == TBaseType.rrw_update){ 19809 lcisnewsql = false;} 19810 } 19811 } 19812 19813 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstupdate ) 19814 { 19815 if ( lccurrentsqlstatement.dummytag == 1 ) 19816 { 19817 //update statement still find set clause yet, so this is setclause in update statement 19818 lccurrentsqlstatement.dummytag = 0; 19819 lcisnewsql = false; 19820 } 19821 } 19822 } 19823 19824 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 19825 if ( TBaseType.assigned(lcnextsolidtoken) ) 19826 { //set null, set default 19827 if ( (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(),"null")==0) 19828 || (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(), "default")==0) ) 19829 { 19830 lcisnewsql = false; 19831 } 19832 } 19833 19834 } 19835 19836 if ( lcisnewsql ) 19837 { 19838 ret = new TMssqlSet(pdbvendor); 19839 } 19840 19841 break; 19842 } 19843 case sstmssqlupdatetext: 19844 { 19845 ret = new TMssqlUpdateText(pdbvendor); 19846 break; 19847 } 19848 case sstmssqlendconversation: 19849 { 19850 ret = new TMssqlEndConversation(pdbvendor); 19851 break; 19852 } 19853 case sstmssqlbegindialog: 19854 { 19855 ret = new TMssqlBeginDialog(pdbvendor); 19856 break; 19857 } 19858 case sstmssqlsendonconversation: 19859 { 19860 ret = new TMssqlSendOnConversation(pdbvendor); 19861 break; 19862 } 19863 case sstmssqldisabletrigger : 19864 case sstmssqlenabletrigger: 19865 { 19866 lcisnewsql = true; 19867 if ( TBaseType.assigned(lccurrentsqlstatement) ) 19868 { 19869 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable ) 19870 lcisnewsql = false; 19871 } 19872 19873 if ( lcisnewsql ) 19874 { 19875 ret = new TDisableEnableTriggerStmt(pdbvendor); 19876 ret.sqlstatementtype = gnewsqlstatementtype; 19877 } 19878 break; 19879 } 19880 case sstsybaseWritetext: 19881 { 19882 ret = new TSybaseWritetext(pdbvendor); 19883 break; 19884 } 19885 case sstsybaseDeleteStatistics: 19886 { 19887 ret = new TSybaseDeleteStatistics(pdbvendor); 19888 break; 19889 } 19890 case sstcall: 19891 { 19892 ret = new TCallStatement(pdbvendor); 19893 break; 19894 } 19895 default: 19896 { 19897 ret = new TUnknownSqlStatement(pdbvendor); 19898 ret.sqlstatementtype = gnewsqlstatementtype; 19899 break; 19900 } 19901 } // case 19902 19903 return ret; 19904 } 19905 19906 // ---- SQL Anywhere fork (dbvsqlanywhere): full-family recognition; rejection of 19907 // ---- foreign statements is the parser policy layer, not this table. 19908public ESqlStatementType findsqlanywherecmdusedbyyacc(TSourceToken pcst){ 19909 ESqlStatementType ret = ESqlStatementType.sstinvalid; 19910 19911 int lcpos = pcst.posinlist; 19912 TSourceTokenList lcsourcetokenlist = pcst.container; 19913 19914 //subquery after semicolon or at first line 19915 if ( (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 19916 { 19917 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 19918 if ( k >0 ) 19919 { 19920 ret = ESqlStatementType.sstselect; 19921 } 19922 19923 return ret; 19924 } 19925 19926 19927 ret = findsqlanywherecmd(pcst); 19928 // execute can't be used to delimite other sql 19929 if ( ret == ESqlStatementType.sstmssqlexec ) 19930 ret = ESqlStatementType.sstinvalid; 19931 19932 return ret; 19933} 19934 19935 // ---- Sybase IQ fork (dbvsybaseiq): full-family recognition; rejection of 19936 // ---- foreign statements is the parser policy layer, not this table. 19937void initsybaseiqcmds(){ 19938// cmd must be sort alphabetically 19939 addsybaseiqcmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"counter","signature"," "," "," "," "); 19940 addsybaseiqcmds(ESqlStatementType.sstmssqladdsignature, TBaseType.rrw_add,"signature"," "," "," "," "," "); 19941//alter 19942 addsybaseiqcmds(ESqlStatementType.sstmssqlalterapplicationrole, TBaseType.rrw_alter,"application","role"," "," "," "," "); 19943 addsybaseiqcmds(ESqlStatementType.sstmssqlalterassembly, TBaseType.rrw_alter,"assembly"," "," "," "," "," "); 19944 addsybaseiqcmds(ESqlStatementType.sstmssqlalterasymmetrickey, TBaseType.rrw_alter,"asymmetric","key"," "," "," "," "); 19945 addsybaseiqcmds(ESqlStatementType.sstmssqlalterauthorization, TBaseType.rrw_alter,"authorization"," "," "," "," "," "); 19946 addsybaseiqcmds(ESqlStatementType.sstmssqlaltercertificate, TBaseType.rrw_alter,"certificate"," "," "," "," "," "); 19947 addsybaseiqcmds(ESqlStatementType.sstmssqlaltercredential, TBaseType.rrw_alter,"credential"," "," "," "," "," "); 19948 addsybaseiqcmds(ESqlStatementType.sstmssqlalterdatabase, TBaseType.rrw_alter,"database"," "," "," "," "," "); 19949 addsybaseiqcmds(ESqlStatementType.sstsybasealterdbspace, TBaseType.rrw_alter,"dbspace"," "," "," "," "," "); 19950 addsybaseiqcmds(ESqlStatementType.sstsybasealterdomain, TBaseType.rrw_alter,"domain"," "," "," "," "," "); 19951 addsybaseiqcmds(ESqlStatementType.sstmssqlalterendpoint, TBaseType.rrw_alter,"endpoint"," "," "," "," "," "); 19952 addsybaseiqcmds(ESqlStatementType.sstmssqlalterfulltextcatalog, TBaseType.rrw_alter,"fulltext","catalog"," "," "," "," "); 19953 addsybaseiqcmds(ESqlStatementType.sstmssqlalterfulltextindex, TBaseType.rrw_alter,"fulltext","index"," "," "," "," "); 19954 addsybaseiqcmds(ESqlStatementType.sstmssqlalterfunction, TBaseType.rrw_alter,"function"," "," "," "," "," "); 19955 addsybaseiqcmds(ESqlStatementType.sstmssqlalterindex, TBaseType.rrw_alter,"index"," "," "," "," "," "); 19956 addsybaseiqcmds(ESqlStatementType.sstmssqlalterlogin, TBaseType.rrw_alter,"login"," "," "," "," "," "); 19957 addsybaseiqcmds(ESqlStatementType.sstmssqlaltermasterkey, TBaseType.rrw_alter,"master","key"," "," "," "," "); 19958 addsybaseiqcmds(ESqlStatementType.sstmssqlaltermessagetype, TBaseType.rrw_alter,"message","type"," "," "," "," "); 19959 addsybaseiqcmds(ESqlStatementType.sstmssqlalterpartitionfunction, TBaseType.rrw_alter,"partition","function"," "," "," "," "); 19960 addsybaseiqcmds(ESqlStatementType.sstmssqlalterpartitionscheme, TBaseType.rrw_alter,"partition","scheme"," "," "," "," "); 19961 addsybaseiqcmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"proc"," "," "," "," "," "); 19962 addsybaseiqcmds(ESqlStatementType.sstmssqlalterprocedure, TBaseType.rrw_alter,"procedure"," "," "," "," "," "); 19963 addsybaseiqcmds(ESqlStatementType.sstmssqlalterqueue, TBaseType.rrw_alter,"queue"," "," "," "," "," "); 19964 addsybaseiqcmds(ESqlStatementType.sstmssqlalterremoteservicebinding, TBaseType.rrw_alter,"remote","service","binding"," "," "," "); 19965 addsybaseiqcmds(ESqlStatementType.sstmssqlalterrole, TBaseType.rrw_alter,"role"," "," "," "," "," "); 19966 addsybaseiqcmds(ESqlStatementType.sstmssqlalterroute, TBaseType.rrw_alter,"route"," "," "," "," "," "); 19967 addsybaseiqcmds(ESqlStatementType.sstmssqlalterschema, TBaseType.rrw_alter,"schema"," "," "," "," "," "); 19968 addsybaseiqcmds(ESqlStatementType.sstsybasealterserver, TBaseType.rrw_alter,"server"," "," "," "," "," "); 19969 addsybaseiqcmds(ESqlStatementType.sstmssqlalterservice, TBaseType.rrw_alter,"service"," "," "," "," "," "); 19970 addsybaseiqcmds(ESqlStatementType.sstmssqlalterservicemasterkey, TBaseType.rrw_alter,"service","master","key"," "," "," "); 19971 addsybaseiqcmds(ESqlStatementType.sstmssqlaltersymmetrickey, TBaseType.rrw_alter,"symmetric","key"," "," "," "," "); 19972 addsybaseiqcmds(ESqlStatementType.sstaltertable, TBaseType.rrw_alter,"table"," "," "," "," "," "); 19973 addsybaseiqcmds(ESqlStatementType.sstmssqlaltertrigger, TBaseType.rrw_alter,"trigger"," "," "," "," "," "); 19974 addsybaseiqcmds(ESqlStatementType.sstmssqlalteruser, TBaseType.rrw_alter,"user"," "," "," "," "," "); 19975 addsybaseiqcmds(ESqlStatementType.sstmssqlalterview, TBaseType.rrw_alter,"view"," "," "," "," "," "); 19976 addsybaseiqcmds(ESqlStatementType.sstmssqlalterxmlschemacollection, TBaseType.rrw_alter,"xml","schema","collection"," "," "," "); 19977//backup 19978 addsybaseiqcmds(ESqlStatementType.sstmssqlbackupdatabase, TBaseType.rrw_backup,"database"," "," "," "," "," "); 19979 addsybaseiqcmds(ESqlStatementType.sstmssqlbackupcertificate, TBaseType.rrw_backup,"certificate"," "," "," "," "," "); 19980 addsybaseiqcmds(ESqlStatementType.sstmssqlbackuplog, TBaseType.rrw_backup,"log"," "," "," "," "," "); 19981 addsybaseiqcmds(ESqlStatementType.sstmssqlbackupmasterkey, TBaseType.rrw_backup,"master","key"," "," "," "," "); 19982 addsybaseiqcmds(ESqlStatementType.sstmssqlbackupservicemasterkey, TBaseType.rrw_backup,"service","master","key"," "," "," "); 19983//begin 19984 addsybaseiqcmds(ESqlStatementType.sstmssqlbegincatch, TBaseType.rrw_begin,"catch"," "," "," "," "," "); 19985 addsybaseiqcmds(ESqlStatementType.sstmssqlbeginconversationtimer, TBaseType.rrw_begin,"conversation","timer"," "," "," "," "); 19986 addsybaseiqcmds(ESqlStatementType.sstmssqlbegindialog, TBaseType.rrw_begin,"dialog"," "," "," "," "," "); 19987 addsybaseiqcmds(ESqlStatementType.sstmssqlbegindistributed, TBaseType.rrw_begin,"distributed"," "," "," "," "," "); 19988 addsybaseiqcmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"tran"," "," "," "," "," "); 19989 addsybaseiqcmds(ESqlStatementType.sstmssqlbegintran, TBaseType.rrw_begin,"transaction"," "," "," "," "," "); 19990 addsybaseiqcmds(ESqlStatementType.sstmssqlbegintry, TBaseType.rrw_begin,"try"," "," "," "," "," "); 19991//break 19992 addsybaseiqcmds(ESqlStatementType.sstbreak, TBaseType.rrw_break," "," "," "," "," "," "); 19993//bulk insert 19994 addsybaseiqcmds(ESqlStatementType.sstmssqlbulkinsert, TBaseType.rrw_bulk,"insert"," "," "," "," "," "); 19995 19996 addsybaseiqcmds(ESqlStatementType.sstcall, TBaseType.rrw_call," "," "," "," "," "," "); 19997 19998//checkpoint 19999 addsybaseiqcmds(ESqlStatementType.sstmssqlcheckpoint, TBaseType.rrw_checkpoint," "," "," "," "," "," "); 20000//close 20001 addsybaseiqcmds(ESqlStatementType.sstmssqlclose, TBaseType.rrw_close," "," "," "," "," "," "); 20002 addsybaseiqcmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"all", "symmetric", "keys"," "," "," "); 20003 addsybaseiqcmds(ESqlStatementType.sstmssqlclosemasterkey, TBaseType.rrw_close,"master", "key"," "," "," "," "); 20004 addsybaseiqcmds(ESqlStatementType.sstmssqlclosesymmetrickey, TBaseType.rrw_close,"symmetric", "key"," "," "," "," "); 20005//commit 20006 addsybaseiqcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit," "," "," "," "," "," "); 20007 addsybaseiqcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"work"," "," "," "," "," "); 20008 addsybaseiqcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"tran"," "," "," "," "," "); 20009 addsybaseiqcmds(ESqlStatementType.sstmssqlcommit, TBaseType.rrw_commit,"transaction"," "," "," "," "," "); 20010//continue 20011 addsybaseiqcmds(ESqlStatementType.sstmssqlcontinue, TBaseType.rrw_continue," "," "," "," "," "," "); 20012//create 20013 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateaggregate, TBaseType.rrw_create,"aggregate"," "," "," "," "," "); 20014 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateapplicationrole, TBaseType.rrw_create,"application", "role"," "," "," "," "); 20015 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateassembly, TBaseType.rrw_create,"assembly"," "," "," "," "," "); 20016 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateasymmetrickey, TBaseType.rrw_create,"asymmetric", "key"," "," "," "," "); 20017 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatecertificate, TBaseType.rrw_create,"certificate"," "," "," "," "," "); 20018 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"clustered","index"," "," "," "," "); 20019 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatecontract, TBaseType.rrw_create,"contract"," "," "," "," "," "); 20020 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatecredential, TBaseType.rrw_create,"credential"," "," "," "," "," "); 20021 addsybaseiqcmds(ESqlStatementType.sstcreatedatabase, TBaseType.rrw_create,"database"," "," "," "," "," "); 20022 addsybaseiqcmds(ESqlStatementType.sstsybasecreatedbspace, TBaseType.rrw_create,"dbspace"," "," "," "," "," "); 20023 addsybaseiqcmds(ESqlStatementType.sstsybasecreatedomain, TBaseType.rrw_create,"domain"," "," "," "," "," "); 20024 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatedefault, TBaseType.rrw_create,"default"," "," "," "," "," "); 20025 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateendpoint, TBaseType.rrw_create,"endpoint"," "," "," "," "," "); 20026 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateeventnotification, TBaseType.rrw_create,"event", "notification"," "," "," "," "); 20027 addsybaseiqcmds(ESqlStatementType.sstsybasecreateexistingtable, TBaseType.rrw_create,"existing","table"," "," "," "," "); 20028 addsybaseiqcmds(ESqlStatementType.sstsybasecreateexternlogin, TBaseType.rrw_create,"externlogin"," "," "," "," "," "); 20029 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatefulltextcatalog, TBaseType.rrw_create,"fulltext", "catalog"," "," "," "," "); 20030 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatefulltextindex, TBaseType.rrw_create,"fulltext", "index"," "," "," "," "); 20031 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"function"," "," "," "," "," "); 20032 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"index"," "," "," "," "," "); 20033 addsybaseiqcmds(ESqlStatementType.sstsybasecreatejoinindex, TBaseType.rrw_create,"join","index"," "," "," "," "); 20034 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatelogin, TBaseType.rrw_create,"login"," "," "," "," "," "); 20035 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatemasterkey, TBaseType.rrw_create,"master","key"," "," "," "," "); 20036 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatemessagetype, TBaseType.rrw_create,"message","type"," "," "," "," "); 20037 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"nonclustered","index"," "," "," "," "); 20038 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatefunction, TBaseType.rrw_create,"or","replace","function"," "," "," "); 20039 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","replace","proc"," "," "," "); 20040 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"or","replace","procedure"," "," "," "); 20041 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatepartitionfunction, TBaseType.rrw_create,"partition","function"," "," "," "," "); 20042 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatepartitionscheme, TBaseType.rrw_create,"partition","scheme"," "," "," "," "); 20043 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"proc"," "," "," "," "," "); 20044 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateprocedure, TBaseType.rrw_create,"procedure"," "," "," "," "," "); 20045 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatequeue, TBaseType.rrw_create,"queue"," "," "," "," "," "); 20046 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateremoteservicebinding, TBaseType.rrw_create,"remote", "service", "binding"," "," "," "); 20047 addsybaseiqcmds(ESqlStatementType.sstmssqlcreaterole, TBaseType.rrw_create,"role"," "," "," "," "," "); 20048 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateroute, TBaseType.rrw_create,"route"," "," "," "," "," "); 20049 addsybaseiqcmds(ESqlStatementType.sstmssqlcreaterule, TBaseType.rrw_create,"rule"," "," "," "," "," "); 20050 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateschema, TBaseType.rrw_create,"schema"," "," "," "," "," "); 20051 addsybaseiqcmds(ESqlStatementType.sstsybasecreateserver, TBaseType.rrw_create,"server"," "," "," "," "," "); 20052 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateservice, TBaseType.rrw_create,"service"," "," "," "," "," "); 20053 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatestatistics, TBaseType.rrw_create,"statistics"," "," "," "," "," "); 20054 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatesymmetrickey, TBaseType.rrw_create,"symmetric", "key"," "," "," "," "); 20055 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatesynonym, TBaseType.rrw_create,"synonym"," "," "," "," "," "); 20056 addsybaseiqcmds(ESqlStatementType.sstcreatetable, TBaseType.rrw_create,"table"," "," "," "," "," "); 20057 addsybaseiqcmds(ESqlStatementType.sstcreatetrigger, TBaseType.rrw_create,"trigger"," "," "," "," "," "); 20058 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatetype, TBaseType.rrw_create,"type"," "," "," "," "," "); 20059 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"cmp","index"," "," "," "," "); 20060 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"date","index"," "," "," "," "); 20061 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"dttm","index"," "," "," "," "); 20062 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"hg","index"," "," "," "," "); 20063 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"hng","index"," "," "," "," "); 20064 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"lf","index"," "," "," "," "); 20065 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"time","index"," "," "," "," "); 20066 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"wd","index"," "," "," "," "); 20067 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","clustered","index"," "," "," "); 20068 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","index"," "," "," "," "); 20069 addsybaseiqcmds(ESqlStatementType.sstcreateindex, TBaseType.rrw_create,"unique","nonclustered","index"," "," "," "); 20070 addsybaseiqcmds(ESqlStatementType.sstmssqlcreateuser, TBaseType.rrw_create,"user"," "," "," "," "," "); 20071 addsybaseiqcmds(ESqlStatementType.sstsybasecreatevariable, TBaseType.rrw_create,"variable"," "," "," "," "," "); 20072 addsybaseiqcmds(ESqlStatementType.sstcreateview, TBaseType.rrw_create,"view"," "," "," "," "," "); 20073 addsybaseiqcmds(ESqlStatementType.sstmssqlcreatexmlschemacollection, TBaseType.rrw_create,"xml", "schema", "collection"," "," "," "); 20074// DBCC 20075 addsybaseiqcmds(ESqlStatementType.sstmssqldbcc, TBaseType.rrw_dbcc," "," "," "," "," "," "); 20076//DEALLOCATE 20077 addsybaseiqcmds(ESqlStatementType.sstmssqldeallocate, TBaseType.rrw_deallocate," "," "," "," "," "," "); 20078//DECLARE 20079 addsybaseiqcmds(ESqlStatementType.sstsybasedeallocatedescriptor, TBaseType.rrw_deallocate,"descriptor"," "," "," "," "," "); 20080 addsybaseiqcmds(ESqlStatementType.sstmssqldeclare, TBaseType.rrw_declare," "," "," "," "," "," "); 20081//DELETE 20082 addsybaseiqcmds(ESqlStatementType.sstsybasedeclarelocaltemptable, TBaseType.rrw_declare,"local","temporary","table"," "," "," "); 20083 addsybaseiqcmds(ESqlStatementType.sstdelete, TBaseType.rrw_delete," "," "," "," "," "," "); 20084 20085//DELETE statistics 20086 addsybaseiqcmds(ESqlStatementType.sstsybaseDeleteStatistics, TBaseType.rrw_delete,"shared","statistics"," "," "," "," "); 20087 addsybaseiqcmds(ESqlStatementType.sstsybaseDeleteStatistics, TBaseType.rrw_delete,"statistics"," "," "," "," "," "); 20088 20089//DENY 20090 addsybaseiqcmds(ESqlStatementType.sstmssqldeny, TBaseType.rrw_deny," "," "," "," "," "," "); 20091//DISABLE TRIGGER 20092 addsybaseiqcmds(ESqlStatementType.sstmssqldisabletrigger, TBaseType.rrw_disable,"trigger"," "," "," "," "," "); 20093//drop 20094 addsybaseiqcmds(ESqlStatementType.sstmssqldropaggregate, TBaseType.rrw_drop,"aggregate"," "," "," "," "," "); 20095 addsybaseiqcmds(ESqlStatementType.sstmssqldropapplicationrole, TBaseType.rrw_drop,"application", "role"," "," "," "," "); 20096 addsybaseiqcmds(ESqlStatementType.sstmssqldropassembly, TBaseType.rrw_drop,"assembly"," "," "," "," "," "); 20097 addsybaseiqcmds(ESqlStatementType.sstmssqldropasymmetrickey, TBaseType.rrw_drop,"asymmetric", "key"," "," "," "," "); 20098 addsybaseiqcmds(ESqlStatementType.sstmssqldropcertificate, TBaseType.rrw_drop,"certificate"," "," "," "," "," "); 20099 addsybaseiqcmds(ESqlStatementType.sstsybasedropconnection, TBaseType.rrw_drop,"connection"," "," "," "," "," "); 20100 addsybaseiqcmds(ESqlStatementType.sstmssqldropcontract, TBaseType.rrw_drop,"contract"," "," "," "," "," "); 20101 addsybaseiqcmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"counter", "signature"," "," "," "," "); 20102 addsybaseiqcmds(ESqlStatementType.sstmssqldropcredential, TBaseType.rrw_drop,"credential"," "," "," "," "," "); 20103 addsybaseiqcmds(ESqlStatementType.sstmssqldropdatabase, TBaseType.rrw_drop,"database"," "," "," "," "," "); 20104 addsybaseiqcmds(ESqlStatementType.sstmssqldropdefault, TBaseType.rrw_drop,"default"," "," "," "," "," "); 20105 addsybaseiqcmds(ESqlStatementType.sstmssqldropendpoint, TBaseType.rrw_drop,"endpoint"," "," "," "," "," "); 20106 addsybaseiqcmds(ESqlStatementType.sstmssqldropeventnotification, TBaseType.rrw_drop,"event", "notification"," "," "," "," "); 20107 addsybaseiqcmds(ESqlStatementType.sstsybasedropexternlogin, TBaseType.rrw_drop,"externlogin"," "," "," "," "," "); 20108 addsybaseiqcmds(ESqlStatementType.sstmssqldropfulltextcatalog, TBaseType.rrw_drop,"fulltext", "catalog"," "," "," "," "); 20109 addsybaseiqcmds(ESqlStatementType.sstmssqldropfulltextindex, TBaseType.rrw_drop,"fulltext", "index"," "," "," "," "); 20110 addsybaseiqcmds(ESqlStatementType.sstmssqldropfunction, TBaseType.rrw_drop,"function"," "," "," "," "," "); 20111 addsybaseiqcmds(ESqlStatementType.sstmssqldropindex, TBaseType.rrw_drop,"index"," "," "," "," "," "); 20112 addsybaseiqcmds(ESqlStatementType.sstmssqldroplogin, TBaseType.rrw_drop,"login"," "," "," "," "," "); 20113 addsybaseiqcmds(ESqlStatementType.sstmssqldropmasterkey, TBaseType.rrw_drop,"master", "key"," "," "," "," "); 20114 addsybaseiqcmds(ESqlStatementType.sstmssqldropmessagetype, TBaseType.rrw_drop,"message", "type"," "," "," "," "); 20115 addsybaseiqcmds(ESqlStatementType.sstmssqldroppartitionfunction, TBaseType.rrw_drop,"partition", "function"," "," "," "," "); 20116 addsybaseiqcmds(ESqlStatementType.sstmssqldroppartitionscheme, TBaseType.rrw_drop,"partition", "scheme"," "," "," "," "); 20117 addsybaseiqcmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"proc"," "," "," "," "," "); 20118 addsybaseiqcmds(ESqlStatementType.sstmssqldropprocedure, TBaseType.rrw_drop,"procedure"," "," "," "," "," "); 20119 addsybaseiqcmds(ESqlStatementType.sstmssqldropqueue, TBaseType.rrw_drop,"queue"," "," "," "," "," "); 20120 addsybaseiqcmds(ESqlStatementType.sstmssqldropremoteservicebinding, TBaseType.rrw_drop,"remote", "service", "binding"," "," "," "); 20121 addsybaseiqcmds(ESqlStatementType.sstmssqldroprole, TBaseType.rrw_drop,"role"," "," "," "," "," "); 20122 addsybaseiqcmds(ESqlStatementType.sstmssqldroproute, TBaseType.rrw_drop,"route"," "," "," "," "," "); 20123 addsybaseiqcmds(ESqlStatementType.sstmssqldroprule, TBaseType.rrw_drop,"rule"," "," "," "," "," "); 20124 addsybaseiqcmds(ESqlStatementType.sstmssqldropschema, TBaseType.rrw_drop,"schema"," "," "," "," "," "); 20125 addsybaseiqcmds(ESqlStatementType.sstsybasedropserver, TBaseType.rrw_drop,"server"," "," "," "," "," "); 20126 addsybaseiqcmds(ESqlStatementType.sstmssqldropservice, TBaseType.rrw_drop,"service"," "," "," "," "," "); 20127 addsybaseiqcmds(ESqlStatementType.sstmssqldropsignature, TBaseType.rrw_drop,"signature"," "," "," "," "," "); 20128 addsybaseiqcmds(ESqlStatementType.sstsybasedropstatement, TBaseType.rrw_drop,"statement"," "," "," "," "," "); 20129 addsybaseiqcmds(ESqlStatementType.sstmssqldropstatistics, TBaseType.rrw_drop,"statistics"," "," "," "," "," "); 20130 addsybaseiqcmds(ESqlStatementType.sstmssqldropsymmetrickey, TBaseType.rrw_drop,"symmetric", "key"," "," "," "," "); 20131 addsybaseiqcmds(ESqlStatementType.sstmssqldropsynonym, TBaseType.rrw_drop,"synonym"," "," "," "," "," "); 20132 addsybaseiqcmds(ESqlStatementType.sstmssqldroptable, TBaseType.rrw_drop,"table"," "," "," "," "," "); 20133 addsybaseiqcmds(ESqlStatementType.sstmssqldroptrigger, TBaseType.rrw_drop,"trigger"," "," "," "," "," "); 20134 addsybaseiqcmds(ESqlStatementType.sstmssqldroptype, TBaseType.rrw_drop,"type"," "," "," "," "," "); 20135 addsybaseiqcmds(ESqlStatementType.sstmssqldropuser, TBaseType.rrw_drop,"user"," "," "," "," "," "); 20136 addsybaseiqcmds(ESqlStatementType.sstsybasedropvariable, TBaseType.rrw_drop,"variable"," "," "," "," "," "); 20137 addsybaseiqcmds(ESqlStatementType.sstmssqldropview, TBaseType.rrw_drop,"view"," "," "," "," "," "); 20138 addsybaseiqcmds(ESqlStatementType.sstmssqldropxmlschemacollection, TBaseType.rrw_drop,"xml", "schema", "collection"," "," "," "); 20139 20140 addsybaseiqcmds(ESqlStatementType.sstsybasedumpTran, TBaseType.rrw_sybase_dump,"tran"," "," "," "," "," "); 20141 addsybaseiqcmds(ESqlStatementType.sstsybasedumpTran, TBaseType.rrw_sybase_dump,"transaction"," "," "," "," "," "); 20142 addsybaseiqcmds(ESqlStatementType.sstsybaseallocatedescriptor, TBaseType.rrw_allocate,"descriptor"," "," "," "," "," "); 20143 addsybaseiqcmds(ESqlStatementType.sstcomment, TBaseType.rrw_comment," "," "," "," "," "," "); 20144 addsybaseiqcmds(ESqlStatementType.sstconnect, TBaseType.rrw_connect," "," "," "," "," "," "); 20145 addsybaseiqcmds(ESqlStatementType.sstdescribe, TBaseType.rrw_describe," "," "," "," "," "," "); 20146 addsybaseiqcmds(ESqlStatementType.sstprepare, TBaseType.rrw_prepare," "," "," "," "," "," "); 20147 addsybaseiqcmds(ESqlStatementType.sstsybasegetdescriptor, TBaseType.rrw_get,"descriptor"," "," "," "," "," "); 20148 addsybaseiqcmds(ESqlStatementType.sstsybasestartdatabase, TBaseType.rrw_start,"database"," "," "," "," "," "); 20149 addsybaseiqcmds(ESqlStatementType.sstsybasestartengine, TBaseType.rrw_start,"engine"," "," "," "," "," "); 20150 addsybaseiqcmds(ESqlStatementType.sstsybasestopdatabase, TBaseType.rrw_stop,"database"," "," "," "," "," "); 20151 addsybaseiqcmds(ESqlStatementType.sstsybasestopengine, TBaseType.rrw_stop,"engine"," "," "," "," "," "); 20152 addsybaseiqcmds(ESqlStatementType.sstsybaseforwardto, TBaseType.rrw_sybase_forward,"to"," "," "," "," "," "); 20153 addsybaseiqcmds(ESqlStatementType.sstsybaseinstalljava, TBaseType.rrw_sybase_install,"java"," "," "," "," "," "); 20154 addsybaseiqcmds(ESqlStatementType.sstsybaseiqutilities, TBaseType.rrw_sybase_iq,"utilities"," "," "," "," "," "); 20155 addsybaseiqcmds(ESqlStatementType.sstsybasemessage, TBaseType.rrw_sybase_message," "," "," "," "," "," "); 20156 addsybaseiqcmds(ESqlStatementType.sstsybaseoutput, TBaseType.rrw_sybase_output,"to"," "," "," "," "," "); 20157 addsybaseiqcmds(ESqlStatementType.sstsybaseput, TBaseType.rrw_sybase_put," "," "," "," "," "," "); 20158 addsybaseiqcmds(ESqlStatementType.sstsybaseread, TBaseType.rrw_sybase_read," "," "," "," "," "," "); 20159 addsybaseiqcmds(ESqlStatementType.sstsybaseremovejava, TBaseType.rrw_sybase_remove,"java"," "," "," "," "," "); 20160 addsybaseiqcmds(ESqlStatementType.sstsybasesynchronizejoinindex, TBaseType.rrw_sybase_synchronize,"join","index"," "," "," "," "); 20161 addsybaseiqcmds(ESqlStatementType.sstsybasetriggerevent, TBaseType.rrw_sybase_trigger,"event"," "," "," "," "," "); 20162//if 20163 addsybaseiqcmds(ESqlStatementType.sstmssqlif, TBaseType.rrw_if," "," "," "," "," "," "); 20164//enable trigger 20165 addsybaseiqcmds(ESqlStatementType.sstmssqlenabletrigger, TBaseType.rrw_enable,"trigger"," "," "," "," "," "); 20166//END CONVERSATION 20167// addsybaseiqcmds(ESqlStatementType.sstMssqlEndCatch,TBaseType.rrw_end,'catch'); 20168 addsybaseiqcmds(ESqlStatementType.sstmssqlendconversation, TBaseType.rrw_end,"conversation"," "," "," "," "," "); 20169// addsybaseiqcmds(ESqlStatementType.sstMssqlEndTry,TBaseType.rrw_end,'try'); 20170//exec 20171//exec as 20172 addsybaseiqcmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_exec," "," "," "," "," "," "); 20173 addsybaseiqcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","caller"," "," "," "," "); 20174 addsybaseiqcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","login"," "," "," "," "); 20175 addsybaseiqcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_exec,"as","user"," "," "," "," "); 20176 addsybaseiqcmds(ESqlStatementType.sstmssqlexec, TBaseType.rrw_execute, " "," "," "," "," "," "); 20177 addsybaseiqcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","caller"," "," "," "," "); 20178 addsybaseiqcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","login"," "," "," "," "); 20179 addsybaseiqcmds(ESqlStatementType.sstmssqlexecuteas, TBaseType.rrw_execute,"as","user"," "," "," "," "); 20180//fetch 20181 addsybaseiqcmds(ESqlStatementType.sstmssqlfetch, TBaseType.rrw_fetch," "," "," "," "," "," "); 20182//go 20183 addsybaseiqcmds(ESqlStatementType.sstmssqlgo, TBaseType.rrw_go," "," "," "," "," "," "); 20184//goto 20185 addsybaseiqcmds(ESqlStatementType.sstmssqlgoto, TBaseType.rrw_goto," "," "," "," "," "," "); 20186//GRANT 20187 addsybaseiqcmds(ESqlStatementType.sstmssqlgrant, TBaseType.rrw_grant," "," "," "," "," "," "); 20188//GRANT 20189 addsybaseiqcmds(ESqlStatementType.sstinsert, TBaseType.rrw_insert," "," "," "," "," "," "); 20190 20191 addsybaseiqcmds(ESqlStatementType.sstsybaseInsertBulk, TBaseType.rrw_insert,"bulk"," "," "," "," "," "); 20192//KILL 20193 addsybaseiqcmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 20194//KILL 20195 addsybaseiqcmds(ESqlStatementType.sstmssqlkill, TBaseType.rrw_kill," "," "," "," "," "," "); 20196 addsybaseiqcmds(ESqlStatementType.sstmssqlkillquerynotificationsubscription, TBaseType.rrw_kill,"kill", "query", "notification", "subscription"," "," "); 20197 addsybaseiqcmds(ESqlStatementType.sstmssqlkillstats, TBaseType.rrw_kill,"stats"," "," "," "," "," "); 20198 20199 addsybaseiqcmds(ESqlStatementType.sstload,TBaseType.rrw_load,"table"," "," "," "," "," "); 20200// 20201 addsybaseiqcmds(ESqlStatementType.sstsybaselocktable,TBaseType.rw_locktable,"table"," "," "," "," "," "); 20202//MOVE CONVERSATION 20203 addsybaseiqcmds(ESqlStatementType.sstmssqlmoveconversation, TBaseType.rrw_move,"conversation"," "," "," "," "," "); 20204//merge 20205 addsybaseiqcmds(ESqlStatementType.sstmerge, TBaseType.rrw_merge," "," "," "," "," "," "); 20206//open 20207 addsybaseiqcmds(ESqlStatementType.sstmssqlopen, TBaseType.rrw_open," "," "," "," "," "," "); 20208 addsybaseiqcmds(ESqlStatementType.sstmssqlopenmasterkey, TBaseType.rrw_open,"master", "key"," "," "," "," "); 20209 addsybaseiqcmds(ESqlStatementType.sstmssqlopensymmetrickey, TBaseType.rrw_open,"symmetric", "key"," "," "," "," "); 20210//PRINT 20211 addsybaseiqcmds(ESqlStatementType.sstmssqlprint, TBaseType.rrw_print," "," "," "," "," "," "); 20212//RAISERROR 20213 addsybaseiqcmds(ESqlStatementType.sstmssqlraiserror, TBaseType.rrw_raiserror," "," "," "," "," "," "); 20214//READTEXT 20215 addsybaseiqcmds(ESqlStatementType.sstmssqlreadtext, TBaseType.rrw_readtext," "," "," "," "," "," "); 20216//RECEIVE 20217 addsybaseiqcmds(ESqlStatementType.sstmssqlreceive, TBaseType.rrw_receive," "," "," "," "," "," "); 20218//RECONFIGURE 20219 addsybaseiqcmds(ESqlStatementType.sstmssqlreconfigure, TBaseType.rrw_reconfigure," "," "," "," "," "," "); 20220//RESTORE 20221 addsybaseiqcmds(ESqlStatementType.sstmssqlrestoredatabase, TBaseType.rrw_restore,"database"," "," "," "," "," "); 20222 addsybaseiqcmds(ESqlStatementType.sstmssqlrestorefilelistonly, TBaseType.rrw_restore,"filelistonly"," "," "," "," "," "); 20223 addsybaseiqcmds(ESqlStatementType.sstmssqlrestoreheaderonly, TBaseType.rrw_restore,"headeronly"," "," "," "," "," "); 20224 addsybaseiqcmds(ESqlStatementType.sstmssqlrestorelabelonly, TBaseType.rrw_restore,"labelonly"," "," "," "," "," "); 20225 addsybaseiqcmds(ESqlStatementType.sstmssqlrestorelog, TBaseType.rrw_restore,"log"," "," "," "," "," "); 20226 addsybaseiqcmds(ESqlStatementType.sstmssqlrestoremasterkey, TBaseType.rrw_restore,"master","key"," "," "," "," "); 20227 addsybaseiqcmds(ESqlStatementType.sstmssqlrestorerewindonly, TBaseType.rrw_restore,"rewindonly"," "," "," "," "," "); 20228 addsybaseiqcmds(ESqlStatementType.sstmssqlrestoreservicemasterkey, TBaseType.rrw_restore,"service","master","key"," "," "," "); 20229 addsybaseiqcmds(ESqlStatementType.sstmssqlrestoreverifyonly, TBaseType.rrw_restore,"verifyonly"," "," "," "," "," "); 20230//RETURN 20231 addsybaseiqcmds(ESqlStatementType.sstmssqlreturn, TBaseType.rrw_return," "," "," "," "," "," "); 20232//REVERT 20233 addsybaseiqcmds(ESqlStatementType.sstmssqlrevert, TBaseType.rrw_revert," "," "," "," "," "," "); 20234//REVOKE 20235 addsybaseiqcmds(ESqlStatementType.sstmssqlrevoke, TBaseType.rrw_revoke," "," "," "," "," "," "); 20236//ROLLBACK 20237 addsybaseiqcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback," "," "," "," "," "," "); 20238 addsybaseiqcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"tran"," "," "," "," "," "); 20239 addsybaseiqcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"transaction"," "," "," "," "," "); 20240 addsybaseiqcmds(ESqlStatementType.sstmssqlrollback, TBaseType.rrw_rollback,"work"," "," "," "," "," "); 20241//SAVE 20242 addsybaseiqcmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save," "," "," "," "," "," "); 20243 addsybaseiqcmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"tran"," "," "," "," "," "); 20244 addsybaseiqcmds(ESqlStatementType.sstmssqlsavetran, TBaseType.rrw_save,"transaction"," "," "," "," "," "); 20245//SELECT 20246 addsybaseiqcmds(ESqlStatementType.sstselect, TBaseType.rrw_select," "," "," "," "," "," "); 20247//SEND ON CONVERSATION 20248 addsybaseiqcmds(ESqlStatementType.sstmssqlsendonconversation, TBaseType.rrw_send,"on","conversation"," "," "," "," "); 20249//SET 20250 addsybaseiqcmds(ESqlStatementType.sstmssqlset, TBaseType.rrw_set," "," "," "," "," "," "); 20251//SET 20252 addsybaseiqcmds(ESqlStatementType.sstmssqlsetuser,TBaseType.rrw_setuser," "," "," "," "," "," "); 20253//SHUTDOWN 20254 addsybaseiqcmds(ESqlStatementType.sstmssqlshutdown, TBaseType.rrw_shutdown," "," "," "," "," "," "); 20255//SIGN 20256// addsybaseiqcmds(ESqlStatementType.sstmssqlsign, rrw_sign," "," "," "," "," "," "); 20257//TRUNCATE TABLE 20258 addsybaseiqcmds(ESqlStatementType.sstmssqltruncatetable, TBaseType.rrw_truncate,"table"," "," "," "," "," "); 20259//UPDATE 20260 addsybaseiqcmds(ESqlStatementType.sstupdate, TBaseType.rrw_update," "," "," "," "," "," "); 20261//UPDATE all STATISTICS 20262 addsybaseiqcmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"all","statistics"," "," "," "," "); 20263//UPDATE index STATISTICS 20264 addsybaseiqcmds(ESqlStatementType.sstsybaseupdateindexstatistics, TBaseType.rrw_update,"index","statistics"," "," "," "," "); 20265//UPDATE STATISTICS 20266 addsybaseiqcmds(ESqlStatementType.sstmssqlupdatestatistics, TBaseType.rrw_update,"statistics"," "," "," "," "," "); 20267//UPDATETEXT 20268 addsybaseiqcmds(ESqlStatementType.sstmssqlupdatetext, TBaseType.rrw_updatetext," "," "," "," "," "," "); 20269//USE 20270 addsybaseiqcmds(ESqlStatementType.sstmssqluse, TBaseType.rrw_use," "," "," "," "," "," "); 20271//WAITFOR 20272 addsybaseiqcmds(ESqlStatementType.sstmssqlwaitfor, TBaseType.rrw_waitfor," "," "," "," "," "," "); 20273//WHILE 20274 addsybaseiqcmds(ESqlStatementType.sstmssqlwhile, TBaseType.rrw_while," "," "," "," "," "," "); 20275//WITH, don't recongize here, let isMssqlSql do it 20276// addsybaseiqcmds(ESqlStatementType.sstMssqlCTE,rrw_WITH,' '); 20277//WITH XMLNAMESPACES 20278 addsybaseiqcmds(ESqlStatementType.sstmssqlwithxmlnamespaces, TBaseType.rrw_with,"xmlnamespaces"," "," "," "," "," "); 20279//WRITETEXT 20280 addsybaseiqcmds(ESqlStatementType.sstsybaseWritetext, TBaseType.rrw_writetext," "," "," "," "," "," "); 20281 20282} 20283 20284 // ---- Sybase IQ fork (dbvsybaseiq): full-family recognition; rejection of 20285 // ---- foreign statements is the parser policy layer, not this table. 20286 TCustomSqlStatement issybaseiqsql(TSourceToken pcst, EDbVendor pdbvendor, EFindSqlStateType pstate, TCustomSqlStatement psqlstatement ){ 20287 TCustomSqlStatement ret = null; 20288 int k; 20289 boolean lcisnewsql; 20290 TSourceToken lcpprevsolidtoken,lcnextsolidtoken,lctoken; 20291 20292 gnewsqlstatementtype = ESqlStatementType.sstinvalid; 20293 20294 if ( (pcst.tokencode == TBaseType.cmtdoublehyphen) 20295 || (pcst.tokencode == TBaseType.cmtslashstar) 20296 || (pcst.tokencode == TBaseType.lexspace) 20297 || (pcst.tokencode == TBaseType.lexnewline) 20298 || (pcst.tokentype == ETokenType.ttsemicolon) ) 20299 { 20300 return ret; 20301 } 20302 20303 int lcpos = pcst.posinlist; 20304 TSourceTokenList lcsourcetokenlist = pcst.container; 20305 TCustomSqlStatement lccurrentsqlstatement = psqlstatement; 20306 20307 //subquery after semicolon || at first line 20308 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 20309 { 20310 k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 20311 if ( k >0 ) 20312 { 20313 ret = new TSelectSqlStatement(pdbvendor); 20314 } 20315 20316 return ret; 20317 } 20318 20319 //cte 20320 if ( (pstate == EFindSqlStateType.stnormal) && (pcst.tokencode == TBaseType.rrw_with) ) 20321 { 20322 ret = findcte(pcst,pdbvendor); 20323 if ( (ret != null) ) return ret; 20324 } 20325 20326 gnewsqlstatementtype = findsybaseiqcmd(pcst); 20327 20328 TSourceToken lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 20329 switch(gnewsqlstatementtype ) { // 20330 case sstinvalid: 20331 { 20332 if ( pcst.tokencode == TBaseType.mslabel ) 20333 { 20334 ret = new TMssqlLabel(pdbvendor); 20335 } 20336 else 20337 ret = null; 20338 20339 break; 20340 } 20341 case sstselect: 20342 { 20343 lcisnewsql = true; 20344 20345 if ( pstate != EFindSqlStateType.stnormal ) 20346 { 20347 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 20348 if ( (lcprevsolidtoken != null) ) 20349 { 20350 if ( lcprevsolidtoken.tokentype == ETokenType.ttleftparenthesis) 20351 lcisnewsql = false; //subqery 20352 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_union ) 20353 lcisnewsql = false; 20354 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_intersect ) 20355 lcisnewsql = false; 20356 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_minus ) 20357 lcisnewsql = false; 20358 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_except ) 20359 lcisnewsql = false; 20360 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_return ) 20361 lcisnewsql = false; 20362 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_as ) 20363 { 20364 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetable ) 20365 lcisnewsql = false; 20366 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ) 20367 lcisnewsql = false; 20368 } 20369 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 20370 { 20371 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlset ) 20372 lcisnewsql = false; 20373 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldeclare ) 20374 lcisnewsql = false; 20375 } 20376 20377 if ( lcisnewsql && ( lcprevsolidtoken.tokencode == TBaseType.rrw_all) ) 20378 { 20379 lcpprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcprevsolidtoken.posinlist); 20380 if ( (lcpprevsolidtoken != null) ) 20381 { 20382 if ( lcpprevsolidtoken.tokencode == TBaseType.rrw_union ) 20383 lcisnewsql = false; 20384 } 20385 } 20386 20387 } 20388 20389 if ( (lccurrentsqlstatement != null) ) 20390 { 20391 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 20392 { 20393 } 20394 else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 20395 { 20396 if ( (lcprevsolidtoken != null) ) 20397 { 20398 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 20399 lcisnewsql = false; 20400 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 20401 lcisnewsql = false; 20402 } 20403 } else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 20404 { 20405 if ( (lcprevsolidtoken != null) ) 20406 { 20407 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 20408 lcisnewsql = false; 20409 } 20410 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreateview ){ 20411 lcisnewsql = false; 20412 } 20413 } 20414 20415 } 20416 20417 if ( lcisnewsql ) 20418 ret = new TSelectSqlStatement(pdbvendor); 20419 20420 break; 20421 20422 } 20423 case sstinsert: 20424 { 20425 lcisnewsql = true; 20426 if ( pstate != EFindSqlStateType.stnormal ) 20427 { 20428 if ( (lccurrentsqlstatement != null) ) 20429 { 20430 // merge 20431 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 20432 { 20433 if (lcprevsolidtoken != null) 20434 { 20435 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 20436 {lcisnewsql = false;} 20437 } 20438 } 20439 20440 // bulk insert 20441 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlbulkinsert ) 20442 { 20443 if ( (lcprevsolidtoken != null) ) 20444 { 20445 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_bulk ) 20446 lcisnewsql = false; 20447 } 20448 } 20449 20450 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 20451 { 20452 if ( (lcprevsolidtoken != null) ) 20453 { 20454 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 20455 lcisnewsql = false; 20456 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 20457 lcisnewsql = false; 20458 } 20459 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) { 20460 if ( (lcprevsolidtoken != null) ) 20461 { 20462 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 20463 lcisnewsql = false; 20464 } 20465 } 20466 20467 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 20468 { 20469 if ( (lcprevsolidtoken != null) ) 20470 { 20471 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 20472 lcisnewsql = false; 20473 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 20474 lcisnewsql = false; 20475 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 20476 lcisnewsql = false; 20477 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 20478 lcisnewsql = false; 20479 } 20480 } 20481 20482 20483 } 20484 } 20485 20486 if ( lcisnewsql ) 20487 { 20488 ret = new TInsertSqlStatement(pdbvendor); 20489 ret.dummytag = 1; // select stmt in insert is permitted 20490 for ( k = lcpos + 1; k < lcsourcetokenlist.size();k++ ) // iterate 20491 { 20492 if ( lcsourcetokenlist.get(k).isnonsolidtoken() ) continue; 20493 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_values ) break; 20494 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_go ) break; 20495 if ( lcsourcetokenlist.get(k).tokentype == ETokenType.ttsemicolon ) break; 20496 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_select ) break; 20497 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_execute ) break; 20498 if ( lcsourcetokenlist.get(k).tokencode == TBaseType.rrw_exec ) break; 20499 } // for ( 20500 if ( k > lcsourcetokenlist.size() - 1 ) 20501 k = lcsourcetokenlist.size() - 1; 20502 20503 for ( int i = lcpos + 1; i <= k; i++ ) // iterate 20504 { 20505 lcsourcetokenlist.get(i).tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 20506 } // for ( 20507 20508 } 20509 20510 break; 20511 } 20512 case sstsybaseInsertBulk: 20513 { 20514 ret = new TInsertBulk(pdbvendor); 20515 break; 20516 } 20517 case sstupdate: 20518 { 20519 lcisnewsql = true; 20520 if ( pstate != EFindSqlStateType.stnormal ) 20521 { 20522 // lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 20523 if ( (lcprevsolidtoken != null) ) 20524 { // 20525 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 20526 lcisnewsql = false; 20527 else if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 20528 lcisnewsql = false; 20529 } 20530 20531 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 20532 if ( TBaseType.assigned(lcnextsolidtoken) ) 20533 { 20534 if ( lcnextsolidtoken.tokentype == ETokenType.ttleftparenthesis) 20535 { 20536 k = lcsourcetokenlist.solidtokenafterpos(lcnextsolidtoken.posinlist,TBaseType.rrw_select,1,"("); 20537 if ( k == 0 ) lcisnewsql = false; 20538 } 20539 } 20540 20541 20542 if ( TBaseType.assigned(lccurrentsqlstatement) ) 20543 { 20544 // merge 20545 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 20546 { 20547 if (lcprevsolidtoken != null) 20548 { 20549 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 20550 {lcisnewsql = false;} 20551 } 20552 } 20553 20554 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 20555 { 20556 if ( TBaseType.assigned(lcprevsolidtoken) ) 20557 { 20558 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 20559 lcisnewsql = false; 20560 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 20561 lcisnewsql = false; 20562 } 20563 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 20564 { 20565 if ( TBaseType.assigned(lcprevsolidtoken) ) 20566 { 20567 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 20568 lcisnewsql = false; 20569 } 20570 } 20571 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 20572 { 20573 if ( TBaseType.assigned(lcprevsolidtoken) ) 20574 { 20575 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 20576 lcisnewsql = false; 20577 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 20578 lcisnewsql = false; 20579 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 20580 lcisnewsql = false; 20581 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 20582 lcisnewsql = false; 20583 } 20584 } 20585 20586 } 20587 } 20588 20589 if ( lcisnewsql ) 20590 { 20591 ret = new TUpdateSqlStatement(pdbvendor); 20592 ret.dummytag = 1; // means set clause in update is not found yet, used to seperate set clause from set statement 20593 } 20594 20595 break; 20596 } 20597 case sstdelete: 20598 { 20599 lcisnewsql = true; 20600 20601 if ( pstate != EFindSqlStateType.stnormal ) 20602 { 20603 lcprevsolidtoken = lcsourcetokenlist.solidtokenbefore(lcpos); 20604 if ( TBaseType.assigned(lcprevsolidtoken) ) 20605 { 20606 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 20607 lcisnewsql = false; 20608 } 20609 20610 if ( TBaseType.assigned(lccurrentsqlstatement) ) 20611 { 20612 // merge 20613 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 20614 { 20615 if (lcprevsolidtoken != null) 20616 { 20617 if (lcprevsolidtoken.tokencode == TBaseType.rrw_then) 20618 {lcisnewsql = false;} 20619 } 20620 } 20621 20622 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 20623 { 20624 if ( TBaseType.assigned(lcprevsolidtoken) ) 20625 { 20626 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 20627 lcisnewsql = false; 20628 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 20629 lcisnewsql = false; 20630 } 20631 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ) 20632 { 20633 if ( TBaseType.assigned(lcprevsolidtoken) ) 20634 { 20635 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 20636 lcisnewsql = false; 20637 } 20638 } 20639 20640 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger ) 20641 { 20642 if ( TBaseType.assigned(lcprevsolidtoken) ) 20643 { 20644 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_for ) 20645 lcisnewsql = false; 20646 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 20647 lcisnewsql = false; 20648 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(),"after") == 0 ) 20649 lcisnewsql = false; 20650 else if ( TBaseType.mycomparetext(lcprevsolidtoken.getAstext(), "of") == 0 ) 20651 lcisnewsql = false; 20652 } 20653 } 20654 20655 } 20656 } 20657 20658 if ( lcisnewsql ) 20659 ret = new TDeleteSqlStatement(pdbvendor); 20660 20661 break; 20662 } 20663 case sstcreatetable: 20664 { 20665 ret = new TCreateTableSqlStatement(pdbvendor); 20666 break; 20667 } 20668 case sstcreateview: 20669 { 20670 ret = new TCreateViewSqlStatement(pdbvendor); 20671 break; 20672 } 20673 case sstaltertable: 20674 { 20675 ret = new TAlterTableStatement(pdbvendor); 20676 break; 20677 } 20678 case sstmssqlfetch: 20679 { 20680 ret = new TMssqlFetch(pdbvendor); 20681 break; 20682 } 20683 case sstmssqlif : 20684 { 20685 lcisnewsql = true; 20686 if ((lccurrentsqlstatement != null) && ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqldropprocedure )) 20687 {lcisnewsql = false;} 20688 // `DROP TABLE IF EXISTS t` and friends: the IF belongs to the DROP. 20689 // Mirrors TSqlCmds<Vendor>.isDropIfExistsContext in the modular 20690 // providers, which this monolithic path is the fallback for. 20691 if (lcisnewsql && DropIfExistsSupport.isDropIfExistsContext(pcst, lcsourcetokenlist.solidtokenbefore(lcpos))) 20692 {lcisnewsql = false;} 20693 if (lcisnewsql){ 20694 ret = new TMssqlIfElse(pdbvendor); 20695 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 20696 } 20697 20698 break; 20699 } 20700 case sstmssqlwhile: 20701 { 20702 ret = new TMssqlIfElse(pdbvendor); 20703 ret.dummytag = 1;// reduce to 0 while stmt find in 'if ( condtion stmt' || 'else stmt' 20704 break; 20705 } 20706 case sstmssqlcreateprocedure : 20707 case sstmssqlalterprocedure: 20708 { 20709 ret = new TMssqlCreateProcedure(pdbvendor); 20710 break; 20711 } 20712 case sstmssqlcreatefunction : 20713 case sstmssqlalterfunction: 20714 { 20715 ret = new TMssqlCreateFunction(pdbvendor); 20716 break; 20717 } 20718 case sstcreatetrigger : 20719 case sstmssqlaltertrigger: 20720 { 20721 ret = new TCreateTriggerStmt(pdbvendor); 20722 break; 20723 } 20724 case sstmssqlreturn: 20725 { 20726 ret = new TMssqlReturn(pdbvendor); 20727 break; 20728 } 20729 case sstmssqlprint: 20730 { 20731 ret = new TMssqlPrint(pdbvendor); 20732 break; 20733 } 20734 case sstmssqluse: 20735 { 20736 ret = new TUseDatabase(pdbvendor); 20737 break; 20738 } 20739 case sstmssqlgo: 20740 { 20741 ret = new TMssqlGo(pdbvendor); 20742 break; 20743 } 20744 case sstmssqlrevert: 20745 { 20746 ret = new TMssqlRevert(pdbvendor); 20747 break; 20748 } 20749 case sstmssqlgrant: 20750 { 20751 lcisnewsql = true; 20752 // prev tokentext can't be with 20753 if ( pstate != EFindSqlStateType.stnormal ) 20754 { 20755 if ( TBaseType.assigned(lcprevsolidtoken) ) 20756 { 20757 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 20758 { 20759 ret = null; 20760 lcisnewsql = false; 20761 } 20762 } 20763 } 20764 if ( lcisnewsql ) 20765 { 20766 ret = new TGrantStmt(pdbvendor); 20767 //ret.sqlstatementtype = gnewsqlstatementtype; 20768 for ( k = lcpos + 1; k< lcsourcetokenlist.size();k++ ) // iterate 20769 { 20770 lctoken = lcsourcetokenlist.get(k); 20771 if (lctoken.isnonsolidtoken() ) continue; 20772 if ( lctoken.tokencode == TBaseType.rrw_go ) break; 20773 if ( lctoken.tokentype == ETokenType.ttsemicolon ) break; 20774 if ( lctoken.tokencode == TBaseType.rrw_to ) break; 20775 lctoken.tokenstatus = ETokenStatus.tsignoredbygetrawstatement; 20776 } 20777 } 20778 break; 20779 } 20780 case sstmssqldeclare: 20781 { 20782 ret = new TMssqlDeclare(pdbvendor); 20783 break; 20784 } 20785 case sstmssqlcontinue: 20786 { 20787 lcisnewsql = true; 20788 if ((lccurrentsqlstatement != null) && ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstload )) 20789 {lcisnewsql = false;} 20790 if (lcisnewsql){ 20791 ret = new TMssqlContinue(pdbvendor); 20792 } 20793 20794 break; 20795 } 20796 case sstbreak: 20797 { 20798 ret = new TBreakStmt(pdbvendor); 20799 break; 20800 } 20801 case sstmssqlopen: 20802 { 20803 ret = new TMssqlOpen(pdbvendor); 20804 break; 20805 } 20806 case sstmssqlclose: 20807 { 20808 ret = new TMssqlClose(pdbvendor); 20809 break; 20810 } 20811 case sstmssqlbulkinsert: 20812 { 20813 ret = new TMssqlBulkInsert(pdbvendor); 20814 break; 20815 } 20816 case sstmssqldeallocate: 20817 { 20818 ret = new TMssqlDeallocate(pdbvendor); 20819 break; 20820 } 20821 case sstmssqlraiserror: 20822 { 20823 ret = new TMssqlRaiserror(pdbvendor); 20824 break; 20825 } 20826 case sstmssqlgoto: 20827 { 20828 ret = new TMssqlGoTo(pdbvendor); 20829 break; 20830 } 20831 case sstmssqldropview: 20832 { 20833 ret = new TDropViewSqlStatement(pdbvendor); 20834 break; 20835 } 20836 case sstmssqldroptable: 20837 { 20838 ret = new TDropTableSqlStatement(pdbvendor); 20839 break; 20840 } 20841 case sstmssqldropindex: 20842 { 20843 ret = new TDropIndexSqlStatement(pdbvendor); 20844 break; 20845 } 20846 case sstmssqldroppartitionscheme : 20847 ret = new TDropPartitionSchemeStmt(pdbvendor); 20848 break; 20849 20850 case sstmssqldropaggregate : 20851 case sstmssqldropapplicationrole : 20852 case sstmssqldropassembly : 20853 case sstmssqldropasymmetrickey : 20854 case sstmssqldropcertificate : 20855 case sstmssqldropcontract : 20856 case sstmssqldropcredential : 20857 case sstmssqldropdefault : 20858 case sstmssqldropendpoint : 20859 case sstmssqldropeventnotification : 20860 case sstmssqldropfulltextcatalog : 20861 case sstmssqldropfulltextindex : 20862 case sstmssqldropfunction : 20863 case sstmssqldroplogin : 20864 case sstmssqldropmasterkey : 20865 case sstmssqldropmessagetype : 20866 case sstmssqldroppartitionfunction : 20867 case sstmssqldropprocedure : 20868 case sstmssqldropqueue : 20869 case sstmssqldropremoteservicebinding : 20870 case sstmssqldroprole : 20871 case sstmssqldroproute : 20872 case sstmssqldroprule : 20873 case sstmssqldropschema : 20874 case sstmssqldropservice : 20875 case sstmssqldropsignature: 20876 case sstmssqldropstatistics : 20877 case sstmssqldropsymmetrickey : 20878 case sstmssqldroptrigger : 20879 case sstmssqldroptype : 20880 case sstmssqldropuser : 20881 case sstmssqldropxmlschemacollection: 20882 case sstmssqldropdatabase : 20883 { 20884 ret = new TMssqlDropDbObject(EDbVendor.dbvsybaseiq); 20885 ret.sqlstatementtype = gnewsqlstatementtype; 20886 break; 20887 } 20888 case sstmssqldropsynonym : 20889 { 20890 ret = new TDropSynonymStmt(pdbvendor); 20891 break; 20892 } 20893 case sstmssqltruncatetable: 20894 { 20895 ret = new TTruncateStatement(pdbvendor); 20896 break; 20897 } 20898 case sstmssqlbegintran: 20899 { 20900 ret = new TBeginTran(pdbvendor); 20901 break; 20902 } 20903 case sstmssqlsavetran: 20904 { 20905 ret = new TMssqlSaveTran(pdbvendor); 20906 break; 20907 } 20908 case sstmssqlcommit: 20909 { 20910 lcisnewsql = true; 20911 20912 if ( TBaseType.assigned(lcprevsolidtoken) ) 20913 { 20914 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_on ) 20915 { 20916 20917 lcisnewsql = false; 20918 } 20919 } 20920 20921 if (lcisnewsql){ 20922 ret = new TMssqlCommit(pdbvendor); 20923 } 20924 20925 break; 20926 } 20927 case sstmssqlrollback: 20928 { 20929 ret = new TMssqlRollback(pdbvendor); 20930 break; 20931 } 20932 case sstmssqlreadtext : 20933 case sstmssqldbcc : 20934 case sstmssqlrestore : 20935 case sstmssqlbackup : 20936 { 20937 ret = new TMssqlDummyStmt(pdbvendor); 20938 ret.sqlstatementtype = gnewsqlstatementtype; 20939 break; 20940 } 20941 case sstcreateindex: 20942 { 20943 ret = new TCreateIndexSqlStatement(pdbvendor); 20944 break; 20945 } 20946 case sstmssqlwaitfor: 20947 { 20948 ret = new TMssqlWaitFor(pdbvendor); 20949 break; 20950 } 20951 case sstmerge: 20952 { 20953 lcisnewsql = true; 20954 20955 if (pstate != EFindSqlStateType.stnormal) 20956 { 20957 20958 if (lccurrentsqlstatement != null) 20959 { 20960 // merge union, merge join 20961 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstselect) 20962 { 20963 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 20964 if (lcnextsolidtoken != null) 20965 { 20966 if ((lcnextsolidtoken.tokencode == TBaseType.rrw_union) || (lcnextsolidtoken.tokencode == TBaseType.rrw_join)) 20967 { 20968 lcisnewsql = false; 20969 } 20970 } 20971 } 20972 20973 } 20974 20975 TSourceToken lcnexttoken = lcsourcetokenlist.nextsolidtoken(lcpos, 1, false); 20976 if ( (lcnexttoken != null) ) 20977 { 20978 if ( lcnexttoken.tokencode == TBaseType.rrw_sybase_partition ) 20979 lcisnewsql = false; 20980 } 20981 20982 } 20983 20984 if (lcisnewsql) 20985 { 20986 ret = new TMergeSqlStatement(pdbvendor); 20987 ret.sqlstatementtype = gnewsqlstatementtype; 20988 } 20989 20990 break; 20991 } 20992 case sstmssqlbegintry : 20993 case sstmssqlbegincatch: 20994 { 20995 ret = new TMssqlBlock(pdbvendor); 20996 ret.sqlstatementtype = gnewsqlstatementtype; 20997 break; 20998 } 20999 case sstmssqlexec: 21000 { 21001 lcisnewsql = true; 21002 // prev tokentext can't be with 21003 if ( pstate != EFindSqlStateType.stnormal ) 21004 { 21005 if ( TBaseType.assigned(lccurrentsqlstatement) ) 21006 { 21007 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstinsert ) 21008 { 21009 if ( lccurrentsqlstatement.dummytag == 1 ) 21010 { 21011 lcisnewsql = false; 21012 lccurrentsqlstatement.dummytag = 0; // no select is permited after it 21013 } 21014 } 21015 21016 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlgrant ) 21017 { 21018 if ( TBaseType.assigned(lcprevsolidtoken) ) 21019 { 21020 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_grant ) 21021 lcisnewsql = false; 21022 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 21023 lcisnewsql = false; 21024 } 21025 }else if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlrevoke ){ 21026 if ( TBaseType.assigned(lcprevsolidtoken) ) 21027 { 21028 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_revoke ) 21029 lcisnewsql = false; 21030 } 21031 } 21032 21033 21034 21035 if ( 21036 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 21037 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 21038 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 21039 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 21040 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 21041 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 21042 ) 21043 { 21044 if ( TBaseType.assigned(lcprevsolidtoken) ) 21045 { 21046 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 21047 lcisnewsql = false; 21048 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 21049 lcisnewsql = false; 21050 } 21051 } 21052 } 21053 } 21054 if ( lcisnewsql ) 21055 { 21056 ret = new TMssqlExecute(pdbvendor); 21057 } 21058 break; 21059 } 21060 case sstmssqlexecuteas: 21061 { 21062 lcisnewsql = true; 21063 // prev tokentext can't be with 21064 if ( pstate != EFindSqlStateType.stnormal ) 21065 { 21066 if ( TBaseType.assigned(lccurrentsqlstatement) ) 21067 { 21068 if ( 21069 (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreateprocedure) 21070 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstcreatetrigger) 21071 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlcreatefunction) 21072 ||(lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterprocedure) 21073 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlaltertrigger) 21074 ||( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlalterfunction) 21075 ) 21076 { 21077 if ( TBaseType.assigned(lcprevsolidtoken) ) 21078 { 21079 if ( lcprevsolidtoken.tokencode == TBaseType.rrw_with ) 21080 lcisnewsql = false; 21081 else if ( lcprevsolidtoken.tokentype == ETokenType.ttcomma ) 21082 lcisnewsql = false; 21083 } 21084 } 21085 } 21086 } 21087 if ( lcisnewsql ) 21088 { 21089 ret = new TMssqlExecuteAs(pdbvendor); 21090 ret.sqlstatementtype = gnewsqlstatementtype; 21091 } 21092 break; 21093 } 21094 case sstmssqlset: 21095 { 21096 lcisnewsql = true; 21097 if ( pstate != EFindSqlStateType.stnormal ) 21098 { 21099 if ( TBaseType.assigned(lccurrentsqlstatement) ) 21100 { 21101 21102 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmssqlif) 21103 { 21104 TSourceToken lcPPToken = lcsourcetokenlist.searchToken(TBaseType.rrw_update,"",pcst,-10); 21105 if (TBaseType.assigned(lcPPToken)) 21106 { 21107 lcisnewsql = false; 21108 } 21109 } 21110 21111 if (lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstmerge) 21112 { 21113 if (lcprevsolidtoken != null) 21114 { 21115 if (lcprevsolidtoken.tokencode == TBaseType.rrw_update){ 21116 lcisnewsql = false;} 21117 } 21118 } 21119 21120 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstupdate ) 21121 { 21122 if ( lccurrentsqlstatement.dummytag == 1 ) 21123 { 21124 //update statement still find set clause yet, so this is setclause in update statement 21125 lccurrentsqlstatement.dummytag = 0; 21126 lcisnewsql = false; 21127 } 21128 } 21129 } 21130 21131 lcnextsolidtoken = lcsourcetokenlist.nextsolidtoken(lcpos,1,false); 21132 if ( TBaseType.assigned(lcnextsolidtoken) ) 21133 { //set null, set default 21134 if ( (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(),"null")==0) 21135 || (TBaseType.mycomparetext(lcnextsolidtoken.getAstext(), "default")==0) ) 21136 { 21137 lcisnewsql = false; 21138 } 21139 } 21140 21141 } 21142 21143 if ( lcisnewsql ) 21144 { 21145 ret = new TMssqlSet(pdbvendor); 21146 } 21147 21148 break; 21149 } 21150 case sstmssqlupdatetext: 21151 { 21152 ret = new TMssqlUpdateText(pdbvendor); 21153 break; 21154 } 21155 case sstmssqlendconversation: 21156 { 21157 ret = new TMssqlEndConversation(pdbvendor); 21158 break; 21159 } 21160 case sstmssqlbegindialog: 21161 { 21162 ret = new TMssqlBeginDialog(pdbvendor); 21163 break; 21164 } 21165 case sstmssqlsendonconversation: 21166 { 21167 ret = new TMssqlSendOnConversation(pdbvendor); 21168 break; 21169 } 21170 case sstmssqldisabletrigger : 21171 case sstmssqlenabletrigger: 21172 { 21173 lcisnewsql = true; 21174 if ( TBaseType.assigned(lccurrentsqlstatement) ) 21175 { 21176 if ( lccurrentsqlstatement.sqlstatementtype == ESqlStatementType.sstaltertable ) 21177 lcisnewsql = false; 21178 } 21179 21180 if ( lcisnewsql ) 21181 { 21182 ret = new TDisableEnableTriggerStmt(pdbvendor); 21183 ret.sqlstatementtype = gnewsqlstatementtype; 21184 } 21185 break; 21186 } 21187 case sstsybaseWritetext: 21188 { 21189 ret = new TSybaseWritetext(pdbvendor); 21190 break; 21191 } 21192 case sstsybaseDeleteStatistics: 21193 { 21194 ret = new TSybaseDeleteStatistics(pdbvendor); 21195 break; 21196 } 21197 case sstcall: 21198 { 21199 ret = new TCallStatement(pdbvendor); 21200 break; 21201 } 21202 default: 21203 { 21204 ret = new TUnknownSqlStatement(pdbvendor); 21205 ret.sqlstatementtype = gnewsqlstatementtype; 21206 break; 21207 } 21208 } // case 21209 21210 return ret; 21211 } 21212 21213 // ---- Sybase IQ fork (dbvsybaseiq): full-family recognition; rejection of 21214 // ---- foreign statements is the parser policy layer, not this table. 21215public ESqlStatementType findsybaseiqcmdusedbyyacc(TSourceToken pcst){ 21216 ESqlStatementType ret = ESqlStatementType.sstinvalid; 21217 21218 int lcpos = pcst.posinlist; 21219 TSourceTokenList lcsourcetokenlist = pcst.container; 21220 21221 //subquery after semicolon or at first line 21222 if ( (pcst.tokentype == ETokenType.ttleftparenthesis) ) // ( 21223 { 21224 int k = lcsourcetokenlist.solidtokenafterpos(lcpos,TBaseType.rrw_select,1,"("); 21225 if ( k >0 ) 21226 { 21227 ret = ESqlStatementType.sstselect; 21228 } 21229 21230 return ret; 21231 } 21232 21233 21234 ret = findsybaseiqcmd(pcst); 21235 // execute can't be used to delimite other sql 21236 if ( ret == ESqlStatementType.sstmssqlexec ) 21237 ret = ESqlStatementType.sstinvalid; 21238 21239 return ret; 21240} 21241}