MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/rdbms/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/rdbms/admin/dpart.bsq

rem   anthkim    01/24/11 - Inmemory-columnar snapshot store
rem   spsundar   06/10/11 - add flags column to indpart_param$
rem   kshergil   17/07/11 - Proj 30969: OLTP index compression
rem   bvaranas   06/12/06 - add insert_tsn_list$
rem   sankejai   05/08/11 - move partobj$ to dcore.bsq
rem   traney     03/21/11 - 35209: long identifiers dictionary upgrade
rem   shwang     03/11/05 - Include two more flag values to 'flags' in 
rem                         partobj$:Adding comments to explain them 
rem   jklein     08/01/05 - creation
rem
rem  Partitioned Objects
rem

rem partition name sequence
rem This sequence is used to generate names for new partitions 
rem and subpartitions
create sequence partition_name$
  start with 1
  increment by 1
  minvalue 1
  nomaxvalue
  nocycle
  noorder
  cache 20
/
rem
rem  partcol$ table
rem  This table has a row per partitioning key column
rem  obj#, intcol# is a key
rem  There is a non-unique index on obj#
create table partcol$ (
  obj#   number not null,     /* object number of partitioned table or index */
  intcol# number not null,                         /* internal column number */
  col#   number not null,                                   /* column number */
  pos#   number not null,    /* position of column in key (1 = first column) */
  spare1 number,                                     /* NLS character set id */
  segcol#       number not null,                 /* column number in segment */
  type#         number  not null,                     /* data type of column */
  charsetform   number)                            /* NLS character set form */
