Exemplo n.º 1
0
 public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List <AlterOperation> replacement, AlterPlan plan)
 {
     //if (!caps[OldObject).ObjectType].Change)
     //{
     plan.RecreateObject(OldObject, NewObject);
     replacement.Clear();
     //}
 }
Exemplo n.º 2
0
        public override void AddPhysicalDependencies(AlterProcessorCaps caps, DbDiffOptions opts, List <AlterOperation> before, List <AlterOperation> after, AlterPlan plan)
        {
            var oldcol = OldObject as ColumnInfo;

            if (caps.DepCaps.ChangeColumn_Constraint || caps.DepCaps.ChangeColumn_Index)
            {
                foreach (var cnt in ParentTable.Constraints)
                {
                    var cc = cnt as ColumnsConstraintInfo;
                    if (cc == null)
                    {
                        continue;
                    }
                    if (cc.Columns.Any(c => c.Name == oldcol.Name))
                    {
                        if (
                            (cc is IndexInfo && caps.DepCaps.ChangeColumn_Index) ||
                            (!(cc is IndexInfo) && caps.DepCaps.ChangeColumn_Constraint))
                        {
                            plan.RecreateObject(cc, null);
                        }
                    }
                }
            }
            if (caps.DepCaps.ChangeColumn_Reference)
            {
                foreach (ForeignKeyInfo fk in ParentTable.GetReferences())
                {
                    for (int i = 0; i < fk.RefColumns.Count; i++)
                    {
                        if (fk.RefColumns[i].Name == oldcol.Name)
                        {
                            plan.RecreateObject(fk, null);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List <AlterOperation> replacement, AlterPlan plan)
        {
            var c = GetConstraintCaps(caps, NewObject);

            if (!c.Change)
            {
                if (c.Create && c.Drop)
                {
                    plan.RecreateObject(OldObject, NewObject);
                    replacement.Clear();
                }
                else
                {
                    TransformToRecreateTable(caps, replacement, plan);
                }
            }
        }
Exemplo n.º 4
0
 public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List <AlterOperation> replacement, AlterPlan plan)
 {
     if (!caps.ChangeColumn)
     {
         TransformToRecreateTable(caps, replacement, plan);
         return;
     }
     if (!caps.ChangeAutoIncrement && ((ColumnInfo)OldObject).AutoIncrement != ((ColumnInfo)NewObject).AutoIncrement)
     {
         TransformToRecreateTable(caps, replacement, plan);
         return;
     }
     if (!caps.ChangeComputedColumnExpression && ((ColumnInfo)NewObject).ComputedExpression != null)
     {
         plan.RecreateObject(OldObject, NewObject);
         replacement.Clear();
     }
 }
Exemplo n.º 5
0
        protected void TransformToRecreateTable(AlterProcessorCaps caps, List <AlterOperation> replacement, AlterPlan plan)
        {
            replacement.Clear();
            var op = new AlterOperation_RecreateTable {
                ParentTable = ParentTable
            };

            //ParentTable.LoadStructure(TableStructureMembers.All, targetDb);
            if (caps.DropConstraint)
            {
                foreach (var fk in ParentTable.GetReferences())
                {
                    plan.RecreateObject(fk, null);
                }
            }
            op.AppendOp(this);
            replacement.Add(op);
        }
Exemplo n.º 6
0
        public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List <AlterOperation> replacement, AlterPlan plan)
        {
            var c = GetConstraintCaps(caps, OldObject);

            if (!c.Rename)
            {
                if (c.Create && c.Drop)
                {
                    var newobj = OldObject.CloneObject(null);
                    ((ConstraintInfo)newobj).ConstraintName = NewName.Name;
                    plan.RecreateObject(OldObject, newobj);
                    replacement.Clear();
                }
                else
                {
                    TransformToRecreateTable(caps, replacement, plan);
                }
            }
        }
Exemplo n.º 7
0
 protected void TransformToRecreateTable(List<AlterOperation> replacement, AlterPlan plan)
 {
     replacement.Clear();
     var op = new AlterOperation_RecreateTable { ParentTable = ParentTable };
     //ParentTable.LoadStructure(TableStructureMembers.All, targetDb);
     foreach (var fk in ParentTable.GetReferences()) plan.RecreateObject(fk, null);
     op.AppendOp(this);
     replacement.Add(op);
 }
Exemplo n.º 8
0
 public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List<AlterOperation> replacement, AlterPlan plan)
 {
     //if (!caps[OldObject).ObjectType].Change)
     //{
     plan.RecreateObject(OldObject, NewObject);
     replacement.Clear();
     //}
 }
Exemplo n.º 9
0
 public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List<AlterOperation> replacement, AlterPlan plan)
 {
     var c = GetConstraintCaps(caps, OldObject);
     if (!c.Rename)
     {
         if (c.Create && c.Drop)
         {
             var newobj = OldObject.CloneObject(null);
             ((ConstraintInfo)newobj).ConstraintName = NewName.Name;
             plan.RecreateObject(OldObject, newobj);
             replacement.Clear();
         }
         else
         {
             TransformToRecreateTable(replacement, plan);
         }
     }
 }
Exemplo n.º 10
0
 public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List<AlterOperation> replacement, AlterPlan plan)
 {
     var c = GetConstraintCaps(caps, NewObject);
     if (!c.Change)
     {
         if (c.Create && c.Drop)
         {
             plan.RecreateObject(OldObject, NewObject);
             replacement.Clear();
         }
         else
         {
             TransformToRecreateTable(replacement, plan);
         }
     }
 }
Exemplo n.º 11
0
 public override void AddPhysicalDependencies(AlterProcessorCaps caps, DbDiffOptions opts, List<AlterOperation> before, List<AlterOperation> after, AlterPlan plan)
 {
     var oldcol = OldObject as ColumnInfo;
     if (caps.DepCaps.ChangeColumn_Constraint || caps.DepCaps.ChangeColumn_Index)
     {
         foreach (var cnt in ParentTable.Constraints)
         {
             var cc = cnt as ColumnsConstraintInfo;
             if (cc == null) continue;
             if (cc.Columns.Any(c => c.Name == oldcol.Name))
             {
                 if (
                     (cc is IndexInfo && caps.DepCaps.ChangeColumn_Index) ||
                     (!(cc is IndexInfo) && caps.DepCaps.ChangeColumn_Constraint))
                 {
                     plan.RecreateObject(cc, null);
                 }
             }
         }
     }
     if (caps.DepCaps.ChangeColumn_Reference)
     {
         foreach (ForeignKeyInfo fk in ParentTable.GetReferences())
         {
             for (int i = 0; i < fk.RefColumns.Count; i++)
             {
                 if (fk.RefColumns[i].Name == oldcol.Name)
                 {
                     plan.RecreateObject(fk, null);
                 }
             }
         }
     }
 }
Exemplo n.º 12
0
 public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List<AlterOperation> replacement, AlterPlan plan)
 {
     if (!caps.ChangeColumn)
     {
         TransformToRecreateTable(replacement, plan);
         return;
     }
     if (!caps.ChangeAutoIncrement && ((ColumnInfo)OldObject).AutoIncrement != ((ColumnInfo)NewObject).AutoIncrement)
     {
         TransformToRecreateTable(replacement, plan);
         return;
     }
     if (!caps.ChangeComputedColumnExpression && ((ColumnInfo)NewObject).ComputedExpression != null)
     {
         plan.RecreateObject(OldObject, NewObject);
         replacement.Clear();
     }
 }