protected virtual SqlStatement VisitStatement(SqlStatement statement)
{
if (statement == null)
return null;
// CREATE
if (statement is CreateTableStatement)
return VisitCreateTable((CreateTableStatement) statement);
if (statement is CreateViewStatement)
return VisitCreateView((CreateViewStatement) statement);
if (statement is CreateSchemaStatement)
return VisitCreateSchema((CreateSchemaStatement) statement);
if (statement is CreateSequenceStatement)
return VisitCreateSequence((CreateSequenceStatement) statement);
if (statement is CreateTriggerStatement)
return VisitCreateTrigger((CreateTriggerStatement) statement);
if (statement is CreateCallbackTriggerStatement)
return VisitCreateCallbackTrigger((CreateCallbackTriggerStatement) statement);
if (statement is CreateProcedureTriggerStatement)
return VisitCreateProcedureTrigger((CreateProcedureTriggerStatement) statement);
if (statement is CreateUserStatement)
return VisitCreateUser((CreateUserStatement) statement);
if (statement is CreateRoleStatement)
return VisitCreateRole((CreateRoleStatement) statement);
if (statement is CreateProcedureStatement)
return VisitCreateProcedure((CreateProcedureStatement) statement);
if (statement is CreateExternalProcedureStatement)
return VisitCreateExternProcedure((CreateExternalProcedureStatement) statement);
if (statement is CreateFunctionStatement)
return VisitCreateFunction((CreateFunctionStatement) statement);
if (statement is CreateExternalFunctionStatement)
return VisitCreateExternFunction((CreateExternalFunctionStatement) statement);
// DROP
if (statement is DropViewStatement)
return VisitDropView((DropViewStatement) statement);
if (statement is DropTableStatement)
return VisitDropTable((DropTableStatement) statement);
if (statement is DropCallbackTriggersStatement)
return VisitDropCallbackTrigger((DropCallbackTriggersStatement) statement);
if (statement is DropSequenceStatement)
return VisitDropSequence((DropSequenceStatement) statement);
if (statement is DropProcedureStatement)
return VisitDropProcedure((DropProcedureStatement) statement);
if (statement is DropFunctionStatement)
return VisitDropFunction((DropFunctionStatement) statement);
if (statement is DropRoleStatement)
return VisitDropRole((DropRoleStatement) statement);
if (statement is DropUserStatement)
return VisitDropUser((DropUserStatement) statement);
if (statement is DropTriggerStatement)
return VisitDropTrigger((DropTriggerStatement) statement);
if (statement is DropTypeStatement)
return VisitDropType((DropTypeStatement) statement);
// ALTER
if (statement is AlterTableStatement)
return VisitAlterTable((AlterTableStatement) statement);
if (statement is AlterUserStatement)
return VisitAlterUser((AlterUserStatement) statement);
if (statement is GrantPrivilegesStatement)
return VisitGrantPrivilege((GrantPrivilegesStatement) statement);
if (statement is GrantRoleStatement)
return VisitGrantRole((GrantRoleStatement) statement);
if (statement is RevokePrivilegesStatement)
return VisitRevokePrivilege((RevokePrivilegesStatement) statement);
// TODO: Revoke role statement
// DECLARE
if (statement is DeclareCursorStatement)
return VisitDeclareCursor((DeclareCursorStatement) statement);
if (statement is DeclareVariableStatement)
return VisitDeclareVariable((DeclareVariableStatement) statement);
if (statement is DeclareExceptionStatement)
return VisitDeclareException((DeclareExceptionStatement) statement);
if (statement is CallStatement)
return VisitCall((CallStatement) statement);
if (statement is InsertStatement)
return VisitInsert((InsertStatement) statement);
if (statement is InsertSelectStatement)
return VisitInsertSelect((InsertSelectStatement) statement);
if (statement is SelectStatement)
return VisitSelect((SelectStatement) statement);
if (statement is SelectIntoStatement)
return VisitSelectInto((SelectIntoStatement) statement);
if (statement is DeleteStatement)
return VisitDelete((DeleteStatement) statement);
if (statement is UpdateStatement)
return VisitUpdate((UpdateStatement) statement);
if (statement is UpdateFromCursorStatement)
return VisitUpdateFromCursor((UpdateFromCursorStatement) statement);
if (statement is ShowStatement)
return VisitShow((ShowStatement) statement);
// Cursors
if (statement is OpenStatement)
return VisitOpen((OpenStatement) statement);
if (statement is FetchStatement)
return VisitFetch((FetchStatement) statement);
if (statement is CloseStatement)
return VisitClose((CloseStatement) statement);
// Session Commands
if (statement is CommitStatement)
return VisitCommit((CommitStatement) statement);
if (statement is RollbackStatement)
return VisitRollback((RollbackStatement) statement);
if (statement is SetStatement)
return VisitSet((SetStatement) statement);
if (statement is AssignVariableStatement)
return VisitAssignVariable((AssignVariableStatement) statement);
// Blocks
if (statement is CodeBlockStatement)
return VisitCodeBlock((CodeBlockStatement) statement);
// In-Block
if (statement is LoopControlStatement)
return VisitLoopControl((LoopControlStatement) statement);
if (statement is ReturnStatement)
return VisitReturn((ReturnStatement) statement);
if (statement is GoToStatement)
return VisitGoTo((GoToStatement) statement);
if (statement is RaiseStatement)
return VisitRaise((RaiseStatement) statement);
if (statement is ConditionStatement)
return VisitCondition((ConditionStatement) statement);
if (statement is IVisitableStatement)
return ((IVisitableStatement) statement).Accept(this);
return statement;
}