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

import com.chenyang.druid.sql.dialect.spark.ast.expr.HiveRowFormat;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkColumnDef;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkColumnSpecExpr;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkDateExpr;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkDefProperty;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkIntervalExpr;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkNullsExpr;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkNumberExpr;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkSQLSubqueryTableSource;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkSampleExpr;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkSelectJoinTableSource;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkSelectPivot;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkSelectTableReference;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkTablePartition;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkTransformExpr;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkValuesExpr;
import com.chenyang.druid.sql.dialect.spark.ast.expr.SparkWithExpr;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkAlterDatabaseStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkAlterTableStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkAlterViewStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkCacheTableStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkCreateDatabaseStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkCreateTableStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkCreateViewStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkExplainStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkInsertStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkLoadStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkRefreshStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkRepairTableStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkShowCreateTableStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkShowDatabasesStatement;
import com.chenyang.druid.sql.dialect.spark.ast.statement.SparkShowTableStatement;
import com.chenyang.druid.sql.visitor.SQLASTVisitor;

public interface SparkVisitor extends SQLASTVisitor {
   boolean visit(SparkCreateTableStatement var1);

   void endVisit(SparkCreateTableStatement var1);

   boolean visit(SparkWithExpr var1);

   void endVisit(SparkWithExpr var1);

   boolean visit(SparkValuesExpr var1);

   void endVisit(SparkValuesExpr var1);

   boolean visit(SparkSelectPivot var1);

   void endVisit(SparkSelectPivot var1);

   boolean visit(SparkSelectPivot.Item var1);

   void endVisit(SparkSelectPivot.Item var1);

   boolean visit(SparkSQLSubqueryTableSource var1);

   void endVisit(SparkSQLSubqueryTableSource var1);

   boolean visit(SparkSelectJoinTableSource var1);

   void endVisit(SparkSelectJoinTableSource var1);

   boolean visit(SparkSelectTableReference var1);

   void endVisit(SparkSelectTableReference var1);

   boolean visit(SparkNullsExpr var1);

   void endVisit(SparkNullsExpr var1);

   boolean visit(SparkDefProperty var1);

   void endVisit(SparkDefProperty var1);

   boolean visit(SparkColumnDef var1);

   void endVisit(SparkColumnDef var1);

   boolean visit(SparkTransformExpr var1);

   void endVisit(SparkTransformExpr var1);

   boolean visit(SparkTransformExpr.CommandScriptDef var1);

   void endVisit(SparkTransformExpr.CommandScriptDef var1);

   boolean visit(HiveRowFormat var1);

   void endVisit(HiveRowFormat var1);

   boolean visit(HiveRowFormat.RowFormatDelimitor var1);

   void endVisit(HiveRowFormat.RowFormatDelimitor var1);

   boolean visit(HiveRowFormat.RowFormatSede var1);

   void endVisit(HiveRowFormat.RowFormatSede var1);

   boolean visit(SparkTablePartition var1);

   void endVisit(SparkTablePartition var1);

   boolean visit(SparkDateExpr var1);

   void endVisit(SparkDateExpr var1);

   boolean visit(SparkInsertStatement var1);

   void endVisit(SparkInsertStatement var1);

   boolean visit(SparkInsertStatement.SparkFormat var1);

   void endVisit(SparkInsertStatement.SparkFormat var1);

   boolean visit(SparkLoadStatement var1);

   void endVisit(SparkLoadStatement var1);

   boolean visit(SparkSampleExpr var1);

   void endVisit(SparkSampleExpr var1);

   boolean visit(SparkIntervalExpr var1);

   void endVisit(SparkIntervalExpr var1);

   boolean visit(SparkIntervalExpr.SparkIntervalItem var1);

   void endVisit(SparkIntervalExpr.SparkIntervalItem var1);

   boolean visit(SparkNumberExpr var1);

   void endVisit(SparkNumberExpr var1);

   void endVisit(SparkExplainStatement var1);

   boolean visit(SparkExplainStatement var1);

   void endVisit(SparkShowDatabasesStatement var1);

   boolean visit(SparkShowDatabasesStatement var1);

   void endVisit(SparkRepairTableStatement var1);

   boolean visit(SparkRepairTableStatement var1);

   void endVisit(SparkCreateViewStatement var1);

   boolean visit(SparkCreateViewStatement var1);

   void endVisit(SparkShowCreateTableStatement var1);

   boolean visit(SparkShowCreateTableStatement var1);

   boolean visit(SparkAlterDatabaseStatement var1);

   void endVisit(SparkAlterDatabaseStatement var1);

   boolean visit(SparkAlterTableStatement var1);

   void endVisit(SparkAlterTableStatement var1);

   boolean visit(SparkAlterTableStatement.SparkAlterTableReNameTo var1);

   void endVisit(SparkAlterTableStatement.SparkAlterTableReNameTo var1);

   boolean visit(SparkAlterTableStatement.SparkAlterTableAddColumns var1);

   void endVisit(SparkAlterTableStatement.SparkAlterTableAddColumns var1);

   boolean visit(SparkAlterTableStatement.SparkAlterTableDropColumns var1);

   void endVisit(SparkAlterTableStatement.SparkAlterTableDropColumns var1);

   boolean visit(SparkAlterTableStatement.SparkAlterTableRenameColumn var1);

   void endVisit(SparkAlterTableStatement.SparkAlterTableRenameColumn var1);

   boolean visit(SparkAlterTableStatement.SparkAlterTableChangeColumn var1);

   void endVisit(SparkAlterTableStatement.SparkAlterTableChangeColumn var1);

   boolean visit(SparkAlterTableStatement.SparkAlterTableReplaceColumns var1);

   void endVisit(SparkAlterTableStatement.SparkAlterTableReplaceColumns var1);

   boolean visit(SparkAlterTableStatement.SparkAlterTableAddOrDropPartition var1);

   void endVisit(SparkAlterTableStatement.SparkAlterTableAddOrDropPartition var1);

   boolean visit(SparkAlterTableStatement.SparkAlterTableSetUnsetProps var1);

   void endVisit(SparkAlterTableStatement.SparkAlterTableSetUnsetProps var1);

   boolean visit(SparkAlterViewStatement var1);

   void endVisit(SparkAlterViewStatement var1);

   boolean visit(SparkAlterViewStatement.SparkAlterViewReNameTo var1);

   void endVisit(SparkAlterViewStatement.SparkAlterViewReNameTo var1);

   boolean visit(SparkAlterViewStatement.SparkAlterViewSetUnsetProps var1);

   void endVisit(SparkAlterViewStatement.SparkAlterViewSetUnsetProps var1);

   boolean visit(SparkColumnSpecExpr var1);

   void endVisit(SparkColumnSpecExpr var1);

   boolean visit(SparkCreateDatabaseStatement var1);

   void endVisit(SparkCreateDatabaseStatement var1);

   boolean visit(SparkCacheTableStatement var1);

   void endVisit(SparkCacheTableStatement var1);

   boolean visit(SparkCacheTableStatement.SparkCacheTableStatementQuery var1);

   void endVisit(SparkCacheTableStatement.SparkCacheTableStatementQuery var1);

   boolean visit(SparkRefreshStatement var1);

   void endVisit(SparkRefreshStatement var1);

   boolean visit(SparkShowTableStatement var1);

   void endVisit(SparkShowTableStatement var1);
}
