package com.chenyang.druid.sql.dialect.db2.visitor;

import com.chenyang.druid.sql.dialect.db2.ast.DB2SQLIndexSpec;
import com.chenyang.druid.sql.dialect.db2.ast.DB2SQLPartition;
import com.chenyang.druid.sql.dialect.db2.ast.DB2SQLPartitionBy;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2BoxExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2CidrExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2CircleExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2ColumnSimpleDefinitionExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2CurrentTimeExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2ExtractExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2InetExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2LineSegmentsExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2MacAddrExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2OptionValue;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2PointExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2PolygonExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2SQLObjectCollection;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2SchemaTables;
import com.chenyang.druid.sql.dialect.db2.ast.expr.DB2TypeCastExpr;
import com.chenyang.druid.sql.dialect.db2.ast.expr.constraint.DB2Constraint;
import com.chenyang.druid.sql.dialect.db2.ast.expr.constraint.DB2StorageParameter;
import com.chenyang.druid.sql.dialect.db2.ast.expr.tablesource.DB2ExprTableSource;
import com.chenyang.druid.sql.dialect.db2.ast.expr.tablesource.DB2FunctionTableSource;
import com.chenyang.druid.sql.dialect.db2.ast.expr.tablesource.DB2MethodInvokeTableSource;
import com.chenyang.druid.sql.dialect.db2.ast.expr.tablesource.DB2RowsFromTableSource;
import com.chenyang.druid.sql.dialect.db2.ast.expr.tablesource.DB2SubqueryTableSource;
import com.chenyang.druid.sql.dialect.db2.ast.expr.tablesource.DB2ValuesTableSource;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterDatabaseStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterGroupStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterIndexStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterRoleStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterSchemaStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterSequenceStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterSessionStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterSynonymStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterSystemKillSessionStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterTableSpaceStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterTableStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterTriggerStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2AlterViewStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CommonStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2ConnectToStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateDatabaseStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateGroupStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateIndexStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateMaterializedViewStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateRoleStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateSchemaStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateSeqenceStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateSynonymStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateTableAsStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateTableSpaceStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateTableStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateTriggerStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2CreateViewStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2DeleteStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2DropConnectionStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2DropSchemaStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2DropSequenceStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2DropSessionStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2DropTriggerStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2GrantStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2InsertStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2LockTableStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2RevokeStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2SelectQueryBlock;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2SelectStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2SetConnectionStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2SetSessionStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2SetTransactionStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2ShowStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2StartTransactionStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.DB2UpdateStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableAddColumn;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableAddConstraint;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableAlterColumn;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableAlterColumnOptions;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableCluster;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableDisableEnabelTrigger;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableDropColumn;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableDropConstraint;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableInheriteOrNotParentTable;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableModify;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableOf;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableRenameColumn;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableRenameConstraint;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableRenameTo;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableSetNewTableSpace;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableSetReset;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableSetSchema;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableSetTableSpace;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableSetWith;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterTableValidateConstraint;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2AlterUserStatement;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2ColumnDefinition;
import com.chenyang.druid.sql.dialect.db2.ast.stmt.alterTable.DB2CreateUserStatement;
import com.chenyang.druid.sql.visitor.SQLASTVisitor;

public interface DB2ASTVisitor extends SQLASTVisitor {
   void endVisit(DB2SelectQueryBlock var1);

   boolean visit(DB2SelectQueryBlock var1);

   void endVisit(DB2SelectQueryBlock.FetchClause var1);

   boolean visit(DB2SelectQueryBlock.FetchClause var1);

   void endVisit(DB2SelectQueryBlock.ForClause var1);

   boolean visit(DB2SelectQueryBlock.ForClause var1);

   void endVisit(DB2DeleteStatement var1);

   boolean visit(DB2DeleteStatement var1);

   void endVisit(DB2InsertStatement var1);

   boolean visit(DB2InsertStatement var1);

