コード例 #1
0
 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);
 }
コード例 #2
0
        //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);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 protected override void VisitDropIndexStatement(DropIndexStatement statement)
 {
 }
コード例 #5
0
ファイル: AllNodesVisitor.cs プロジェクト: yaakoviyun/sqlskim
 public override void Visit(DropIndexStatement node) { this.action(node); }
コード例 #6
0
 public override void ExplicitVisit(DropIndexStatement fragment)
 {
     _fragments.Add(fragment);
 }
コード例 #7
0
 protected abstract void VisitDropIndexStatement(DropIndexStatement statement);
コード例 #8
0
        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);
        }