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

import com.chenyang.druid.sql.dialect.postgresql.ast.PGSQLIndexSpec;
import com.chenyang.druid.sql.dialect.postgresql.ast.PGSQLPartition;
import com.chenyang.druid.sql.dialect.postgresql.ast.PGSQLPartitionBy;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGBoxExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGCidrExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGCircleExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGColumnSimpleDefinitionExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGExtractExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGInetExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGLineSegmentsExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGMacAddrExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGOptionValue;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGPointExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGPolygonExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGSQLObjectCollection;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGSchemaTables;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.PGTypeCastExpr;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.constraint.PGConstraint;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.constraint.PGStorageParameter;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.tablesource.PGExprTableSource;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.tablesource.PGMethodInvokeTableSource;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.tablesource.PGRowsFromTableSource;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.tablesource.PGSubqueryTableSource;
import com.chenyang.druid.sql.dialect.postgresql.ast.expr.tablesource.PGValuesTableSource;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGAlterDatabaseStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGAlterIndexStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGAlterSchemaStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGAlterSequenceStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGAlterTableStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGAlterViewStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGConnectToStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGCreateDatabaseStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGCreateIndexStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGCreateSchemaStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGCreateSeqenceStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGCreateTableSpaceStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGCreateTableStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGCreateViewStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGDeleteStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGDropSchemaStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGDropSequenceStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGFunctionTableSource;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGGrantStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGInsertStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGSelectQueryBlock;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGSelectStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGShowStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGStartTransactionStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.PGUpdateStatement;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableAddColumn;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableAddConstraint;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableAlterColumn;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableAlterColumnOptions;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableCluster;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableDisableEnabelTrigger;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableDropColumn;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableDropConstraint;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableInheriteOrNotParentTable;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableOf;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableRenameColumn;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableRenameConstraint;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableRenameTo;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableSetNewTableSpace;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableSetReset;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableSetSchema;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableSetTableSpace;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableSetWith;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGAlterTableValidateConstraint;
import com.chenyang.druid.sql.dialect.postgresql.ast.stmt.alterTable.PGColumnDefinition;
import com.chenyang.druid.sql.visitor.SQLASTVisitor;

public interface PGASTVisitor extends SQLASTVisitor {
   void endVisit(PGSelectQueryBlock var1);

   boolean visit(PGSelectQueryBlock var1);

   void endVisit(PGSelectQueryBlock.FetchClause var1);

   boolean visit(PGSelectQueryBlock.FetchClause var1);

   void endVisit(PGSelectQueryBlock.ForClause var1);

   boolean visit(PGSelectQueryBlock.ForClause var1);

   void endVisit(PGDeleteStatement var1);

   boolean visit(PGDeleteStatement var1);

   void endVisit(PGInsertStatement var1);

   boolean visit(PGInsertStatement var1);

   void endVisit(PGSelectStatement var1);

   boolean visit(PGSelectStatement var1);

   void endVisit(PGUpdateStatement var1);

   boolean visit(PGUpdateStatement var1);

   void endVisit(PGFunctionTableSource var1);

   boolean visit(PGFunctionTableSource var1);

   void endVisit(PGTypeCastExpr var1);

   boolean visit(PGTypeCastExpr var1);

   void endVisit(PGExtractExpr var1);

   boolean visit(PGExtractExpr var1);

   void endVisit(PGBoxExpr var1);

   boolean visit(PGBoxExpr var1);

   void endVisit(PGPointExpr var1);

   boolean visit(PGPointExpr var1);

   void endVisit(PGMacAddrExpr var1);

   boolean visit(PGMacAddrExpr var1);

   void endVisit(PGInetExpr var1);

   boolean visit(PGInetExpr var1);

   void endVisit(PGCidrExpr var1);

   boolean visit(PGCidrExpr var1);

   void endVisit(PGPolygonExpr var1);

   boolean visit(PGPolygonExpr var1);

   void endVisit(PGCircleExpr var1);

   boolean visit(PGCircleExpr var1);

   void endVisit(PGLineSegmentsExpr var1);

   boolean visit(PGLineSegmentsExpr var1);

   void endVisit(PGShowStatement var1);

   boolean visit(PGShowStatement var1);

   void endVisit(PGStartTransactionStatement var1);

   boolean visit(PGStartTransactionStatement var1);

   void endVisit(PGConnectToStatement var1);

   boolean visit(PGConnectToStatement var1);

   void endVisit(PGCreateSchemaStatement var1);

   boolean visit(PGCreateSchemaStatement var1);

   void endVisit(PGDropSchemaStatement var1);

   boolean visit(PGDropSchemaStatement var1);

   void endVisit(PGAlterSchemaStatement var1);

   boolean visit(PGAlterSchemaStatement var1);

   void endVisit(PGOptionValue var1);

   boolean visit(PGOptionValue var1);

   void endVisit(PGCreateTableStatement.PGTableDistributedBy var1);

   boolean visit(PGCreateTableStatement.PGTableDistributedBy var1);

   void endVisit(PGAlterTableAddConstraint var1);

   boolean visit(PGAlterTableAddConstraint var1);

   void endVisit(PGAlterTableAddConstraint.PGAlterTableAddConstraintUsingIndex var1);

   boolean visit(PGAlterTableAddConstraint.PGAlterTableAddConstraintUsingIndex var1);

   void endVisit(PGAlterTableAlterColumn var1);

   boolean visit(PGAlterTableAlterColumn var1);

   void endVisit(PGAlterTableAlterColumnOptions var1);

   boolean visit(PGAlterTableAlterColumnOptions var1);

   void endVisit(PGAlterTableAlterColumnOptions.PGAlterTableAlterColumnOptionValue var1);