   void endVisit(DB2SelectStatement var1);

   boolean visit(DB2SelectStatement var1);

   void endVisit(DB2UpdateStatement var1);

   boolean visit(DB2UpdateStatement var1);

   void endVisit(DB2FunctionTableSource var1);

   boolean visit(DB2FunctionTableSource var1);

   void endVisit(DB2TypeCastExpr var1);

   boolean visit(DB2TypeCastExpr var1);

   void endVisit(DB2ExtractExpr var1);

   boolean visit(DB2ExtractExpr var1);

   void endVisit(DB2BoxExpr var1);

   boolean visit(DB2BoxExpr var1);

   void endVisit(DB2PointExpr var1);

   boolean visit(DB2PointExpr var1);

   void endVisit(DB2MacAddrExpr var1);

   boolean visit(DB2MacAddrExpr var1);

   void endVisit(DB2InetExpr var1);

   boolean visit(DB2InetExpr var1);

   void endVisit(DB2CidrExpr var1);

   boolean visit(DB2CidrExpr var1);

   void endVisit(DB2PolygonExpr var1);

   boolean visit(DB2PolygonExpr var1);

   void endVisit(DB2CircleExpr var1);

   boolean visit(DB2CircleExpr var1);

   void endVisit(DB2LineSegmentsExpr var1);

   boolean visit(DB2LineSegmentsExpr var1);

   void endVisit(DB2ShowStatement var1);

   boolean visit(DB2ShowStatement var1);

   void endVisit(DB2StartTransactionStatement var1);

   boolean visit(DB2StartTransactionStatement var1);

   void endVisit(DB2ConnectToStatement var1);

   boolean visit(DB2ConnectToStatement var1);

   void endVisit(DB2CreateSchemaStatement var1);

   boolean visit(DB2CreateSchemaStatement var1);

   void endVisit(DB2DropSchemaStatement var1);

   boolean visit(DB2DropSchemaStatement var1);

   void endVisit(DB2AlterSchemaStatement var1);

   boolean visit(DB2AlterSchemaStatement var1);

   void endVisit(DB2MethodInvokeTableSource var1);

   boolean visit(DB2MethodInvokeTableSource var1);

   void endVisit(DB2ExprTableSource var1);

   boolean visit(DB2ExprTableSource var1);

   void endVisit(DB2SubqueryTableSource var1);

   boolean visit(DB2SubqueryTableSource var1);

   void endVisit(DB2ValuesTableSource var1);

   boolean visit(DB2ValuesTableSource var1);

   void endVisit(DB2ValuesTableSource.ValueRow var1);

   boolean visit(DB2ValuesTableSource.ValueRow var1);

   void endVisit(DB2SelectQueryBlock.ForClauses var1);

   boolean visit(DB2SelectQueryBlock.ForClauses var1);

   void endVisit(DB2ColumnSimpleDefinitionExpr var1);

   boolean visit(DB2ColumnSimpleDefinitionExpr var1);

   void endVisit(DB2RowsFromTableSource var1);

   boolean visit(DB2RowsFromTableSource var1);

   void endVisit(DB2AlterDatabaseStatement var1);

   boolean visit(DB2AlterDatabaseStatement var1);

   void endVisit(DB2AlterIndexStatement var1);

   boolean visit(DB2AlterIndexStatement var1);

   void endVisit(DB2AlterSequenceStatement var1);

   boolean visit(DB2AlterSequenceStatement var1);

   void endVisit(DB2AlterTableStatement var1);

   boolean visit(DB2AlterTableStatement var1);

   void endVisit(DB2AlterTableRenameColumn var1);

   boolean visit(DB2AlterTableRenameColumn var1);

   void endVisit(DB2AlterTableRenameConstraint var1);

   boolean visit(DB2AlterTableRenameConstraint var1);

   void endVisit(DB2AlterTableRenameTo var1);

   boolean visit(DB2AlterTableRenameTo var1);

   void endVisit(DB2AlterTableSetSchema var1);

   boolean visit(DB2AlterTableSetSchema var1);

   void endVisit(DB2AlterTableSetNewTableSpace var1);

