1 module hunt.sql.visitor.SQLASTVisitor; 2 3 4 import hunt.sql.ast; 5 import hunt.sql.ast.expr; 6 // import hunt.sql.ast.statement; 7 import hunt.sql.ast.statement.SQLWhileStatement; 8 import hunt.sql.ast.statement.SQLDeclareStatement; 9 import hunt.sql.ast.statement.SQLCommitStatement; 10 11 public interface SQLASTVisitor { 12 13 void endVisit(SQLAllColumnExpr x); 14 15 void endVisit(SQLBetweenExpr x); 16 17 void endVisit(SQLBinaryOpExpr x); 18 19 void endVisit(SQLCaseExpr x); 20 21 void endVisit(SQLCaseExpr.Item x); 22 23 void endVisit(SQLCaseStatement x); 24 25 void endVisit(SQLCaseStatement.Item x); 26 27 void endVisit(SQLCharExpr x); 28 29 void endVisit(SQLIdentifierExpr x); 30 31 void endVisit(SQLInListExpr x); 32 33 void endVisit(SQLIntegerExpr x); 34 35 void endVisit(SQLExistsExpr x); 36 37 void endVisit(SQLNCharExpr x); 38 39 void endVisit(SQLNotExpr x); 40 41 void endVisit(SQLNullExpr x); 42 43 void endVisit(SQLNumberExpr x); 44 45 void endVisit(SQLPropertyExpr x); 46 47 void endVisit(SQLSelectGroupByClause x); 48 49 void endVisit(SQLSelectItem x); 50 51 void endVisit(SQLSelectStatement selectStatement); 52 53 void postVisit(SQLObject x); 54 55 void preVisit(SQLObject x); 56 57 bool visit(SQLAllColumnExpr x); 58 59 bool visit(SQLBetweenExpr x); 60 61 bool visit(SQLBinaryOpExpr x); 62 63 bool visit(SQLCaseExpr x); 64 65 bool visit(SQLCaseExpr.Item x); 66 67 bool visit(SQLCaseStatement x); 68 69 bool visit(SQLCaseStatement.Item x); 70 71 bool visit(SQLCastExpr x); 72 73 bool visit(SQLCharExpr x); 74 75 bool visit(SQLExistsExpr x); 76 77 bool visit(SQLIdentifierExpr x); 78 79 bool visit(SQLInListExpr x); 80 81 bool visit(SQLIntegerExpr x); 82 83 bool visit(SQLNCharExpr x); 84 85 bool visit(SQLNotExpr x); 86 87 bool visit(SQLNullExpr x); 88 89 bool visit(SQLNumberExpr x); 90 91 bool visit(SQLPropertyExpr x); 92 93 bool visit(SQLSelectGroupByClause x); 94 95 bool visit(SQLSelectItem x); 96 97 void endVisit(SQLCastExpr x); 98 99 bool visit(SQLSelectStatement astNode); 100 101 void endVisit(SQLAggregateExpr astNode); 102 103 bool visit(SQLAggregateExpr astNode); 104 105 bool visit(SQLVariantRefExpr x); 106 107 void endVisit(SQLVariantRefExpr x); 108 109 bool visit(SQLQueryExpr x); 110 111 void endVisit(SQLQueryExpr x); 112 113 bool visit(SQLUnaryExpr x); 114 115 void endVisit(SQLUnaryExpr x); 116 117 bool visit(SQLHexExpr x); 118 119 void endVisit(SQLHexExpr x); 120 121 bool visit(SQLBlobExpr x); 122 123 void endVisit(SQLBlobExpr x); 124 125 bool visit(SQLSelect x); 126 127 void endVisit(SQLSelect select); 128 129 bool visit(SQLSelectQueryBlock x); 130 131 void endVisit(SQLSelectQueryBlock x); 132 133 bool visit(SQLExprTableSource x); 134 135 void endVisit(SQLExprTableSource x); 136 137 bool visit(SQLOrderBy x); 138 139 void endVisit(SQLOrderBy x); 140 141 bool visit(SQLSelectOrderByItem x); 142 143 void endVisit(SQLSelectOrderByItem x); 144 145 bool visit(SQLDropTableStatement x); 146 147 void endVisit(SQLDropTableStatement x); 148 149 bool visit(SQLCreateTableStatement x); 150 151 void endVisit(SQLCreateTableStatement x); 152 153 bool visit(SQLColumnDefinition x); 154 155 void endVisit(SQLColumnDefinition x); 156 157 bool visit(SQLColumnDefinition.Identity x); 158 159 void endVisit(SQLColumnDefinition.Identity x); 160 161 bool visit(SQLDataType x); 162 163 void endVisit(SQLDataType x); 164 165 bool visit(SQLCharacterDataType x); 166 167 void endVisit(SQLCharacterDataType x); 168 169 bool visit(SQLDeleteStatement x); 170 171 void endVisit(SQLDeleteStatement x); 172 173 bool visit(SQLCurrentOfCursorExpr x); 174 175 void endVisit(SQLCurrentOfCursorExpr x); 176 177 bool visit(SQLInsertStatement x); 178 179 void endVisit(SQLInsertStatement x); 180 181 bool visit(ValuesClause x); 182 183 void endVisit(ValuesClause x); 184 185 bool visit(SQLUpdateSetItem x); 186 187 void endVisit(SQLUpdateSetItem x); 188 189 bool visit(SQLUpdateStatement x); 190 191 void endVisit(SQLUpdateStatement x); 192 193 bool visit(SQLCreateViewStatement x); 194 195 void endVisit(SQLCreateViewStatement x); 196 197 bool visit(SQLCreateViewStatement.Column x); 198 199 void endVisit(SQLCreateViewStatement.Column x); 200 201 bool visit(SQLNotNullConstraint x); 202 203 void endVisit(SQLNotNullConstraint x); 204 205 void endVisit(SQLMethodInvokeExpr x); 206 207 bool visit(SQLMethodInvokeExpr x); 208 209 void endVisit(SQLUnionQuery x); 210 211 bool visit(SQLUnionQuery x); 212 213 void endVisit(SQLSetStatement x); 214 215 bool visit(SQLSetStatement x); 216 217 void endVisit(SQLAssignItem x); 218 219 bool visit(SQLAssignItem x); 220 221 void endVisit(SQLCallStatement x); 222 223 bool visit(SQLCallStatement x); 224 225 void endVisit(SQLJoinTableSource x); 226 227 bool visit(SQLJoinTableSource x); 228 229 void endVisit(SQLSomeExpr x); 230 231 bool visit(SQLSomeExpr x); 232 233 void endVisit(SQLAnyExpr x); 234 235 bool visit(SQLAnyExpr x); 236 237 void endVisit(SQLAllExpr x); 238 239 bool visit(SQLAllExpr x); 240 241 void endVisit(SQLInSubQueryExpr x); 242 243 bool visit(SQLInSubQueryExpr x); 244 245 void endVisit(SQLListExpr x); 246 247 bool visit(SQLListExpr x); 248 249 void endVisit(SQLSubqueryTableSource x); 250 251 bool visit(SQLSubqueryTableSource x); 252 253 void endVisit(SQLTruncateStatement x); 254 255 bool visit(SQLTruncateStatement x); 256 257 void endVisit(SQLDefaultExpr x); 258 259 bool visit(SQLDefaultExpr x); 260 261 void endVisit(SQLCommentStatement x); 262 263 bool visit(SQLCommentStatement x); 264 265 void endVisit(SQLUseStatement x); 266 267 bool visit(SQLUseStatement x); 268 269 bool visit(SQLAlterTableAddColumn x); 270 271 void endVisit(SQLAlterTableAddColumn x); 272 273 bool visit(SQLAlterTableDropColumnItem x); 274 275 void endVisit(SQLAlterTableDropColumnItem x); 276 277 bool visit(SQLAlterTableDropIndex x); 278 279 void endVisit(SQLAlterTableDropIndex x); 280 281 bool visit(SQLDropIndexStatement x); 282 283 void endVisit(SQLDropIndexStatement x); 284 285 bool visit(SQLDropViewStatement x); 286 287 void endVisit(SQLDropViewStatement x); 288 289 bool visit(SQLSavePointStatement x); 290 291 void endVisit(SQLSavePointStatement x); 292 293 bool visit(SQLRollbackStatement x); 294 295 void endVisit(SQLRollbackStatement x); 296 297 bool visit(SQLReleaseSavePointStatement x); 298 299 void endVisit(SQLReleaseSavePointStatement x); 300 301 void endVisit(SQLCommentHint x); 302 303 bool visit(SQLCommentHint x); 304 305 void endVisit(SQLCreateDatabaseStatement x); 306 307 bool visit(SQLCreateDatabaseStatement x); 308 309 void endVisit(SQLOver x); 310 311 bool visit(SQLOver x); 312 313 void endVisit(SQLKeep x); 314 315 bool visit(SQLKeep x); 316 317 void endVisit(SQLColumnPrimaryKey x); 318 319 bool visit(SQLColumnPrimaryKey x); 320 321 bool visit(SQLColumnUniqueKey x); 322 323 void endVisit(SQLColumnUniqueKey x); 324 325 void endVisit(SQLWithSubqueryClause x); 326 327 bool visit(SQLWithSubqueryClause x); 328 329 void endVisit(SQLWithSubqueryClause.Entry x); 330 331 bool visit(SQLWithSubqueryClause.Entry x); 332 333 void endVisit(SQLAlterTableAlterColumn x); 334 335 bool visit(SQLAlterTableAlterColumn x); 336 337 bool visit(SQLCheck x); 338 339 void endVisit(SQLCheck x); 340 341 bool visit(SQLAlterTableDropForeignKey x); 342 343 void endVisit(SQLAlterTableDropForeignKey x); 344 345 bool visit(SQLAlterTableDropPrimaryKey x); 346 347 void endVisit(SQLAlterTableDropPrimaryKey x); 348 349 bool visit(SQLAlterTableDisableKeys x); 350 351 void endVisit(SQLAlterTableDisableKeys x); 352 353 bool visit(SQLAlterTableEnableKeys x); 354 355 void endVisit(SQLAlterTableEnableKeys x); 356 357 bool visit(SQLAlterTableStatement x); 358 359 void endVisit(SQLAlterTableStatement x); 360 361 bool visit(SQLAlterTableDisableConstraint x); 362 363 void endVisit(SQLAlterTableDisableConstraint x); 364 365 bool visit(SQLAlterTableEnableConstraint x); 366 367 void endVisit(SQLAlterTableEnableConstraint x); 368 369 bool visit(SQLColumnCheck x); 370 371 void endVisit(SQLColumnCheck x); 372 373 bool visit(SQLExprHint x); 374 375 void endVisit(SQLExprHint x); 376 377 bool visit(SQLAlterTableDropConstraint x); 378 379 void endVisit(SQLAlterTableDropConstraint x); 380 381 bool visit(SQLUnique x); 382 383 void endVisit(SQLUnique x); 384 385 bool visit(SQLPrimaryKeyImpl x); 386 387 void endVisit(SQLPrimaryKeyImpl x); 388 389 bool visit(SQLCreateIndexStatement x); 390 391 void endVisit(SQLCreateIndexStatement x); 392 393 bool visit(SQLAlterTableRenameColumn x); 394 395 void endVisit(SQLAlterTableRenameColumn x); 396 397 bool visit(SQLColumnReference x); 398 399 void endVisit(SQLColumnReference x); 400 401 bool visit(SQLForeignKeyImpl x); 402 403 void endVisit(SQLForeignKeyImpl x); 404 405 bool visit(SQLDropSequenceStatement x); 406 407 void endVisit(SQLDropSequenceStatement x); 408 409 bool visit(SQLDropTriggerStatement x); 410 411 void endVisit(SQLDropTriggerStatement x); 412 413 void endVisit(SQLDropUserStatement x); 414 415 bool visit(SQLDropUserStatement x); 416 417 void endVisit(SQLExplainStatement x); 418 419 bool visit(SQLExplainStatement x); 420 421 void endVisit(SQLGrantStatement x); 422 423 bool visit(SQLGrantStatement x); 424 425 void endVisit(SQLDropDatabaseStatement x); 426 427 bool visit(SQLDropDatabaseStatement x); 428 429 void endVisit(SQLAlterTableAddIndex x); 430 431 bool visit(SQLAlterTableAddIndex x); 432 433 void endVisit(SQLAlterTableAddConstraint x); 434 435 bool visit(SQLAlterTableAddConstraint x); 436 437 void endVisit(SQLCreateTriggerStatement x); 438 439 bool visit(SQLCreateTriggerStatement x); 440 441 void endVisit(SQLDropFunctionStatement x); 442 443 bool visit(SQLDropFunctionStatement x); 444 445 void endVisit(SQLDropTableSpaceStatement x); 446 447 bool visit(SQLDropTableSpaceStatement x); 448 449 void endVisit(SQLDropProcedureStatement x); 450 451 bool visit(SQLDropProcedureStatement x); 452 453 void endVisit(SQLBooleanExpr x); 454 455 bool visit(SQLBooleanExpr x); 456 457 void endVisit(SQLUnionQueryTableSource x); 458 459 bool visit(SQLUnionQueryTableSource x); 460 461 void endVisit(SQLTimestampExpr x); 462 463 bool visit(SQLTimestampExpr x); 464 465 void endVisit(SQLRevokeStatement x); 466 467 bool visit(SQLRevokeStatement x); 468 469 void endVisit(SQLBinaryExpr x); 470 471 bool visit(SQLBinaryExpr x); 472 473 void endVisit(SQLAlterTableRename x); 474 475 bool visit(SQLAlterTableRename x); 476 477 void endVisit(SQLAlterViewRenameStatement x); 478 479 bool visit(SQLAlterViewRenameStatement x); 480 481 void endVisit(SQLShowTablesStatement x); 482 483 bool visit(SQLShowTablesStatement x); 484 485 void endVisit(SQLAlterTableAddPartition x); 486 487 bool visit(SQLAlterTableAddPartition x); 488 489 void endVisit(SQLAlterTableDropPartition x); 490 491 bool visit(SQLAlterTableDropPartition x); 492 493 void endVisit(SQLAlterTableRenamePartition x); 494 495 bool visit(SQLAlterTableRenamePartition x); 496 497 void endVisit(SQLAlterTableSetComment x); 498 499 bool visit(SQLAlterTableSetComment x); 500 501 void endVisit(SQLAlterTableSetLifecycle x); 502 503 bool visit(SQLAlterTableSetLifecycle x); 504 505 void endVisit(SQLAlterTableEnableLifecycle x); 506 507 bool visit(SQLAlterTableEnableLifecycle x); 508 509 void endVisit(SQLAlterTableDisableLifecycle x); 510 511 bool visit(SQLAlterTableDisableLifecycle x); 512 513 void endVisit(SQLAlterTableTouch x); 514 515 bool visit(SQLAlterTableTouch x); 516 517 void endVisit(SQLArrayExpr x); 518 519 bool visit(SQLArrayExpr x); 520 521 void endVisit(SQLOpenStatement x); 522 523 bool visit(SQLOpenStatement x); 524 525 void endVisit(SQLFetchStatement x); 526 527 bool visit(SQLFetchStatement x); 528 529 void endVisit(SQLCloseStatement x); 530 531 bool visit(SQLCloseStatement x); 532 533 bool visit(SQLGroupingSetExpr x); 534 535 void endVisit(SQLGroupingSetExpr x); 536 537 bool visit(SQLIfStatement x); 538 539 void endVisit(SQLIfStatement x); 540 541 bool visit(SQLIfStatement.ElseIf x); 542 543 void endVisit(SQLIfStatement.ElseIf x); 544 545 bool visit(SQLIfStatement.Else x); 546 547 void endVisit(SQLIfStatement.Else x); 548 549 bool visit(SQLLoopStatement x); 550 551 void endVisit(SQLLoopStatement x); 552 553 bool visit(SQLParameter x); 554 555 void endVisit(SQLParameter x); 556 557 bool visit(SQLCreateProcedureStatement x); 558 559 void endVisit(SQLCreateProcedureStatement x); 560 561 bool visit(SQLCreateFunctionStatement x); 562 563 void endVisit(SQLCreateFunctionStatement x); 564 565 bool visit(SQLBlockStatement x); 566 567 void endVisit(SQLBlockStatement x); 568 569 bool visit(SQLAlterTableDropKey x); 570 571 void endVisit(SQLAlterTableDropKey x); 572 573 bool visit(SQLDeclareItem x); 574 575 void endVisit(SQLDeclareItem x); 576 577 bool visit(SQLPartitionValue x); 578 579 void endVisit(SQLPartitionValue x); 580 581 bool visit(SQLPartition x); 582 583 void endVisit(SQLPartition x); 584 585 bool visit(SQLPartitionByRange x); 586 587 void endVisit(SQLPartitionByRange x); 588 589 bool visit(SQLPartitionByHash x); 590 591 void endVisit(SQLPartitionByHash x); 592 593 bool visit(SQLPartitionByList x); 594 595 void endVisit(SQLPartitionByList x); 596 597 bool visit(SQLSubPartition x); 598 599 void endVisit(SQLSubPartition x); 600 601 bool visit(SQLSubPartitionByHash x); 602 603 void endVisit(SQLSubPartitionByHash x); 604 605 bool visit(SQLSubPartitionByList x); 606 607 void endVisit(SQLSubPartitionByList x); 608 609 bool visit(SQLAlterDatabaseStatement x); 610 611 void endVisit(SQLAlterDatabaseStatement x); 612 613 bool visit(SQLAlterTableConvertCharSet x); 614 615 void endVisit(SQLAlterTableConvertCharSet x); 616 617 bool visit(SQLAlterTableReOrganizePartition x); 618 619 void endVisit(SQLAlterTableReOrganizePartition x); 620 621 bool visit(SQLAlterTableCoalescePartition x); 622 623 void endVisit(SQLAlterTableCoalescePartition x); 624 625 bool visit(SQLAlterTableTruncatePartition x); 626 627 void endVisit(SQLAlterTableTruncatePartition x); 628 629 bool visit(SQLAlterTableDiscardPartition x); 630 631 void endVisit(SQLAlterTableDiscardPartition x); 632 633 bool visit(SQLAlterTableImportPartition x); 634 635 void endVisit(SQLAlterTableImportPartition x); 636 637 bool visit(SQLAlterTableAnalyzePartition x); 638 639 void endVisit(SQLAlterTableAnalyzePartition x); 640 641 bool visit(SQLAlterTableCheckPartition x); 642 643 void endVisit(SQLAlterTableCheckPartition x); 644 645 bool visit(SQLAlterTableOptimizePartition x); 646 647 void endVisit(SQLAlterTableOptimizePartition x); 648 649 bool visit(SQLAlterTableRebuildPartition x); 650 651 void endVisit(SQLAlterTableRebuildPartition x); 652 653 bool visit(SQLAlterTableRepairPartition x); 654 655 void endVisit(SQLAlterTableRepairPartition x); 656 657 bool visit(SQLSequenceExpr x); 658 659 void endVisit(SQLSequenceExpr x); 660 661 bool visit(SQLMergeStatement x); 662 663 void endVisit(SQLMergeStatement x); 664 665 bool visit(SQLMergeStatement.MergeUpdateClause x); 666 667 void endVisit(SQLMergeStatement.MergeUpdateClause x); 668 669 bool visit(SQLMergeStatement.MergeInsertClause x); 670 671 void endVisit(SQLMergeStatement.MergeInsertClause x); 672 673 bool visit(SQLErrorLoggingClause x); 674 675 void endVisit(SQLErrorLoggingClause x); 676 677 bool visit(SQLNullConstraint x); 678 679 void endVisit(SQLNullConstraint x); 680 681 bool visit(SQLCreateSequenceStatement x); 682 683 void endVisit(SQLCreateSequenceStatement x); 684 685 bool visit(SQLDateExpr x); 686 void endVisit(SQLDateExpr x); 687 688 bool visit(SQLLimit x); 689 void endVisit(SQLLimit x); 690 691 void endVisit(SQLStartTransactionStatement x); 692 bool visit(SQLStartTransactionStatement x); 693 694 void endVisit(SQLDescribeStatement x); 695 bool visit(SQLDescribeStatement x); 696 697 /** 698 * support procedure 699 */ 700 bool visit(SQLWhileStatement x); 701 702 void endVisit(SQLWhileStatement x); 703 704 bool visit(SQLDeclareStatement x); 705 706 void endVisit(SQLDeclareStatement x); 707 708 bool visit(SQLReturnStatement x); 709 710 void endVisit(SQLReturnStatement x); 711 712 bool visit(SQLArgument x); 713 714 void endVisit(SQLArgument x); 715 716 bool visit(SQLCommitStatement x); 717 718 void endVisit(SQLCommitStatement x); 719 720 bool visit(SQLFlashbackExpr x); 721 722 void endVisit(SQLFlashbackExpr x); 723 724 bool visit(SQLCreateMaterializedViewStatement x); 725 726 void endVisit(SQLCreateMaterializedViewStatement x); 727 728 bool visit(SQLBinaryOpExprGroup x); 729 730 void endVisit(SQLBinaryOpExprGroup x); 731 732 bool visit(SQLScriptCommitStatement x); 733 734 void endVisit(SQLScriptCommitStatement x); 735 736 bool visit(SQLReplaceStatement x); 737 738 void endVisit(SQLReplaceStatement x); 739 740 bool visit(SQLCreateUserStatement x); 741 742 void endVisit(SQLCreateUserStatement x); 743 744 bool visit(SQLAlterFunctionStatement x); 745 746 void endVisit(SQLAlterFunctionStatement x); 747 748 bool visit(SQLAlterTypeStatement x); 749 750 void endVisit(SQLAlterTypeStatement x); 751 752 bool visit(SQLIntervalExpr x); 753 754 void endVisit(SQLIntervalExpr x); 755 756 bool visit(SQLLateralViewTableSource x); 757 758 void endVisit(SQLLateralViewTableSource x); 759 760 bool visit(SQLShowErrorsStatement x); 761 void endVisit(SQLShowErrorsStatement x); 762 763 bool visit(SQLAlterCharacter x); 764 void endVisit(SQLAlterCharacter x); 765 766 bool visit(SQLExprStatement x); 767 void endVisit(SQLExprStatement x); 768 769 bool visit(SQLAlterProcedureStatement x); 770 void endVisit(SQLAlterProcedureStatement x); 771 772 bool visit(SQLAlterViewStatement x); 773 void endVisit(SQLAlterViewStatement x); 774 775 bool visit(SQLDropEventStatement x); 776 void endVisit(SQLDropEventStatement x); 777 778 bool visit(SQLDropLogFileGroupStatement x); 779 void endVisit(SQLDropLogFileGroupStatement x); 780 781 bool visit(SQLDropServerStatement x); 782 void endVisit(SQLDropServerStatement x); 783 784 bool visit(SQLDropSynonymStatement x); 785 void endVisit(SQLDropSynonymStatement x); 786 787 bool visit(SQLRecordDataType x); 788 void endVisit(SQLRecordDataType x); 789 790 bool visit(SQLDropTypeStatement x); 791 void endVisit(SQLDropTypeStatement x); 792 793 bool visit(SQLExternalRecordFormat x); 794 void endVisit(SQLExternalRecordFormat x); 795 796 bool visit(SQLArrayDataType x); 797 void endVisit(SQLArrayDataType x); 798 799 bool visit(SQLMapDataType x); 800 void endVisit(SQLMapDataType x); 801 802 bool visit(SQLStructDataType x); 803 void endVisit(SQLStructDataType x); 804 805 bool visit(SQLStructDataType.Field x); 806 void endVisit(SQLStructDataType.Field x); 807 808 bool visit(SQLDropMaterializedViewStatement x); 809 void endVisit(SQLDropMaterializedViewStatement x); 810 811 bool visit(SQLAlterTableRenameIndex x); 812 void endVisit(SQLAlterTableRenameIndex x); 813 814 bool visit(SQLAlterSequenceStatement x); 815 void endVisit(SQLAlterSequenceStatement x); 816 817 bool visit(SQLAlterTableExchangePartition x); 818 void endVisit(SQLAlterTableExchangePartition x); 819 820 bool visit(SQLValuesExpr x); 821 void endVisit(SQLValuesExpr x); 822 823 bool visit(SQLValuesTableSource x); 824 void endVisit(SQLValuesTableSource x); 825 826 bool visit(SQLContainsExpr x); 827 void endVisit(SQLContainsExpr x); 828 829 bool visit(SQLRealExpr x); 830 void endVisit(SQLRealExpr x); 831 832 bool visit(SQLWindow x); 833 void endVisit(SQLWindow x); 834 835 bool visit(SQLDumpStatement x); 836 void endVisit(SQLDumpStatement x); 837 838 }