content: /*
   * Copyright 1999-2012 Alibaba Group.
   *  
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *  
   *      http://www.apache.org/licenses/LICENSE-2.0
   *  
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  /**
   * (created at 2011-11-9)
   */
  package com.alibaba.cobar.parser.visitor;
  
  import java.util.Collection;
  
  import com.alibaba.cobar.parser.ast.ASTNode;
  import com.alibaba.cobar.parser.ast.expression.BinaryOperatorExpression;
  import com.alibaba.cobar.parser.ast.expression.PolyadicOperatorExpression;
  import com.alibaba.cobar.parser.ast.expression.UnaryOperatorExpression;
  import com.alibaba.cobar.parser.ast.expression.comparison.BetweenAndExpression;
  import com.alibaba.cobar.parser.ast.expression.comparison.ComparisionEqualsExpression;
  import com.alibaba.cobar.parser.ast.expression.comparison.ComparisionIsExpression;
  import com.alibaba.cobar.parser.ast.expression.comparison.ComparisionNullSafeEqualsExpression;
  import com.alibaba.cobar.parser.ast.expression.comparison.InExpression;
  import com.alibaba.cobar.parser.ast.expression.logical.LogicalAndExpression;
  import com.alibaba.cobar.parser.ast.expression.logical.LogicalOrExpression;
  import com.alibaba.cobar.parser.ast.expression.misc.InExpressionList;
  import com.alibaba.cobar.parser.ast.expression.misc.UserExpression;
  import com.alibaba.cobar.parser.ast.expression.primary.CaseWhenOperatorExpression;
  import com.alibaba.cobar.parser.ast.expression.primary.DefaultValue;
  import com.alibaba.cobar.parser.ast.expression.primary.ExistsPrimary;
  import com.alibaba.cobar.parser.ast.expression.primary.Identifier;
  import com.alibaba.cobar.parser.ast.expression.primary.MatchExpression;
  import com.alibaba.cobar.parser.ast.expression.primary.ParamMarker;
  import com.alibaba.cobar.parser.ast.expression.primary.PlaceHolder;
  import com.alibaba.cobar.parser.ast.expression.primary.RowExpression;
  import com.alibaba.cobar.parser.ast.expression.primary.SysVarPrimary;
  import com.alibaba.cobar.parser.ast.expression.primary.UsrDefVarPrimary;
  import com.alibaba.cobar.parser.ast.expression.primary.function.FunctionExpression;
  import com.alibaba.cobar.parser.ast.expression.primary.function.cast.Cast;
  import com.alibaba.cobar.parser.ast.expression.primary.function.cast.Convert;
  import com.alibaba.cobar.parser.ast.expression.primary.function.datetime.Extract;
  import com.alibaba.cobar.parser.ast.expression.primary.function.datetime.GetFormat;
  import com.alibaba.cobar.parser.ast.expression.primary.function.datetime.Timestampadd;
  import com.alibaba.cobar.parser.ast.expression.primary.function.datetime.Timestampdiff;
  import com.alibaba.cobar.parser.ast.expression.primary.function.groupby.Avg;
  import com.alibaba.cobar.parser.ast.expression.primary.function.groupby.Count;
  import com.alibaba.cobar.parser.ast.expression.primary.function.groupby.GroupConcat;
  import com.alibaba.cobar.parser.ast.expression.primary.function.groupby.Max;
  import com.alibaba.cobar.parser.ast.expression.primary.function.groupby.Min;
  import com.alibaba.cobar.parser.ast.expression.primary.function.groupby.Sum;
  import com.alibaba.cobar.parser.ast.expression.primary.function.string.Char;
  import com.alibaba.cobar.parser.ast.expression.primary.function.string.Trim;
  import com.alibaba.cobar.parser.ast.expression.primary.literal.IntervalPrimary;
  import com.alibaba.cobar.parser.ast.expression.primary.literal.LiteralBitField;
  import com.alibaba.cobar.parser.ast.expression.primary.literal.LiteralBoolean;
  import com.alibaba.cobar.parser.ast.expression.primary.literal.LiteralHexadecimal;
  import com.alibaba.cobar.parser.ast.expression.primary.literal.LiteralNull;
  import com.alibaba.cobar.parser.ast.expression.primary.literal.LiteralNumber;
  import com.alibaba.cobar.parser.ast.expression.primary.literal.LiteralString;
  import com.alibaba.cobar.parser.ast.expression.string.LikeExpression;
  import com.alibaba.cobar.parser.ast.expression.type.CollateExpression;
  import com.alibaba.cobar.parser.ast.fragment.GroupBy;
  import com.alibaba.cobar.parser.ast.fragment.Limit;
  import com.alibaba.cobar.parser.ast.fragment.OrderBy;
  import com.alibaba.cobar.parser.ast.fragment.ddl.ColumnDefinition;
  import com.alibaba.cobar.parser.ast.fragment.ddl.TableOptions;
  import com.alibaba.cobar.parser.ast.fragment.ddl.datatype.DataType;
  import com.alibaba.cobar.parser.ast.fragment.ddl.index.IndexColumnName;
  import com.alibaba.cobar.parser.ast.fragment.ddl.index.IndexOption;
  import com.alibaba.cobar.parser.ast.fragment.tableref.Dual;
  import com.alibaba.cobar.parser.ast.fragment.tableref.IndexHint;
  import com.alibaba.cobar.parser.ast.fragment.tableref.InnerJoin;
  import com.alibaba.cobar.parser.ast.fragment.tableref.NaturalJoin;
  import com.alibaba.cobar.parser.ast.fragment.tableref.OuterJoin;
  import com.alibaba.cobar.parser.ast.fragment.tableref.StraightJoin;
  import com.alibaba.cobar.parser.ast.fragment.tableref.SubqueryFactor;
  import com.alibaba.cobar.parser.ast.fragment.tableref.TableRefFactor;
  import com.alibaba.cobar.parser.ast.fragment.tableref.TableReferences;
  import com.alibaba.cobar.parser.ast.stmt.dal.DALSetCharacterSetStatement;
  import com.alibaba.cobar.parser.ast.stmt.dal.DALSetNamesStatement;
  import com.alibaba.cobar.parser.ast.stmt.dal.DALSetStatement;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowAuthors;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowBinLogEvent;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowBinaryLog;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowCharaterSet;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowCollation;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowColumns;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowContributors;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowCreate;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowDatabases;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowEngine;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowEngines;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowErrors;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowEvents;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowFunctionCode;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowFunctionStatus;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowGrants;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowIndex;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowMasterStatus;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowOpenTables;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowPlugins;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowPrivileges;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowProcedureCode;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowProcedureStatus;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowProcesslist;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowProfile;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowProfiles;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowSlaveHosts;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowSlaveStatus;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowStatus;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowTableStatus;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowTables;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowTriggers;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowVariables;
  import com.alibaba.cobar.parser.ast.stmt.dal.ShowWarnings;
  import com.alibaba.cobar.parser.ast.stmt.ddl.DDLAlterTableStatement;
  import com.alibaba.cobar.parser.ast.stmt.ddl.DDLAlterTableStatement.AlterSpecification;
  import com.alibaba.cobar.parser.ast.stmt.ddl.DDLCreateIndexStatement;
  import com.alibaba.cobar.parser.ast.stmt.ddl.DDLCreateTableStatement;
  import com.alibaba.cobar.parser.ast.stmt.ddl.DDLDropIndexStatement;
  import com.alibaba.cobar.parser.ast.stmt.ddl.DDLDropTableStatement;
  import com.alibaba.cobar.parser.ast.stmt.ddl.DDLRenameTableStatement;
  import com.alibaba.cobar.parser.ast.stmt.ddl.DDLTruncateStatement;
  import com.alibaba.cobar.parser.ast.stmt.ddl.DescTableStatement;
  import com.alibaba.cobar.parser.ast.stmt.dml.DMLCallStatement;
  import com.alibaba.cobar.parser.ast.stmt.dml.DMLDeleteStatement;
  import com.alibaba.cobar.parser.ast.stmt.dml.DMLInsertStatement;
  import com.alibaba.cobar.parser.ast.stmt.dml.DMLReplaceStatement;
  import com.alibaba.cobar.parser.ast.stmt.dml.DMLSelectStatement;
  import com.alibaba.cobar.parser.ast.stmt.dml.DMLSelectUnionStatement;
  import com.alibaba.cobar.parser.ast.stmt.dml.DMLUpdateStatement;
  import com.alibaba.cobar.parser.ast.stmt.extension.ExtDDLCreatePolicy;
  import com.alibaba.cobar.parser.ast.stmt.extension.ExtDDLDropPolicy;
  import com.alibaba.cobar.parser.ast.stmt.mts.MTSReleaseStatement;
  import com.alibaba.cobar.parser.ast.stmt.mts.MTSRollbackStatement;
  import com.alibaba.cobar.parser.ast.stmt.mts.MTSSavepointStatement;
  import com.alibaba.cobar.parser.ast.stmt.mts.MTSSetTransactionStatement;
  import com.alibaba.cobar.parser.util.Pair;
  
  /**
   * @author <a href="mailto:shuo.qius@alibaba-inc.com">QIU Shuo</a>
   */
  public class EmptySQLASTVisitor implements SQLASTVisitor {
  
      @SuppressWarnings({ "rawtypes" })
      private void visitInternal(Object obj) {
          if (obj == null)
              return;
          if (obj instanceof ASTNode) {
              ((ASTNode) obj).accept(this);
          } else if (obj instanceof Collection) {
              for (Object o : (Collection) obj) {
                  visitInternal(o);
              }
          } else if (obj instanceof Pair) {
              visitInternal(((Pair) obj).getKey());
              visitInternal(((Pair) obj).getValue());
          }
      }
  
      @Override
      public void visit(BetweenAndExpression node) {
          visitInternal(node.getFirst());
          visitInternal(node.getSecond());
          visitInternal(node.getThird());
      }
  
      @Override
      public void visit(ComparisionIsExpression node) {
          visitInternal(node.getOperand());
      }
  
      @Override
      public void visit(InExpressionList node) {
          visitInternal(node.getList());
      }
  
      @Override
      public void visit(LikeExpression node) {
          visitInternal(node.getFirst());
          visitInternal(node.getSecond());
          visitInternal(node.getThird());
      }
  
      @Override
      public void visit(CollateExpression node) {
          visitInternal(node.getString());
      }
  
      @Override
      public void visit(UserExpression node) {
      }
  
      @Override
      public void visit(UnaryOperatorExpression node) {
          visitInternal(node.getOperand());
      }
  
      @Override
      public void visit(BinaryOperatorExpression node) {
          visitInternal(node.getLeftOprand());
          visitInternal(node.getRightOprand());
      }
  
      @Override
      public void visit(PolyadicOperatorExpression node) {
          for (int i = 0, len = node.getArity(); i < len; ++i) {
              visitInternal(node.getOperand(i));
          }
      }
  
      @Override
      public void visit(LogicalAndExpression node) {
          visit((PolyadicOperatorExpression) node);
      }
  
      @Override
      public void visit(LogicalOrExpression node) {
          visit((PolyadicOperatorExpression) node);
      }
  
      @Override
      public void visit(ComparisionEqualsExpression node) {
          visit((BinaryOperatorExpression) node);
      }
  
      @Override
      public void visit(ComparisionNullSafeEqualsExpression node) {
          visit((BinaryOperatorExpression) node);
      }
  
      @Override
      public void visit(InExpression node) {
          visit((BinaryOperatorExpression) node);
      }
  
      @Override
      public void visit(FunctionExpression node) {
          visitInternal(node.getArguments());
      }
  
      @Override
      public void visit(Char node) {
          visit((FunctionExpression) node);
      }
  
      @Override
      public void visit(Convert node) {
          visit((FunctionExpression) node);
      }
  
      @Override
      public void visit(Trim node) {
          visit((FunctionExpression) node);
          visitInternal(node.getRemainString());
          visitInternal(node.getString());
      }
  
      @Override
      public void visit(Cast node) {
          visit((FunctionExpression) node);
          visitInternal(node.getExpr());
          visitInternal(node.getTypeInfo1());
          visitInternal(node.getTypeInfo2());
  
      }
  
      @Override
      public void visit(Avg node) {
          visit((FunctionExpression) node);
      }
  
      @Override
      public void visit(Max node) {
          visit((FunctionExpression) node);
      }
  
      @Override
      public void visit(Min node) {
          visit((FunctionExpression) node);
      }
  
      @Override
      public void visit(Sum node) {
          visit((FunctionExpression) node);
      }
  
      @Override
      public void visit(Count node) {
          visit((FunctionExpression) node);
      }
  
      @Override
      public void visit(GroupConcat node) {
          visit((FunctionExpression) node);
          visitInternal(node.getAppendedColumnNames());
          visitInternal(node.getOrderBy());
      }
  
      @Override
      public void visit(Timestampdiff node) {
      }
  
      @Override
      public void visit(Timestampadd node) {
      }
  
      @Override
      public void visit(Extract node) {
      }
  
      @Override
      public void visit(GetFormat node) {
      }
  
      @Override
      public void visit(IntervalPrimary node) {
          visitInternal(node.getQuantity());
      }
  
      @Override
      public void visit(LiteralBitField node) {
      }
  
      @Override
      public void visit(LiteralBoolean node) {
      }
  
      @Override
      public void visit(LiteralHexadecimal node) {
      }
  
      @Override
      public void visit(LiteralNull node) {
      }
  
      @Override
      public void visit(LiteralNumber node) {
      }
  
      @Override
      public void visit(LiteralString node) {
      }
  
      @Override
      public void visit(CaseWhenOperatorExpression node) {
          visitInternal(node.getComparee());
          visitInternal(node.getElseResult());
          visitInternal(node.getWhenList());
      }
  
      @Override
      public void visit(DefaultValue node) {
      }
  
      @Override
      public void visit(ExistsPrimary node) {
          visitInternal(node.getSubquery());
      }
  
      @Override
      public void visit(PlaceHolder node) {
      }
  
      @Override
      public void visit(Identifier node) {
      }
  
      @Override
      public void visit(MatchExpression node) {
          visitInternal(node.getColumns());
          visitInternal(node.getPattern());
      }
  
      @Override
      public void visit(ParamMarker node) {
      }
  
      @Override
      public void visit(RowExpression node) {
          visitInternal(node.getRowExprList());
      }
  
      @Override
      public void visit(SysVarPrimary node) {
      }
  
      @Override
      public void visit(UsrDefVarPrimary node) {
      }
  
      @Override
      public void visit(IndexHint node) {
      }
  
      @Override
      public void visit(InnerJoin node) {
          visitInternal(node.getLeftTableRef());
          visitInternal(node.getOnCond());
          visitInternal(node.getRightTableRef());
      }
  
      @Override
      public void visit(NaturalJoin node) {
          visitInternal(node.getLeftTableRef());
          visitInternal(node.getRightTableRef());
      }
  
      @Override
      public void visit(OuterJoin node) {
          visitInternal(node.getLeftTableRef());
          visitInternal(node.getOnCond());
          visitInternal(node.getRightTableRef());
      }
  
      @Override
      public void visit(StraightJoin node) {
          visitInternal(node.getLeftTableRef());
          visitInternal(node.getOnCond());
          visitInternal(node.getRightTableRef());
      }
  
      @Override
      public void visit(SubqueryFactor node) {
          visitInternal(node.getSubquery());
      }
  
      @Override
      public void visit(TableReferences node) {
          visitInternal(node.getTableReferenceList());
      }
  
      @Override
      public void visit(TableRefFactor node) {
          visitInternal(node.getHintList());
          visitInternal(node.getTable());
      }
  
      @Override
      public void visit(Dual dual) {
      }
  
      @Override
      public void visit(GroupBy node) {
          visitInternal(node.getOrderByList());
      }
  
      @Override
      public void visit(Limit node) {
          visitInternal(node.getOffset());
          visitInternal(node.getSize());
      }
  
      @Override
      public void visit(OrderBy node) {
          visitInternal(node.getOrderByList());
      }
  
      @Override
      public void visit(ColumnDefinition columnDefinition) {
      }
  
      @Override
      public void visit(IndexOption indexOption) {
      }
  
      @Override
      public void visit(IndexColumnName indexColumnName) {
      }
  
      @Override
      public void visit(TableOptions node) {
      }
  
      @Override
      public void visit(AlterSpecification node) {
      }
  
      @Override
      public void visit(DataType node) {
      }
  
      @Override
      public void visit(ShowAuthors node) {
      }
  
      @Override
      public void visit(ShowBinaryLog node) {
      }
  
      @Override
      public void visit(ShowBinLogEvent node) {
          visitInternal(node.getLimit());
          visitInternal(node.getPos());
      }
  
      @Override
      public void visit(ShowCharaterSet node) {
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowCollation node) {
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowColumns node) {
          visitInternal(node.getTable());
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowContributors node) {
      }
  
      @Override
      public void visit(ShowCreate node) {
          visitInternal(node.getId());
      }
  
      @Override
      public void visit(ShowDatabases node) {
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowEngine node) {
      }
  
      @Override
      public void visit(ShowEngines node) {
      }
  
      @Override
      public void visit(ShowErrors node) {
          visitInternal(node.getLimit());
      }
  
      @Override
      public void visit(ShowEvents node) {
          visitInternal(node.getSchema());
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowFunctionCode node) {
          visitInternal(node.getFunctionName());
      }
  
      @Override
      public void visit(ShowFunctionStatus node) {
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowGrants node) {
          visitInternal(node.getUser());
      }
  
      @Override
      public void visit(ShowIndex node) {
          visitInternal(node.getTable());
      }
  
      @Override
      public void visit(ShowMasterStatus node) {
      }
  
      @Override
      public void visit(ShowOpenTables node) {
          visitInternal(node.getSchema());
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowPlugins node) {
      }
  
      @Override
      public void visit(ShowPrivileges node) {
      }
  
      @Override
      public void visit(ShowProcedureCode node) {
          visitInternal(node.getProcedureName());
      }
  
      @Override
      public void visit(ShowProcedureStatus node) {
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowProcesslist node) {
      }
  
      @Override
      public void visit(ShowProfile node) {
          visitInternal(node.getForQuery());
          visitInternal(node.getLimit());
      }
  
      @Override
      public void visit(ShowProfiles node) {
      }
  
      @Override
      public void visit(ShowSlaveHosts node) {
      }
  
      @Override
      public void visit(ShowSlaveStatus node) {
      }
  
      @Override
      public void visit(ShowStatus node) {
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowTables node) {
          visitInternal(node.getSchema());
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowTableStatus node) {
          visitInternal(node.getDatabase());
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowTriggers node) {
          visitInternal(node.getSchema());
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowVariables node) {
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(ShowWarnings node) {
          visitInternal(node.getLimit());
      }
  
      @Override
      public void visit(DescTableStatement node) {
          visitInternal(node.getTable());
      }
  
      @Override
      public void visit(DALSetStatement node) {
          visitInternal(node.getAssignmentList());
      }
  
      @Override
      public void visit(DALSetNamesStatement node) {
      }
  
      @Override
      public void visit(DALSetCharacterSetStatement node) {
      }
  
      @Override
      public void visit(DMLCallStatement node) {
          visitInternal(node.getArguments());
          visitInternal(node.getProcedure());
      }
  
      @Override
      public void visit(DMLDeleteStatement node) {
          visitInternal(node.getLimit());
          visitInternal(node.getOrderBy());
          visitInternal(node.getTableNames());
          visitInternal(node.getTableRefs());
          visitInternal(node.getWhereCondition());
      }
  
      @Override
      public void visit(DMLInsertStatement node) {
          visitInternal(node.getColumnNameList());
          visitInternal(node.getDuplicateUpdate());
          visitInternal(node.getRowList());
          visitInternal(node.getSelect());
          visitInternal(node.getTable());
      }
  
      @Override
      public void visit(DMLReplaceStatement node) {
          visitInternal(node.getColumnNameList());
          visitInternal(node.getRowList());
          visitInternal(node.getSelect());
          visitInternal(node.getTable());
      }
  
      @Override
      public void visit(DMLSelectStatement node) {
          visitInternal(node.getGroup());
          visitInternal(node.getHaving());
          visitInternal(node.getLimit());
          visitInternal(node.getOrder());
          visitInternal(node.getSelectExprList());
          visitInternal(node.getTables());
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(DMLSelectUnionStatement node) {
          visitInternal(node.getLimit());
          visitInternal(node.getOrderBy());
          visitInternal(node.getSelectStmtList());
      }
  
      @Override
      public void visit(DMLUpdateStatement node) {
          visitInternal(node.getLimit());
          visitInternal(node.getOrderBy());
          visitInternal(node.getTableRefs());
          visitInternal(node.getValues());
          visitInternal(node.getWhere());
      }
  
      @Override
      public void visit(MTSSetTransactionStatement node) {
      }
  
      @Override
      public void visit(MTSSavepointStatement node) {
          visitInternal(node.getSavepoint());
      }
  
      @Override
      public void visit(MTSReleaseStatement node) {
          visitInternal(node.getSavepoint());
      }
  
      @Override
      public void visit(MTSRollbackStatement node) {
          visitInternal(node.getSavepoint());
      }
  
      @Override
      public void visit(DDLTruncateStatement node) {
          visitInternal(node.getTable());
      }
  
      @Override
      public void visit(DDLAlterTableStatement node) {
          visitInternal(node.getTable());
      }
  
      @Override
      public void visit(DDLCreateIndexStatement node) {
          visitInternal(node.getIndexName());
          visitInternal(node.getTable());
      }
  
      @Override
      public void visit(DDLCreateTableStatement node) {
          visitInternal(node.getTable());
      }
  
      @Override
      public void visit(DDLRenameTableStatement node) {
          visitInternal(node.getList());
      }
  
      @Override
      public void visit(DDLDropIndexStatement node) {
          visitInternal(node.getIndexName());
          visitInternal(node.getTable());
      }
  
      @Override
      public void visit(DDLDropTableStatement node) {
          visitInternal(node.getTableNames());
      }
  
      @Override
      public void visit(ExtDDLCreatePolicy node) {
      }
  
      @Override
      public void visit(ExtDDLDropPolicy node) {
      }
  
  }
  