/
create index i_partcol$ on partcol$(obj#)
/
rem
rem  tabpart$ table
rem  This table has one row per table partition
rem  obj# is a key; and so is (bo#, part#)
rem  There is a non-unique index on bo#, obj#
rem
rem  NOTE 
rem  Logminer/Streams uses contents of this table. 
rem  Please do not reuse any flags without verifying the impact of your 
rem  changes on inter-op.  
create table tabpart$ (
  obj#        number not null,                 /* object number of partition */
  /* DO NOT CREATE INDEX ON DATAOBJ#  AS IT WILL BE UPDATED IN A SPACE
   * TRANSACTION DURING TRUNCATE */
  dataobj#    number,                            /* data layer object number */
  bo#         number not null,                /* object number of base table */
  part#       number not null,    /* partition number (see discussion below) */
  hiboundlen  number not null,      /* length of high bound value expression */
  hiboundval  long,                   /* text of high-bound value expression */
  ts#         number,           /* tablespace number where partition resides */
  file#       number,                          /* segment header file number */
  block#      number,                         /* segment header block number */
  pctfree$    number not null,   /* minimum free space percentage in a block */
  pctused$    number not null,   /* minimum used space percentage in a block */
  initrans    number not null,             /* initial number of transactions */
  maxtrans    number not null,             /* maximum number of transactions */
  flags       number not null,                              /* for any flags */
                    /* 0x01    = 7.3 -> 8.0 data object migration            */
                    /* 0x02    = partition has been analyzed                 */
                    /* 0x04    = NO LOGGING for partition                    */
                    /* 0x08    = user-specified stats                        */
                    /* 0x10    = global stats                                */
                    /* 0x20    = data stats locked                           */
                    /* 0x40    = cache stats locked                          */
                    /* 0x80    = fragment has cache stats                    */
                    /* 0x100   = not used                                    */
                    /* 0x200   = not used                                    */
                    /* 0x400   = not used                                    */
                    /* 0x800   = not used                                    */
                    /* 0x1000  = not used                                    */
                    /* 0x2000  = not used                                    */
                    /* 0x4000  = default partition(for list partitioning)    */
                    /* 0x8000  = interval partition                          */
                    /* 0x10000 = deferred segment creation                   */
                    /* 0x20000 = not used                                    */
                    /* 0x40000 = not used                                    */
                    /* 0x80000 = not used                                    */
                    /* 0x100000 = not used                                   */
                    /* 0x200000 = indexing is off for this partition         */
                    /* 0x400000 = online PMOP                                */
                    /* 0x800000 = hidden fragment                            */
                    /* 0x1000000 = at least 1 subpartn has online operation  */
                    /* 0x2000000 = fragment was compressed online            */
                    /* 0x4000000 = partition read only                       */

  analyzetime date,                          /* timestamp when last analyzed */
  samplesize  number,                            /* samplesize for histogram */
  rowcnt      number,                                      /* number of rows */
  blkcnt      number,                                    /* number of blocks */
  empcnt      number,                              /* number of empty blocks */
  avgspc      number,        /* average available free space /iot ovfl stats */
  chncnt      number,                              /* number of chained rows */
  avgrln      number,                                  /* average row length */
  /* These spare columns are for future needs, e.g. values for the 
   * PARALLEL(degree, instances) parameters.
   */

  spare1      number,                             /* summary sequence number */
  spare2      number,
  spare3      number,
  bhiboundval blob)             /* binary linear key form of partition bound */
/
create unique index i_tabpart_bopart$ on tabpart$(bo#, part#)
/
create unique index i_tabpart_obj$ on tabpart$(obj#)
/
rem  indpart$ table
rem  This table has one row per index partition
rem  obj# is a key, and so is (bo#, part#)
rem  There is a non-unique index on bo#, obj#
rem
rem  NOTE 
rem  Logminer/Streams uses contents of this table. 
rem  Please do not reuse any flags without verifying the impact of your 
rem  changes on inter-op.  
create table indpart$ (
  obj#        number not null,                 /* object number of partition */
  /* DO NOT CREATE INDEX ON DATAOBJ#  AS IT WILL BE UPDATED IN A SPACE
   * TRANSACTION DURING TRUNCATE */
  dataobj#             number,                   /* data layer object number */
  bo#         number not null,                /* object number of base index */
  part#       number not null,
                         /* partition number (see discussion under TABPART$) */
  hiboundlen  number not null,      /* length of high bound value expression */
  hiboundval  long ,                  /* text of high bound value expression */
  flags   number not null,

                    /* 0x01 = Unusable (this field replaces the V7 DLS flag) */
                    /* 0x02 = partition has been analyzed                    */ 
                    /* 0x04 = NO LOGGING for partition                       */
                    /* 0x08 = user-specified stats                           */
                    /* 0x10 = global stats                                   */
                    /* 0x20 = data stats locked                              */
                    /* 0x40 = cache stats locked                             */
                    /* 0x80 = fragment has cache stats                       */
                    /* 0x100 = index partition is being online built         */
                    /* 0x200 = index partition is being online rebuilt       */
                    /* 0x400 = index partition operation in progress         */
                    /* 0x800 = index partition operation has failed          */
                    /* 0x1000 = domain index marked in progress              */
                    /* 0x2000 = domain index marked incomplete               */
                    /* 0x4000 = default partition(for list partitioning)     */
                    /* 0x8000 = interval partition                           */
                    /* 0x10000 = deferred segment creation                   */
                    /* 0x20000 = online index cleanup phase                  */
                    /* 0x40000 = index partition has orphaned entries        */
                    /* 0x80000 = oltp low compressed index                   */
                   /* 0x100000 = oltp high compressed index                  */

  ts#         number not null,  /* tablespace number where partition resides */
  file#       number not null,                 /* segment header file number */
  block#      number not null,                /* segment header block number */
  pctfree$    number not null,   /* minimum free space percentage in a block */
  pctthres$     number,           /* iot overflow threshold, null if not iot */
  initrans    number not null,             /* initial number of transactions */
  maxtrans    number not null,             /* maximum number of transactions */
  analyzetime date,                          /* timestamp when last analyzed */
  samplesize  number,                            /* samplesize for histogram */
  rowcnt      number,                                      /* number of rows */
  blevel      number,                                        /* B-tree level */
  leafcnt     number,                               /* number of leaf blocks */
  distkey     number,                             /* number of distinct keys */
  lblkkey     number,               /* average number of leaf blocks per key */
  dblkkey     number,               /* average number of data blocks per key */
  clufac      number,                                   /* clustering factor */
  spare1      number,
  /* These spare columns are for future needs, e.g. values for the
   * PARALLEL(degree, instances) parameters.
   */
  spare2   number,
  spare3   number,
  inclcol      number,        /* iot include column number, null if not iot */
  bhiboundval blob)            /* binary linear key form of partition bound */
/
create unique index i_indpart_bopart$ on indpart$(bo#, part#)
/
create unique index i_indpart_obj$ on indpart$(obj#)
/
rem
rem  subpartcol$ table
rem  This table has a row per subpartitioning key column for (R+H)
rem  obj#, intcol# is a key
rem  There is a non-unique index on obj#
create table subpartcol$ (
  obj#   number not null,     /* object number of partitioned table or index */
  intcol# number not null,                         /* internal column number */
  col#   number not null,                                   /* column number */
  pos#   number not null,    /* position of column in key (1 = first column) */
  spare1 number,                                     /* NLS character set id */
  segcol#       number not null,                 /* column number in segment */
  type#         number  not null,                     /* data type of column */
  charsetform   number)                            /* NLS character set form */
/
create index i_subpartcol$ on subpartcol$(obj#)
/
rem
rem  tabsubpart$ table
rem  This table has one row per table subpartition
rem  obj# is a key; and so is (pobj#, subpart#)
rem  There is a non-unique index on pobj#, obj#
rem
rem  NOTE 
rem  Logminer/Streams uses contents of this table. 
rem  Please do not reuse any flags without verifying the impact of your 
rem  changes on inter-op.  
create table tabsubpart$ (
  obj#        number not null,              /* object number of subpartition */
  /* DO NOT CREATE INDEX ON DATAOBJ#  AS IT WILL BE UPDATED IN A SPACE
   * TRANSACTION DURING TRUNCATE */
  dataobj#    number,                            /* data layer object number */
  pobj#       number not null,
                       /* object number of partition containing subpartition */
  subpart#    number not null,  
                     /* subpartition number within parent partition (base 1) */
  flags   number not null,
                    /* 0x02   = partition has been analyzed                  */
                    /* 0x04   = NO LOGGING for partition                     */
                    /* 0x08   = user-specified stats                         */
                    /* 0x10   = global stats                                 */
                    /* 0x20   = data stats locked                            */
                    /* 0x40   = cache stats locked                           */
                    /* 0x80   = fragment has cache stats                     */
                    /* 0x100  = not used                                     */
                    /* 0x200  = not used                                     */
                    /* 0x400  = not used                                     */
                    /* 0x800  = not used                                     */
                    /* 0x1000 = not used                                     */
                    /* 0x2000 = not used                                     */
                    /* 0x4000 = default partition(for list partitioning)     */
                    /* 0x8000 = not used                                     */
                    /* 0x10000 = deferred segment creation                   */
                    /* 0x20000 = not used                                    */
                    /* 0x40000 = not used                                    */
                    /* 0x80000 = not used                                    */
                    /* 0x100000 = not used                                   */
                    /* 0x200000 = indexing is off for this subpartition      */
                    /* 0x400000 = online PMOP                                */
                    /* 0x800000 = hidden fragment                            */
                    /* 0x1000000 = not used                                  */
                    /* 0x2000000 = fragment was compressed online            */
                    /* 0x4000000 = partition read only                       */
  ts#         number not null,
                             /* tablespace number where subpartition resides */
  file#       number not null,        /* segment header relative file number */
  block#      number not null,                /* segment header block number */
  pctfree$    number not null,   /* minimum free space percentage in a block */
  pctused$    number not null,   /* minimum used spare precentage in a block */
  initrans    number not null,             /* initial number of transactions */
  maxtrans    number not null,             /* maximum number of transactions */
  analyzetime date,                          /* timestamp when last analyzed */
  samplesize  number,                   /* number of rows sampled by analyze */
  rowcnt      number,                                      /* number of rows */
  blkcnt      number,                                    /* number of blocks */
  empcnt      number,                              /* number of empty blocks */
  avgspc      number,                        /* average available free space */
  chncnt      number,                              /* number of chained rows */
  avgrln      number,                                  /* average row length */
  /* These spare columns are for future needs, e.g. values for the 
   * PARALLEL(degree, instances) parameters.
   */
  spare1      number,                             /* summary sequence number */
  spare2      number,
  spare3      number,
  hiboundlen  number not null,      /* length of high bound value expression */
  hiboundval  long,                   /* text of high-bound value expression */
  bhiboundval blob)             /* binary linear key form of partition bound */
/
create unique index i_tabsubpart_pobjsubpart$ on tabsubpart$(pobj#, subpart#)
/
create unique index i_tabsubpart$_obj$ on tabsubpart$(obj#)
/
rem
rem  indsubpart$ table
rem  This table has one row per index subpartition
rem  obj# is a key; and so is (pobj#, subpart#)
rem  There is a non-unique index on pobj#, obj#
rem
rem  NOTE 
rem  Logminer/Streams uses contents of this table. 
rem  Please do not reuse any flags without verifying the impact of your 
rem  changes on inter-op.  
create table indsubpart$ (
  obj#          number not null,            /* object number of subpartition */
  /* DO NOT CREATE INDEX ON DATAOBJ#  AS IT WILL BE UPDATED IN A SPACE          
   * TRANSACTION DURING TRUNCATE */
  dataobj#               number,                 /* data layer object number */
  pobj#         number not null,               /* object number of partition */
  subpart#      number not null, /* subpartitn # w/in parent partitn(base 1) */
  flags         number not null,   
                    /* 0x01 = Unusable                                       */
                    /* 0x02 = subpartition has been analyzed                 */ 
                    /* 0x04 = NO LOGGING for subpartition                    */
                    /* 0x08 = user-specified stats                           */
                    /* 0x10 = global stats                                   */
                    /* 0x20 = data stats locked                              */
                    /* 0x40 = cache stats locked                             */
                    /* 0x80 = fragment has cache stats                       */
                    /* 0x100 = index partition is being online built         */
                    /* 0x200 = index partition is being online rebuilt       */
                    /* 0x400 = index partition operation in progress         */
                    /* 0x800 = index partition operation has failed          */
                    /* 0x1000 = domain index marked in progress              */
                    /* 0x2000 = domain index marked incomplete               */
                    /* 0x4000 = default partition(for list partitioning)     */
                    /* 0x8000 = interval partition                           */
                    /* 0x10000 = deferred segment creation                   */
                    /* 0x20000 = online index cleanup phase                  */
                    /* 0x40000 = oltp low compressed index                   */
                    /* 0x80000 = oltp high compressed index                  */

  ts#           number not null,  /* tablespace # where subpartition resides */
  file#         number not null,               /* segment header file number */
  block#        number not null,              /* segment header block number */
  pctfree$      number not null, /* minimum free space percentage in a block */
  initrans      number not null,           /* initial number of transactions */
  maxtrans      number not null,           /* maximum number of transactions */
  analyzetime   date,                        /* timestamp when last analyzed */
  samplesize    number,                          /* samplesize for histogram */
  rowcnt        number,                                    /* number of rows */
  blevel        number,                                      /* B-tree level */
  leafcnt       number,                             /* number of leaf blocks */
  distkey       number,                           /* number of distinct keys */
  lblkkey       number,             /* average number of leaf blocks per key */
  dblkkey       number,             /* average number of data blocks per key */
  clufac        number,                                 /* clustering factor */
  spare1        number,
         /* These spare columns are for future needs, e.g. values for the
          * PARALLEL(degree, instances) parameters.
          */
  spare2        number,
  spare3        number,
  hiboundlen    number not null,  /* length of high bound value expression */
  hiboundval    long ,              /* text of high bound value expression */
  bhiboundval   blob)         /* binary linear key form of partition bound */
/
create unique index i_indsubpart_pobjsubpart$ on indsubpart$(pobj#, subpart#)
/
create unique index i_indsubpart_obj$ on indsubpart$(obj#)
/
rem
rem tabcompart$ table
rem This table has a row per table composite partition
rem obj# is the key; and so is (bo#, part#)
rem There is a unique index on obj#
rem
rem NOTE 
rem Logminer/Streams uses contents of this table. 
rem Please do not reuse any flags without verifying the impact of your 
rem changes on inter-op.  
create table tabcompart$ (
  obj#        number not null,                 /* object number of partition */
  /* DO NOT CREATE INDEX ON DATAOBJ#  AS IT WILL BE UPDATED IN A SPACE
   * TRANSACTION DURING TRUNCATE */
  dataobj#    number,                                          /* not in use */
  bo#         number not null,                /* object number of base table */
  part#       number not null,    /* partition number (see discussion below) */
  hiboundlen  number not null,      /* length of high bound value expression */
  hiboundval  long,                   /* text of high-bound value expression */
  subpartcnt  number not null,                    /* number of subpartitions */
  flags       number not null,                              /* for any flags */
                    /* 0x01   = 7.3 -> 8.0 data object migration             */
                    /* 0x02   = partition has been analyzed                  */
                    /* 0x04   = NO LOGGING for partition                     */
                    /* 0x08   = user-specified stats                         */
                    /* 0x10   = global stats                                 */
                    /* 0x20   = data stats locked                            */
                    /* 0x40   = cache stats locked                           */
                    /* 0x80   = fragment has cache stats                     */
                    /* 0x100  = not used                                     */
                    /* 0x200  = not used                                     */
                    /* 0x400  = not used                                     */
                    /* 0x800  = not used                                     */
                    /* 0x1000 = not used                                     */
                    /* 0x2000 = not used                                     */
                    /* 0x4000 = default partition(for list partitioning)     */
                    /* 0x8000 = interval partition                           */
                    /* 0x10000 = not used                                    */

  defts#      number,                                  /* default TABLESPACE */
  defpctfree  number not null,                            /* default PCTFREE */
  defpctused  number not null,                            /* default PCTUSED */
  definitrans number not null,                           /* default INITRANS */
  defmaxtrans number not null,                           /* default MAXTRANS */
  definiexts  number,    /* default INITIAL extent size; NULL if unspecified */
  defextsize  number,       /* default NEXT extent size; NULL if unspecified */
  defminexts  number,             /* default MINEXTENTS; NULL if unspecified */
  defmaxexts  number,             /* default MAXEXTENTS; NULL if unspecified */
  defextpct   number,            /* default PCTINCREASE; NULL if unspecified */
  deflists    number,        /* default FREELISTS value; NULL if unspecified */
  defgroups   number,        /* default FREELIST GROUPS; NULL if unspecified */
  deflogging  number,                          /* default LOGGING attribute: */
                              /* 0 - unspecified; 1 - LOGGING; 2 - NOLOGGING */
  defbufpool  number,                           /* default BUFFER_POOL value */
  analyzetime date,                          /* timestamp when last analyzed */
  samplesize  number,                            /* samplesize for histogram */
  rowcnt      number,                                      /* number of rows */
  blkcnt      number,                                    /* number of blocks */
  empcnt      number,                              /* number of empty blocks */
  avgspc      number,                        /* average available free space */
  chncnt      number,                              /* number of chained rows */
  avgrln      number,                                  /* average row length */
  /* These spare columns are for future needs, e.g. values for the 
   * PARALLEL(degree, instances) parameters.
   */
  spare1      number,

  /* Only 5 bytes of spare2 (ub8) are currently spoken for */
  /* byte 0   : compression attribute of the partition */
  /*            following bit patterns are possible: */
  /*            00000000 : Compression not specified */
  /*            00000001 : Compression enabled for direct load operations */
  /*            00000010 : Compression disabled      */
  /*            00000101 : Compression enabled for all operations */
  /*            00001001 : Archive Compression: level 1 */
  /*            00010001 : Archive Compression: level 2 */
  /*            00011001 : Archive Compression: level 3 */
  /*            00100001 : Archive Compression: level 4 */
  /*            00101001 : Archive Compression: level 5 */
  /*            00110001 : Archive Compression: level 6 */
  /*            00111001 : Archive Compression: level 7 */
  /*            All other bit patterns are incorrect. */
  /* byte 1   : segment creation attributes of the partition */
  /*            00000001 : Deferred segment creation is the default */
  /*            00000010 : Immediate segment creation is the default */
  /*            00000100 : default for partition is indexing on */
  /*            00001000 : default for partition is indexing off */
  /*            00010000 : default for partition is read only */
  /*            00100000 : default for partition is read write */
  /* byte 2   : in-memory columnar attributes */
  /*            00000000 : imc not specified            */
  /*            00000001 : imc explicitly enabled       */
  /*            00000010 : imc explicitly not enabled   */
  /*            00000100 : this bit is 0 if MIRROR, 1 if MAP        */
  /*            00001000 : imc level 1: 00 if UNCOMP, 01 if LOW     */
  /*            00010000 : this bit is 0 if ONDEMAND, 1 if PRELOAD  */
  /*            00100000 : this bit is 0 if ROWID, 1 if other       */
  /*            01000000 : this bit is 0 if PARTITION, 1 if SUBPART */
  /*            10000000 : imc level 2: 10 if MEDIUM, 11 if HIGH    */
  /* byte 3   : in-memory columnar preload attributes
  /* byte 4   : cell columnar cache attributes            */
  /*            00000000 : cellcache not specified          */
  /*            00000001 : cellcache explicitly enabled     */
  /*            00000010 : cellcache explicitly not enabled */
  /*            00000100 : cellcache 12.1.0.2 compat enabled */
  /*            00001000 : cellcache query compression enabled */
  /*            00010000 : cellcache capacity compression enabled */
  /* byte 5   : additional in-memory columnar attributes */
  /*            00000001 : imc for service specified */
  /*            00000010 : imc order by */
  /*            00000100 : imc no order by */
  /*            Other bits can be used as needed */
  spare2      number,                       
  spare3      number,
  bhiboundval blob,             /* binary linear key form of partition bound */
  defmaxsize  number)                                  /* default MAXSIZE    */
/
create unique index i_tabcompart_bopart$ on tabcompart$(bo#, part#)
/
create unique index i_tabcompart$ on tabcompart$(obj#)
/
rem
rem indcompart$ table
rem This table has a row per index composite partition
rem obj# is the key; and so is (bo#, part#)
rem There is a unique index on obj#
rem
rem NOTE 
rem Logminer/Streams uses contents of this table. 
rem Please do not reuse any flags without verifying the impact of your 
rem changes on inter-op.  
create table indcompart$ (
  obj#        number not null,                 /* object number of partition */
  /* DO NOT CREATE INDEX ON DATAOBJ#  AS IT WILL BE UPDATED IN A SPACE
   * TRANSACTION DURING TRUNCATE */
  dataobj#    number,                                          /* not in use */
  bo#         number not null,                /* object number of base index */
  part#       number not null,                           /* partition number */
  hiboundlen  number not null,      /* length of high bound value expression */
  hiboundval  long,                   /* text of high-bound value expression */
  subpartcnt  number not null,                    /* number of subpartitions */
  flags       number not null,                              /* for any flags */
                    /* 0x01 - not used                                       */
                    /* 0x02 = partition has been analyzed                    */
                    /* 0x04 - not used                                       */
                    /* 0x08 = user-specified stats                           */
                    /* 0x10 = global stats                                   */
                    /* 0x20 = data stats locked                              */
                    /* 0x40 = cache stats locked                             */
                    /* 0x80 = fragment has cache stats                       */
                    /* 0x100 = index partition is being online built         */
                    /* 0x200 = index partition is being online rebuilt       */
                    /* 0x400 = index partition operation in progress         */
                    /* 0x800 = index partition operation has failed          */
                    /* 0x1000 = domain index marked in progress              */
                    /* 0x2000 = domain index marked incomplete               */
                    /* 0x4000 = default partition(for list partitioning)     */
                    /* 0x8000 = interval partition                           */

  defts#      number,             /* default TABLESPACE; NULL if unspecified */
  defpctfree  number not null,                            /* default PCTFREE */
  definitrans number not null,                           /* default INITRANS */
  defmaxtrans number not null,                           /* default MAXTRANS */
  definiexts  number,    /* default INITIAL extent size; NULL if unspecified */
  defextsize  number,       /* default NEXT extent size; NULL if unspecified */
  defminexts  number,             /* default MINEXTENTS; NULL if unspecified */
  defmaxexts  number,             /* default MAXEXTENTS; NULL if unspecified */
  defextpct   number,            /* default PCTINCREASE; NULL if unspecified */
  deflists    number,        /* default FREELISTS value; NULL if unspecified */
  defgroups   number,           /* default FREELIST GROUPS (N/A for indexes) */
  deflogging  number,                          /* default LOGGING attribute: */
                              /* 0 - unspecified; 1 - LOGGING; 2 - NOLOGGING */
  defbufpool  number,                           /* default BUFFER_POOL value */
  analyzetime date,                          /* timestamp when last analyzed */
  samplesize  number,                            /* samplesize for histogram */
  rowcnt      number,                                      /* number of rows */
  blevel      number,                                        /* B-tree level */
  leafcnt     number,                               /* number of leaf blocks */
  distkey     number,                             /* number of distinct keys */
  lblkkey     number,               /* average number of leaf blocks per key */
  dblkkey     number,               /* average number of data blocks per key */
  clufac      number,                                   /* clustering factor */
  spare1      number,
  /* These spare columns are for future needs, e.g. values for the
   * PARALLEL(degree, instances) parameters.
   */
  spare2   number,
  spare3   number,
  bhiboundval blob,             /* binary linear key form of partition bound */
  defmaxsize  number)                                  /* default MAXSIZE    */
/
create unique index i_indcompart_bopart$ on indcompart$(bo#, part#)
/
create unique index i_indcompart$ on indcompart$(obj#)
/
rem
rem partlob$ table
rem This table will be used to store table-level default attributes for LOB
rem columns in partitioned tables.
rem
create table partlob$ (
  lobj#       number not null,                 /* object number of partition */
  tabobj#     number not null,    /* obj# of the table containing lob column */
  intcol#     number not null,       /* internal column id of the lob column */
  defts#      number,             /* default TABLESPACE; NULL if unspecified */
  defchunk    number not null,     /* default oracle blocks in one lob chunk */
  defpctver$  number not null,                       /* default version pool */
  defflags    number not null,              /* default CACHE & LOGGING attrs */
                                                           /* 0x0000 = CACHE */
                                                 /* 0x0001 = NOCACHE LOGGING */
                                               /* 0x0002 = NOCACHE NOLOGGING */
                                             /* 0x0008 = CACHE READS LOGGING */
                                           /* 0x0010 = CACHE READS NOLOGGING */
                                                 /* 0x0100 = CACHE NOLOGGING */
                                                   /* 0x0200 = CACHE LOGGING */
                                                            /* 0x0400 = SYNC */
                                                           /* 0x0800 = ASYNC */
                                                      /* 0x1000 = Encryption */
                                               /* 0x2000 = Compression - Low */
                                            /* 0x4000 = Compression - Medium */
                                              /* 0x8000 = Compression - High */
                                             /* 0x10000 = Sharing: LOB level */
                                          /* 0x20000 = Sharing: Object level */
                                              /* 0x40000 = Sharing: Validate */
  defpro      number not null,                 /* default partition property */
                                             /* 0x02 = enable storage in row */
                                                   /* 0x0800 = 11g LOCAL lob */
  definiexts  number,    /* default INITIAL extent size; NULL if unspecified */
  defextsize  number,       /* default NEXT extent size; NULL if unspecified */
  defminexts  number,             /* default MINEXTENTS; NULL if unspecified */
  defmaxexts  number,             /* default MAXEXTENTS; NULL if unspecified */
  defextpct   number,            /* default PCTINCREASE; NULL if unspecified */
  deflists    number,        /* default FREELISTS value; NULL if unspecified */
  defgroups   number,        /* default FREELIST GROUPS; NULL if unspecified */
  defbufpool  number,            /* default BUFFER_POOL; NULL if unspecified */
  spare1      number,
  spare2      number,
  spare3      number,
  defmaxsize  number,                                  /* default MAXSIZE    */
  defretention number,                              /* default LOB RETENTION */
  defmintime  number                                   /* default MIN time   */
)
/
rem
rem lobfrag$ table
rem This table will be used to store attributes of partitions (for tables
rem partitioned using Range, Hash, and System methods) and subpartitions 
rem (for tables partitioned using Composite methods) of LOB columns.
rem NOTE 
rem Logminer/Streams uses contents of this table. 
rem Please do not reuse any flags without verifying the impact of your 
rem changes on inter-op.  
create table lobfrag$ (
  fragobj#     number not null,           /* object number of a LOB fragment */
  parentobj#   number not null,               /* object number of the parent */
                                        /* (LOB column for partitions or LOB */ 
                                             /* partition for subpartitions) */
  tabfragobj#  number not null,  /* object number of corresponding LOB table */
                                                                 /* fragment */
  indfragobj#  number not null,  /* object number of corresponding LOB index */
                                                                 /* fragment */
  frag#        number not null,       /* fragment # (partn w/in a LOB column */
                                  /* or subpartition w/in the LOB partition) */
  fragtype$    char(1),                                /* LOB fragment type: */
                                     /* 'P' - partition;  'S' - subpartition */
  ts#         number not null,          /* tablespace number of LOB fragment */
  file#       number not null,                 /* segment header file number */
  block#      number not null,                /* segment header block number */
  chunk       number not null,             /* oracle blocks in one lob chunk */
  pctversion$ number not null,                               /* version pool */
  fragflags   number not null,                 /* CACHE & LOGGING attributes */
                                                           /* 0x0000 = CACHE */
                                                 /* 0x0001 = NOCACHE LOGGING */
                                               /* 0x0002 = NOCACHE NOLOGGING */
                                             /* 0x0008 = CACHE READS LOGGING */
                                           /* 0x0010 = CACHE READS NOLOGGING */
                                                   /* 0x0100 = CACHE LOGGING */
                                                 /* 0x0200 = CACHE NOLOGGING */
                                                            /* 0x0400 = SYNC */
                                                           /* 0x0800 = ASYNC */
                                                      /* 0x1000 = Encryption */
                                               /* 0x2000 = Compression - Low */
                                            /* 0x4000 = Compression - Medium */
                                              /* 0x8000 = Compression - High */
                                             /* 0x10000 = Sharing: LOB level */
                                          /* 0x20000 = Sharing: Object level */
                                              /* 0x40000 = Sharing: Validate */
  fragpro     number not null,                          /* fragment property */
                                             /* 0x02 = enable storage in row */
                                                   /* 0x0800 = 11g LOCAL lob */
  spare1      number,
  spare2      number,
  spare3      number       
)
/
create unique index i_lobfrag_parentobjfrag$ on lobfrag$(parentobj#, frag#)
/
create unique index i_lobfrag$_fragobj$ on lobfrag$(fragobj#)
/
rem
rem lobcomppart$ table
rem This table will contain partition-level default attributes for partitioned
rem of LOB columns of table partitioned using Composite methods.         
rem
create table lobcomppart$ (
  partobj#     number not null,          /* object number of a LOB partition */
  lobj#        number not null,  /* object number of the LOB column to which */
                                                    /* the partition belongs */
  tabpartobj#  number not null,      /* object number of the table partition */
                                      /* to which this partition corresponds */
  indpartobj#  number not null,      /* object number of the index partition */
                                      /* to which this partition corresponds */
  part#        number not null,        /* partition number w/in a LOB column */
  defts#       number,            /* default TABLESPACE; NULL if unspecified */
  defchunk     number not null,    /* default oracle blocks in one lob chunk */
  defpctver$   number not null,                      /* default version pool */
  defflags     number not null,             /* default CACHE & LOGGING attrs */
                                                           /* 0x0000 = CACHE */
                                                 /* 0x0001 = NOCACHE LOGGING */
                                               /* 0x0002 = NOCACHE NOLOGGING */
                                             /* 0x0008 = CACHE READS LOGGING */
                                           /* 0x0010 = CACHE READS NOLOGGING */
                                                 /* 0x0100 = CACHE NOLOGGING */
                                                   /* 0x0200 = CACHE LOGGING */
                                                            /* 0x0400 = SYNC */
                                                           /* 0x0800 = ASYNC */
                                                      /* 0x1000 = Encryption */
                                               /* 0x2000 = Compression - Low */
                                            /* 0x4000 = Compression - Medium */
                                              /* 0x8000 = Compression - High */
                                             /* 0x10000 = Sharing: LOB level */
                                          /* 0x20000 = Sharing: Object level */
                                              /* 0x40000 = Sharing: Validate */
  defpro       number not null,                /* default partition property */
                                             /* 0x02 = enable storage in row */
                                                   /* 0x0800 = 11g LOCAL lob */
  definiexts   number,   /* default INITIAL extent size; NULL if unspecified */
  defextsize   number,      /* default NEXT extent size; NULL if unspecified */
  defminexts   number,            /* default MINEXTENTS; NULL if unspecified */
  defmaxexts   number,            /* default MAXEXTENTS; NULL if unspecified */
  defextpct    number,           /* default PCTINCREASE; NULL if unspecified */
  deflists     number,       /* default FREELISTS value; NULL if unspecified */
  defgroups    number,       /* default FREELIST GROUPS; NULL if unspecified */
  defbufpool   number,           /* default BUFFER_POOL; NULL if unspecified */
  spare1       number,
  spare2       number,
  spare3       number,
  defmaxsize  number,                                  /* default MAXSIZE    */
  defretention number,                              /* default LOB RETENTION */
  defmintime  number                                   /* default MIN time   */
)
/
create index i_lobcomppart_lobjpart$ on lobcomppart$(lobj#, part#)
/
create unique index i_lobcomppart$_partobj$ on lobcomppart$(partobj#)
/
rem
rem  FAMILY "TEMPLATE TABLES"
rem  Tables used to store information on tempaltes for composite partitioned 
rem  tables
rem
rem  defsubpart$ stores information on subpartition templates
create table defsubpart$ (
bo#            number not null,       /* Object number of table */
spart_position number,                /* subpartition position */
spart_name     varchar2(132) not null, /* name assigned by user */
ts#            number,                /* Default tablespace NULL if none */
flags          number,                /* 0x01 - COMPRESS attr. specified */
                                      /* 0x02 - NOCOMPRESS attr. specified */
                                      /* 0x40 - INDEXING ON  specified */
                                      /* 0x80 - INDEXING OFF specified */
                                      /* 0x8000000 - READ ONLY specified */
                                      /* 0x10000000 - READ WRITE specified */
hiboundlen     number not null,      /* high bound text of this subpartition */
hiboundval     long,                 /* length of the text */  
bhiboundval    blob)                 /* binary form of high bound */
/
create unique index i_defsubpart$ on defsubpart$(bo#, spart_position)
/
rem
rem defsubpartlob$ stores information on lob subpartition templates
rem
create table defsubpartlob$ (
bo#            number not null,      /* object number of table */
intcol#        number not null,      /* column number of lob column */
spart_position number not null,      /* subpartition position */
flags          number,               /* Type of lob column */
                                     /* 0x01 varray */
                                     /* 0x02 opaque */
lob_spart_name varchar2(132) not null, /* segment name for lob subpartition */
lob_spart_ts#  number)                /* tablespace (if any) assigned */
/
create unique index i_defsubpartlob$ on defsubpartlob$ 
(bo#, intcol#, spart_position)
/
rem  indpart_param$ table
rem  This table has one row per domain index partition
rem  obj# is a key, and so is (bo#, part#)
rem  There is a non-unique index on bo#, obj#
rem
create table indpart_param$ (
  obj#         number not null,                /* object number of partition */
  parameters   varchar2(1000),       /* parameter string per index partition */
  flags        number)                          /* type of parameters string */
                                                /* 0x01 user-specified */
/
create unique index i_indpart_param on indpart_param$(obj#)
/
rem
rem  insert_tsn_list$ table
rem  This table has a row per tablespace specified in the store-in clause
rem  for interval partitioned tables. These tablespaces are used in a 
rem  round-robin fashion for on-the-fly segment creation during inserts.
rem  bo#,position# forms the key
rem
create table insert_tsn_list$ (
  bo#       number not null,      /* object number of base partitioned table */
  position# number not null,     /* position of tablespace specified by user */
  ts#       number not null)                            /* tablespace number */
/

OHA YOOOO