   boolean visit(DB2AlterTableSetNewTableSpace var1);

   void endVisit(DB2AlterTableSetWith var1);

   boolean visit(DB2AlterTableSetWith var1);

   void endVisit(DB2AlterTableAddColumn var1);

   boolean visit(DB2AlterTableAddColumn var1);

   void endVisit(DB2AlterTableSetWith.DB2AlterTableDistributeByOption var1);

   boolean visit(DB2AlterTableSetWith.DB2AlterTableDistributeByOption var1);

   void endVisit(DB2AlterTableDropColumn var1);

   boolean visit(DB2AlterTableDropColumn var1);

   void endVisit(DB2AlterTableAlterColumn var1);

   boolean visit(DB2AlterTableAlterColumn var1);

   void endVisit(DB2AlterTableAlterColumnOptions var1);

   boolean visit(DB2AlterTableAlterColumnOptions var1);

   void endVisit(DB2AlterTableAlterColumnOptions.DB2AlterTableAlterColumnOptionValue var1);

   boolean visit(DB2AlterTableAlterColumnOptions.DB2AlterTableAlterColumnOptionValue var1);

   void endVisit(DB2AlterTableAddConstraint var1);

   boolean visit(DB2AlterTableAddConstraint var1);

   void endVisit(DB2AlterTableAddConstraint.DB2AlterTableAddConstraintUsingIndex var1);

   boolean visit(DB2AlterTableAddConstraint.DB2AlterTableAddConstraintUsingIndex var1);

   void endVisit(DB2AlterTableValidateConstraint var1);

   boolean visit(DB2AlterTableValidateConstraint var1);

   void endVisit(DB2AlterTableDropConstraint var1);

   boolean visit(DB2AlterTableDropConstraint var1);

   void endVisit(DB2AlterTableDisableEnabelTrigger var1);

   boolean visit(DB2AlterTableDisableEnabelTrigger var1);

   void endVisit(DB2AlterTableCluster var1);

   boolean visit(DB2AlterTableCluster var1);

   void endVisit(DB2AlterTableSetReset var1);

   boolean visit(DB2AlterTableSetReset var1);

   void endVisit(DB2AlterTableSetReset.StorageParameter var1);

   boolean visit(DB2AlterTableSetReset.StorageParameter var1);

   void endVisit(DB2AlterTableInheriteOrNotParentTable var1);

   boolean visit(DB2AlterTableInheriteOrNotParentTable var1);

   void endVisit(DB2AlterTableOf var1);

   boolean visit(DB2AlterTableOf var1);

   void endVisit(DB2AlterTableSetTableSpace var1);

   boolean visit(DB2AlterTableSetTableSpace var1);

   void endVisit(DB2CreateDatabaseStatement var1);

   boolean visit(DB2CreateDatabaseStatement var1);

   void endVisit(DB2Constraint var1);

   boolean visit(DB2Constraint var1);

   void endVisit(DB2Constraint.DB2ConstraintCheck var1);

   boolean visit(DB2Constraint.DB2ConstraintCheck var1);

   void endVisit(DB2Constraint.DB2Unique var1);

   boolean visit(DB2Constraint.DB2Unique var1);

   void endVisit(DB2Constraint.DB2PrimaryKey var1);

   boolean visit(DB2Constraint.DB2PrimaryKey var1);

   void endVisit(DB2Constraint.DB2ForeignKey var1);

   boolean visit(DB2Constraint.DB2ForeignKey var1);

   void endVisit(DB2OptionValue var1);

   boolean visit(DB2OptionValue var1);

   void endVisit(DB2StorageParameter var1);

   boolean visit(DB2StorageParameter var1);

   void endVisit(DB2Constraint.DB2IndexParamaters var1);

   boolean visit(DB2Constraint.DB2IndexParamaters var1);

   void endVisit(DB2Constraint.DB2Reference var1);

   boolean visit(DB2Constraint.DB2Reference var1);

   void endVisit(DB2ColumnDefinition var1);

   boolean visit(DB2ColumnDefinition var1);

   void endVisit(DB2CreateTableStatement var1);

   boolean visit(DB2CreateTableStatement var1);

