sysmaster of informix

  1. { ************************************************************************* } 
  2. {                                       } 
  3. {              INFORMIX SOFTWARE, INC.              } 
  4. {                                       } 
  5. {   Title:  sysmaster.sql                           } 
  6. {   Sccsid:     @(#)sysmaster.sql   9.35     12/3/93  18:06:28      } 
  7. {   Description:                                } 
  8. {       create sysmaster database and SMI tables            } 
  9. {                                       } 
  10. {  NOTE: Ensure that any changes in the schema of the "sysmaster" database  } 
  11. {    OR changes in the corresponding shared memory structure  defns     } 
  12. {    are reflected *appropriately* in ALL the files below:          } 
  13. {       rsam/sysmaster.sql.IUS,                     } 
  14. {       rsam/sysmaster.sql.ODS,                     } 
  15. {       rsam/rsmem.h,                           } 
  16. {       rsam/rspseudo.h and                     } 
  17. {       rsam/rspseudo.c                         } 
  18. {                                       } 
  19. { ************************************************************************* } 
  20.  
  21. Create Pseudo Tables } 
  22.  
  23. set lock mode to wait; 
  24.  
  25. create database sysmaster with log; 
  26.  
  27. database sysmaster exclusive; 
  28.  
  29. { databases } 
  30.     create table sysdbspartn 
  31.     ( 
  32.     partnum     integer,    { table id for systables    } 
  33.     created     integer,    { date created          } 
  34.     owner       char(32),   { user name of creator      } 
  35.     name        char(128),  { database name         } 
  36.     flags       smallint    { flags indicating logging  } 
  37.     ); 
  38.     create unique index sysdbs_nameix on sysdbspartn(name); 
  39.     revoke all on sysdbspartn from public
  40.     grant select on sysdbspartn to public
  41.  
  42. join for partnums to table names } 
  43.     create table systabnames 
  44.     ( 
  45.     partnum     integer,    { table id for table        } 
  46.     dbsname     char(128),  { database name         } 
  47.     owner       char(32),   { table owner           } 
  48.     tabname     char(128),  { table name            } 
  49.     collate         char(32)        { collation assoc with database } 
  50.     ); 
  51.     create unique index systabs_pnix on systabnames(partnum); 
  52.     revoke all on systabnames from public
  53.     grant select on systabnames to public
  54.  
  55. { Raw Disk } 
  56.     create table sysrawdsk      { Internal Use Only     } 
  57.     ( 
  58.     pagenum     integer,    { physical page address     } 
  59.     offset      smallint,   { bytes into page       } 
  60.     loc     char(14),   { location representation   } 
  61.     hexdata         char(40),   { 16 bytes hexdumped from offset} 
  62.     ascdata     char(16)    { 16 bytes ascii-dumped         } 
  63.     ); 
  64.     create unique index sysrawdskidx on sysrawdsk (pagenum, offset); 
  65.     revoke all on sysrawdsk from public
  66.  
  67. { Page Headers } 
  68.     create table syspaghdr 
  69.     ( 
  70.     pg_partnum  integer,    { partition number of page  } 
  71.     pg_pagenum  integer,    { logical page number in partn  } 
  72.     pg_physaddr     integer,    { pg_addr           } 
  73.     pg_stamp    integer,    { pg_stamp          } 
  74.     pg_stamp2   integer,    { pg_stamp2         } 
  75.     pg_nslots   smallint,   { pg_nslots         } 
  76.     pg_flags    smallint,   { pg_flags          } 
  77.     pg_frptr    smallint,   { pg_frptr          } 
  78.     pg_frcnt    smallint,   { pg_frcnt          } 
  79.     pg_next     integer,    { pg_pgnext         } 
  80.     pg_prev     integer     { pg_pgprev         } 
  81.     ); 
  82.     create unique index syspaghdridx on syspaghdr (pg_partnum, pg_pagenum); 
  83.     revoke all on syspaghdr from public
  84.     grant select on syspaghdr to public
  85.  
  86. { Slot Tables } 
  87.     create table sysslttab      { Internal Use Only     } 
  88.     ( 
  89.     partnum     integer,    { partition number of page  } 
  90.     pagenum     integer,    { logical page number in partn  } 
  91.     slotnum     smallint,   { slot number on page       } 
  92.     slotptr     smallint,   { slot pointer          } 
  93.     slotlen     smallint,   { slot length           } 
  94.     slotflg     smallint    { slot flag         } 
  95.     ); 
  96.     create unique index sysslttabidx on sysslttab (partnum, pagenum, slotnum); 
  97.     revoke all on sysslttab from public
  98.     grant select on sysslttab to public
  99.  
  100. { Slot Data } 
  101.     create table syssltdat      { Internal Use Only     } 
  102.     ( 
  103.     partnum     integer,    { partition number of page  } 
  104.     pagenum     integer,    { logical page number in partn  } 
  105.     slotnum     smallint,   { slot number on page       } 
  106.     slotoff     smallint,   { slot offset           } 
  107.     loc         char(20),   { location representation   } 
  108.     hexdata     char(40),   { 16 bytes hexdumped from offset} 
  109.     ascdata     char(16)    { 16 bytes ascii dumped         } 
  110.     ); 
  111.     create unique index syssltdatidx on  
  112.     syssltdat (partnum, pagenum, slotnum, slotoff); 
  113.     revoke all on syssltdat from public
  114.  
  115. { Chunk Free List } 
  116.     create table syschfree 
  117.     ( 
  118.     chknum      integer,    { chunk number          } 
  119.     extnum      integer,    { extent number in chunk    } 
  120.     start       integer,    { physical addr of start    } 
  121.     leng        integer     { length of extent      } 
  122.     ); 
  123.     create unique index syschfreeidx on syschfree (chknum, extnum); 
  124.     revoke all on syschfree from public
  125.     grant select on syschfree to public
  126.  
  127. { Partition Headers } 
  128.     create table sysptnhdr 
  129.     ( 
  130.     partnum     integer,    { table's partnum                   } 
  131.     flags       integer,    { partition flags           } 
  132.     rowsize     integer,    { rowsize (max for variable)        } 
  133.     ncols       smallint,   { number of varchar or blob columns } 
  134.     nkeys       smallint,   { number of indexes                 } 
  135.     nextns      smallint,   { number of extents         } 
  136.     created     integer,    { date created              } 
  137.     serialv     integer,    { current serial value          } 
  138.     fextsiz     integer,    { first extent size ( in pages )    } 
  139.     nextsiz     integer,    { next extent size ( in pages )     } 
  140.     nptotal     integer,    { number of pages allocated     } 
  141.     npused      integer,    { number of pages used          } 
  142.     npdata      integer,    { number of data pages          } 
  143.     octptnm         integer,    { OCT partnum (optical blobs only)  } 
  144.         lockid          integer,        { table lock id             } 
  145.     nrows           integer     { number of data rows           } 
  146.     ); 
  147.     create unique index sysptnhdridx on sysptnhdr (partnum); 
  148.     revoke all on sysptnhdr from public
  149.     grant select on sysptnhdr to public
  150.  
  151. { Partition Key Descriptions } 
  152.     create table sysptnkey      { Internal Use Only     } 
  153.     ( 
  154.     partnum     integer,    { partnum for partition     } 
  155.     keynum      smallint,   { keynumber for key     } 
  156.     flags       smallint,   { key flags         } 
  157.     rootnode    integer,    { logical pagenum for root node } 
  158.     nparts      smallint,   { number of parts in key    } 
  159.     keylen      smallint,   { key length            } 
  160.     kpartno     smallint,   { partno for this part      } 
  161.     kpstart     smallint,   { offset into row of the part   } 
  162.     kpleng      smallint,   { length of this part       } 
  163.     kptype      smallint    { type of this part         } 
  164.     ); 
  165.     create unique index sysptnkeyidx on sysptnkey (partnum, keynum, kpartno); 
  166.     revoke all on sysptnkey from public
  167.     grant select on sysptnkey to public
  168.  
  169. { Partition Extent Descriptions } 
  170.     create table sysptnext      { Internal Use Only     } 
  171.     ( 
  172.     pe_partnum  integer,    { partnum for this partition    } 
  173.     pe_extnum   smallint,   { extent number         } 
  174.     pe_phys     integer,    { physical addr for this extent } 
  175.     pe_size     integer,    { size of this extent       } 
  176.     pe_log      integer     { logical page for start    } 
  177.     ); 
  178.     create unique index sysptnextidx on sysptnext (pe_partnum, pe_extnum); 
  179.     revoke all on sysptnext from public
  180.     grant select on sysptnext to public
  181.  
  182. { Partition Column Descriptions } 
  183.     create table sysptncol      { Internal Use Only     } 
  184.     ( 
  185.     partnum     integer,    { partnum for this partition    } 
  186.     colnum      smallint,   { column number         } 
  187.     coloff      smallint,   { offset into row       } 
  188.     colblob     smallint,   { blobspace num if blob     } 
  189.     colsize     smallint,   { column size           } 
  190.     colflags    smallint,   { flags for column      } 
  191.     coltype     smallint    { data type of column       } 
  192.     ); 
  193.     create unique index sysptncolidx on sysptncol (partnum, colnum); 
  194.     revoke all on sysptncol from public
  195.     grant select on sysptncol to public
  196.  
  197. { Partition Bit Maps } 
  198.     create table sysptnbit 
  199.     ( 
  200.     pb_partnum  integer,    { partnum for this partition    } 
  201.     pb_pagenum  integer,    { logical pagenum represented   } 
  202.     pb_bitmap   integer     { bitmap value for page     } 
  203.     ); 
  204.     create unique index sysptnbitidx on sysptnbit (pb_partnum, pb_pagenum); 
  205.     revoke all on sysptnbit from public
  206.     grant select on sysptnbit to public
  207.  
  208.  
  209. { rsam thread control blocks } 
  210.     create table sysrstcb       { Internal Use Only     } 
  211.     ( 
  212.     indx        integer,    { index into rstcb table (rs_number) } 
  213.     address     integer,    { addr of rstcb structure   } 
  214.     txp     integer,    { addr of txp           } 
  215.     localtxp    integer,    { addr of local txp (XA only)   } 
  216.         tmptxp          integer,        { addr of temp file txp         } 
  217.         savetxp         integer
  218.     next        integer,    { addr of next on active or free list } 
  219.         tmpdepth        integer,        { depth of temp file ops        } 
  220.         rmid            integer,        { XA Resource Manager ID        } 
  221.         xrecvrpos       smallint
  222.     iserrno     integer,    { rsam errno number     } 
  223.     isrecnum    integer,    { current rowid         } 
  224.     isfragnum   integer,    { current fragment number   } 
  225.     flags       integer,    { flags for rstcb       } 
  226.     uid     smallint,   { user id           } 
  227.     asyncerr    integer,    { address of async error    } 
  228.     username    char(32),   { user name         } 
  229.     timeout     smallint,   { lock timeout counter      } 
  230.     nxtthread   integer,    { addr of next if >1 threads    } 
  231.     sid     integer,    { session id            } 
  232.     scb     integer,    { addr of scb           } 
  233.     ostcb       integer,    { addr of ostcb         } 
  234.     gentcb      integer,    { addr of gentcb        } 
  235.     tid     integer,    { thread id         } 
  236.         join            smallint,       { thread will join others       } 
  237.     mttcb       integer,    { addr of mt thread cb      } 
  238.     aio     integer,    { addr of aio request struct    } 
  239.     mirror_aio  integer,    { addr of mirror req struct } 
  240.     lkwait      integer,    { waiting for this lock     } 
  241.         lkwttype        integer,        { lock type waiting for         } 
  242.     bfwait      integer,    { waiting for this buffer   } 
  243.     bfwtflag    smallint,   { buffer wait type flag     } 
  244.     txwait      integer,    { waiting for this transaction  } 
  245.     txsusp      integer,    { suspended transaction     } 
  246.     wtlist      integer,    { addr of next waiter on lock   } 
  247.     wtthrlist   integer,    { addr of next thread in trans  } 
  248.     bflist      integer,    { addr of next waiter on buff   } 
  249.     txlist      integer,    { addr of next waiter on tx } 
  250.     lbufwake    integer,    { addr of log buffer for wake up} 
  251.     nreads      integer,    { number of reads       } 
  252.     nwrites     integer,    { number of writes      } 
  253.     tolist      integer,    { addr of next in timeout list  } 
  254.     nopens      integer,    { size of open table        } 
  255.     nfiles      integer,    { size of file table        } 
  256.     opentab     integer,    { open table            } 
  257.         opfree          integer
  258.         nextopen        integer
  259.     filetab     integer,    { file table            } 
  260.         hfiles          integer
  261.         flfree          integer
  262.         nextfile        integer
  263.     tmprow      integer,    { temp space for row        } 
  264.     tmpsize     integer,    { size of tmprow space      } 
  265.     cmprow      integer,    { temp space for compressed row } 
  266.     rcmprow     integer,    { temp space for reading cmprow } 
  267.     rowupdatep  integer,    { address of row update info ** } 
  268.     isbisfd     integer,    { isfd for isb* routines    } 
  269.     blobptr     integer,    { ptr to current open blob  } 
  270.     blobrarea   integer,    { blobpage buffer read area } 
  271.     blobrszbuf  integer,    { size of blob buffer read area } 
  272.     blobrbufp   integer,    { addr of blob buffer read  } 
  273.     blobwarea   integer,    { blobpage buffer write area    } 
  274.     blobwszbuf  integer,    { size of blob buffer write area} 
  275.     blobwbufp   integer,    { addr of blob buffer write } 
  276.     blobcarea   integer,    { blobpage buffer copy area } 
  277.     blobcszbuf  integer,    { size of blob buffer copy area } 
  278.     blobcbufp   integer,    { addr of blob buffer copy  } 
  279.     blobpiecesp integer,    { addr of blobpieces struct **  } 
  280.         affp            integer
  281.         afid            integer
  282.         afcnt           smallint
  283.     operrno     integer,    { error in optical subsystem    } 
  284.     dolinkchk   integer,    { do link checks in btchknode   } 
  285.     nnode       integer,    { next node for link check  } 
  286.     pnode       integer,    { prev node for link check  } 
  287.     rsamdebug   integer,    { do rsam debugging checks  } 
  288.     lastlock    integer,    { last lock granted     } 
  289.     bufferlogging   integer,    { do buffered logging       } 
  290.     abcpytab    integer,    { auxiliary bcpy table      } 
  291.     abcpytabmult    integer,    { size multiple for aux bcpy tab} 
  292.     logbuff     integer,    { normal log buffer     } 
  293.         logbuff_beg     integer
  294.     undologbuff integer,    { undo log buffer       } 
  295.         tmplogrec       integer
  296.     btp     integer,    { addr of current bt struct **  } 
  297.         rkeysfree       integer
  298.         turbonum        integer
  299.     lastrsfd    integer,    { longest rsfd open     } 
  300.     svptnum     integer,    { savepoint number      } 
  301.     numsorts    integer,    { number of open sorts allowed  } 
  302.     srttab      integer,    { addr of sort table        } 
  303.     srttmpdir   integer,    { ptr to sort temp dir pathname } 
  304.     srtfileid   integer,    { file id for sort file     } 
  305.     privdata    integer,    { generic pointer to private mem} 
  306.         precnum         integer
  307.     rootaddr    integer,    { root node of idx being built  } 
  308.     relocking   integer,    { relock on recovery        } 
  309.         pitstop         integer
  310.         pitaction       integer
  311.         debugerrno      integer
  312.         bfheld_count    integer
  313.         logbu           integer
  314.         arcbu           integer
  315.         physrecvr       integer
  316.         logrecvr        integer
  317.         recvryflag      integer
  318.         nlogs           integer
  319.         logs            integer
  320.         auditp          integer
  321.         nexttrace       integer
  322.         ntraces         integer
  323.         traces          integer
  324.         trflags         integer
  325.         opsubbuf        integer
  326.         opbuf           integer
  327.         opbufsize       integer
  328.         blobtxtabp      integer
  329.         nblobtxs        integer
  330.         maxnbtxs        integer
  331.         onut_bufflist   integer
  332.         onut_cb         integer
  333.     upf_rqlock  integer,    { number of locks requested } 
  334.     upf_wtlock  integer,    { ... lock waits        } 
  335.     upf_deadlk  integer,    { ... deadlocks detected    } 
  336.     upf_lktouts integer,    { ... lock timeouts     } 
  337.     upf_lgrecs  integer,    { ... log records written   } 
  338.     upf_isread  integer,    { ... reads         } 
  339.     upf_iswrite integer,    { ... writes            } 
  340.     upf_isrwrite    integer,    { ... rewrites          } 
  341.     upf_isdelete    integer,    { ... deletes           } 
  342.     upf_iscommit    integer,    { ... commits           } 
  343.     upf_isrollback  integer,    { ... rollbacks         } 
  344.     upf_longtxs integer,    { ... long transactions     } 
  345.     upf_bufreads    integer,    { ... buffer reads      } 
  346.     upf_bufwrites   integer,    { ... buffer writes     } 
  347.     upf_logspuse    integer,    { % log space currently used    } 
  348.     upf_logspmax    integer,    { max % of logspace ever used   } 
  349.     upf_seqscans    integer,    { number of sequential scans    } 
  350.         upf_totsorts    integer
  351.         upf_dsksorts    integer
  352.         upf_srtspmax    integer
  353.     nlocks      integer,    { number of locks currently held} 
  354.         lktout          smallint,       { lock timeout counter          } 
  355.         lkthreadlist    integer        { next thread in same tx wtg    } 
  356.     ); 
  357.     create unique index sysrstcbidx  on sysrstcb (indx); 
  358.     create unique index sysrstcbaddr on sysrstcb (address); 
  359.     revoke all on sysrstcb from public
  360.     grant select on sysrstcb to public
  361.  
  362. { Transactions } 
  363.     create table systxptab      { Internal Use Only     } 
  364.     ( 
  365.     indx        integer,    { index into transaction table  } 
  366.     address     integer,    { address of transaction struct } 
  367.     latchp      integer,    { address of transaction latch  } 
  368.     next        integer,    { addr of next on active or free list } 
  369.     gtridp      integer,    { address of gtrid      } 
  370.     txid        integer,    { id of transaction     } 
  371.     flags       integer,    { transaction flags     } 
  372.     logbeg      integer,    { loguniq containing BEGIN  } 
  373.     loguniq     integer,    { loguniq of last record    } 
  374.     logpos      integer,    { logpos of last record     } 
  375.     dlklist     integer,    { used for deadlk detection } 
  376.     deadflag    smallint,   { flag for deadlock detection   } 
  377.     mgmquery    integer,    { tx_query          } 
  378.     lkwaitcnt   smallint,   { # of threads waiting on locks } 
  379.     lklist      integer,    { list of locks held        } 
  380.     lklatchp    integer,    { addr of private lock latch ** } 
  381.     owner       integer,    { addr of owner (rstcb_t *) } 
  382.     wtlist      integer,    { users waiting for this tx } 
  383.     ptlist      integer,    { list of partitions dropped    } 
  384.     nlocks      integer,    { number of locks held      } 
  385.     lkwait      smallint,   { lock wait timeout     } 
  386.     splevel     smallint,   { savepoint level       } 
  387.     isolevel    smallint,   { isolation level       } 
  388.     locktablep  integer,    { addr of table locks table **  } 
  389.     svptcnt     integer,    { number of savepoints alloc'ed } 
  390.     svuniqp     integer,    { addr of savepoint loguniqs ** } 
  391.     svposp      integer,    { addr of savepoint logpos's ** } 
  392.     longtx      smallint,   { this is long transaction  } 
  393.     nsusp       smallint,   { number of suspends for tx } 
  394.     stamp       integer,    { activity time stamp       } 
  395.     istar_coord char(128),  { istar coordinator     } 
  396.     sblock      integer,    { ptr to dynamic shm block  } 
  397.     sqlptr      integer,    { ptr to first ismalloc piece   } 
  398.         nremotes        smallint,       { # of rem thread activations   }   
  399.         begstamp        integer         { stamp at time of BEGIN WORK   }   
  400.     ); 
  401.     create unique index systxpidx  on systxptab (indx); 
  402.     create unique index systxpaddr on systxptab (address); 
  403.     revoke all on systxptab from public
  404.     grant select on systxptab to public
  405.  
  406.  
  407. { Locks } 
  408.     create table syslcktab      { Internal Use Only     } 
  409.     ( 
  410.     indx        integer,    { index into lock table     } 
  411.     address         integer,    { addr of lock structure    } 
  412.     hash        integer,    { addr of next in hash bucket   } 
  413.     same        integer,    { list of same locks        } 
  414.     wtlist          integer,    { list of waiters (rstcb *) } 
  415.     owner           integer,    { owner of lock (rtx *)     } 
  416.     list            integer,    { list of owner's locks     } 
  417.     type        smallint,   { type of lock          } 
  418.     flags           smallint,   { lock flags            } 
  419.     bsize           smallint,   { size of bytes key     } 
  420.     keynum          smallint,   { keynum of item lock       } 
  421.     rowidr          integer,    { real rowid if key lock    } 
  422.     partnum         integer,    { partnum lock is on            } 
  423.     rowidn          integer,    { key value locked      } 
  424.         dipnum          integer,        { pagenum if deleted item       } 
  425.         grtime          integer         { time lock was granted         } 
  426.     ); 
  427.     create unique index syslckidx  on syslcktab (indx); 
  428.     create unique index syslckaddr on syslcktab (address); 
  429.     revoke all on syslcktab from public
  430.     grant select on syslcktab to public
  431.  
  432. { Buffer Headers } 
  433.     create table sysbufhdr      { Internal Use Only     } 
  434.     ( 
  435.     indx        integer,    { index into buffer table   } 
  436.     address     integer,    { address of buffer structure   } 
  437.     latchp      integer,    { ptr to buffer latch       } 
  438.     bhforw      integer,    { forward pointer in hash list  } 
  439.     bhback      integer,    { backward pointer in hash list } 
  440.     blforw      integer,    { forward pointer in lru list   } 
  441.     blback      integer,    { backward pointer in lru list  } 
  442.     bflags      smallint,   { buffer flags          } 
  443.     berror      smallint,   { i/o error         } 
  444.     reusecnt    smallint,   { how often buff is reused  } 
  445.     lrunum      smallint,   { last lru this buff was on } 
  446.     pagenum     integer,    { physical page addr on disk    } 
  447.     pagemem     integer,    { ptr to page in shared memory  } 
  448.     owner       integer,    { owner with lock (rstcb *)     } 
  449.     wtlist      integer,    { list of waiters for buff lock } 
  450.     sharecnt    smallint,   { count of users sharing buff   } 
  451.     xflags      smallint    { type of lock on buffer    } 
  452.     ); 
  453.     create unique index sysbufhdridx  on sysbufhdr (indx); 
  454.     create unique index sysbufhdraddr on sysbufhdr (address); 
  455.     revoke all on sysbufhdr from public
  456.     grant select on sysbufhdr to public
  457.  
  458. { Dbspace Table } 
  459.     create table sysdbstab      { Internal Use Only     } 
  460.     ( 
  461.         address         integer,        { address of dbspace structure  } 
  462.         dbsnum          integer,        { dbspace number                } 
  463.         flags           integer,        { dbspace flags                 } 
  464.         fchunk          integer,        { first chunk in dbspace        } 
  465.         nchunks         integer,        { number of chunks in dbspace   } 
  466.         created         integer,        { date created                  } 
  467.         prtpage         integer,        { partition partition starts at } 
  468.         partp           integer,        { ptr to partp in partition tab } 
  469.         bpagesize       integer,        { BLOB page size                } 
  470.         bcolcnt         integer,        { number of blob columns ref    } 
  471.         level0          integer,        { time of last level 0 archive  } 
  472.         stamp0          integer,        { timestamp last level 0 archive} 
  473.         logid0          integer,        { logid for last level 0 archive} 
  474.         logpos0         integer,        { log pos last level 0 archive  } 
  475.         level1          integer,        { time of last level 1 archive  } 
  476.         stamp1          integer,        { timestamp last level 1 archive} 
  477.         logid1          integer,        { logid for last level 1 archive} 
  478.         logpos1         integer,        { log pos last level 1 archive  } 
  479.         level2          integer,        { time of last level 2 archive  } 
  480.         stamp2          integer,        { timestamp last level 2 archive} 
  481.         logid2          integer,        { logid for last level 2 archive} 
  482.         logpos2         integer,        { log pos last level 2 archive  } 
  483.         logid           integer,        { log id (for logical restore)  } 
  484.         logpos          integer,        { log pos (for logical restore) } 
  485.         oldlogid        integer,        { oldest log id (for log resto) } 
  486.         lastlogid       integer,        { last log id (for log resto)   } 
  487.         rest_time       integer,        { time of last physical restore } 
  488.         arc_pit         integer,        { PIT to terminate log replay   } 
  489.         name            char(128),      { dbspace name                  } 
  490.         owner           char(32)        { dbspace owner                 } 
  491.     ); 
  492.     create unique index sysdbstab_dbsnum on sysdbstab (dbsnum); 
  493.     revoke all on sysdbstab from public
  494.     grant select on sysdbstab to public
  495.  
  496. { Chunk Table } 
  497.     create table syschktab      { Internal Use Only     } 
  498.     ( 
  499.     address     integer,    { address of chunk structure    } 
  500.     chknum      smallint,   { chunk number          } 
  501.     nxchunk     smallint,   { number of next chunk in dbsp  } 
  502.     offset      integer,    { pages offset into device  } 
  503.     chksize     integer,    { pages in chunk        } 
  504.     nfree       integer,    { free pages in chunk       } 
  505.     mdsize      integer,    { metadata pages in chunk   } 
  506.     udsize      integer,    { user data pages in chunk  } 
  507.     udfree      integer,    { free user data pages in chunk } 
  508.     dbsnum      smallint,   { dbspace number        } 
  509.     overhead    smallint,   { blob freemap overhead     } 
  510.     flags       smallint,   { chunk flags           } 
  511.     namlen      smallint,   { length of device pathname } 
  512.     fname       char(256),  { device pathname       } 
  513.     reads       integer,    { number of read ops        } 
  514.     writes      integer,    { number of write ops       } 
  515.     pagesread   integer,    { number of pages read      } 
  516.     pageswritten    integer,    { number of pages written   } 
  517.     readtime    float,      { time spent reading (usecs)    } 
  518.     writetime   float       { time spent writing (usecs)    } 
  519.     ); 
  520.     create unique index syschktab_chknum on syschktab (chknum); 
  521.     revoke all on syschktab from public
  522.     grant select on syschktab to public
  523.  
  524. { Mirror Chunk Table } 
  525.     create table sysmchktab     { Internal Use Only     } 
  526.     ( 
  527.     address     integer,    { address of chunk structure    } 
  528.     chknum      smallint,   { chunk number          } 
  529.     nxchunk     smallint,   { number of next chunk in dbsp  } 
  530.     offset      integer,    { pages offset into device  } 
  531.     chksize     integer,    { pages in chunk        } 
  532.     nfree       integer,    { free pages in chunk       } 
  533.     mdsize      integer,    { metadata pages in chunk   } 
  534.     udsize      integer,    { user data pages in chunk  } 
  535.     udfree      integer,    { free user data pages in chunk } 
  536.     dbsnum      smallint,   { dbspace number        } 
  537.     overhead    smallint,   { blob freemap overhead     } 
  538.     flags       smallint,   { chunk flags           } 
  539.     namlen      smallint,   { length of device pathname } 
  540.     fname       char(256),  { device pathname       } 
  541.     reads       integer,    { number of read ops        } 
  542.     writes      integer,    { number of write ops       } 
  543.     pagesread   integer,    { number of pages read      } 
  544.     pageswritten    integer,    { number of pages written   } 
  545.     readtime    float,      { time spent reading (usecs)    } 
  546.     writetime   float       { time spent writing (usecs)    } 
  547.     ); 
  548.     create unique index sysmchktab_chknum on sysmchktab (chknum); 
  549.     revoke all on sysmchktab from public
  550.     grant select on sysmchktab to public
  551.  
  552. { Log file info } 
  553.     create table syslogfil      { Internal Use Only     } 
  554.     ( 
  555.     indx        integer,    { index into log table      } 
  556.     address     integer,    { address of logfile structure  } 
  557.     number      smallint,   { logfile number        } 
  558.     flags       smallint,   { logfile flags         } 
  559.     fillstamp   integer,    { stamp when last filled    } 
  560.     filltime    integer,    { time when last filled     } 
  561.     uniqid      integer,    { logfile uniqid        } 
  562.     physloc     integer,    { physical address of start } 
  563.     size        integer,    { pages in logfile      } 
  564.     used        integer     { pages used in logfile     } 
  565.     ); 
  566.     create unique index syslogfilidx on syslogfil (indx); 
  567.     create unique index syslogfiladdr on syslogfil (address); 
  568.     revoke all on syslogfil from public
  569.     grant select on syslogfil to public
  570.  
  571. { Btclean Request info } 
  572.     create table sysbtcreq      { Internal Use Only     } 
  573.     ( 
  574.     indx        integer,    { index into btcreq table   } 
  575.     address     integer,    { address of btclean structure  } 
  576.     hash        integer,    { next in hash list     } 
  577.     next        integer,    { next in busy/free list    } 
  578.     partnum     integer,    { partnum of request        } 
  579.     pagenum     integer,    { pagenum of request        } 
  580.     keynum      smallint,   { keynum of request     } 
  581.     putcnt      smallint    { count of puts for this req    } 
  582.     ); 
  583.     create unique index sysbtcreqidx on sysbtcreq (indx); 
  584.     revoke all on sysbtcreq from public
  585.     grant select on sysbtcreq to public
  586.  
  587. { Trace buffer } 
  588.     create table systraces      { Internal Use Only     } 
  589.     ( 
  590.     type        char(8),    { event type            } 
  591.     file        char(14),   { source file trace is from } 
  592.     lineno      integer,    { line # in source file     } 
  593.     stamp       integer,    { stamp when traced     } 
  594.     time        integer,    { time when traced      } 
  595.     userp       integer,    { user who traced (rstcb *) } 
  596.     trans       integer,    { tx who traced (rtx *)     } 
  597.     data1       integer,    { data value 1          } 
  598.     data2       integer,    { data value 2          } 
  599.     data3       integer,    { data value 3          } 
  600.     data4       integer,    { data value 4          } 
  601.     data5       integer     { data value 5          } 
  602.     ); 
  603.     create index systrac_stampidx on systraces (stamp); 
  604.     revoke all on systraces from public
  605.     grant select on systraces to public
  606.  
  607. Open Partition Table } 
  608.     create table sysptntab      { Internal Use Only     } 
  609.     ( 
  610.     address     integer,    { address of partition structure} 
  611.     condp       integer,    { ptr to condition struct   } 
  612.     latchp      integer,    { ptr to latch struct **    } 
  613.     flags       smallint,   { partition flags       } 
  614.     ucount      smallint,   { usage count           } 
  615.     partnum     integer,    { partition number      } 
  616.     tablock     integer,    { table lock id         } 
  617.     physaddr    integer,    { physical addr of partition pg } 
  618.     lastrowszp  integer,    { size of last alloc'ed row } 
  619.     lastrowpnp  integer,    { last page alloc'ed for row    } 
  620.     lastidxpn   integer,    { last page alloc'ed for index  } 
  621.     extnsp      integer,    { extent list address       } 
  622.     badkeys     integer,    { badkey bitmap         } 
  623.     ptlist      integer,    { next in list of dropped tables } 
  624.     altstmp     integer,    { time stamp of last alter  } 
  625.     ocount      smallint,   { open count            } 
  626.     skstamp     integer,    { stamp of last table update    } 
  627.     glscollname char(32),   { GLS collation name        } 
  628.     localep     integer,    { locale pointer        } 
  629.     pf_rqlock   integer,    { lock requests         } 
  630.     pf_wtlock   integer,    { lock waits            } 
  631.     pf_deadlk   integer,    { deadlocks             } 
  632.     pf_lktouts  integer,    { lock timeouts         } 
  633.         pf_dskreads     integer,        { disk reads                    } 
  634.     pf_isread   integer,    { reads             } 
  635.         pf_dskwrites    integer,        { disk writes                   } 
  636.     pf_iswrite  integer,    { writes            } 
  637.     pf_isrwrite integer,    { rewrites          } 
  638.     pf_isdelete integer,    { deletes           } 
  639.     pf_bfcread  integer,    { buffer reads          } 
  640.     pf_bfcwrite integer,    { buffer writes         } 
  641.     pf_seqscans integer     { sequential scans      } 
  642.     ); 
  643.     create unique index sysptntab_pnix on sysptntab (partnum); 
  644.     revoke all on sysptntab from public
  645.     grant select on sysptntab to public
  646.  
  647. { Shared Memory } 
  648.     create table sysshmem       { Internal Use Only     } 
  649.     ( 
  650.     address     integer,    { address in shmem to dump  } 
  651.     loc     char(10),   { location representation   } 
  652.     hexdata     char(40),   { 16 bytes hexdumped from addr  } 
  653.     ascdata     char(16)    { 16 bytes ascii-dumped         } 
  654.     ); 
  655.     create unique index sysshmemidx on sysshmem (address); 
  656.     revoke all on sysshmem from public
  657.  
  658. { Shared Memory Header } 
  659.     create table sysshmhdr      { Internal Use Only     } 
  660.     ( 
  661.     number      integer,    { unique identifier for element } 
  662.     name        char(16),   { name of rhead_t element   } 
  663.     value       integer     { value of rhead_t element  } 
  664.     ); 
  665.     create unique index sysshmhdr_numix on sysshmhdr(number); 
  666.     revoke all on sysshmhdr from public
  667.     grant select on sysshmhdr to public
  668.  
  669. { Configuartion parameters } 
  670.     create table syscfgtab 
  671.     ( 
  672.     cf_id       integer,    { unique numeric identifier } 
  673.     cf_name     char(128),  { config parameter name     } 
  674.     cf_flags    integer,    { flags             } 
  675.     cf_original char(256),  { value in ONCONFIG at boottime } 
  676.     cf_effective    char(256),  { value effectively in use  } 
  677.     cf_default  char(256)   { value by default      } 
  678.     ); 
  679.     create unique index syscfgtabix1 on syscfgtab(cf_id); 
  680.     revoke all on syscfgtab from public
  681.     grant select on syscfgtab to public
  682.  
  683. { Session control blocks } 
  684.     create table sysscblst      { Internal Use Only     } 
  685.     ( 
  686.     sid     integer,    { session id            } 
  687.     address     integer,    { address of session structure  } 
  688.     currheap    integer,    { ptr to memory heap        } 
  689.     poolp       integer,    { ptr to private session pool   } 
  690.     breakflag   integer,    { stop current processing   } 
  691.     urgent      integer,    { message from tbmode       } 
  692.     killflag    integer,    { stop all processing       } 
  693.     neterrno    integer,    { network error number      } 
  694.     flags       integer,    { session flags         } 
  695.     local       smallint,   { user is local if set      } 
  696.     tlatchp     integer,    { latch protecting thread list  } 
  697.     threadlist  integer,    { ptr to first thread in list   } 
  698.     next        integer,    { next session in list      } 
  699.     uid     smallint,   { user id           } 
  700.     username    char(32),   { user name         } 
  701.     gid     smallint,   { primary group id      } 
  702.     nsuppgids   integer,    { number of supplementary gids  } 
  703.     suppgidsp   integer,    { ptr to suppl'ry gids table    } 
  704.     clienttype  integer,    { client type           } 
  705.     pid     integer,    { process id of fe program  } 
  706.     progname    char(16),   { fe program name       } 
  707.     ttyin       char(16),   { tty name for users stdin  } 
  708.     ttyout      char(16),   { tty name for users stdout } 
  709.     ttyerr      char(16),   { tty name for users stderr } 
  710.     cwd     char(32),   { users cwd         } 
  711.     hostname    char(16),   { users host name       } 
  712.     connected   integer,    { time that user connected  } 
  713.     argc        integer,    { count of args sent        } 
  714.     argvp       integer,    { ptr to arg table      } 
  715.     envvarp     integer,    { ptr to env var table      } 
  716.     numenvvars  integer,    { number of env vars        } 
  717.     sizeenvtab  integer,    { size of env var table     } 
  718.     sqscb       integer,    { ptr to sql control block  } 
  719.     netscb      integer,    { ptr to net control block  } 
  720.     class       integer     { VP class          } 
  721.     ); 
  722.     create unique index sysscblst_sidix on sysscblst(sid DESC); 
  723.     revoke all on sysscblst from public
  724.     grant select on sysscblst to public
  725.  
  726. { Thread control blocks } 
  727.     create table systcblst      { Internal Use Only     } 
  728.     ( 
  729.     tid     integer,    { thread id         } 
  730.     address     integer,    { address of thread structure   } 
  731.     stackp      integer,    { ptr to threads stack      } 
  732.     tnext       integer,    { next thread in global list    } 
  733.     tprev       integer,    { prev thread in global list    } 
  734.     lock        integer,    { thread struct protection  } 
  735.     next        integer,    { next thread in special list   } 
  736.     prev        integer,    { prev thread in special list   } 
  737.     joinlist    integer,    { head of joined threads list   } 
  738.     joinnext    integer,    { next in joined threads list   } 
  739.     joinee      integer,    { thread this thread joined } 
  740.     joinresult  integer,    { result of join        } 
  741.     initialroutine  integer,    { initial thread procedure  } 
  742.     initialarg  integer,    { initial arg           } 
  743.     name        char(12),   { thread name           } 
  744.     self        integer,    { this thread's address     } 
  745.     state       integer,    { thread state          } 
  746.     flags       integer,    { flags             } 
  747.     wait_time   integer,    { wait time accumulator     } 
  748.     detach      integer,    { thread detach mode        } 
  749.     priority    integer,    { thread priority       } 
  750.     class       integer,    { user defined thread class     } 
  751.     vpid        integer,    { vpid where thread is running  } 
  752.     bind_vp     integer,    { vp on which thread must run   } 
  753.     bind_priv   integer,    { thread has been bound     } 
  754.     private_data    integer,    { ptr to private data       } 
  755.     wtmutexp    integer,    { ptr to mutex waiting on   } 
  756.     wtcondp     integer,    { ptr to condition waiting on   } 
  757.     sleep_time  integer,    { seconds slept + start time    } 
  758.     start_wait  integer,    { sleep start time      } 
  759.     pcount      integer,    { number of valid p elements    } 
  760.     padrp       integer,    { ptr to padr table     } 
  761.     pvalp       integer,    { ptr to pval table     } 
  762.     run_time    integer,    { total time thread has run } 
  763.     wakeup_count    integer,    { number of stacked wakeups } 
  764.     tstatp      integer,    { ptr to thread TSTAT_T struct  } 
  765.     wstatp      integer     { ptr to thread WSTAT_T struct  } 
  766.     ); 
  767.     create unique index systcblst_tidix on systcblst(tid); 
  768.     revoke all on systcblst from public
  769.     grant select on systcblst to public
  770.  
  771. { VP info } 
  772.     create table sysvplst       { Internal Use Only     } 
  773.     ( 
  774.     vpid        integer,    { VP id             } 
  775.     address     integer,    { address of VP struct      } 
  776.     pid     integer,    { unix process id       } 
  777.     usecs_user  float,      { number of usecs of user time  } 
  778.     usecs_sys   float,      { number of usecs of system time
  779.     scputimep   integer,    { ptr to saved cputime (tms)    } 
  780.     rcputimep   integer,    { ptr to reset cputime (tms)    } 
  781.     class       integer,    { class of VP           } 
  782.     readyqueue  integer,    { ptr to ready queue tab (TCB_Q)} 
  783.     num_ready   integer,    { number of ready threads   } 
  784.     flags       integer,    { VP flags          } 
  785.     next        integer,    { next in idle list     } 
  786.     prev        integer,    { prev in idle list     } 
  787.     semid       integer,    { semid for this VP     } 
  788.     lock        integer     { VP protection         } 
  789.     ); 
  790.     create unique index sysvplst_vpidix on sysvplst(vpid); 
  791.     revoke all on sysvplst from public
  792.     grant select on sysvplst to public
  793.  
  794. { Data Replication control block } 
  795.     create table sysdrcb        { Internal Use Only     } 
  796.     ( 
  797.     address     integer,    { address of drcb structure } 
  798.     version     integer,    { drcb version          } 
  799.     lock        integer,    { drcb lock         } 
  800.     type        integer,    { drcb server type      } 
  801.     name        char(128),  { drcb server name;128=IDENTSIZE} 
  802.     intvl       integer,    { dr buffer flush interval  } 
  803.     timeout     integer,    { dr network timeout        } 
  804.     drauto      integer,    { dr auto           } 
  805.     lostfound   char(256),  { dr lost+found pathname    } 
  806.     state       integer,    { dr server state       } 
  807.     failrecvr   integer,    { dr failure recovery flags } 
  808.     pingtime    integer,    { dr last ping time     } 
  809.     sessiontid  integer,    { dr session thread     } 
  810.     pingtid     integer,    { dr ping thread        } 
  811.     applytid    integer,    { dr apply thread       } 
  812.     recvrtid    integer,    { logcial recovery thread   } 
  813.     scb     integer,    { dr scb            } 
  814.     client_type integer,    { dr client type        } 
  815.     no_kill     integer,    { dr no_kill flag       } 
  816.     no_clients  integer,    { dr no_clients flag        } 
  817.     lgr_scb     integer,    { logcical recovery scb     } 
  818.     lgr_rstcb   integer,    { logcical recovery rstcb   } 
  819.     lgr_bufsize integer,    { logical recovery buffer size  } 
  820.     lgr_numbufs integer,    { number logcial recovery buffers} 
  821.     ckptaddr    integer,    { dr last ckpt address      } 
  822.     cpflag      integer,    { dr cpflag         } 
  823.     bufflag     integer,    { dr bufflag            } 
  824.     lg_offs     integer,    { dr lg_offs            } 
  825.     ll      integer,    { dr logical log info       } 
  826.     bufcur      integer,    { dr current buffer     } 
  827.     bqempty     integer,    { dr empty q            } 
  828.     bqfull      integer     { dr full q         } 
  829.     ); 
  830.     revoke all on sysdrcb from public
  831.     grant select on sysdrcb to public
  832.  
  833. { CDR queued info table } 
  834.     create table syscdrq              { Internal Use Only } 
  835.     ( 
  836.     srvid           integer,        { CDR server id } 
  837.     repid           integer,        { CDR replicate id } 
  838.     srcid           integer,        { CDR source server id } 
  839.     srvname         char(128),      { target server name } 
  840.     replname    char(128),  { collection or replicate name } 
  841.     srcname     char(128),  { source server name } 
  842.     bytesqued       integer     { number of bytes queued } 
  843.     ); 
  844.  
  845.     create unique index syscdrq_idx on syscdrq(srvid,repid,srcid); 
  846.     revoke all on syscdrq from public
  847.     grant select on syscdrq to public
  848.  
  849. { CDR trans. processed info table } 
  850.     create table syscdrtx             { Internal Use Only } 
  851.     ( 
  852.     srvid       integer,    { CDR server id } 
  853.     srvname     char(128),  { target server name } 
  854.     txprocssd   integer,    { number of trans. processed } 
  855.     txcmmtd     integer,    { number of trans. committed } 
  856.     txabrtd     integer,    { number of trans. aborted } 
  857.     rowscmmtd   integer,    { number of rows committed } 
  858.     rowsabrtd   integer,    { number of rows aborted } 
  859.     txbadcnt    integer     { number of trans. bad commit time } 
  860.     ); 
  861.  
  862.     create unique index syscdrtx_idx on syscdrtx(srvid); 
  863.     revoke all on syscdrtx from public
  864.     grant select on syscdrtx to public
  865.  
  866. { CDR server } 
  867.     create table syscdrs              { Internal Use Only } 
  868.     ( 
  869.     servid          integer,        { server id } 
  870.     servname        char(128),      { server name } 
  871.     cnnstate        char(1),        { connection state } 
  872.     cnnstatechg     integer,        { time connection status changed } 
  873.     servstate       char(1),        { server state } 
  874.     ishub           char(1),        { hub flag } 
  875.     isleaf          char(1),        { leaf flag } 
  876.     rootserverid    integer,        { root server id } 
  877.     forwardnodeid   integer,        { forward node server id } 
  878.     timeout         integer         { idle connection timeout } 
  879.     ); 
  880.  
  881.     create unique index syscdrs_idx on syscdrs(servid); 
  882.     revoke all on syscdrs from public
  883.     grant select on syscdrs to public
  884.  
  885. { CDR in memory send progress table } 
  886.     create table syscdrprog     { Internal Use Only } 
  887.     ( 
  888.     dest_id     integer
  889.     group_id    integer
  890.     source_id   integer
  891.     key_acked_srv   integer
  892.     key_acked_lgid  integer
  893.     key_acked_lgpos integer
  894.     key_acked_seq   integer
  895.     tx_stamp_1  integer
  896.     tx_stamp_2  integer 
  897.     ); 
  898.     create unique index syscdrprog_idx 
  899.      on syscdrprog(dest_id, group_id, source_id); 
  900.     revoke all on syscdrprog from public
  901.  
  902. { CDR in memory queues } 
  903.     create table syscdrsend_txn     { Internal Use Only } 
  904.     ( 
  905.     ctkeyserverid   integer
  906.     ctkeyid     integer
  907.     ctkeypos    integer,  
  908.     ctkeysequence   integer
  909.     ctstamp1    integer
  910.     ctstamp2    integer
  911.     ctcommittime    integer
  912.     ctuserid    integer
  913.     ctfromid    integer  
  914.     ); 
  915.     create unique index syscdrsend_tidx on syscdrsend_txn(ctstamp1,ctstamp2); 
  916.     revoke all on syscdrsend_txn from public
  917.  
  918.     create table syscdrack_txn      { Internal Use Only } 
  919.     ( 
  920.     ctkeyserverid   integer
  921.     ctkeyid     integer
  922.     ctkeypos    integer,  
  923.     ctkeysequence   integer
  924.     ctstamp1    integer
  925.     ctstamp2    integer
  926.     ctcommittime    integer
  927.     ctuserid    integer
  928.     ctfromid    integer  
  929.     ); 
  930.     create unique index syscdrack_tidx  on syscdrack_txn(ctstamp1,ctstamp2); 
  931.     revoke all on syscdrack_txn from public
  932.  
  933.     create table syscdrctrl_txn     { Internal Use Only } 
  934.     ( 
  935.     ctkeyserverid   integer
  936.     ctkeyid     integer
  937.     ctkeypos    integer,  
  938.     ctkeysequence   integer
  939.     ctstamp1    integer
  940.     ctstamp2    integer
  941.     ctcommittime    integer
  942.     ctuserid    integer
  943.     ctfromid    integer  
  944.     ); 
  945.     create unique index syscdrctrl_tidx on syscdrctrl_txn(ctstamp1,ctstamp2); 
  946.     revoke all on syscdrctrl_txn from public
  947.  
  948.     create table syscdrsync_txn     { Internal Use Only } 
  949.     ( 
  950.     ctkeyserverid   integer
  951.     ctkeyid     integer
  952.     ctkeypos    integer,  
  953.     ctkeysequence   integer
  954.     ctstamp1    integer
  955.     ctstamp2    integer
  956.     ctcommittime    integer
  957.     ctuserid    integer
  958.     ctfromid    integer  
  959.     ); 
  960.     create unique index syscdrsync_tidx on syscdrsync_txn(ctstamp1,ctstamp2); 
  961.     revoke all on syscdrsync_txn from public
  962.  
  963.     create table syscdrrecv_txn     { Internal Use Only } 
  964.     ( 
  965.     ctkeyserverid   integer
  966.     ctkeyid     integer
  967.     ctkeypos    integer,  
  968.     ctkeysequence   integer
  969.     ctstamp1    integer
  970.     ctstamp2    integer
  971.     ctcommittime    integer
  972.     ctuserid    integer
  973.     ctfromid    integer  
  974.     ); 
  975.     create unique index syscdrsrecv_tidx on syscdrrecv_txn(ctstamp1,ctstamp2); 
  976.     revoke all on syscdrrecv_txn from public
  977.  
  978.     create table syscdrsend_buf     { Internal Use Only } 
  979.     ( 
  980.     cbflags     integer
  981.     cbsize      integer
  982.     cbkeyserverid   integer
  983.     cbkeyid     integer
  984.     cbkeypos    integer,  
  985.     cbkeysequence   integer
  986.     cbgroupid   integer
  987.     cbcommittime    integer 
  988.     ); 
  989.     create unique index syscdrsend_bidx 
  990.     on syscdrsend_buf(cbkeyserverid, cbkeyid, cbkeypos, cbkeysequence); 
  991.     revoke all on syscdrsend_buf from public
  992.  
  993.     create table syscdrack_buf      { Internal Use Only } 
  994.     ( 
  995.     cbflags     integer
  996.     cbsize      integer
  997.     cbkeyserverid   integer
  998.     cbkeyid     integer
  999.     cbkeypos    integer,  
  1000.     cbkeysequence   integer
  1001.     cbgroupid   integer
  1002.     cbcommittime    integer 
  1003.     ); 
  1004.     create unique index syscdrack_bidx  
  1005.     on syscdrack_buf(cbkeyserverid, cbkeyid, cbkeypos, cbkeysequence); 
  1006.     revoke all on syscdrack_buf from public
  1007.  
  1008.     create table syscdrctrl_buf     { Internal Use Only } 
  1009.     ( 
  1010.     cbflags     integer
  1011.     cbsize      integer
  1012.     cbkeyserverid   integer
  1013.     cbkeyid     integer
  1014.     cbkeypos    integer,  
  1015.     cbkeysequence   integer
  1016.     cbgroupid   integer
  1017.     cbcommittime    integer 
  1018.     ); 
  1019.     create unique index syscdrctrl_bidx 
  1020.     on syscdrctrl_buf(cbkeyserverid, cbkeyid, cbkeypos, cbkeysequence); 
  1021.     revoke all on syscdrctrl_buf from public
  1022.  
  1023.     create table syscdrsync_buf     { Internal Use Only } 
  1024.     ( 
  1025.     cbflags     integer
  1026.     cbsize      integer
  1027.     cbkeyserverid   integer
  1028.     cbkeyid     integer
  1029.     cbkeypos    integer,  
  1030.     cbkeysequence   integer
  1031.     cbgroupid   integer
  1032.     cbcommittime    integer 
  1033.     ); 
  1034.     create unique index syscdrsync_bidx  
  1035.     on syscdrsync_buf(cbkeyserverid, cbkeyid, cbkeypos, cbkeysequence); 
  1036.     revoke all on syscdrsync_buf from public
  1037.  
  1038.     create table syscdrrecv_buf     { Internal Use Only } 
  1039.     ( 
  1040.     cbflags     integer
  1041.     cbsize      integer
  1042.     cbkeyserverid   integer
  1043.     cbkeyid     integer
  1044.     cbkeypos    integer,  
  1045.     cbkeysequence   integer
  1046.     cbgroupid   integer
  1047.     cbcommittime    integer 
  1048.     ); 
  1049.     create unique index syscdrrecv_bidx  
  1050.     on syscdrrecv_buf(cbkeyserverid, cbkeyid, cbkeypos, cbkeysequence); 
  1051.     revoke all on syscdrrecv_buf from public
  1052.     grant select on syscdrrecv_buf to public
  1053.  
  1054. { Physical Log } 
  1055.     create table sysplog 
  1056.     ( 
  1057.     pl_mutex    integer,    { physical log mutex        } 
  1058.     pl_b1mutex  integer,    { buf1's mutex          } 
  1059.     pl_b1condition  integer,    { buf1's condition for wait/signal } 
  1060.     pl_b1used   smallint,   { buf1's log buffer used    } 
  1061.     pl_b1copied smallint,   { buf1's log pages actually bcopied } 
  1062.     pl_b1buffer integer,    { buf1's log buffer     } 
  1063.     pl_b1wtlist integer,    { buf1's waiting for used = copied } 
  1064.     pl_b2mutex  integer,    { buf2's mutex          } 
  1065.     pl_b2condition  integer,    { buf2's condition for wait/signal } 
  1066.     pl_b2used   smallint,   { buf2's log buffer used    } 
  1067.     pl_b2copied smallint,   { buf2's log pages actually bcopied } 
  1068.     pl_b2buffer integer,    { buf2's log buffer     } 
  1069.     pl_b2wtlist integer,    { buf2's waiting for used = copied } 
  1070.     pl_curbp    integer,    { current bp            } 
  1071.     pl_otherbp  integer,    { other bp          } 
  1072.     pl_bufsize  smallint,   { log buffer size in pages  } 
  1073.     pl_stamp    integer,    { log flush timestamp       } 
  1074.     pl_physaddr integer,    { log file disk address     } 
  1075.     pl_physize  integer,    { log file size in pages    } 
  1076.     pl_phypos   integer,    { log file position in pages    } 
  1077.     pl_phyused  integer,    { log file used in pages    } 
  1078.     pl_phyarch  integer     { on-line archive position  } 
  1079.     ); 
  1080.     revoke all on sysplog from public
  1081.     grant select on sysplog to public
  1082.  
  1083. { Thread Wait Stats } 
  1084.     create table systwaits      { Internal Use Only     } 
  1085.     ( 
  1086.     tid     integer,    { thread id of these stats  } 
  1087.     starttime   integer,    { start time of current wait    } 
  1088.     startrtime  integer,    { start reset time of current   } 
  1089.     reason      integer,    { reason for current wait   } 
  1090.     wreason     smallint,   { reason for wstats     } 
  1091.     wnum        integer,    { number of waits for wreason   } 
  1092.     wcumtime    float,      { cumulative time for wreason   } 
  1093.     wmaxtime    integer     { maximum time for wreason  } 
  1094.     ); 
  1095.     create unique index systwaits_tid on systwaits(tid, wreason); 
  1096.     revoke all on systwaits from public
  1097.     grant select on systwaits to public
  1098.  
  1099. { Mutexes } 
  1100.     create table sysmtxlst      { Internal Use Only     } 
  1101.     ( 
  1102.     mtx_id      integer,    { id of this mutex      } 
  1103.     mtx_address integer,    { address of this mutex     } 
  1104.     mtx_next    integer,    { pointer to next mutex in list } 
  1105.     mtx_prev    integer,    { pointer to prev mutex in list } 
  1106.     mtx_lock    integer,    { mutex lock 0=avail, 1=held    } 
  1107.     mtx_wtlock  integer,    { protects wait list        } 
  1108.     mtx_holder  integer,    { thread holding lock       } 
  1109.     mtx_wtlist  integer,    { address of first thread on list} 
  1110.     mtx_type    smallint,   { type of mutex         } 
  1111.     mtx_flags   smallint,   { flags             } 
  1112.     mtx_lkcnt   smallint,   { count of locks by same thread } 
  1113.     mtx_name    char(12),   { name of mutex         } 
  1114.     mtx_nwaits  integer,    { number of waits on this mutex } 
  1115.     mtx_nservs  integer,    { number of services        } 
  1116.     mtx_curlen  integer,    { current length        } 
  1117.     mtx_totlen  integer,    { total queue length        } 
  1118.     mtx_maxlen  integer,    { maximum queue length      } 
  1119.     mtx_waittime    float,      { cumulative wait time (usecs)  } 
  1120.     mtx_servtime    float,      { cumulative service time (usecs)} 
  1121.     mtx_maxwait integer     { maximum wait time (usecs) } 
  1122.     ); 
  1123.     create unique index sysmtxlstix1 on sysmtxlst(mtx_id); 
  1124.     create unique index sysmtxlstix2 on sysmtxlst(mtx_address);      
  1125.     revoke all on sysmtxlst from public
  1126.     grant select on sysmtxlst to public
  1127.  
  1128. { Conditions } 
  1129.     create table sysconlst      { Internal Use Only     } 
  1130.     ( 
  1131.     con_id      integer,    { id of this condition      } 
  1132.     con_address integer,    { address of this condition     } 
  1133.     con_next    integer,    { pointer to next condition in list} 
  1134.     con_prev    integer,    { pointer to prev condition in list} 
  1135.     con_lock    integer,    { condition lock 0=avail, 1=held} 
  1136.     con_wtlist  integer,    { address of first thread on wait list} 
  1137.     con_type    integer,    { type of condition (const) } 
  1138.     con_name    char(12),   { name of condition     } 
  1139.     con_nwaits  integer,    { number of waits on this mutex } 
  1140.     con_nservs  integer,    { number of services        } 
  1141.     con_curlen  integer,    { current length        } 
  1142.     con_totlen  integer,    { total queue length        } 
  1143.     con_maxlen  integer,    { maximum queue length      } 
  1144.     con_waittime    float,      { cumulative wait time (usecs)  } 
  1145.     con_servtime    float,      { cumulative service time (usecs)} 
  1146.     con_maxwait integer     { maximum wait time (usecs) } 
  1147.     ); 
  1148.     create unique index sysconlstix1 on sysconlst(con_id); 
  1149.     create unique index sysconlstix2 on sysconlst(con_address);      
  1150.     revoke all on sysconlst from public
  1151.     grant select on sysconlst to public
  1152.  
  1153. { Pools } 
  1154.     create table syspoollst     { Internal Use Only     } 
  1155.     ( 
  1156.     po_id       smallint,   { id of this pool       } 
  1157.     po_address  integer,    { address of this pool      } 
  1158.     po_next     integer,    { pointer to next pool in list  } 
  1159.     po_prev     integer,    { pointer to prev pool in list  } 
  1160.     po_lock     integer,    { lock to synchronise       } 
  1161.     po_name     char(12),   { name of pool          } 
  1162.     po_class    smallint,   { pool class 1=resident, 2=virtual, 3=message} 
  1163.     po_flags    smallint,   { notify if forget to free  } 
  1164.     po_freeamt  integer,    { total amount in free list } 
  1165.     po_usedamt  integer,    { total amount in used list } 
  1166.     po_freelist integer,    { address of free block list    } 
  1167.     po_list     integer     { address of pools block list   } 
  1168.     ); 
  1169.     create unique index syspoollstix1 on syspoollst(po_id); 
  1170.     create unique index syspoollstix2 on syspoollst(po_address);     
  1171.     revoke all on syspoollst from public
  1172.     grant select on syspoollst to public
  1173.  
  1174. { Segments } 
  1175.     create table sysseglst      { Internal Use Only     } 
  1176.     ( 
  1177.     seg_address integer,    { address of segment structure  } 
  1178.     seg_next    integer,    { pointer to next segment   } 
  1179.     seg_prev    integer,    { pointer to prev segment   } 
  1180.     seg_class   smallint,   { segment class         } 
  1181.     seg_size    integer,    { size of this segment      } 
  1182.     seg_osshmid integer,    { id of this OS segment in this seg} 
  1183.     seg_osmaxsize   integer,    { size of maximum OS segment in this seg} 
  1184.     seg_osshmkey    integer,    { shmkey for first OS segment   } 
  1185.     seg_procid  integer,    { process id of creator     } 
  1186.     seg_userid  smallint,   { usr id of creator     } 
  1187.     seg_shmaddr integer,    { address of segment        } 
  1188.     seg_ovhd    integer,    { amount of overhead bytes  } 
  1189.     seg_lock    integer,    { lock to synchronise bitmap access} 
  1190.     seg_nextid  integer,    { segment id of next seg    } 
  1191.     seg_bmapsz  integer,    { size of block bitmap      } 
  1192.     seg_blkused integer,    { noof used blocks in segment } 
  1193.     seg_blkfree integer     { noof free blocks in segment } 
  1194.     ); 
  1195.     revoke all on sysseglst from public
  1196.     grant select on sysseglst to public
  1197.  
  1198. { Dictionary Hash } 
  1199.     create table sysdic         { Internal Use Only     } 
  1200.     ( 
  1201.     dic_hashno  smallint,   { hash-value            } 
  1202.     dic_chainno     smallint,   { position in hash chain    } 
  1203.     dic_partnum     integer,    { partition number      } 
  1204.     dic_fextsize    integer,    { first extent size         } 
  1205.     dic_nextsize    integer,    { next extent size      } 
  1206.     dic_locklevel   smallint,   { lock level            } 
  1207.     dic_flags   integer,    { table flags           } 
  1208.     dic_ps      integer,    { table permissions     } 
  1209.     dic_heapptr     integer,    { struct heap *DD memory heap   } 
  1210.     dic_altcount    smallint,   { alt count             } 
  1211.     dic_ncols   smallint,   { number of columns         } 
  1212.     dic_rowsize     smallint,   { row size in bytes         } 
  1213.     dic_nindexes    smallint,   { number of indexes         } 
  1214.     dic_type    char(1),    { table type            } 
  1215.     dic_nrows   integer,    { number of rows        } 
  1216.     dic_npused  integer,    { # pages in table      } 
  1217.     dic_tabid   integer,    { dictionary table id       } 
  1218.     dic_majversion  integer,    { table major version number    } 
  1219.     dic_minversion  integer,    { table minor version number    } 
  1220.     dic_refcount    integer,    { # of references to this entry } 
  1221.     dic_servername  char(128),  { like ddt_servername       } 
  1222.     dic_dbname  char(128),  { like ddt_dbname       } 
  1223.     dic_ownername   char(32),   { like ddt_owner        } 
  1224.     dic_tabname     char(128)   { like ddt_name         } 
  1225.     ); 
  1226.     create unique index sysdicidx on sysdic(dic_hashno, dic_chainno); 
  1227.     revoke all on sysdic from public
  1228.     grant select on sysdic to public
  1229.  
  1230. { Distribution Hash } 
  1231.     create table sysdsc         { Internal Use Only         } 
  1232.     ( 
  1233.     dis_hashno  integer,    { hash values of name       } 
  1234.     dis_chainno     smallint,   { position in chain         } 
  1235.     dis_id      integer,    { id - other than name      } 
  1236.     dis_refcnt  integer,    { number of users using entry   } 
  1237.     dis_delete  integer,    { marked for delete         } 
  1238.     dis_heapptr     integer,    { heap for entry        } 
  1239.     dis_heapsz  integer,    { soze of heap          } 
  1240.     dis_servername  char(128),  { get  ce_name.fn_servername    } 
  1241.     dis_dbname  char(128),  { get  ce_name.fn_dbname    } 
  1242.     dis_ownername   char(32),   { get  ce_name.fn_ownername     } 
  1243.     dis_name    char(257)   { get  ce_name.fn_name      } 
  1244.     ); 
  1245.     create unique index sysdscidx on sysdsc(dis_hashno, dis_chainno); 
  1246.     revoke all on sysdsc from public
  1247.     grant select on sysdsc to public
  1248.  
  1249. Procedure Hash } 
  1250.     create table sysprc         { Internal Use Only         } 
  1251.     ( 
  1252.     prc_hashno  integer,    { hash values of name       } 
  1253.     prc_chainno     smallint,   { position in chain         } 
  1254.     prc_id      integer,    { id - other than name      } 
  1255.     prc_refcnt  integer,    { number of users using entry   } 
  1256.     prc_delete  integer,    { marked for delete         } 
  1257.     prc_heapptr     integer,    { heap for entry        } 
  1258.     prc_heapsz  integer,    { soze of heap          } 
  1259.     prc_servername  char(128),  { get  ce_name.fn_servername    } 
  1260.     prc_dbname  char(128),  { get  ce_name.fn_dbname    } 
  1261.     prc_ownername   char(32),   { get  ce_name.fn_ownername     } 
  1262.     prc_name    char(257)   { get  ce_name.fn_name      } 
  1263.     ); 
  1264.     create unique index sysprcidx on sysprc(prc_hashno, prc_chainno); 
  1265.     revoke all on sysprc from public
  1266.     grant select on sysprc to public
  1267.  
  1268. { Sqscb } 
  1269.     create table syssqscb       { Internal Use Only         } 
  1270.     ( 
  1271.     scb_sessionid   integer,    { session id            } 
  1272.     scb_address integer,    { self address          } 
  1273.     scb_feversion   char(4),    { see sqscb.fevers      } 
  1274.     scb_lockmode    smallint,   { -1: wait, 0: not wait, else: # sec } 
  1275.                     { see sqscb.waitflag and sqscb.waitsec } 
  1276.     scb_sqerrno smallint,   { see sqtcb.sqerrno         } 
  1277.     scb_iserrno smallint    { see sqtcb.sqiserrno       } 
  1278.     ); 
  1279.     create unique index syssqscbidx on syssqscb ( scb_sessionid DESC ); 
  1280.     revoke all on syssqscb from public
  1281.     grant select on syssqscb to public
  1282.  
  1283. { Sdblock } 
  1284.     create table syssdblock             { Internal Use Only             } 
  1285.     ( 
  1286.     sdb_sessionid       integer,    { session id                        } 
  1287.     sdb_sdbno       integer,    { position in array             } 
  1288.     sdb_iscurrent       char(1),    { current statement?            } 
  1289.     sdb_name        char(128),  { front-end's name for statement    } 
  1290.     sdb_id          smallint,   { back-end's id for statement       } 
  1291.     sdb_flags       integer,    { defined below             } 
  1292.     sdb_executions      integer,    { total # of executions         } 
  1293.     sdb_cumtime     float,      { total cumulative execution time   } 
  1294.     sdb_bufreads        integer,    { total # of buffers read       } 
  1295.     sdb_pagereads       integer,    { total # of pages read from disk   } 
  1296.     sdb_bufwrites       integer,    { total # of buffers written        } 
  1297.     sdb_pagewrites      integer,    { total # of pages written      } 
  1298.     sdb_totsorts        integer,    { total # of sorts performed        } 
  1299.     sdb_dsksorts        integer,    { total # of sorts requiring disk io    } 
  1300.     sdb_sortspmax       integer,    { max disk space required by a sort     } 
  1301.     sdb_cb          integer,    { conblock for statement        } 
  1302.     sdb_cblist      integer,    { list of all cb's in statement     } 
  1303.     sdb_heap        integer,    { memory heap for this statement    } 
  1304.     sdb_partnum         integer,    { part num for temp blob table      } 
  1305.     sdb_isfd        smallint,   { file descriptor for the table     } 
  1306.     sdb_recnum      integer,    { row for blob descriptors      } 
  1307.     sdb_sqerrno         smallint,   { for fetching, if rows need to be  } 
  1308.     sdb_sqiserrno       smallint,   { returned to the user first, but   } 
  1309.     sdb_sqoffset        smallint,   { need to set the error in the next     } 
  1310.     sdb_errstr      char(64),   { fetch statement           } 
  1311.     sdb_ntables         integer,    { number of table descriptors       } 
  1312.     sdb_sqttab      integer,    { thread specific tab info      } 
  1313.     sdb_asynch_sqerrno  integer,    { error reported by asynch thread   } 
  1314.     sdb_asynch_sqiserr  integer,    { error reported by asynch thread   } 
  1315.     sdb_pool        integer,    { statement memory pool         } 
  1316.     sdb_mutex       integer,    { misc lock (to check sd_sqerrno)   } 
  1317.     sdb_tgcblist        integer,    { list of cbs to be use to build    } 
  1318.     sdb_pdq_prio_req    smallint,   { requested priority            } 
  1319.     sdb_pdq_priority    smallint,   { currently allowed pdq_priority    } 
  1320.     sdb_max_scans       integer     { currently allowd # scans      } 
  1321.     ); 
  1322.     create unique index syssdblockidx on syssdblock (sdb_sessionid DESC, sdb_sdbno); 
  1323.     revoke all on syssdblock from public
  1324.     grant select on syssdblock to public
  1325.  
  1326. { Conblock } 
  1327.     create table sysconblock        { Internal Use Only         } 
  1328.     ( 
  1329.     cbl_sessionid   integer,    { session id                    } 
  1330.     cbl_sdbno   integer,    { position in sdblock array     } 
  1331.     cbl_conbno  smallint,   { position in conblock list     } 
  1332.     cbl_ismainblock char(1),    { main block for statement?     } 
  1333.     cbl_selflag smallint,   { see cb_selflag (SQ_*)     } 
  1334.     cbl_estcost integer,    { see cb_estcost        } 
  1335.     cbl_estrows integer,    { see cb_estsize        } 
  1336.     cbl_flags   integer,    { see cb_flags          } 
  1337.     cbl_flags2  integer,    { see cb_flags2         } 
  1338.     cbl_seqscan smallint,   { # of SEQUENTIAL SCANs     } 
  1339.     cbl_srtscan smallint,   { # of SORT SCANs       } 
  1340.     cbl_autoindex   smallint,   { # of AUTOINDEX PATHs      } 
  1341.     cbl_index   smallint,   { # of INDEX PATHs      } 
  1342.     cbl_remsql  smallint,   { # of REMOTE PATHs         } 
  1343.     cbl_mrgjoin smallint,   { # of MERGE JOINs      } 
  1344.     cbl_dynhashjoin smallint,   { # of DYNAMIC HASH JOINs   } 
  1345.     cbl_keyonly smallint,   { # of (Key-Only)s      } 
  1346.     cbl_tempfile    smallint,   { # of Temporary Files      } 
  1347.     cbl_tempview    smallint,   { # of Temp Tables For View     } 
  1348.     cbl_secthreads  smallint,   { # of Secondary Threads    } 
  1349.     cbl_stmt    char(32000) { current statement         } 
  1350.     ); 
  1351.     create unique index sysconblockidx on sysconblock ( cbl_sessionid DESC, cbL_sdbno, cbl_conbno); 
  1352.     revoke all on sysconblock from public
  1353.     grant select on sysconblock to public
  1354.  
  1355. { Opendb } 
  1356.     create table sysopendb          { Internal Use Only         } 
  1357.     ( 
  1358.     odb_sessionid   integer,    { session id                    } 
  1359.     odb_odbno   integer,    { position in opendb array  } 
  1360.     odb_dbname      char(128),  { database name         } 
  1361.     odb_iscurrent   char(1),    { no==sdb_current ? 'Y' : 'N'   } 
  1362.     odb_islog   char(1),    { !logflg ? 'Y' : 'N'       } 
  1363.     odb_isansi  char(1),    { ansiflg ? 'Y' : 'N'       } 
  1364.     odb_isolation   smallint,   { isolation level see xtype     } 
  1365.     odb_usrtype     char(1),    { user type (DBA, CONNECT ..    } 
  1366.     odb_prior   smallint,   { priority          } 
  1367.     odb_tmstamp     integer,    { timestamp for last access     } 
  1368.     odb_lc_collate  char(36),   { value for LC_COLLATE      } 
  1369.     odb_dbflags     smallint    { 1 if DB_EXCLUSIVE         } 
  1370.     ); 
  1371.     create unique index sysopendbidx on sysopendb (odb_sessionid DESC, odb_odbno); 
  1372.     revoke all on sysopendb from public
  1373.     grant select on sysopendb to public
  1374.  
  1375. { SQL state and statement } 
  1376.     create table syssqlstat     { Internal Use Only             } 
  1377.     ( 
  1378.     sqs_sessionid   integer,    { session id            } 
  1379.     sqs_dbname  char(128),  { database name         } 
  1380.     sqs_iso     smallint,   { Isolation level       } 
  1381.     sqs_lockmode    smallint,   { lock mode         } 
  1382.     sqs_sqlerror    smallint,   { sql error of last SQL stmt    } 
  1383.     sqs_isamerror   smallint,   { isam error of last SQL stmt   } 
  1384.     sqs_feversion   char(4),    { FE Version            } 
  1385.     sqs_statement   char(200)   { last SQL statement        } 
  1386.     ); 
  1387.     revoke all on syssqlstat from public
  1388.     grant select on syssqlstat to public
  1389.  
  1390.  
  1391. { LRU buffers } 
  1392.     create table syslrus 
  1393.       ( 
  1394.         lru_num     int,                { Number of Lru Queue           } 
  1395.         lru_nfree   int,                { Free Buffers in Lru Queue     } 
  1396.         lru_nmod    int                 { Modified Buffers in Lru Queue } 
  1397.       ); 
  1398.     create unique index syslrusix1 on syslrus(lru_num); 
  1399.     revoke all on syslrus from public
  1400.     grant select on syslrus to public
  1401.  
  1402.   
  1403. { Shared memory values }    
  1404.     create table sysshmvals 
  1405.       ( 
  1406.          sh_mode           int,         { turbo mode number             } 
  1407.          sh_boottime       int,         { boot time of day              } 
  1408.          sh_pfclrtime      int,         { time profilers were last clr  } 
  1409.          sh_curtime        int,         { current mt_time               } 
  1410.          sh_bootstamp      int,         { boot time stamp               }  
  1411.          sh_stamp          int,         { current time stamp            } 
  1412.          sh_mainlooptcb    int,         { address of main daemon thread } 
  1413.          sh_sysflags       int,         { system operating flags        } 
  1414.          sh_maxchunks      int,         { size of chunk table           } 
  1415.          sh_maxdbspaces    int,         { size of dbspace table         } 
  1416.          sh_maxuserthreads int,         { max # of user structures      } 
  1417.          sh_maxtrans       int,         { max # of trans structures     } 
  1418.          sh_maxlocks       int,         { # of locks total              } 
  1419.          sh_maxlogs        int,         { size of log table             } 
  1420.          sh_nbuffs         int,         { # of buffers total            } 
  1421.          sh_pagesize       int,         { buffer size in bytes          } 
  1422.          sh_nlrus          int,         { # of lru queues               } 
  1423.          sh_maxdirty       int,         { LRU can have this % dirty pages } 
  1424.          sh_mindirty       int,         { LRU has % dirty pages after clean } 
  1425.          sh_ncleaners      int,         { # of cleaning/flushing procs  }  
  1426.          sh_longtx         int,         { the long transaction flag     } 
  1427.          sh_optstgbsnum    int,         { Subsystem Staging Blobspace   } 
  1428.          sh_cpflag         int,         { TRUE => doing checkpoint      } 
  1429.          sh_rapages        int,         { Number of pages to read ahead } 
  1430.          sh_rathreshold    int,         { When to start next read ahead } 
  1431.          sh_lastlogfreed   int,         { last log (id) written to tape } 
  1432.          sh_rmdlktout      int,         { max timeout when distributed  } 
  1433.          sh_narchivers     int,         { number of active archives     } 
  1434.          sh_maxpdqpriority int );       { max pdqpriority               } 
  1435.     revoke all on sysshmvals from public
  1436.     grant select on sysshmvals to public
  1437.  
  1438.  
  1439. { C2 Audit info } 
  1440.   create table sysadtinfo       { Internal Use Only     } 
  1441.     ( 
  1442.     adtmode     integer,    { Current audit level       } 
  1443.     adterr      integer,    { Action on errors      } 
  1444.     adtsize     integer,    { Max size of audit trail } 
  1445.     adtpath     char(256),  { Dir to send audit records to  } 
  1446.     adtfile     integer     { File within dir to write to   } 
  1447.     ); 
  1448.     revoke all on sysadtinfo from public
  1449.  
  1450. { C2 Audit call } 
  1451.     create table syscrtadt      { Internal Use Only     } 
  1452.     ( 
  1453.     event       integer,    { Event to audit        } 
  1454.     result      integer,    { Success or Failure        } 
  1455.     data        char(256)   { Additional data to audit  } 
  1456.     ); 
  1457.     revoke all on syscrtadt from public
  1458.  
  1459. { get info out of catalogs and save it } 
  1460.  
  1461. select tabid from systables 
  1462. where tabname in ( 
  1463. 'sysdbspartn''systabnames',   'sysrawdsk',    'syspaghdr'
  1464. 'sysslttab',    'syssltdat',    'syschfree',    'sysptnhdr'
  1465. 'sysptnkey',    'sysptnext',    'sysptncol',    'sysptnbit'
  1466. 'sysrstcb',     'systxptab',    'syslcktab',    'sysbufhdr'
  1467. 'sysdbstab',    'syschktab',    'sysmchktab',   'syslogfil'
  1468. 'sysbtcreq',    'systraces',    'sysptntab',    'sysshmem'
  1469. 'sysshmhdr',    'sysscblst',    'systcblst',    'sysvplst'
  1470. 'systwaits',    'sysdrcb',  'sysadtinfo',   'syscrtadt'
  1471. 'sysmtxlst',    'sysconlst',    'syspoollst',   'sysseglst'
  1472. 'sysdic',   'sysprc',   'sysdsc',   'syssqscb'
  1473. 'syssdblock',   'sysconblock',  'sysopendb',    'syssqlstat'
  1474. 'syslrus',  'sysshmvals',   'sysplog',  'syscfgtab'
  1475. 'syscdrs',  'syscdrq',  'syscdrtx',     'syscdrprog'
  1476. 'syscdrsend_txn''syscdrack_txn','syscdrctrl_txn''syscdrsync_txn'
  1477. 'syscdrrecv_txn''syscdrsend_buf','syscdrack_buf''syscdrctrl_buf'
  1478. 'syscdrsync_buf''syscdrrecv_buf'
  1479. into temp temptabid with no log; 
  1480.  
  1481. select * from systables  where tabid in (select tabid from temptabid) 
  1482. into temp tempsystab with no log; 
  1483.  
  1484. select * from syscolumns where tabid in (select tabid from temptabid) 
  1485. into temp tempsyscol with no log; 
  1486.  
  1487. select * from sysindices where tabid in (select tabid from temptabid) 
  1488. into temp tempsysidx with no log; 
  1489.  
  1490. select * from systabauth where tabid in (select tabid from temptabid) 
  1491. into temp tempsysauth with no log; 
  1492.  
  1493. select * from sysobjstate where tabid in (select tabid from temptabid) 
  1494. into temp tempsysobj with no log; 
  1495.  
  1496.  
  1497. { reset partnums so internally we recognize these as pseudo tables, also 
  1498.   update nrows to clue in the optimizer } 
  1499.  
  1500. update tempsystab set (partnum,nrows) = (257,10) where tabname = 'sysdbspartn'
  1501.  
  1502. update tempsystab set (partnum,nrows) = (1,100000)  where tabname = 'sysrawdsk'
  1503. update tempsystab set (partnum,nrows) = (2,100000)  where tabname = 'syspaghdr'
  1504. update tempsystab set (partnum,nrows) = (3,1000000) where tabname = 'sysslttab'
  1505. update tempsystab set (partnum,nrows) = (4,1000000) where tabname = 'syssltdat'
  1506. update tempsystab set (partnum,nrows) = (5,100)     where tabname = 'syschfree'
  1507. update tempsystab set (partnum,nrows) = (6,100)     where tabname = 'syscfgtab'
  1508.  
  1509. update tempsystab set (partnum,nrows) = (10,1000)  where tabname = 'sysptnhdr'
  1510. update tempsystab set (partnum,nrows) = (11,1000)  where tabname = 'sysptnkey'
  1511. update tempsystab set (partnum,nrows) = (12,1000)  where tabname = 'sysptnext'
  1512. update tempsystab set (partnum,nrows) = (13,1000)  where tabname = 'sysptncol'
  1513. update tempsystab set (partnum,nrows) = (14,10000) where tabname = 'sysptnbit'
  1514. update tempsystab set (partnum,nrows) = (15,1000)  where tabname = 'systabnames'
  1515.  
  1516. update tempsystab set (partnum,nrows) = (20,100)   where tabname = 'sysptntab'
  1517. update tempsystab set (partnum,nrows) = (21,10000) where tabname = 'syslcktab'
  1518. update tempsystab set (partnum,nrows) = (22,1000)  where tabname = 'sysbufhdr'
  1519. update tempsystab set (partnum,nrows) = (23,10)    where tabname = 'sysdbstab'
  1520. update tempsystab set (partnum,nrows) = (24,10)    where tabname = 'syschktab'
  1521. update tempsystab set (partnum,nrows) = (25,10)    where tabname = 'sysmchktab'
  1522. update tempsystab set (partnum,nrows) = (26,100)   where tabname = 'sysrstcb'
  1523. update tempsystab set (partnum,nrows) = (27,100)   where tabname = 'systxptab'
  1524. update tempsystab set (partnum,nrows) = (28,10)    where tabname = 'syslogfil'
  1525. update tempsystab set (partnum,nrows) = (29,100)   where tabname = 'sysbtcreq'
  1526.  
  1527. update tempsystab set (partnum,nrows) = (30,100)   where tabname = 'sysshmem'
  1528. update tempsystab set (partnum,nrows) = (31,100)   where tabname = 'sysshmhdr'
  1529. update tempsystab set (partnum,nrows) = (32,1000)  where tabname = 'systraces'
  1530. update tempsystab set (partnum,nrows) = (33,1)     where tabname = 'sysdrcb'
  1531. update tempsystab set (partnum,nrows) = (34,100)   where tabname = 'syslrus'
  1532. update tempsystab set (partnum,nrows) = (35,1)     where tabname = 'sysplog'
  1533. update tempsystab set (partnum,nrows) = (38,1)     where tabname = 'sysshmvals'
  1534.  
  1535. update tempsystab set (partnum,nrows) = (40,100)   where tabname = 'sysscblst'
  1536. update tempsystab set (partnum,nrows) = (41,100)   where tabname = 'systcblst'
  1537. update tempsystab set (partnum,nrows) = (42,100)   where tabname = 'sysvplst'
  1538. update tempsystab set (partnum,nrows) = (43,100)   where tabname = 'systwaits'
  1539.  
  1540. update tempsystab set (partnum,nrows) = (44,100000) where tabname = 'sysmtxlst'
  1541. update tempsystab set (partnum,nrows) = (45,1000)  where tabname = 'sysconlst'
  1542. update tempsystab set (partnum,nrows) = (46,10000) where tabname = 'syspoollst'
  1543. update tempsystab set (partnum,nrows) = (47,10)    where tabname = 'sysseglst'
  1544.  
  1545. update tempsystab set (partnum,nrows) = (60,100)   where tabname = 'sysdic'
  1546. update tempsystab set (partnum,nrows) = (61,10)    where tabname = 'sysprc'
  1547. update tempsystab set (partnum,nrows) = (62,10)    where tabname = 'sysdsc'
  1548. update tempsystab set (partnum,nrows) = (63,100)   where tabname = 'syssqscb'
  1549. update tempsystab set (partnum,nrows) = (64,1000)  where tabname = 'syssdblock'
  1550. update tempsystab set (partnum,nrows) = (65,1000)  where tabname = 'sysconblock'
  1551. update tempsystab set (partnum,nrows) = (66,100)   where tabname = 'sysopendb'
  1552. update tempsystab set (partnum,nrows) = (69,100)   where tabname = 'syssqlstat'
  1553.  
  1554. update tempsystab set (partnum,nrows) = (70,100)   where tabname = 'syscdrs'
  1555. update tempsystab set (partnum,nrows) = (71,100)   where tabname = 'syscdrq'
  1556. update tempsystab set (partnum,nrows) = (72,100)   where tabname = 'syscdrtx'
  1557. update tempsystab set (partnum,nrows) = (73,100)   where tabname = 'syscdrprog'
  1558.  
  1559. update tempsystab set (partnum,nrows) = (74,100)   where tabname = 'syscdrsend_txn'
  1560. update tempsystab set (partnum,nrows) = (75,100)   where tabname = 'syscdrack_txn'
  1561. update tempsystab set (partnum,nrows) = (76,100)   where tabname = 'syscdrctrl_txn'
  1562. update tempsystab set (partnum,nrows) = (77,100)   where tabname = 'syscdrsync_txn'
  1563. update tempsystab set (partnum,nrows) = (78,100)   where tabname = 'syscdrrecv_txn'
  1564. update tempsystab set (partnum,nrows) = (79,100)   where tabname = 'syscdrsend_buf'
  1565. update tempsystab set (partnum,nrows) = (80,100)   where tabname = 'syscdrack_buf'
  1566. update tempsystab set (partnum,nrows) = (81,100)   where tabname = 'syscdrctrl_buf'
  1567. update tempsystab set (partnum,nrows) = (82,100)   where tabname = 'syscdrsync_buf'
  1568. update tempsystab set (partnum,nrows) = (83,100)   where tabname = 'syscdrrecv_buf'
  1569.  
  1570. update tempsystab set (partnum,nrows) = (1025, 1)  where tabname = 'sysadtinfo'
  1571. update tempsystab set (partnum,nrows) = (1026, 1)  where tabname = 'syscrtadt'
  1572.  
  1573. drop table sysdbspartn; 
  1574. drop table sysrawdsk; 
  1575. drop table syspaghdr; 
  1576. drop table sysslttab; 
  1577. drop table syssltdat; 
  1578. drop table syschfree; 
  1579. drop table sysptnhdr; 
  1580. drop table sysptnkey; 
  1581. drop table sysptnext; 
  1582. drop table sysptncol; 
  1583. drop table sysptnbit; 
  1584. drop table systabnames; 
  1585. drop table sysptntab; 
  1586. drop table syslcktab; 
  1587. drop table sysbufhdr; 
  1588. drop table sysdbstab; 
  1589. drop table syschktab; 
  1590. drop table sysmchktab; 
  1591. drop table sysrstcb; 
  1592. drop table systxptab; 
  1593. drop table syslogfil; 
  1594. drop table sysbtcreq; 
  1595. drop table sysshmem; 
  1596. drop table sysshmhdr; 
  1597. drop table syscfgtab; 
  1598. drop table systraces; 
  1599. drop table sysscblst; 
  1600. drop table systcblst; 
  1601. drop table sysvplst; 
  1602. drop table systwaits; 
  1603. drop table sysdrcb; 
  1604. drop table sysplog; 
  1605. drop table sysadtinfo; 
  1606. drop table syscrtadt; 
  1607. drop table sysmtxlst; 
  1608. drop table sysconlst; 
  1609. drop table syspoollst; 
  1610. drop table sysseglst; 
  1611. drop table sysdic; 
  1612. drop table sysprc; 
  1613. drop table sysdsc; 
  1614. drop table syssqscb; 
  1615. drop table syssdblock; 
  1616. drop table sysconblock; 
  1617. drop table sysopendb; 
  1618. drop table syssqlstat; 
  1619. drop table syslrus; 
  1620. drop table sysshmvals; 
  1621. drop table syscdrs; 
  1622. drop table syscdrq; 
  1623. drop table syscdrtx; 
  1624. drop table syscdrprog; 
  1625. drop table syscdrsend_txn; 
  1626. drop table syscdrack_txn; 
  1627. drop table syscdrctrl_txn; 
  1628. drop table syscdrsync_txn; 
  1629. drop table syscdrrecv_txn; 
  1630. drop table syscdrsend_buf; 
  1631. drop table syscdrack_buf; 
  1632. drop table syscdrctrl_buf; 
  1633. drop table syscdrsync_buf; 
  1634. drop table syscdrrecv_buf; 
  1635.  
  1636. { reinsert modified catalog info into catalogs } 
  1637.  
  1638. insert into systables  select * from tempsystab; 
  1639. insert into syscolumns select * from tempsyscol; 
  1640. insert into sysindices select * from tempsysidx; 
  1641. insert into systabauth select * from tempsysauth; 
  1642. insert into sysobjstate select * from tempsysobj; 
  1643.  
  1644. drop table tempsystab; 
  1645. drop table tempsyscol; 
  1646. drop table tempsysidx; 
  1647. drop table tempsysauth; 
  1648. drop table tempsysobj; 
  1649.  
  1650. create a table to associate strings wither various tables' flags/types 
  1651.   columns } 
  1652.  
  1653.     create table flags_text (tabname char(128), flags int, txt char(50)); 
  1654.     create unique index flags_text_ix1 on flags_text(tabname, flags); 
  1655.  
  1656. { Session waits reasons } 
  1657.     insert into flags_text values ('systwaits', 0, 'unspecified'); 
  1658.     insert into flags_text values ('systwaits', 1, 'buffer'); 
  1659.     insert into flags_text values ('systwaits', 2, 'lock'); 
  1660.     insert into flags_text values ('systwaits', 3, 'aio'); 
  1661.     insert into flags_text values ('systwaits', 4, 'mt yield 0'); 
  1662.     insert into flags_text values ('systwaits', 5, 'mt yield n'); 
  1663.     insert into flags_text values ('systwaits', 6, 'mt yield'); 
  1664.     insert into flags_text values ('systwaits', 7, 'checkpoint'); 
  1665.     insert into flags_text values ('systwaits', 8, 'log i/o'); 
  1666.     insert into flags_text values ('systwaits', 9, 'log copy'); 
  1667.     insert into flags_text values ('systwaits', 10, 'condition'); 
  1668.     insert into flags_text values ('systwaits', 11, 'lock mutex'); 
  1669.     insert into flags_text values ('systwaits', 12, 'lockfree mutex'); 
  1670.     insert into flags_text values ('systwaits', 13, 'deadlock mutex'); 
  1671.     insert into flags_text values ('systwaits', 14, 'lrus mutex'); 
  1672.     insert into flags_text values ('systwaits', 15, 'tblsp mutex'); 
  1673.     insert into flags_text values ('systwaits', 16, 'log mutex'); 
  1674.     insert into flags_text values ('systwaits', 17, 'ckpt mutex'); 
  1675.     insert into flags_text values ('systwaits', 18, 'mutex'); 
  1676.     insert into flags_text values ('systwaits', 19, 'mt ready'); 
  1677.     insert into flags_text values ('systwaits', 20, 'mt yield x'); 
  1678.     insert into flags_text values ('systwaits', 21, 'running'); 
  1679.  
  1680. { VP Classes } 
  1681.     insert into flags_text values ('sysvplst', 0, 'cpu'); 
  1682.     insert into flags_text values ('sysvplst', 1, 'aio'); 
  1683.     insert into flags_text values ('sysvplst', 2, 'tli'); 
  1684.     insert into flags_text values ('sysvplst', 3, 'shm'); 
  1685.     insert into flags_text values ('sysvplst', 4, 'lio'); 
  1686.     insert into flags_text values ('sysvplst', 5, 'pio'); 
  1687.     insert into flags_text values ('sysvplst', 6, 'adm'); 
  1688.     insert into flags_text values ('sysvplst', 7, 'opt'); 
  1689.     insert into flags_text values ('sysvplst', 8, 'soc'); 
  1690.     insert into flags_text values ('sysvplst', 9, 'msc'); 
  1691.     insert into flags_text values ('sysvplst', 10, 'adt'); 
  1692.     insert into flags_text values ('sysvplst', 11, 'kio'); 
  1693.     insert into flags_text values ('sysvplst', 12, 'str'); 
  1694.     insert into flags_text values ('sysvplst', 13, 'csm'); 
  1695.     insert into flags_text values ('sysvplst', 14, 'ntk'); 
  1696.  
  1697. { Lock types } 
  1698.     insert into flags_text values ('syslcktab', 0, 'NONE'); 
  1699.     insert into flags_text values ('syslcktab', 1, 'BYTE'); 
  1700.     insert into flags_text values ('syslcktab', 2, 'IS'); 
  1701.     insert into flags_text values ('syslcktab', 3, 'S'); 
  1702.     insert into flags_text values ('syslcktab', 4, 'SR'); 
  1703.     insert into flags_text values ('syslcktab', 5, 'U'); 
  1704.     insert into flags_text values ('syslcktab', 6, 'UR'); 
  1705.     insert into flags_text values ('syslcktab', 7, 'IX'); 
  1706.     insert into flags_text values ('syslcktab', 8, 'SIX'); 
  1707.     insert into flags_text values ('syslcktab', 9, 'X'); 
  1708.     insert into flags_text values ('syslcktab', 10,'XR'); 
  1709.  
  1710. { Data Replication } 
  1711.  
  1712.     insert into flags_text values ('sysdrcb', 0, 'Not Initialized'); 
  1713.     insert into flags_text values ('sysdrcb', 1, 'Standard'); 
  1714.     insert into flags_text values ('sysdrcb', 2, 'Primary'); 
  1715.     insert into flags_text values ('sysdrcb', 3, 'Secondary'); 
  1716.     insert into flags_text values ('sysdrcb', 16, 'Off'); 
  1717.     insert into flags_text values ('sysdrcb', 32, 'On'); 
  1718.     insert into flags_text values ('sysdrcb', 64, 'Connecting'); 
  1719.     insert into flags_text values ('sysdrcb', 128, 'Failed'); 
  1720.     insert into flags_text values ('sysdrcb', 288, 'Read-Only'); 
  1721.  
  1722. Isolation Level } 
  1723.  
  1724.     insert into flags_text values ('sysopendb', 0, 'NOTRANS'); 
  1725.     insert into flags_text values ('sysopendb', 1, 'DIRTY READ'); 
  1726.     insert into flags_text values ('sysopendb', 2, 'COMMITTED READ'); 
  1727.     insert into flags_text values ('sysopendb', 3, 'CURSOR STABILITY'); 
  1728.     insert into flags_text values ('sysopendb', 5, 'REPEATABLE READ'); 
  1729.     insert into flags_text values ('sysopendb', 7, 'DIRTY READ RETAIN UPDATE LOCKS'); 
  1730.     insert into flags_text values ('sysopendb', 8, 'COMMITTED READ RETAIN UPDATE LOCKS'); 
  1731.     insert into flags_text values ('sysopendb', 9, 'CURSOR STABILITY RETAIN UPDATE LOCKS'); 
  1732.  
  1733. { SQL statement types: see incl/sqlstype } 
  1734.  
  1735.     insert into flags_text values ('sqltype',  1, 'SQ_DATABASE'); 
  1736.     insert into flags_text values ('sqltype',  2, 'SQ_SELECT'); 
  1737.     insert into flags_text values ('sqltype',  3, 'SQ_SELINTO'); 
  1738.     insert into flags_text values ('sqltype',  4, 'SQ_UPDATE'); 
  1739.     insert into flags_text values ('sqltype',  5, 'SQ_DELETE'); 
  1740.     insert into flags_text values ('sqltype',  6, 'SQ_INSERT'); 
  1741.     insert into flags_text values ('sqltype',  7, 'SQ_UPDCURR'); 
  1742.     insert into flags_text values ('sqltype',  8, 'SQ_DELCURR'); 
  1743.     insert into flags_text values ('sqltype',  9, 'SQ_LDINSERT'); 
  1744.     insert into flags_text values ('sqltype', 10, 'SQ_LOCK'); 
  1745.     insert into flags_text values ('sqltype', 11, 'SQ_UNLOCK'); 
  1746.     insert into flags_text values ('sqltype', 12, 'SQ_CREADB'); 
  1747.     insert into flags_text values ('sqltype', 13, 'SQ_DROPDB'); 
  1748.     insert into flags_text values ('sqltype', 14, 'SQ_CRETAB'); 
  1749.     insert into flags_text values ('sqltype', 15, 'SQ_DRPTAB'); 
  1750.     insert into flags_text values ('sqltype', 16, 'SQ_CREIDX'); 
  1751.     insert into flags_text values ('sqltype', 17, 'SQ_DRPIDX'); 
  1752.     insert into flags_text values ('sqltype', 18, 'SQ_GRANT'); 
  1753.     insert into flags_text values ('sqltype', 19, 'SQ_REVOKE'); 
  1754.     insert into flags_text values ('sqltype', 20, 'SQ_RENTAB'); 
  1755.     insert into flags_text values ('sqltype', 21, 'SQ_RENCOL'); 
  1756.     insert into flags_text values ('sqltype', 22, 'SQ_CREAUD'); 
  1757.     insert into flags_text values ('sqltype', 23, 'SQ_STRAUD'); 
  1758.     insert into flags_text values ('sqltype', 24, 'SQ_STPAUD'); 
  1759.     insert into flags_text values ('sqltype', 25, 'SQ_DRPAUD'); 
  1760.     insert into flags_text values ('sqltype', 26, 'SQ_RECTAB'); 
  1761.     insert into flags_text values ('sqltype', 27, 'SQ_CHKTAB'); 
  1762.     insert into flags_text values ('sqltype', 28, 'SQ_REPTAB'); 
  1763.     insert into flags_text values ('sqltype', 29, 'SQ_ALTER'); 
  1764.     insert into flags_text values ('sqltype', 30, 'SQ_STATS'); 
  1765.     insert into flags_text values ('sqltype', 31, 'SQ_CLSDB'); 
  1766.     insert into flags_text values ('sqltype', 32, 'SQ_DELALL'); 
  1767.     insert into flags_text values ('sqltype', 33, 'SQ_UPDALL'); 
  1768.     insert into flags_text values ('sqltype', 34, 'SQ_BEGWORK'); 
  1769.     insert into flags_text values ('sqltype', 35, 'SQ_COMMIT'); 
  1770.     insert into flags_text values ('sqltype', 36, 'SQ_ROLLBACK'); 
  1771.     insert into flags_text values ('sqltype', 37, 'SQ_SAVEPOINT'); 
  1772.     insert into flags_text values ('sqltype', 38, 'SQ_STARTDB'); 
  1773.     insert into flags_text values ('sqltype', 39, 'SQ_RFORWARD'); 
  1774.     insert into flags_text values ('sqltype', 40, 'SQ_CREVIEW'); 
  1775.     insert into flags_text values ('sqltype', 41, 'SQ_DROPVIEW'); 
  1776.     insert into flags_text values ('sqltype', 42, 'SQ_DEBUG'); 
  1777.     insert into flags_text values ('sqltype', 43, 'SQ_CREASYN'); 
  1778.     insert into flags_text values ('sqltype', 44, 'SQ_DROPSYN'); 
  1779.     insert into flags_text values ('sqltype', 45, 'SQ_CTEMP'); 
  1780.     insert into flags_text values ('sqltype', 46, 'SQ_WAITFOR'); 
  1781.     insert into flags_text values ('sqltype', 47, 'SQ_ALTIDX'); 
  1782.     insert into flags_text values ('sqltype', 48, 'SQ_ISOLATE'); 
  1783.     insert into flags_text values ('sqltype', 49, 'SQ_SETLOG'); 
  1784.     insert into flags_text values ('sqltype', 50, 'SQ_EXPLAIN'); 
  1785.     insert into flags_text values ('sqltype', 51, 'SQ_SCHEMA'); 
  1786.     insert into flags_text values ('sqltype', 52, 'SQ_OPTIM'); 
  1787.     insert into flags_text values ('sqltype', 53, 'SQ_CREPROC'); 
  1788.     insert into flags_text values ('sqltype', 54, 'SQ_DRPPROC'); 
  1789.     insert into flags_text values ('sqltype', 55, 'SQ_CONSTRMODE'); 
  1790.     insert into flags_text values ('sqltype', 56, 'SQ_EXECPROC'); 
  1791.     insert into flags_text values ('sqltype', 57, 'SQ_DBGFILE'); 
  1792.     insert into flags_text values ('sqltype', 58, 'SQ_CREOPCL'); 
  1793.     insert into flags_text values ('sqltype', 59, 'SQ_ALTOPCL'); 
  1794.     insert into flags_text values ('sqltype', 60, 'SQ_DRPOPCL'); 
  1795.     insert into flags_text values ('sqltype', 61, 'SQ_OPRESERVE'); 
  1796.     insert into flags_text values ('sqltype', 62, 'SQ_OPRELEASE'); 
  1797.     insert into flags_text values ('sqltype', 63, 'SQ_OPTIMEOUT'); 
  1798.     insert into flags_text values ('sqltype', 64, 'SQ_PROCSTATS'); 
  1799.     insert into flags_text values ('sqltype', 65, 'SQ_GRANTGRP'); 
  1800.     insert into flags_text values ('sqltype', 66, 'SQ_REVOKGRP'); 
  1801.     insert into flags_text values ('sqltype', 67, 'SQ_SKINHIBIT'); 
  1802.     insert into flags_text values ('sqltype', 68, 'SQ_SKSHOW'); 
  1803.     insert into flags_text values ('sqltype', 69, 'SQ_SKSMALL'); 
  1804.     insert into flags_text values ('sqltype', 70, 'SQ_CRETRIG'); 
  1805.     insert into flags_text values ('sqltype', 71, 'SQ_DRPTRIG'); 
  1806.     insert into flags_text values ('sqltype', 72, 'SQ_UNKNOWN'); 
  1807.     insert into flags_text values ('sqltype', 73, 'SQ_SETDATASKIP'); 
  1808.     insert into flags_text values ('sqltype', 74, 'SQ_PDQPRIORITY'); 
  1809.     insert into flags_text values ('sqltype', 75, 'SQ_ALTFRAG'); 
  1810.     insert into flags_text values ('sqltype', 76, 'SQ_SETOBJMODE'); 
  1811.     insert into flags_text values ('sqltype', 77, 'SQ_START'); 
  1812.     insert into flags_text values ('sqltype', 78, 'SQ_STOP'); 
  1813.     insert into flags_text values ('sqltype', 79, 'SQ_SETMAC'); 
  1814.     insert into flags_text values ('sqltype', 80, 'SQ_SETDAC'); 
  1815.     insert into flags_text values ('sqltype', 81, 'SQ_SETTBLHI'); 
  1816.     insert into flags_text values ('sqltype', 82, 'SQ_SETLVEXT'); 
  1817.     insert into flags_text values ('sqltype', 83, 'SQ_CREATEROLE'); 
  1818.     insert into flags_text values ('sqltype', 84, 'SQ_DROPROLE'); 
  1819.     insert into flags_text values ('sqltype', 85, 'SQ_SETROLE'); 
  1820.     insert into flags_text values ('sqltype', 86, 'SQ_PASSWD'); 
  1821.     insert into flags_text values ('sqltype', 87, 'SQ_RENDB'); 
  1822.     insert into flags_text values ('sqltype', 88, 'SQ_CREADOM'); 
  1823.     insert into flags_text values ('sqltype', 89, 'SQ_DROPDOM'); 
  1824.     insert into flags_text values ('sqltype', 90, 'SQ_CREANRT'); 
  1825.     insert into flags_text values ('sqltype', 91, 'SQ_DROPNRT'); 
  1826.     insert into flags_text values ('sqltype', 92, 'SQ_CREADT'); 
  1827.     insert into flags_text values ('sqltype', 93, 'SQ_CREACT'); 
  1828.     insert into flags_text values ('sqltype', 94, 'SQ_DROPCT'); 
  1829.     insert into flags_text values ('sqltype', 95, 'SQ_CREABT'); 
  1830.     insert into flags_text values ('sqltype', 96, 'SQ_DROPTYPE'); 
  1831.     insert into flags_text values ('sqltype', 97, 'SQ_ALTERROUTINE'); 
  1832.     insert into flags_text values ('sqltype', 98, 'SQ_CREATEAM'); 
  1833.     insert into flags_text values ('sqltype', 99, 'SQ_DROPAM'); 
  1834.     insert into flags_text values ('sqltype', 100, 'SQ_ALTERAM'); 
  1835.     insert into flags_text values ('sqltype', 101, 'SQ_CREATEOPC'); 
  1836.     insert into flags_text values ('sqltype', 102, 'SQ_DROPOPC'); 
  1837.     insert into flags_text values ('sqltype', 103, 'SQ_CREACST'); 
  1838.     insert into flags_text values ('sqltype', 104, 'SQ_SETRES'); 
  1839.     insert into flags_text values ('sqltype', 105, 'SQ_CREAGG'); 
  1840.     insert into flags_text values ('sqltype', 106, 'SQ_DRPAGG'); 
  1841.     insert into flags_text values ('sqltype', 107, 'SQ_PLOADFILE'); 
  1842.     insert into flags_text values ('sqltype', 108, 'SQ_CHKIDX'); 
  1843.     insert into flags_text values ('sqltype', 109, 'SQ_SCHEDULE'); 
  1844.     insert into flags_text values ('sqltype', 110, 'SQ_SETENV'); 
  1845.     insert into flags_text values ('sqltype', 111, 'SQ_XPS_RES2'); 
  1846.     insert into flags_text values ('sqltype', 112, 'SQ_XPS_RES3'); 
  1847.     insert into flags_text values ('sqltype', 113, 'SQ_XPS_RES4'); 
  1848.     insert into flags_text values ('sqltype', 114, 'SQ_XPS_RES5'); 
  1849.     insert into flags_text values ('sqltype', 116, 'SQ_RENIDX'); 
  1850.  
  1851.  
  1852.  
  1853. { Page Header } 
  1854.     
  1855.     insert into flags_text values ('syspaghdr'
  1856.     1,'Data Page'); 
  1857.     insert into flags_text values ('syspaghdr'
  1858.     2,'Partition Descriptor Page');  
  1859.     insert into flags_text values ('syspaghdr'
  1860.     4,'Partition Free List Page');  
  1861.     insert into flags_text values ('syspaghdr'
  1862.     8,'Chunk Free List Page');  
  1863.     insert into flags_text values ('syspaghdr'
  1864.     9,'Remainder Data Page');  
  1865.     insert into flags_text values ('syspaghdr'
  1866.     11,'Partition Resident BLOB Page');  
  1867.     insert into flags_text values ('syspaghdr'
  1868.     12,'Blobspace Resident BLOB Page');  
  1869.     insert into flags_text values ('syspaghdr'
  1870.     13,'BLOB Chunk Free List Bit Page');  
  1871.     insert into flags_text values ('syspaghdr'
  1872.     14,'BLOB Chunk BLOB Map Page');  
  1873.     insert into flags_text values ('syspaghdr'
  1874.     16,'B-Tree Node Page');  
  1875.     insert into flags_text values ('syspaghdr'
  1876.     32,'B-Tree Root Node');  
  1877.     insert into flags_text values ('syspaghdr'
  1878.     64,'B-Tree Twig Node');  
  1879.     insert into flags_text values ('syspaghdr'
  1880.     128,'B-Tree Leaf Node');  
  1881.     insert into flags_text values ('syspaghdr'
  1882.     256,'Logical Log Page');  
  1883.     insert into flags_text values ('syspaghdr'
  1884.     512,'Last Page of Log Log');  
  1885.     insert into flags_text values ('syspaghdr'
  1886.     1024,'Sync Page of Log Log');  
  1887.     insert into flags_text values ('syspaghdr'
  1888.     2048,'Physical Log Page');  
  1889.     insert into flags_text values ('syspaghdr'
  1890.     4096,'Reserved Page');  
  1891.     insert into flags_text values ('syspaghdr'
  1892.     8192,'Temporarily no physical logging required');  
  1893.     insert into flags_text values ('syspaghdr'
  1894.     16384,'Temporarily no physical logging required');  
  1895.     insert into flags_text values ('syspaghdr'
  1896.     32768,'B-Tree Leaf Page containing deleted Items');  
  1897.  
  1898.  
  1899. { Partition Header } 
  1900.  
  1901.     insert into flags_text values ('sysptnhdr', 1, 'Page Level Locking'); 
  1902.     insert into flags_text values ('sysptnhdr', 2, 'Row Level Locking'); 
  1903.     insert into flags_text values ('sysptnhdr', 32,'System created Temp Table'); 
  1904.     insert into flags_text values ('sysptnhdr', 64,'User created Temp Table'); 
  1905.     insert into flags_text values ('sysptnhdr', 128,'Sort File'); 
  1906.     insert into flags_text values ('sysptnhdr', 256,'Contains Varchar Data Type'); 
  1907.     insert into flags_text values ('sysptnhdr', 512,'Contains BLOBSpace BLOBS'); 
  1908.     insert into flags_text values ('sysptnhdr', 1024,'Contains TBLSpace BLOBS'); 
  1909.     insert into flags_text values ('sysptnhdr', 2048,'Contains either Varchars,BLOBS or Rows > PAGESIZE-32'); 
  1910.     insert into flags_text values ('sysptnhdr', 4096,'Contains optical Sub-System BLOBS'); 
  1911.     insert into flags_text values ('sysptnhdr', 8192,'Permanent System created Table ( undroppable )'); 
  1912.     insert into flags_text values ('sysptnhdr', 16384,'Special Function Temp Tables, no Bitmap Maintenance'); 
  1913.  
  1914.  
  1915. { Bitmap } 
  1916.  
  1917.     insert into flags_text values ('sysptnbit',0,'Free Page'); 
  1918.     insert into flags_text values ('sysptnbit',1,'Remainder Page - free Space = Pagesize'); 
  1919.     insert into flags_text values ('sysptnbit',2,'PBLOB Page - free Space = Pagesize'); 
  1920.     insert into flags_text values ('sysptnbit',4,'Data Page with Room for another Row'); 
  1921.     insert into flags_text values ('sysptnbit',5,'Remainder Page - free Space between Pagesize and 2/3*Pagesize'); 
  1922.     insert into flags_text values ('sysptnbit',6,'PBLOB Page - free Space between Pagesize and 2/3*Pagesize'); 
  1923.     insert into flags_text values ('sysptnbit',8,'Index Page or Bitmap Page'); 
  1924.     insert into flags_text values ('sysptnbit',9,'Remainder Page - free Space between 2/3*Pagesize and 1/10*Pagesize'); 
  1925.     insert into flags_text values ('sysptnbit',10,'PBLOB Page - free Space between 2/3*Pagesize and 1/10*Pagesize'); 
  1926.     insert into flags_text values ('sysptnbit',12,'Data Page without Room for another Row'); 
  1927.     insert into flags_text values ('sysptnbit',13,'Remainder Page full - free Space < 1/10*Pagesize'); 
  1928.     insert into flags_text values ('sysptnbit',14,'PBLOB Page full - free Space < 1/10*Pagesize'); 
  1929.  
  1930. Create a table where the build status for 'sysutils' and any other system 
  1931.   activity associated with building 'sysmaster' can be recorded } 
  1932.   
  1933.     create table smi_build_status (message_num integer); 
  1934.  
  1935. Create a table where conversion messages can be entered by front end 
  1936.   shell scripts for displaying into the logmessage file } 
  1937.   
  1938.     create table logmessage (message_num integer); 
  1939.  
  1940.  
  1941. { Stored procedure for setting boolean 'columns' in views for flags values } 
  1942.     create procedure bitval ( bitset int, bitmask int) returning int
  1943.     if (bitset < 0) then 
  1944.         if (bitmask < 0) then 
  1945.         return 1; 
  1946.         end if; 
  1947.         let bitset = bitset + 2147483648; 
  1948.     end if; 
  1949.     if (bitset > 1073741824) then 
  1950.         if (bitmask = 1073741824) then 
  1951.         return 1; 
  1952.         end if; 
  1953.     end if 
  1954.     if (mod(bitset,2*bitmask) >= bitmask) then 
  1955.         return 1; 
  1956.     end if 
  1957.     return 0; 
  1958.     end procedure
  1959.     grant execute on bitval to public
  1960.  
  1961. { Stored procedure for converting unix time() long to date } 
  1962.     create procedure l2date ( l int ) returning date
  1963.     return trunc((l/86400) + 25568 ); 
  1964.     end procedure
  1965.     grant execute on l2date to public
  1966.  
  1967.  
  1968. create procedure physchunk( physaddr int ) returning int
  1969.   return trunc(physaddr/1048576); 
  1970. end procedure
  1971. grant execute on physchunk to public
  1972.  
  1973.  
  1974. create procedure physpage( physaddr int ) returning int
  1975.   return(mod(physaddr,1048576)); 
  1976. end procedure
  1977. grant execute on physpage to public
  1978.  
  1979.  
  1980. create procedure physaddr(chunknum int, pagenum int) returning int
  1981.   return((chunknum*1048576)+pagenum); 
  1982. end procedure
  1983. grant execute on physaddr to public
  1984.  
  1985.  
  1986. create procedure partdbsnum (partnum int ) returning int
  1987.   return trunc(partnum/1048576); 
  1988. end procedure
  1989. grant execute on partdbsnum to public
  1990.  
  1991.  
  1992. create procedure partpagenum(partnum int) returning int
  1993.   return(mod(partnum,1048576)); 
  1994. end procedure
  1995. grant execute on partpagenum to public
  1996.  
  1997.  
  1998. create procedure partaddr(dbspnum int, pagenum int) returning int
  1999.   return((dbspnum*1048576)+pagenum); 
  2000. end procedure
  2001. grant execute on partaddr to public
  2002.  
  2003.  
  2004. { Session Waits profile } 
  2005.     create view sysseswts (sid, reason, numwaits, cumtime, maxtime) 
  2006.     as 
  2007.     select a.sid, c.txt, b.wnum, b.wcumtime, b.wmaxtime 
  2008.       from sysrstcb a, systwaits b, flags_text c 
  2009.      where a.tid = b.tid 
  2010.        and b.wreason = c.flags 
  2011.        and c.tabname = 'systwaits'
  2012.     grant select on sysseswts to public
  2013.  
  2014.  
  2015. { Chunk Free List } 
  2016.     create view syschkextents ( ce_chknum, ce_extnum, ce_physaddr, ce_size ) 
  2017.     as select chknum, extnum, start, leng  from syschfree; 
  2018.     grant select on syschkextents to public
  2019.  
  2020. { Partition Bit Maps } 
  2021.     create view systabpagtypes ( tp_partnum, tp_pagenum, tp_type ) 
  2022.     as select pb_partnum, pb_pagenum, pb_bitmap  from sysptnbit; 
  2023.     grant select on systabpagtypes to public
  2024.  
  2025. { Logical Logs } 
  2026.     create view syslogs (number, uniqid, size, used,  
  2027.              is_used, is_current, is_backed_up,  
  2028.              is_new, is_archived, is_temp, flags) 
  2029.     as 
  2030.     select number, uniqid, size, used,  
  2031.            bitval(flags, '0x1'), bitval(flags, '0x2'), bitval(flags, '0x4'), 
  2032.            bitval(flags, '0x8'), bitval(flags, '0x10'),  
  2033.            bitval(flags, '0x20'), flags 
  2034.       from syslogfil 
  2035.      where number > 0; 
  2036.     grant select on syslogs to public
  2037.  
  2038. { Chunks } 
  2039.     create view syschunks(chknum, dbsnum, nxchknum, chksize, offset, nfree, 
  2040.               mdsize, udsize, udfree, 
  2041.               is_offline, is_recovering, is_blobchunk, is_sbchunk, 
  2042.               is_inconsistent, flags, fname,  
  2043.               mfname, moffset, mis_offline, mis_recovering, mflags) 
  2044.     as 
  2045.     select a.chknum, a.dbsnum, a.nxchunk, a.chksize, a.offset, a.nfree, 
  2046.         a.mdsize, a.udsize, a.udfree, 
  2047.         bitval(a.flags, '0x20'), bitval(a.flags, '0x80'),  
  2048.         bitval(a.flags, '0x200'), bitval(a.flags, '0x4000'), 
  2049.         bitval(a.flags, '0x1000'), a.flags, a.fname, b.fname, b.offset,  
  2050.         bitval(b.flags, '0x20'), bitval(b.flags, '0x80'), b.flags 
  2051.       from syschktab a, outer sysmchktab b 
  2052.      where a.chknum = b.chknum 
  2053.        and a.chknum > 0; 
  2054.     grant select on syschunks to public
  2055.  
  2056. { Dbspaces } 
  2057.     create view sysdbspaces(dbsnum, name, owner, fchunk, nchunks, is_mirrored,  
  2058.                 is_blobspace, is_sbspace, is_temp, flags) 
  2059.     as 
  2060.     select dbsnum, name, owner, fchunk, nchunks, 
  2061.         bitval(flags, '0x2'), bitval(flags, '0x10'),  
  2062.         bitval(flags, '0x8000'), bitval(flags, '0x2000'), flags 
  2063.       from sysdbstab 
  2064.      where dbsnum > 0; 
  2065.     grant select on sysdbspaces to public
  2066.  
  2067. { Locks (keep for 6.0 compatibility) } 
  2068.     create view syslocks (dbsname, tabname, rowidlk, keynum, type, 
  2069.               owner, waiter) 
  2070.     as 
  2071.     select dbsname, b.tabname, rowidr, keynum, e.txt[1,4], d.sid, f.sid 
  2072.       from syslcktab a, systabnames b, systxptab c, sysrstcb d,  
  2073.            flags_text e, outer sysrstcb f 
  2074.      where a.partnum = b.partnum 
  2075.        and a.owner = c.address 
  2076.        and c.owner = d.address 
  2077.        and a.wtlist = f.address 
  2078.        and e.tabname = 'syslcktab' 
  2079.        and e.flags = a.type; 
  2080.     grant select on syslocks to public
  2081.  
  2082. { Locks } 
  2083.     create view syslocktab ( lk_id, lk_addr, lk_same, lk_wtlist, lk_owner, 
  2084.                              lk_list, lk_type, lk_flags, lk_bsize, lk_keynum, 
  2085.                              lk_rowid, lk_partnum, lk_kvobj, lk_dipnum,  
  2086.                              lk_grtime ) 
  2087.     as select indx, address, same, wtlist, owner, list, type, flags, bsize, 
  2088.     keynum, rowidr, partnum, rowidn, dipnum, grtime from syslcktab; 
  2089.     grant select on syslocktab to public
  2090.  
  2091. { Active sessions } 
  2092.     create view syssessions ( sid, username, uid, pid, 
  2093.                   hostname, tty, connected, feprogram, 
  2094.                               pooladdr, 
  2095.                   is_wlatch, is_wlock, is_wbuff, is_wckpt, 
  2096.                   is_wlogbuf, is_wtrans, is_monitor, is_incrit, 
  2097.                   state 
  2098.                   ) 
  2099.     as 
  2100.     select a.sid, a.username, a.uid, a.pid, 
  2101.         a.hostname, a.ttyerr, a.connected, a.progname, a.poolp, 
  2102.         bitval(b.flags, '0x2'), bitval(b.flags, '0x4'), 
  2103.         bitval(b.flags, '0x8'), bitval(b.flags, '0x10'),  
  2104.         bitval(b.flags, '0x1000'), bitval(b.flags, '0x40000'),  
  2105.         bitval(b.flags, '0x80'), bitval(b.flags, '0x100'), b.flags 
  2106.       from sysscblst a, sysrstcb b 
  2107.      where a.address = b.scb 
  2108.        and bitval(b.flags, '0x80000') = 1;  { primary thread } 
  2109.     grant select on syssessions to public
  2110.  
  2111. { Session activity profile } 
  2112.     create view syssesprof(sid, lockreqs, locksheld, lockwts,  
  2113.                deadlks, lktouts, logrecs, isreads,  
  2114.                iswrites, isrewrites, isdeletes, iscommits,  
  2115.                isrollbacks, longtxs, bufreads, bufwrites,  
  2116.                seqscans, pagreads, pagwrites, total_sorts,  
  2117.                            dsksorts, max_sortdiskspace, logspused, maxlogsp ) 
  2118.     as 
  2119.         select sid,sum( upf_rqlock),sum(nlocks),sum(upf_wtlock),sum(upf_deadlk), 
  2120.                    sum(upf_lktouts),sum(upf_lgrecs),sum(upf_isread), 
  2121.                    sum(upf_iswrite),sum(upf_isrwrite),sum(upf_isdelete), 
  2122.                    sum(upf_iscommit),sum(upf_isrollback),sum(upf_longtxs), 
  2123.                    sum(upf_bufreads),sum(upf_bufwrites),sum(upf_seqscans), 
  2124.                    sum(nreads), sum(nwrites), sum(upf_totsorts), 
  2125.                    sum(upf_dsksorts),sum(upf_srtspmax),sum(upf_logspuse), 
  2126.                    sum(upf_logspmax) 
  2127.           from sysrstcb  
  2128.              where sid > 0 
  2129.                 group by sid; 
  2130.  
  2131.     grant select on syssesprof to public
  2132.  
  2133. User and system time by VP } 
  2134.     create view sysvpprof ( vpid, class, usercpu, syscpu) 
  2135.     as 
  2136.     select a.vpid, b.txt, a.usecs_user, a.usecs_sys 
  2137.       from sysvplst a, flags_text b 
  2138.      where a.flags != 6 
  2139.        and a.class = b.flags 
  2140.        and b.tabname = 'sysvplst'
  2141.     grant select on sysvpprof to public
  2142.  
  2143. { Partition profile } 
  2144.     create view sysptprof (dbsname, tabname, partnum, 
  2145.                    lockreqs, lockwts, deadlks, lktouts,  
  2146.                isreads, iswrites, isrewrites, isdeletes, 
  2147.                            bufreads, bufwrites, seqscans, pagreads, 
  2148.                            pagwrites ) 
  2149.     as 
  2150.     select a.dbsname, a.tabname, b.partnum, 
  2151.         b.pf_rqlock, b.pf_wtlock, b.pf_deadlk, b.pf_lktouts,  
  2152.         b.pf_isread, b.pf_iswrite, b.pf_isrwrite, b.pf_isdelete, 
  2153.                 b.pf_bfcread, b.pf_bfcwrite, b.pf_seqscans, b.pf_dskreads, 
  2154.                 b.pf_dskwrites  
  2155.       from systabnames a, sysptntab b 
  2156.      where a.partnum = b.partnum; 
  2157.     grant select on sysptprof to public
  2158.  
  2159. { Profile listing } 
  2160.     create view sysprofile ( name, value ) 
  2161.     as 
  2162.     select name[4,16], value 
  2163.       from sysshmhdr 
  2164.      where name matches 'pf_*'
  2165.     grant select on sysprofile to public
  2166.  
  2167. { Listing of supported configuration parameters } 
  2168.     create view sysconfig ( cf_id, cf_name, cf_flags, cf_original, cf_effective, cf_default ) 
  2169.         as    
  2170.         select cf_id, cf_name, cf_flags, cf_original, cf_effective, cf_default 
  2171.           from syscfgtab 
  2172.          where cf_flags = 0; 
  2173.     grant select on sysconfig to public
  2174.  
  2175. { Extent listings (keep for 6.0 compatibility) } 
  2176.     create view sysextents ( dbsname, tabname, start, size
  2177.     as 
  2178.     select dbsname, tabname, pe_phys, pe_size 
  2179.       from systabnames a, sysptnext b 
  2180.      where a.partnum = b.pe_partnum; 
  2181.     grant select on sysextents to public
  2182.  
  2183. { Extent listings } 
  2184.     create view systabextents ( te_partnum, te_extnum, te_physaddr, 
  2185.                                 te_size, te_pagenum ) 
  2186.     as select pe_partnum, pe_extnum, pe_phys, pe_size, pe_log   
  2187.     from sysptnext; 
  2188.     grant select on systabextents to public
  2189.  
  2190. { Data Replication info } 
  2191.     create view sysdri (type, state, name, intvl, timeout, lostfound) 
  2192.     as 
  2193.     select b.txt, d.txt, a.name, a.intvl, a.timeout, a.lostfound 
  2194.       from sysdrcb a, flags_text b, sysdrcb c, flags_text d 
  2195.      where a.type = b.flags 
  2196.        and b.tabname = 'sysdrcb' 
  2197.        and c.state = d.flags 
  2198.        and d.tabname = 'sysdrcb'
  2199.     grant select on sysdri to public
  2200.  
  2201. { Databases } 
  2202.     create view sysdatabases (name, partnum, owner, created, 
  2203.                   is_logging, is_buff_log, is_ansi,  
  2204.                   is_nls, flags) 
  2205.     as 
  2206.     select name, partnum, owner, date(dbinfo('UTC_TO_DATETIME', created)), 
  2207.            bitval(flags, 1), bitval(flags, 2), bitval(flags, 4), 
  2208.            bitval(flags, 16), flags 
  2209.       from sysdbspartn; 
  2210.     grant select on sysdatabases to public
  2211.  
  2212. { Threads view } 
  2213.     create view systhreads (th_id, th_addr, th_joinlist, th_joinnext, 
  2214.         th_joinee, th_name, th_state, th_priority, th_class, th_vpid, 
  2215.         th_mtxwait, th_conwait, th_waketime, th_startwait, 
  2216.         th_startrun ) 
  2217.     as 
  2218.     select  tid,  address,  joinlist, joinnext, joinee, name, state, 
  2219.         priority, class, vpid, wtmutexp, wtcondp, sleep_time,  
  2220.         start_wait, run_time 
  2221.       from  systcblst; 
  2222.     grant select on systhreads to public
  2223.  
  2224. { Mutexes view } 
  2225.     create view sysmutexes (mtx_id, mtx_address, mtx_lock, mtx_holder,  
  2226.             mtx_wtlist, mtx_name ) 
  2227.     as 
  2228.     select  mtx_id, mtx_address, mtx_lock, mtx_holder, mtx_wtlist, 
  2229.         mtx_name 
  2230.       from  sysmtxlst; 
  2231.     grant select on sysmutexes to public
  2232.  
  2233. { Conditions view } 
  2234.     create view sysconditions (con_id, con_address, con_lock,  
  2235.             con_wtlist, con_name ) 
  2236.     as 
  2237.     select  con_id, con_address, con_lock, con_wtlist, con_name 
  2238.       from  sysconlst; 
  2239.     grant select on sysconditions to public
  2240.  
  2241. { Pools view } 
  2242.     create view syspools (po_id, po_address, po_name, po_class,  
  2243.             po_freeamt, po_usedamt ) 
  2244.     as 
  2245.     select  po_id, po_address, po_name, po_class, po_freeamt, po_usedamt 
  2246.       from  syspoollst; 
  2247.     grant select on syspools to public
  2248.  
  2249. { Segments view } 
  2250.     create view syssegments (seg_address, seg_class, seg_size, seg_osshmid, 
  2251.             seg_osshmkey, seg_shmaddr, seg_ovhd, 
  2252.             seg_blkused, seg_blkfree) 
  2253.     as 
  2254.     select  seg_address, seg_class, seg_size, seg_osshmid,seg_osshmkey, 
  2255.         seg_shmaddr, seg_ovhd, seg_blkused, seg_blkfree 
  2256.       from  sysseglst; 
  2257.     grant select on syssegments to public
  2258.  
  2259. { Threads Wait Stats view } 
  2260.     create view systhreadwaits (tw_tid, tw_reason, tw_num, tw_cumtime, 
  2261.             tw_maxtime)  
  2262.     as 
  2263.     select tid, wreason, wnum, wcumtime, wmaxtime 
  2264.       from  systwaits; 
  2265.     grant select on systhreadwaits to public
  2266.  
  2267. { Mutex queue view } 
  2268.     create view sysmutq (mq_mtxid, mq_nwaits, mq_nservs, mq_curlen, mq_totlen, 
  2269.             mq_maxlen, mq_waittime, mq_servtime, mq_maxwait) 
  2270.     as 
  2271.     select mtx_id, mtx_nwaits, mtx_nservs, mtx_curlen, mtx_totlen,  
  2272.         mtx_maxlen, mtx_waittime, mtx_servtime, mtx_maxwait 
  2273.       from  sysmtxlst; 
  2274.     grant select on sysmutq to public
  2275.  
  2276. { Condition queue view } 
  2277.     create view sysconq (cq_conid, cq_nwaits, cq_nservs, cq_curlen, cq_totlen, 
  2278.             cq_maxlen, cq_waittime, cq_servtime, cq_maxwait) 
  2279.     as 
  2280.     select con_id, con_nwaits, con_nservs, con_curlen, con_totlen, 
  2281.         con_maxlen, con_waittime, con_servtime, con_maxwait 
  2282.       from  sysconlst; 
  2283.     grant select on sysconq to public
  2284.  
  2285.  
  2286. { Userthreads } 
  2287.  
  2288.   create view sysuserthreads ( 
  2289.     us_indx, us_address, us_txp, us_txwait, us_txlist, us_iserrno, 
  2290.     us_isrecnum, us_isfragnum, us_uid, us_name, us_sid, 
  2291.     us_scb, us_tid, us_mttcb, us_nxtthread, us_flags,  
  2292.     us_nlocks, us_lastlktype, us_lktout, us_lkwait, us_lklist, 
  2293.     us_lkwttype, us_lkthreadlist, us_lktolist, us_bfwait, us_bflist, 
  2294.     us_bfwtflag, us_bfheldcnt, us_lbufwake, us_lgbuffered, us_rqlock, 
  2295.     us_wtlock, us_deadlk, us_lktouts, us_lgrecs, us_isread, us_iswrite, 
  2296.     us_isrwrite, us_isdelete, us_iscommit, us_isrollback, us_longtxs, 
  2297.     us_bufreads, us_bufwrites, us_pagreads, us_pagwrites, us_seqscans,  
  2298.     us_totsorts, us_dsksorts, us_srtspmax, us_logspuse, us_logspmax 
  2299.     ) as select 
  2300.      indx, address, txp, txwait, txlist, iserrno, isrecnum, isfragnum,  
  2301.      uid, username, sid, scb, tid, mttcb, nxtthread, flags, nlocks, 
  2302.      lastlock, lktout, lkwait, wtlist, lkwttype, lkthreadlist, tolist, 
  2303.      bfwait, bflist, bfwtflag, bfheld_count, lbufwake, bufferlogging, 
  2304.      upf_rqlock, upf_wtlock, upf_deadlk, upf_lktouts, upf_lgrecs, 
  2305.      upf_isread, upf_iswrite, upf_isrwrite, upf_isdelete, upf_iscommit, 
  2306.      upf_isrollback, upf_longtxs, upf_bufreads, upf_bufwrites, nreads, 
  2307.      nwrites, upf_seqscans, upf_totsorts, upf_dsksorts, upf_srtspmax,  
  2308.      upf_logspuse, upf_logspmax from sysrstcb; 
  2309.  
  2310.      grant select on sysuserthreads to public
  2311.  
  2312. { systrans } 
  2313.  
  2314.   create view systrans ( 
  2315.     tx_id, tx_addr, tx_flags, tx_mutex, tx_logbeg, tx_loguniq, tx_logpos, 
  2316.     tx_lklist, tx_lkmutex, tx_owner, tx_wtlist, tx_ptlist, tx_nlocks, 
  2317.     tx_lktout, tx_isolevel, tx_longtx, tx_coordinator, tx_nremotes ) 
  2318.     as select 
  2319.     indx, address, flags, latchp, logbeg, loguniq, logpos, lklist, 
  2320.         lklatchp, owner, wtlist, ptlist, nlocks, lkwait, isolevel, longtx, 
  2321.     istar_coord, nremotes 
  2322.     from systxptab; 
  2323.  
  2324.     grant select on systrans to public
  2325.   
  2326.  
  2327. { Partition Headers } 
  2328.     create view systabinfo  
  2329.     ( 
  2330.     ti_partnum, ti_flags, ti_rowsize, ti_ncols, ti_nkeys, ti_nextns, 
  2331.     ti_created, ti_serialv, ti_fextsiz, ti_nextsiz, ti_nptotal, 
  2332.     ti_npused, ti_npdata, ti_octptnm, ti_nrows  
  2333.     ) 
  2334.         as select 
  2335.     partnum, flags, rowsize, ncols, nkeys, nextns, created, serialv, 
  2336.     fextsiz, nextsiz, nptotal, npused, npdata, octptnm, nrows 
  2337.         from sysptnhdr; 
  2338.  
  2339.         grant select on systabinfo to public
  2340.  
  2341. { Page Headers } 
  2342.     create view systabpaghdrs  
  2343.     ( pg_partnum, pg_pagenum, pg_physaddr, pg_stamp, pg_stamp2, 
  2344.     pg_nslots, pg_flags, pg_frptr, pg_frcnt, pg_next, pg_prev ) 
  2345.         as select * from syspaghdr where 
  2346.         pg_partnum > 1048576; 
  2347.  
  2348.         grant select on systabpaghdrs to public
  2349.  
  2350.  
  2351. { Page Headers } 
  2352.     create view sysphyspaghdrs 
  2353.     ( pg_pagenum, pg_physaddr, pg_stamp, pg_stamp2, 
  2354.     pg_nslots, pg_flags, pg_frptr, pg_frcnt, pg_next, pg_prev ) 
  2355.         as select 
  2356.     pg_pagenum, pg_physaddr, pg_stamp, pg_stamp2, 
  2357.     pg_nslots, pg_flags, pg_frptr, pg_frcnt, pg_next, pg_prev  
  2358.         from syspaghdr where 
  2359.         pg_partnum = 0; 
  2360.  
  2361.         grant select on sysphyspaghdrs to public
  2362.  
  2363. { C2 Audit mask table } 
  2364.   create table sysaudit 
  2365.         ( 
  2366.         username        char(32),       { user name                     } 
  2367.         succ1           integer,        { success bitmask 1             } 
  2368.         succ2           integer,        { success bitmask 2             } 
  2369.         succ3           integer,        { success bitmask 3             } 
  2370.         succ4           integer,        { success bitmask 4             } 
  2371.         succ5           integer,        { success bitmask 5             } 
  2372.         fail1           integer,        { failure bitmask 1             } 
  2373.         fail2           integer,        { failure bitmask 2             } 
  2374.         fail3           integer,        { failure bitmask 3             } 
  2375.         fail4           integer,        { failure bitmask 4             } 
  2376.         fail5           integer         { failure bitmask 5             } 
  2377.         ) lock mode row; 
  2378.     create unique index sysaudit_ix1 on sysaudit(username) in table
  2379.     revoke all on sysaudit from public
  2380.  
  2381. { Chunk io stats } 
  2382.     create view syschkio (chunknum,  
  2383.                 reads, pagesread, 
  2384.                 writes, pageswritten, 
  2385.                 mreads, mpagesread, 
  2386.                 mwrites, mpageswritten) 
  2387.     as 
  2388.         select a.chknum,  
  2389.         a.reads, a.pagesread, 
  2390.         a.writes, a.pageswritten, 
  2391.         b.reads, b.pagesread, 
  2392.         b.writes, b.pageswritten 
  2393.       from syschktab a, outer sysmchktab b 
  2394.      where a.chknum > 0 
  2395.        and a.chknum = b.chknum; 
  2396.     grant select on syschkio to public
  2397.  
  2398. { Locale in which the database was created in } 
  2399.     create view sysdbslocale (dbs_dbsname, dbs_collate) 
  2400.     as 
  2401.         select b.name, a.collate 
  2402.       from systabnames a, sysdbspartn b 
  2403.      where a.partnum = b.partnum; 
  2404.     grant select on sysdbslocale to public
  2405.  
  2406.  
  2407. { SQL Dictionary cache } 
  2408.     create view sysdiccache (dic_hashno, dic_chainno, 
  2409.             dic_refcount, dic_dirtyflag, dic_heapptr, 
  2410.             dic_dbname, dic_servername, dic_ownername, dic_tabname) 
  2411.         as 
  2412.         select dic_hashno, dic_chainno, 
  2413.         dic_refcount, bitval(dic_flags, '0x00800000'), hex(dic_heapptr), 
  2414.         dic_dbname, dic_servername, dic_ownername, dic_tabname 
  2415.         from sysdic; 
  2416.     grant select on sysdiccache to public
  2417.  
  2418. { SQL Distribution cache } 
  2419.     create view sysdistcache (dis_hashno, dis_chainno, 
  2420.             dis_id, dis_refcount, dis_dropped, dis_heapptr, 
  2421.             dis_dbname, dis_servername, dis_ownername, dis_distname) 
  2422.         as 
  2423.         select dis_hashno, dis_chainno, 
  2424.         dis_id, dis_refcnt, dis_delete, hex(dis_heapptr), 
  2425.         dis_dbname, dis_servername, dis_ownername, dis_name 
  2426.         from sysdsc; 
  2427.     grant select on sysdistcache to public
  2428.  
  2429. { SQL Procedure cache } 
  2430.     create view sysproccache (prc_hashno, prc_chainno, 
  2431.             prc_id, prc_refcount, prc_dropped, prc_heapptr, 
  2432.             prc_dbname, prc_servername, prc_ownername, prc_procname) 
  2433.         as 
  2434.         select prc_hashno, prc_chainno, 
  2435.         prc_id, prc_refcnt, prc_delete, hex(prc_heapptr), 
  2436.         prc_dbname, prc_servername, prc_ownername, prc_name 
  2437.         from sysprc; 
  2438.     grant select on sysproccache to public
  2439.  
  2440. { SQL Statements } 
  2441.     create view syssqlcurall ( 
  2442.     sqc_sessionid, sqc_currdb, sqc_isolationlevel, sqc_lockmode, sqc_sqerrno,  
  2443.         sqc_isamerr, sqc_fevers) 
  2444.     as 
  2445.         select scb_sessionid, odb_dbname, ft.txt, scb_lockmode, 
  2446.            scb_sqerrno, scb_iserrno, scb_feversion 
  2447.         from syssqscb, outer ( sysopendb, flags_text ft ) 
  2448.     where scb_sessionid == odb_sessionid 
  2449.       and odb_iscurrent == 'Y' 
  2450.       and ft.tabname == 'sysopendb' 
  2451.       and ft.flags   == odb_isolation 
  2452.       and scb_feversion > '0.00'
  2453.     grant select on syssqlcurall to public
  2454.  
  2455. { SQL Current session } 
  2456.     create view syssqlcurses ( 
  2457.     scs_sessionid, scs_currdb, scs_isolationlevel, scs_lockmode, 
  2458.         scs_executions, scs_cumtime, scs_bufreads, scs_pagereads, 
  2459.         scs_bufwrites, scs_pagewrites, scs_totsorts, scs_dsksorts, 
  2460.         scs_sortspmax, scs_sqerrno, scs_isamerr, scs_fevers,  
  2461.         scs_sqlstatement) 
  2462.     as 
  2463.     select scb_sessionid,  odb_dbname, ft.txt, scb_lockmode, sdb_executions,  
  2464.         sdb_cumtime, sdb_bufreads, sdb_pagereads, sdb_bufwrites,  
  2465.         sdb_pagewrites, sdb_totsorts, sdb_dsksorts, sdb_sortspmax, 
  2466.         scb_sqerrno, scb_iserrno, scb_feversion, cbl_stmt 
  2467.     from syssqscb, syssdblock, outer sysconblock, 
  2468.     outer ( sysopendb, flags_text ft ) 
  2469.         where scb_sessionid == odb_sessionid 
  2470.           and scb_sessionid == sdb_sessionid 
  2471.           and scb_sessionid == cbl_sessionid 
  2472.       and scb_feversion > '0.00' 
  2473.           and sdb_sdbno == cbl_sdbno 
  2474.           and sdb_iscurrent == 'Y' 
  2475.           and odb_iscurrent == 'Y' 
  2476.           and cbl_ismainblock == 'Y' 
  2477.       and ft.tabname == 'sysopendb' 
  2478.       and ft.flags   == odb_isolation 
  2479.           ; 
  2480.     grant select on syssqlcurses to public
  2481.  
  2482. { Show sqexplain information } 
  2483.     create view syssqexplain (      { Internal Use Only     } 
  2484.         sqx_sessionid, sqx_sdbno, sqx_iscurrent, sqx_executions,  
  2485.         sqx_cumtime, sqx_bufreads, sqx_pagereads, sqx_bufwrites,  
  2486.         sqx_pagewrites, sqx_totsorts, sqx_dsksorts, sqx_sortspmax, 
  2487.         sqx_conbno, sqx_ismain, sqx_selflag, sqx_estcost, sqx_estrows, 
  2488.         sqx_seqscan, sqx_srtscan, sqx_autoindex, sqx_index, sqx_remsql, 
  2489.         sqx_mrgjoin, sqx_dynhashjoin, sqx_keyonly, sqx_tempfile, 
  2490.         sqx_tempview, sqx_secthreads, sqx_sqlstatement) 
  2491.     as 
  2492.     select sdb_sessionid,  sdb_sdbno, sdb_iscurrent, sdb_executions, 
  2493.         sdb_cumtime, sdb_bufreads, sdb_pagereads, sdb_bufwrites,  
  2494.         sdb_pagewrites, sdb_totsorts, sdb_dsksorts, sdb_sortspmax, 
  2495.        cbl_conbno, cbl_ismainblock, ft.txt, cbl_estcost, cbl_estrows, 
  2496.         cbl_seqscan, cbl_srtscan, cbl_autoindex, cbl_index, cbl_remsql, 
  2497.         cbl_mrgjoin, cbl_dynhashjoin, cbl_keyonly, cbl_tempfile, 
  2498.         cbl_tempview, cbl_secthreads, cbl_stmt 
  2499.     from syssdblock, outer ( sysconblock, flags_text ft ) 
  2500.         where sdb_sessionid == cbl_sessionid 
  2501.           and sdb_sdbno     == cbl_sdbno 
  2502.       and ft.tabname    == 'sqltype' 
  2503.       and ft.flags      == cbl_selflag 
  2504.           ; 
  2505.     grant select on syssqexplain to public
  2506.  
  2507. { Extspaces Table } 
  2508.     create table sysextspaces           { Internal Use Only } 
  2509.         ( 
  2510.         id              integer,        { external space id             } 
  2511.         name            char(128),      { extspace name                 } 
  2512.         owner           char(32),       { extspace owner                } 
  2513.         flags           integer,        { extspace flags                } 
  2514.         refcnt          integer,        { extspace reference count      } 
  2515.         locsize         integer,        { size of location              } 
  2516.         locatio         char(256)       { external space location       } 
  2517.         ); 
  2518.     create unique index sysextspace_ix1 on sysextspaces(namein table
  2519.     revoke all on sysextspaces from public
  2520.     grant select on sysextspaces to public
  2521.  
  2522. { Archive-related Tables } 
  2523.  
  2524. { Volume set information } 
  2525.     create table arc_vset 
  2526.     ( 
  2527.     vset_vid            smallint    primary key
  2528.     vset_name           char(17)    not null unique
  2529.     vset_class          char(1)     not null
  2530.     vset_onsite         char(1)     not null
  2531.     vset_imported       char(1)     not null
  2532.     vset_foreign        char(1)     not null
  2533.     vset_perm_mounted   char(1)     not null
  2534.     vset_transit        char(1)     not null
  2535.     vset_accessibility  smallint    not null
  2536.     vset_owner_node     char(255)   not null
  2537.     vset_dev_node       char(255)   not null
  2538.     vset_dev_type       char(128)   not null
  2539.     vset_dev_driver     char(10)    not null
  2540.     vset_nb_volumes     smallint    not null
  2541.     vset_density        char(4), 
  2542.     vset_location       char(80), 
  2543.     vset_parameters     char(20), 
  2544.     vset_protection     char(3), 
  2545.     vset_comment        char(80) 
  2546.     ); 
  2547.     revoke all on arc_vset from public
  2548.     grant all on arc_vset to root; 
  2549.     grant select on arc_vset to public
  2550.  
  2551. { Volume information } 
  2552.     create table arc_volume 
  2553.     ( 
  2554.     vol_vid             smallint    not null
  2555.     vol_vno             smallint    not null
  2556.     vol_max_space       integer     not null
  2557.     vol_used_space      integer     not null
  2558.     vol_space_exact     char(1)     not null
  2559.     vol_full            char(1)     not null
  2560.     vol_nb_svst         integer     not null
  2561.     vol_nb_svst_phys    integer     not null
  2562.     vol_virtual         char(255), 
  2563.     vol_parameters      char(20), 
  2564.     vol_protection      char(3), 
  2565.     vol_rewind_date     datetime    year to day
  2566.     vol_comment         char(80), 
  2567.     vol_label           char(6), 
  2568.     vol_remote_virtual  char(255), 
  2569.  
  2570.     primary key (vol_vid, vol_vno) 
  2571.     ); 
  2572.     revoke all on arc_volume from public
  2573.     grant all on arc_volume to root; 
  2574.     grant select on arc_volume to public
  2575.  
  2576. { Volume-setUser relationship information } 
  2577.     create table arc_vset_user 
  2578.     ( 
  2579.     vu_vid              smallint    not null
  2580.     vu_user_node        char(255)   not null
  2581.     vu_user_name        char(40)    not null
  2582.  
  2583.     primary key (vu_vid, vu_user_name) 
  2584.     ); 
  2585.     revoke all on arc_vset_user from public
  2586.     grant all on arc_vset_user to root; 
  2587.     grant select on arc_vset_user to public
  2588.  
  2589. { Disk usage information } 
  2590.     create table arc_diskspace_mgr 
  2591.     ( 
  2592.     dsm_vid             smallint    not null
  2593.     dsm_vno             smallint    not null
  2594.     dsm_pid             integer     not null
  2595.     dsm_spaces_alloc    integer     not null); 
  2596.  
  2597.     create index arc_dsk_i1 on arc_diskspace_mgr 
  2598.     (dsm_vid, dsm_vno, dsm_pid); 
  2599.     revoke all on arc_diskspace_mgr from public
  2600.     grant all on arc_diskspace_mgr to root; 
  2601.     grant select on arc_diskspace_mgr to public
  2602.  
  2603. { Request information (for archives, restores, backups) } 
  2604.     create table arc_request 
  2605.     ( 
  2606.     req_rid             integer     primary key
  2607.     req_type            char(2)     not null
  2608.     req_status          char(2)     not null
  2609.     req_issue_date      datetime    year to second
  2610.     req_user_node       char(255)   not null
  2611.     req_user_name       char(40)    not null
  2612.     req_user_lang       char(1)     not null
  2613.     req_qlf_string      char(1200)  not null
  2614.     req_password        byte in table
  2615.     req_former_rid      integer
  2616.     req_former_sid      smallint
  2617.     req_expiry_date     datetime    year to second
  2618.     req_execution_date  datetime    year to second
  2619.     req_dflt_dir_name   char(255) 
  2620.     ); 
  2621.  
  2622.     create index arc_req_i1 on arc_request 
  2623.     (req_user_name); 
  2624.     revoke all on arc_request from public
  2625.     grant all on arc_request to root; 
  2626.     grant select on arc_request to public
  2627.  
  2628. { Volume-Request-PID-usage lock & relationship information } 
  2629.     create table arc_vol_lock 
  2630.     ( 
  2631.     vlck_vid            smallint    not null
  2632.     vlck_vno            smallint    not null
  2633.     vlck_rid            integer     not null
  2634.     vlck_pid            integer     not null
  2635.     vlck_exclusive      char(1)     not null
  2636.     vlck_operation      char(1)     not null
  2637.  
  2638.     primary key (vlck_vid, vlck_vno, vlck_pid) 
  2639.     ); 
  2640.     revoke all on arc_vol_lock from public
  2641.     grant all on arc_vol_lock to root; 
  2642.     grant select on arc_vol_lock to public
  2643.  
  2644. { Pending requests } 
  2645.     create table arc_pending_req 
  2646.     ( 
  2647.     pend_rid            integer     not null
  2648.     pend_lock_pid       integer     not null
  2649.     pend_parent_rid     integer
  2650.     pend_dflt_dir_name  char(255), 
  2651.  
  2652.     primary key (pend_rid) 
  2653.     ); 
  2654.     revoke all on arc_pending_req from public
  2655.     grant all on arc_pending_req to root; 
  2656.     grant select on arc_pending_req to public
  2657.  
  2658. { Volume set-Request relationship information } 
  2659.     create table arc_req_vset 
  2660.     ( 
  2661.     rv_rid              integer     not null
  2662.     rv_vid              smallint    not null
  2663.  
  2664.     primary key (rv_rid, rv_vid) 
  2665.     ); 
  2666.     revoke all on arc_req_vset from public
  2667.     grant all on arc_req_vset to root; 
  2668.     grant select on arc_req_vset to public
  2669.  
  2670. { Save set information } 
  2671.     create table arc_save_set 
  2672.     ( 
  2673.     svst_rid            integer     not null
  2674.     svst_vid            smallint    not null
  2675.     svst_complete       char(1)     not null
  2676.     svst_attached_rid   integer
  2677.     svst_transit_date   datetime    year to day
  2678.     svst_nb_volumes     smallint    not null
  2679.  
  2680.     primary key (svst_rid, svst_vid) 
  2681.     ); 
  2682.     revoke all on arc_save_set from public
  2683.     grant all on arc_save_set to root; 
  2684.     grant select on arc_save_set to public
  2685.  
  2686. { File information (all file types) } 
  2687.     create table arc_file 
  2688.     ( 
  2689.     file_rid            integer     not null
  2690.     file_fno            integer     not null
  2691.     file_type           char(1)     not null
  2692.     file_name           char(255)   not null
  2693.     file_dno            integer     not null,    
  2694.     file_nb_copies      smallint    not null
  2695.     file_compressed     char(1)     not null
  2696.     file_encrypted      char(1)     not null
  2697.     file_creation_date  datetime    year to day not null
  2698.     file_modify_date    datetime    year to day
  2699.     file_expiry_date    datetime    year to day
  2700.     file_comment        char(80), 
  2701.  
  2702.     primary key (file_rid, file_fno) 
  2703.     ); 
  2704.     revoke all on arc_file from public
  2705.     grant all on arc_file to root; 
  2706.     grant select on arc_file to public
  2707.  
  2708. { File directory information } 
  2709.     create table arc_directory 
  2710.     ( 
  2711.     dir_rid             integer     not null
  2712.     dir_dno             integer     not null
  2713.     dir_name            char(255)   not null
  2714.  
  2715.     primary key (dir_rid, dir_dno) 
  2716.     ); 
  2717.     revoke all on arc_directory from public
  2718.     grant all on arc_directory to root; 
  2719.     grant select on arc_directory to public
  2720.  
  2721. { DB extract output file information } 
  2722. Not used by Informix; included for consistency with Computertime } 
  2723.     create table arc_db_file 
  2724.     ( 
  2725.     dbf_rid             integer     not null
  2726.     dbf_fno             integer     not null
  2727.     dbf_db_name         char(30)    not null
  2728.     dbf_user_name       char(30)    not null
  2729.     dbf_table_name      char(30)    not null
  2730.     dbf_nb_rows         integer     not null
  2731.     dbf_retrieved_rows  integer
  2732.     dbf_sql             char(255), 
  2733.  
  2734.     primary key (dbf_rid, dbf_fno) 
  2735.     ); 
  2736.     revoke all on arc_db_file from public
  2737.     grant all on arc_db_file to root; 
  2738.     grant select on arc_db_file to public
  2739.  
  2740. { Copy information } 
  2741.     create table arc_file_copy 
  2742.     ( 
  2743.     fc_rid              integer     not null
  2744.     fc_fno              integer     not null
  2745.     fc_sno              smallint    not null
  2746.     fc_vid              smallint    not null
  2747.     fc_vno              smallint    not null
  2748.     fc_last_sno         char(1)     not null
  2749.  
  2750.     primary key (fc_vid, fc_vno, fc_rid, fc_fno) 
  2751.     ); 
  2752.  
  2753.     create index arc_file_copy_i1 on arc_file_copy 
  2754.     (fc_rid, fc_fno); 
  2755.     revoke all on arc_file_copy from public
  2756.     grant all on arc_file_copy to root; 
  2757.     grant select on arc_file_copy to public
  2758.  
  2759. { Dbspace set definitions; used only by Informix } 
  2760.     create table arc_dbspace_set 
  2761.     ( 
  2762.     ds_dsid             serial      primary key
  2763.     ds_name             char(128)   not null 
  2764.     ); 
  2765.  
  2766.     create unique index arc_dbspace_set_i1 on arc_dbspace_set 
  2767.         (ds_name); 
  2768.     revoke all on arc_dbspace_set from public
  2769.     grant all on arc_dbspace_set to root; 
  2770.     grant select on arc_dbspace_set to public
  2771.  
  2772. { Dbspace-dbspace set relationships; used only by Informix } 
  2773.     create table arc_dbspace    
  2774.     ( 
  2775.     dbs_name            char(128)   not null
  2776.     dbs_dsid            integer     not null references arc_dbspace_set 
  2777.     ); 
  2778.  
  2779.     create index arc_dbspace_i1 on arc_dbspace 
  2780.         (dbs_name); 
  2781.     revoke all on arc_dbspace from public
  2782.     grant all on arc_dbspace to root; 
  2783.     grant select on arc_dbspace to public
  2784.  
  2785. { Archive event information; used only by Informix } 
  2786.     create table arc_archive_event  
  2787.     ( 
  2788.     ae_rid              integer     not null references arc_request, 
  2789.     ae_dsid             integer     not null
  2790.     ae_level            smallint    not null
  2791.     ae_timestamp        integer     not null
  2792.     ae_prior_rid        integer
  2793.         ae_logid            integer 
  2794.     ); 
  2795.     revoke all on arc_archive_event from public
  2796.     grant all on arc_archive_event to root; 
  2797.     grant select on arc_archive_event to public
  2798.  
  2799.     create table arc_version 
  2800.        ( 
  2801.        av_version           char(128)    not null
  2802.        av_name              byte in table 
  2803.        ); 
  2804.     revoke all on arc_version from public
  2805.     grant all on arc_version to root; 
  2806.  
  2807. { Views are used during inserts and modifies for integrity checking } 
  2808.  
  2809.     create view arc_vset_view  
  2810.     as  
  2811.     select * from arc_vset 
  2812.         where vset_class         in ('S''U'
  2813.           and vset_onsite        in ('Y''N''U'
  2814.           and vset_imported      in ('Y''N'
  2815.           and vset_perm_mounted  in ('Y''N'
  2816.           and vset_transit       in ('Y''N'
  2817.           and vset_nb_volumes    >= 0 
  2818.     with check option
  2819.     revoke all on arc_vset_view from public
  2820.     grant select on arc_vset_view to root; 
  2821.     grant insert on arc_vset_view to root; 
  2822.     grant delete on arc_vset_view to root; 
  2823.     grant update on arc_vset_view to root; 
  2824.  
  2825.     create view arc_volume_view 
  2826.     as  
  2827.     select * from arc_volume 
  2828.         where vol_max_space     >= 0 
  2829.           and vol_used_space    >= 0 
  2830.           and vol_nb_svst       >= 0 
  2831.           and vol_nb_svst_phys  >= 0 
  2832.           and vol_space_exact   in ('Y''N'
  2833.           and vol_full          in ('Y''N'
  2834.           and vol_vid           in (select vset_vid from arc_vset)   
  2835.     with check option
  2836.     revoke all on arc_volume_view from public
  2837.     grant select on arc_volume_view to root; 
  2838.     grant insert on arc_volume_view to root; 
  2839.     grant delete on arc_volume_view to root; 
  2840.     grant update on arc_volume_view to root; 
  2841.  
  2842.     create view arc_vset_user_view 
  2843.     as  
  2844.     select * from arc_vset_user 
  2845.         where vu_vid in (select vset_vid from arc_vset) 
  2846.     with check option
  2847.     revoke all on arc_vset_user_view from public
  2848.     grant select on arc_vset_user_view to root; 
  2849.     grant insert on arc_vset_user_view to root; 
  2850.     grant delete on arc_vset_user_view to root; 
  2851.     grant update on arc_vset_user_view to root; 
  2852.  
  2853.     create view arc_vol_lock_view 
  2854.     as  
  2855.     select * from arc_vol_lock 
  2856.         where vlck_vid in (select vset_vid from arc_vset) 
  2857.           and (vlck_vno = 0   
  2858.         or vlck_vno in (select vol_vno from arc_volume 
  2859.                     where vol_vid = vlck_vid)) 
  2860.           and (vlck_rid = 0    
  2861.         or vlck_rid in (select req_rid from arc_request)) 
  2862.           and vlck_pid > 0 
  2863.           and vlck_exclusive in ('Y''N'
  2864.           and vlck_operation in ('R''W''D'
  2865.     with check option
  2866.     revoke all on arc_vol_lock_view from public
  2867.     grant select on arc_vol_lock_view to root; 
  2868.     grant insert on arc_vol_lock_view to root; 
  2869.     grant delete on arc_vol_lock_view to root; 
  2870.     grant update on arc_vol_lock_view to root; 
  2871.  
  2872.     create view arc_request_view 
  2873.     as  
  2874.     select * from arc_request 
  2875.         where req_type       in ('AR''BK''CO''RT''RM''RB'
  2876.           and req_status     in ('NE''EX''PA''CA''FA''SU''UC'
  2877.           and req_user_lang  in ('E''F'
  2878.           and ( (req_expiry_date is not null  
  2879.           and (req_type in ('AR''BK''CO'))) 
  2880.         or req_expiry_date is null
  2881.     with check option
  2882.     revoke all on arc_request_view from public
  2883.     grant select on arc_request_view to root; 
  2884.     grant insert on arc_request_view to root; 
  2885.     grant delete on arc_request_view to root; 
  2886.     grant update on arc_request_view to root; 
  2887.  
  2888.     create view arc_pendreq_view 
  2889.     as  
  2890.     select * from arc_pending_req 
  2891.         where pend_rid in (select req_rid from arc_request 
  2892.                    where req_status in ('NE''EX''PA')) 
  2893.           and pend_lock_pid >= 0 
  2894.           and (pend_parent_rid is null  
  2895.         or pend_parent_rid in (select req_rid from arc_request 
  2896.                        where req_status in ('PA''EX'))) 
  2897.     with check option
  2898.     revoke all on arc_pendreq_view from public
  2899.     grant select on arc_pendreq_view to root; 
  2900.     grant insert on arc_pendreq_view to root; 
  2901.     grant delete on arc_pendreq_view to root; 
  2902.     grant update on arc_pendreq_view to root; 
  2903.  
  2904.     create view arc_req_vset_view 
  2905.     as  
  2906.     select * from arc_req_vset 
  2907.         where rv_rid in (select req_rid from arc_request) 
  2908.           and rv_vid in (select vset_vid from arc_vset) 
  2909.     with check option
  2910.     revoke all on arc_req_vset_view from public
  2911.     grant select on arc_req_vset_view to root; 
  2912.     grant insert on arc_req_vset_view to root; 
  2913.     grant delete on arc_req_vset_view to root; 
  2914.     grant update on arc_req_vset_view to root; 
  2915.  
  2916.     create view arc_save_set_view 
  2917.     as  
  2918.     select * from arc_save_set 
  2919.         where svst_rid        in (select req_rid from arc_request 
  2920.                       where (req_type in ('AR''BK'))) 
  2921.           and svst_vid        in (select vset_vid from arc_vset) 
  2922.           and svst_complete   in ('Y''N'
  2923.           and svst_nb_volumes >= 0 
  2924.     with check option
  2925.     revoke all on arc_save_set_view from public
  2926.     grant select on arc_save_set_view to root; 
  2927.     grant insert on arc_save_set_view to root; 
  2928.     grant delete on arc_save_set_view to root; 
  2929.     grant update on arc_save_set_view to root; 
  2930.  
  2931.     create view arc_file_view 
  2932.     as  
  2933.     select * from arc_file 
  2934.         where file_type       in ('F''D'
  2935.           and file_rid        in (select req_rid from arc_request 
  2936.                       where (req_type in ('AR''BK'))) 
  2937.           and file_compressed in ('Y''N'
  2938.           and file_encrypted  in ('Y''N'
  2939.               and ((file_dno = 0) or 
  2940.               (file_dno        in (select dir_dno from arc_directory 
  2941.                       where dir_rid = file_rid))) 
  2942.     with check option
  2943.     revoke all on arc_file_view from public
  2944.     grant select on arc_file_view to root; 
  2945.     grant insert on arc_file_view to root; 
  2946.     grant delete on arc_file_view to root; 
  2947.     grant update on arc_file_view to root; 
  2948.  
  2949.     create view arc_directory_view 
  2950.     as  
  2951.     select * from arc_directory 
  2952.         where dir_rid in (select req_rid from arc_request) 
  2953.     with check option
  2954.     revoke all on arc_directory_view from public
  2955.     grant select on arc_directory_view to root; 
  2956.     grant insert on arc_directory_view to root; 
  2957.     grant delete on arc_directory_view to root; 
  2958.     grant update on arc_directory_view to root; 
  2959.  
  2960.     create view arc_db_file_view 
  2961.     as  
  2962.     select * from arc_db_file 
  2963.         where dbf_fno = (select file_fno from arc_file 
  2964.                  where file_rid = dbf_rid 
  2965.                    and file_fno = dbf_fno 
  2966.                    and file_type = 'D'
  2967.     with check option
  2968.     revoke all on arc_db_file_view from public
  2969.     grant select on arc_db_file_view to root; 
  2970.     grant insert on arc_db_file_view to root; 
  2971.     grant delete on arc_db_file_view to root; 
  2972.     grant update on arc_db_file_view to root; 
  2973.  
  2974.     create view arc_file_copy_view 
  2975.     as  
  2976.     select * from arc_file_copy 
  2977.         where fc_fno = (select file_fno from arc_file 
  2978.                 where file_rid = fc_rid 
  2979.                   and file_fno = fc_fno) 
  2980.           and fc_vno = (select vol_vno from arc_volume 
  2981.                 where vol_vid = fc_vid 
  2982.                   and vol_vno = fc_vno) 
  2983.           and fc_last_sno in ('Y''N'
  2984.     with check option
  2985.     revoke all on arc_file_copy_view from public
  2986.     grant select on arc_file_copy_view to root; 
  2987.     grant insert on arc_file_copy_view to root; 
  2988.     grant delete on arc_file_copy_view to root; 
  2989.     grant update on arc_file_copy_view to root; 
  2990.  
  2991.     create view arc_ae_view 
  2992.     as  
  2993.     select * from arc_archive_event 
  2994.         where ae_level in (0, 1, 2) 
  2995.     with check option
  2996.     revoke all on arc_ae_view from public
  2997.     grant select on arc_ae_view to root; 
  2998.     grant insert on arc_ae_view to root; 
  2999.     grant delete on arc_ae_view to root; 
  3000.     grant update on arc_ae_view to root; 
  3001.  
  3002. { Physical device table } 
  3003.   
  3004.     create table arc_phys_dev 
  3005.         ( 
  3006.         dp_name         char(128)        primary key
  3007.         dp_path         char(260),       { size matches FNAMELENGTH } 
  3008.         dp_driver       char(5), 
  3009.         dp_block_sz     integer
  3010.         dp_max_space    integer 
  3011.         ); 
  3012.     revoke all on arc_phys_dev from public
  3013.     grant all on arc_phys_dev to root; 
  3014.     grant select on arc_phys_dev to public
  3015.  
  3016. { arc_replicate : replicate definition table } 
  3017. create table arc_replicate ( 
  3018. rep_repid integer not null primary key
  3019. rep_name char(128) not null unique
  3020. rep_dxs char(255) not null
  3021. rep_db char(37) not null
  3022. rep_refresh char(1) not null
  3023. rep_extract char(1024) not null
  3024. rep_creation_date datetime year to second not null 
  3025. ); 
  3026.  
  3027. { arc_server : remote servers per replicate } 
  3028. create table arc_server ( 
  3029. as_server char(128) not null
  3030. as_db char(128) not null
  3031. as_repid integer not null references arc_replicate, 
  3032. primary key (as_server, as_db, as_repid) 
  3033. ); 
  3034.  
  3035.  
  3036.  
  3037. { arc_rep_archive : successful replicate extractions } 
  3038. create table arc_rep_archive ( 
  3039. ra_repid integer not null references arc_replicate, 
  3040. ra_rid integer not null references arc_request, 
  3041. ra_prior_rid integer not null
  3042. ra_refresh char (1) not null
  3043. primary key (ra_repid, ra_rid) 
  3044. ); 
  3045.  
  3046.  
  3047. { arc_rep_table : replicate distribution status } 
  3048. create table arc_rep_table ( 
  3049. rt_table char(128) not null
  3050. rt_db char(128) not null
  3051. rt_server char(128) not null
  3052. rt_last_rid integer not null
  3053. rt_active char(1) not null
  3054. rt_repid integer not null 
  3055. ); 
  3056.  
  3057.  
  3058. { arc_change_log : change log table mapping } 
  3059. create table arc_change_log ( 
  3060. cl_db char(128) not null
  3061. cl_server char(128) not null
  3062. cl_table char(128) not null
  3063. cl_change_log char(128) not null
  3064. primary key (cl_db, cl_server, cl_table, cl_change_log) 
  3065. ); 
  3066.  
  3067.  
  3068. { arc_rep_parent : parent replication distribution } 
  3069. create table arc_rep_parent ( 
  3070. rp_repid integer not null
  3071. rp_rid integer not null
  3072. rp_parent_rid integer not null 
  3073. ); 
  3074.  
  3075.  
  3076. Drop view arc_file_copy_view } 
  3077. drop view arc_file_copy_view; 
  3078.  
  3079.  
  3080. { Modification of arc_file_copy table } 
  3081. alter table arc_file_copy 
  3082. add fc_device char(120); 
  3083.  
  3084.  
  3085. { Recreate view arc_file_copy_view } 
  3086. create view arc_file_copy_view 
  3087. as  
  3088. select * from arc_file_copy where fc_fno = (select file_fno from arc_file 
  3089.     where file_rid = fc_rid and file_fno = fc_fno) 
  3090.           and fc_vno = (select vol_vno from arc_volume 
  3091.                 where vol_vid = fc_vid 
  3092.                   and vol_vno = fc_vno) 
  3093.           and fc_last_sno in ('Y''N'
  3094.     with check option
  3095.     revoke all on arc_file_copy_view from public
  3096.  
  3097.  
  3098. Create stored procedure start_onpload } 
  3099. create procedure informix.start_onpload(args char(200)) returning int
  3100.     define command char(255); -- build command string here 
  3101.     define rtnsql  int;       -- place holder for exception sqlcode setting 
  3102.     define rtnisam int;       -- isam error code. Should be onpload exit status  
  3103.  
  3104.    {If $INFORMIXDIR/bin/onpload not found try /usr/informix/bin/onpload} 
  3105.    { or NT style} 
  3106.     on exception in (-668) set rtnsql, rtnisam 
  3107.     if rtnisam = -2 then 
  3108.             { If onpload.exe not found by default UNIX style-environment} 
  3109.             let command = 'cmd /c %INFORMIXDIR%\bin\onpload ' || args; 
  3110.             system (command); 
  3111.             return 0; 
  3112.          end if 
  3113.          if rtnisam = -1 then 
  3114.             let command = '/usr/informix/bin/onpload ' || args; 
  3115.             system (command); 
  3116.             return 0; 
  3117.         end if 
  3118.         return rtnisam; 
  3119.     end exception 
  3120.  
  3121.     let command = '$INFORMIXDIR/bin/onpload ' || args; 
  3122.     system (command); 
  3123.     return 0; 
  3124. end procedure
  3125.  
  3126. grant execute on informix.start_onpload to public
  3127.  
  3128. Create UDR functions for memory resident tables } 
  3129. create DBA function informix.ifx_make_res(integer
  3130. returning integer 
  3131. external name '(ifx_res_pnum)' 
  3132. language c; 
  3133.  
  3134. create DBA function informix.ifx_make_unres(integer
  3135. returning integer 
  3136. external name '(ifx_unres_pnum)' 
  3137. language c; 
  3138.  
  3139. create DBA function informix.ifx_make_res(char(256)) 
  3140. returning integer 
  3141. external name '(ifx_res_name)' 
  3142. language c; 
  3143.  
  3144. create DBA function informix.ifx_make_unres(char(256)) 
  3145. returning integer 
  3146. external name '(ifx_unres_name)' 
  3147. language c; 
  3148.  
  3149. Create stored procedure dbexp used by IECC } 
  3150. create procedure informix.dbexp(args char(200)) returning int
  3151.     define command char(255); -- build command string here 
  3152.     define rtnsql  int;       -- place holder for exception sqlcode setting 
  3153.     define rtnisam int;       -- isam error code. Should be onpload exit status  
  3154.  
  3155.     on exception in (-668) set rtnsql, rtnisam 
  3156.         if rtnisam = -2 then 
  3157.     { If dbexport.exe not found by default NT style-environment } 
  3158.             let command = 'cmd /c %INFORMIXDIR%\bin\dbexport ' || args; 
  3159.         system (command); 
  3160.             return 0; 
  3161.         end if 
  3162.         return rtnisam; 
  3163.     end exception 
  3164.  
  3165.     let command = '$INFORMIXDIR/bin/dbexport ' || args; 
  3166.     system (command); 
  3167.     return 0; 
  3168. end procedure
  3169.  
  3170. grant execute on informix.dbexp to public
  3171.  
  3172. Create stored procedure dbimp used by IECC } 
  3173. create procedure informix.dbimp(args char(200)) returning int
  3174.     define command char(255); -- build command string here 
  3175.     define rtnsql  int;       -- place holder for exception sqlcode setting 
  3176.     define rtnisam int;       -- isam error code. Should be onpload exit status  
  3177.  
  3178.     on exception in (-668) set rtnsql, rtnisam 
  3179.         if rtnisam = -2 then 
  3180.     { If dbimport.exe not found by default UNIX style-environment} 
  3181.             let command = 'cmd /c %INFORMIXDIR%\bin\dbimport ' || args; 
  3182.         system (command); 
  3183.             return 0; 
  3184.         end if 
  3185.         return rtnisam; 
  3186.     end exception 
  3187.  
  3188.     let command = '$INFORMIXDIR/bin/dbimport ' || args; 
  3189.     system (command); 
  3190.     return 0; 
  3191. end procedure
  3192.  
  3193. grant execute on informix.dbimp to public
  3194.  
  3195. grant connect to public
  3196.  
  3197. update statistics
  3198.  
  3199. close database

本日志由 flyinweb 于 2009-09-03 18:25:56 发表,目前已经被浏览 5172 次,评论 0 次;

作者添加了以下标签: sysmasterINFORMIX

引用通告:http://www.517sou.net/Article/225/Trackback.ashx

评论订阅:http://www.517sou.net/Article/225/Feeds.ashx

相关文章

评论列表

    暂时没有评论
(必填)
(必填,不会被公开)