示例#1
0
 void IOracleModelVisitor.VisitPartitionRef(PartitionRefModel item)
 {
     if (this._filter(item))
     {
         _items.Add(item);
     }
 }
        public override List <PartitionsDto_11> Resolve(DbContextOracle context, Action <PartitionsDto_11> action)
        {
            List <PartitionsDto_11> List = new List <PartitionsDto_11>();
            var db = context.Database;

            this.OracleContext = context;

            if (action == null)
            {
                action =
                    t =>
                {
                    if (!db.Partitions.Contains(t.PartitionName))
                    {
                        var partition = new PartitionModel()
                        {
                            Name              = t.PartitionName,
                            Composite         = t.Composite.ToBoolean(),
                            HighValue         = t.HighValue,
                            HighValueLength   = t.HighValueLength,
                            PartitionPosition = t.PartitionPosition,
                            MaxSize           = t.MaxSize,
                            Compression       = t.Compression,
                            CompressFor       = t.CompressFor,
                            NumRows           = t.NumRows,
                            Blocks            = t.Blocks,
                            EmptyBlocks       = t.EmptyBlocks,
                            //AvgSpace = t.AvgSpace,
                            ChainCnt = t.ChainCnt,
                            //AvgRowLen = t.AvgRowLen,
                            //SampleSize = t.SampleSize,
                            //LastAnalyzed = t.LastAnalyzed,
                            CellFlashCache       = t.CellFlashCache,
                            GlobalStats          = t.GlobalStats.ToBoolean(),
                            UserStats            = t.UserStats.ToBoolean(),
                            IsNested             = t.IsNested.ToBoolean(),
                            ParentTablePartition = t.ParentTablePartition,
                            Interval             = t.Interval.ToBoolean(),
                            SegmentCreated       = t.SegmentCreated.ToBoolean(),
                        };

                        partition.PhysicalAttributes.Logging       = t.Logging;
                        partition.PhysicalAttributes.PctFree       = t.PctFree;
                        partition.PhysicalAttributes.PctUsed       = t.PctUsed;
                        partition.PhysicalAttributes.IniTrans      = t.IniTrans;
                        partition.PhysicalAttributes.MaxTrans      = t.MaxTrans;
                        partition.PhysicalAttributes.InitialExtent = t.InitialExtent;
                        partition.PhysicalAttributes.NextExtent    = t.NextExtent;
                        partition.PhysicalAttributes.MinExtent     = t.MinExtent;
                        partition.PhysicalAttributes.MaxExtent     = t.MaxExtent;

                        partition.PhysicalAttributes.BufferPool      = t.BufferPool;
                        partition.PhysicalAttributes.FlashCache      = t.FlashCache;
                        partition.PhysicalAttributes.Tablespace.Name = t.TablespaceName;
                        partition.PhysicalAttributes.PctIncrease     = t.PctIncrease;
                        partition.PhysicalAttributes.Freelists       = t.Freelists;
                        partition.PhysicalAttributes.FreelistGroups  = t.FreelistGroups;

                        db.Partitions.Add(partition);
                    }

                    TableModel ta;

                    string key = t.TableOwner + "." + t.TableName;
                    if (db.Tables.TryGet(key, out ta))
                    {
                        var partionRef = new PartitionRefModel()
                        {
                            PartitionName = t.PartitionName
                        };
                        ta.Partitions.Add(partionRef);
                    }
                }
            }
            ;

            PartitionsQueryDescriptor_11 Partitions = new PartitionsQueryDescriptor_11(context.Manager.ConnectionString);

            sql = string.Format(sql, TableQueryWhereCondition("l", "TABLE_OWNER"));

            using (var reader = context.Manager.ExecuteReader(CommandType.Text, sql, QueryBase.DbParams.ToArray()))
            {
                List = Partitions.ReadAll(reader, action).ToList();
            }

            return(List);
        }
    }
示例#3
0
 public void VisitPartitionRef(PartitionRefModel item)
 {
     if (InFile(item))
     {
     }
 }