   void endVisit(DB2CreateTableStatement.DB2TableDistributedBy var1);

   boolean visit(DB2CreateTableStatement.DB2TableDistributedBy var1);

   void endVisit(DB2SQLObjectCollection var1);

   boolean visit(DB2SQLObjectCollection var1);

   void endVisit(DB2SchemaTables var1);

   boolean visit(DB2SchemaTables var1);

   void endVisit(DB2GrantStatement var1);

   boolean visit(DB2GrantStatement var1);

   boolean visit(DB2AlterViewStatement var1);

   boolean visit(DB2CreateSeqenceStatement var1);

   boolean visit(DB2CreateTableSpaceStatement var1);

   boolean visit(DB2CreateViewStatement var1);

   boolean visit(DB2DropSequenceStatement var1);

   boolean visit(DB2SQLPartitionBy var1);

   boolean visit(DB2SQLPartition var1);

   boolean visit(DB2SQLIndexSpec var1);

   boolean visit(DB2CreateIndexStatement var1);

   void endVisit(DB2AlterSessionStatement var1);

   boolean visit(DB2AlterSessionStatement var1);

   void endVisit(DB2AlterSystemKillSessionStatement var1);

   boolean visit(DB2AlterSystemKillSessionStatement var1);

   void endVisit(DB2AlterTableSpaceStatement var1);

   boolean visit(DB2AlterTableSpaceStatement var1);

   void endVisit(DB2AlterTableModify var1);

   boolean visit(DB2AlterTableModify var1);

   void endVisit(DB2CreateUserStatement var1);

   boolean visit(DB2CreateUserStatement var1);

   void endVisit(DB2AlterUserStatement var1);

   boolean visit(DB2AlterUserStatement var1);

   void endVisit(DB2CommonStatement var1);

   boolean visit(DB2CommonStatement var1);

   void endVisit(DB2CreateGroupStatement var1);

   boolean visit(DB2CreateGroupStatement var1);

   void endVisit(DB2AlterGroupStatement var1);

   boolean visit(DB2AlterGroupStatement var1);

   void endVisit(DB2CreateMaterializedViewStatement var1);

   boolean visit(DB2CreateMaterializedViewStatement var1);

   void endVisit(DB2DropSequenceStatement var1);

   void endVisit(DB2CreateSynonymStatement var1);

   boolean visit(DB2CreateSynonymStatement var1);

   void endVisit(DB2AlterSynonymStatement var1);

   boolean visit(DB2AlterSynonymStatement var1);

   void endVisit(DB2CreateRoleStatement var1);

   boolean visit(DB2CreateRoleStatement var1);

   void endVisit(DB2AlterRoleStatement var1);

   boolean visit(DB2AlterRoleStatement var1);

   void endVisit(DB2CreateTableAsStatement var1);

   boolean visit(DB2CreateTableAsStatement var1);

   void endVisit(DB2RevokeStatement var1);

   boolean visit(DB2RevokeStatement var1);

   void endVisit(DB2CreateTriggerStatement var1);

   boolean visit(DB2CreateTriggerStatement var1);

   void endVisit(DB2AlterTriggerStatement var1);

   boolean visit(DB2AlterTriggerStatement var1);

   void endVisit(DB2DropTriggerStatement var1);

   boolean visit(DB2DropTriggerStatement var1);

   void endVisit(DB2SetTransactionStatement var1);

   boolean visit(DB2SetTransactionStatement var1);

   void endVisit(DB2SetSessionStatement var1);

   boolean visit(DB2SetSessionStatement var1);

   void endVisit(DB2DropSessionStatement var1);

   boolean visit(DB2DropSessionStatement var1);

   void endVisit(DB2SetConnectionStatement var1);

   boolean visit(DB2SetConnectionStatement var1);

   void endVisit(DB2DropConnectionStatement var1);

   boolean visit(DB2DropConnectionStatement var1);

   void endVisit(DB2LockTableStatement var1);

   boolean visit(DB2LockTableStatement var1);

   void endVisit(DB2CurrentTimeExpr var1);

   boolean visit(DB2CurrentTimeExpr var1);
}