   boolean visit(PGAlterTableAlterColumnOptions.PGAlterTableAlterColumnOptionValue var1);

   void endVisit(PGAlterTableCluster var1);

   boolean visit(PGAlterTableCluster var1);

   void endVisit(PGAlterTableDisableEnabelTrigger var1);

   boolean visit(PGAlterTableDisableEnabelTrigger var1);

   void endVisit(PGAlterTableDropColumn var1);

   boolean visit(PGAlterTableDropColumn var1);

   void endVisit(PGAlterTableDropConstraint var1);

   boolean visit(PGAlterTableDropConstraint var1);

   void endVisit(PGConstraint var1);

   boolean visit(PGConstraint var1);

   void endVisit(PGConstraint.PGConstraintCheck var1);

   boolean visit(PGConstraint.PGConstraintCheck var1);

   void endVisit(PGConstraint.PGIndexParamaters var1);

   boolean visit(PGConstraint.PGIndexParamaters var1);

   void endVisit(PGConstraint.PGUnique var1);

   boolean visit(PGConstraint.PGUnique var1);

   void endVisit(PGConstraint.PGForeignKey var1);

   boolean visit(PGConstraint.PGForeignKey var1);

   void endVisit(PGConstraint.PGReference var1);

   boolean visit(PGConstraint.PGReference var1);

   void endVisit(PGColumnSimpleDefinitionExpr var1);

   boolean visit(PGColumnSimpleDefinitionExpr var1);

   void endVisit(PGValuesTableSource.ValueRow var1);

   boolean visit(PGValuesTableSource.ValueRow var1);

   void endVisit(PGAlterTableInheriteOrNotParentTable var1);

   boolean visit(PGAlterTableInheriteOrNotParentTable var1);

   void endVisit(PGAlterTableOf var1);

   boolean visit(PGAlterTableOf var1);

   void endVisit(PGAlterTableRenameColumn var1);

   boolean visit(PGAlterTableRenameColumn var1);

   void endVisit(PGAlterTableRenameConstraint var1);

   boolean visit(PGAlterTableRenameConstraint var1);

   void endVisit(PGAlterTableRenameTo var1);

   boolean visit(PGAlterTableRenameTo var1);

   void endVisit(PGAlterTableSetNewTableSpace var1);

   boolean visit(PGAlterTableSetNewTableSpace var1);

   void endVisit(PGAlterTableSetReset var1);

   boolean visit(PGAlterTableSetReset var1);

   void endVisit(PGAlterTableSetReset.StorageParameter var1);

   boolean visit(PGAlterTableSetReset.StorageParameter var1);

   void endVisit(PGAlterTableSetSchema var1);

   boolean visit(PGAlterTableSetSchema var1);

   void endVisit(PGAlterTableSetTableSpace var1);

   boolean visit(PGAlterTableSetTableSpace var1);

   void endVisit(PGAlterTableSetWith var1);

   boolean visit(PGAlterTableSetWith var1);

   void endVisit(PGAlterTableSetWith.PGAlterTableDistributeByOption var1);

   boolean visit(PGAlterTableSetWith.PGAlterTableDistributeByOption var1);

   void endVisit(PGAlterTableValidateConstraint var1);

   boolean visit(PGAlterTableValidateConstraint var1);

   boolean visit(PGSQLPartitionBy var1);

   boolean visit(PGSQLIndexSpec var1);

   boolean visit(PGSelectQueryBlock.ForClauses var1);

   void endVisit(PGSelectQueryBlock.ForClauses var1);

   boolean visit(PGCreateSeqenceStatement var1);

   boolean visit(PGCreateTableSpaceStatement var1);

   boolean visit(PGAlterViewStatement var1);

   boolean visit(PGSQLObjectCollection var1);

   void endVisit(PGSQLObjectCollection var1);

   void endVisit(PGGrantStatement var1);

   boolean visit(PGGrantStatement var1);

   void endVisit(PGSubqueryTableSource var1);

   boolean visit(PGSubqueryTableSource var1);

   void endVisit(PGMethodInvokeTableSource var1);

   boolean visit(PGMethodInvokeTableSource var1);

   void endVisit(PGExprTableSource var1);

   boolean visit(PGExprTableSource var1);

   void endVisit(PGRowsFromTableSource var1);

   boolean visit(PGRowsFromTableSource var1);

   void endVisit(PGAlterDatabaseStatement var1);

   boolean visit(PGAlterDatabaseStatement var1);

   void endVisit(PGValuesTableSource var1);

   boolean visit(PGValuesTableSource var1);

   void endVisit(PGAlterIndexStatement var1);

   boolean visit(PGAlterIndexStatement var1);

   void endVisit(PGAlterSequenceStatement var1);

   boolean visit(PGAlterSequenceStatement var1);

   void endVisit(PGAlterTableStatement var1);

   boolean visit(PGAlterTableStatement var1);

   void endVisit(PGAlterTableAddColumn var1);

   boolean visit(PGAlterTableAddColumn var1);

   void endVisit(PGCreateDatabaseStatement var1);

   boolean visit(PGCreateDatabaseStatement var1);

   void endVisit(PGConstraint.PGPrimaryKey var1);

   boolean visit(PGConstraint.PGPrimaryKey var1);

   void endVisit(PGCreateTableStatement var1);

   boolean visit(PGCreateTableStatement var1);

   void endVisit(PGColumnDefinition var1);

   boolean visit(PGColumnDefinition var1);

   void endVisit(PGStorageParameter var1);

   boolean visit(PGStorageParameter var1);

   void endVisit(PGSchemaTables var1);

   boolean visit(PGSchemaTables var1);

   boolean visit(PGCreateViewStatement var1);

   boolean visit(PGDropSequenceStatement var1);

   boolean visit(PGSQLPartition var1);

   boolean visit(PGCreateIndexStatement var1);
}
