public virtual bool Action(DropIndexStatement node) { AddTablesContext(node); if (node.Actions.Count > 0) { FixIdentifier(new DbObject(node.Actions[0].Index), ObjectType.INDEX, node.Actions[0].Index); } return(false); }
//TODO: Add algorithm option and lock option //TODO: There are no Check If exists option protected override void VisitDropIndexStatement(DropIndexStatement statement) { State.Write(Symbols.DROP); State.Write(Symbols.INDEX); VisitToken(statement.Name); if (statement.On != null) { State.Write(Symbols.ON); VisitNameToken(statement.On); } }
protected override void VisitDropIndexStatement(DropIndexStatement statement) { State.Write(Symbols.DROP); State.Write(Symbols.INDEX); if (statement.CheckExists) { State.Write(Symbols.IF); State.Write(Symbols.EXISTS); } if (statement.On != null) { var name = Sql.Name(statement.On.FirstPart, statement.Name.LastPart); VisitToken(name); } else { VisitToken(statement.Name); } }
protected override void VisitDropIndexStatement(DropIndexStatement statement) { }
public override void Visit(DropIndexStatement node) { this.action(node); }
public override void ExplicitVisit(DropIndexStatement fragment) { _fragments.Add(fragment); }
protected abstract void VisitDropIndexStatement(DropIndexStatement statement);
private IList <DbObjectTableSource> GetAvailTables(GrammarNode node) { IList <DbObjectTableSource> ret = new List <DbObjectTableSource>(); if (node is UpdateStatement) { UpdateStatement upd = (UpdateStatement)node; dynamic ts = upd.TableSource; AddAvailTable(ts, ret); AddAvailTables(upd.FromClause, ret); } if (node is DeleteStatement) { dynamic ts = ((DeleteStatement)node).Table; AddAvailTable(ts, ret); } if (node is InsertStatement) { InsertStatement insert = (InsertStatement)node; if (insert.InsertTarget is DbObjectInsertTarget) { AddAvailTable(((DbObjectInsertTarget)insert.InsertTarget).TableSource, ret); } } if (node is CreateIndexStatement) { CreateIndexStatement stmt = (CreateIndexStatement)node; if (stmt.IndexTarget is DbObjectIndexTarget) { AddAvailTable(stmt.IndexTarget.TableSource, ret); } } if (node is DropIndexStatement) { DropIndexStatement stmt = (DropIndexStatement)node; foreach (DropIndexAction action in stmt.Actions) { if (action.TableSource != null) { AddAvailTable(action.TableSource, ret); } } } if (node is AlterIndexStatement) { AlterIndexStatement stmt = (AlterIndexStatement)node; if (stmt.TableSource != null) { // It will be removed in Modifier, so probably useless code AddAvailTable(stmt.TableSource, ret); } } if (node is AlterTableStatement) { AlterTableStatement stmt = (AlterTableStatement)node; if (stmt.TableSource != null) { AddAvailTable(stmt.TableSource, ret); } } if (node is DropTableStatement) { DropTableStatement stmt = (DropTableStatement)node; foreach (DbObjectTableSource tableSource in stmt.TableSources) { if (tableSource != null) { AddAvailTable(tableSource, ret); } } } TrimTables(ref ret); return((ret.Count == 0) ? null : ret); }