123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- {**************************************************************************}
- {* *}
- {* Licensed Materials - Property of IBM and/or HCL *}
- {* *}
- {* IBM Informix Dynamic Server *}
- {* (c) Copyright IBM Corporation 2001, 2016. All rights reserved. *}
- {* (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved. *}
- {* *}
- {**************************************************************************}
- DATABASE sysadmin;
- {****************************************************}
- {*** ***}
- {*** create IWA tables ***}
- {*** ***}
- {****************************************************}
- -- table that keeps meta data on data marts for this IDS instance
- create table "informix".iwa_datamarts (
- -- identifiers:
- m_mart_id serial, -- mart identifier key
- m_name varchar(128), -- mart name
- m_accel_name varchar(128), -- accelerator name
- m_dbname varchar(128), -- database name
- m_owner varchar(32) default user, -- creator of the mart
- m_created datetime year to second default current year to second,
- -- date/time mart was created
- -- refresh operating values:
- m_lockmode integer default -1, -- loadMart locking mode
- m_flags integer default 0, -- for future use
- -- refresh statistic values:
- m_nrefreshes integer default 0, -- number of refreshes done
- m_avg_refresh_runtime integer default 0,
- m_last_refresh_runtime integer default 0,
- -- trickle feed statistic values:
- m_trickle_secs integer default 0,
- m_trickle_rows bigint default 0,
- unique (m_name, m_accel_name) -- mart name is unique per accelerator
- ) lock mode row;
- alter table "informix".iwa_datamarts add constraint
- primary key (m_mart_id) constraint iwa_datamarts_pk1;
- -- table that keeps track of tables in the different data marts
- create table "informix".iwa_marttables (
- -- identifiers:
- mt_tab_id serial, -- table identifier key
- mt_mart_id integer, -- -> iwa_datamarts.m_mart_id
- mt_tabid integer, -- from systables.tabid
- mt_dwaversion integer default 0, -- from systables.dwa_version
- mt_servername varchar(128) default NULL, -- (remote) server
- mt_dbname varchar(128) default NULL, -- (remote) database
- mt_tabname varchar(128) default NULL, -- from systables.tabname
- mt_owner varchar(32) default NULL, -- from systables.owner
- -- refresh operating values:
- mt_partnum integer, -- boolean: fragmented ? 0 : >0
- mt_isfact integer default 0 -- boolean
- ) lock mode row;
- alter table "informix".iwa_marttables add constraint
- primary key (mt_tab_id) constraint iwa_marttables_pk1;
- alter table "informix".iwa_marttables add constraint
- (foreign key (mt_mart_id) references "informix".iwa_datamarts (m_mart_id)
- on delete cascade constraint iwa_marttables_fk1);
- -- table that keeps track of table fragments and their change values:
- create table "informix".iwa_martpartitions (
- -- partition identifiers:
- mp_part_id serial unique, -- partition identifier
- mp_mart_id integer, -- -> iwa_datamarts.m_mart_id
- mp_tab_id integer, -- -> iwa_marttables.mt_tab_id
- mp_tabid integer, -- from systables.tabid
- mp_partnum integer, -- from sysfragments.partn
- mp_dwaversion integer default 0, -- from sysfragments.dwa_version
- -- values at last refresh time (from sysmaster:sysptnhdr):
- mp_last_created integer default -1,
- mp_last_nrows bigint default -1,
- mp_last_ninserts bigint default -1,
- mp_last_nupdates bigint default -1,
- mp_last_ndeletes bigint default -1,
- -- values at current refresh time (from sysmaster:sysptnhdr):
- mp_cur_created integer default -1,
- mp_cur_nrows bigint default -1,
- mp_cur_ninserts bigint default -1,
- mp_cur_nupdates bigint default -1,
- mp_cur_ndeletes bigint default -1
- ) lock mode row;
- alter table "informix".iwa_martpartitions add constraint
- (foreign key (mp_tab_id) references "informix".iwa_marttables (mt_tab_id)
- on delete cascade constraint iwa_martpartitions_fk1);
- alter table "informix".iwa_martpartitions add constraint
- (foreign key (mp_mart_id) references "informix".iwa_datamarts (m_mart_id)
- on delete cascade constraint iwa_martpartitions_fk2);
- -- table that keeps track of table columns in a data mart:
- create table "informix".iwa_martcolumns (
- -- column identifiers:
- mc_col_id serial, -- column identifier
- mc_mart_id integer, -- -> iwa_datamarts.m_mart_id
- mc_tab_id integer, -- -> iwa_marttables.mt_tab_id
- mc_colno integer, -- from syscolumns.colno
- mc_colname varchar(128) default NULL -- from syscolumns.colname
- ) lock mode row;
- alter table "informix".iwa_martcolumns add constraint
- primary key (mc_col_id) constraint iwa_martcolumns_pk1;
- alter table "informix".iwa_martcolumns add constraint
- (foreign key (mc_tab_id) references "informix".iwa_marttables (mt_tab_id)
- on delete cascade constraint iwa_martcolumns_fk1);
- alter table "informix".iwa_martcolumns add constraint
- (foreign key (mc_mart_id) references "informix".iwa_datamarts (m_mart_id)
- on delete cascade constraint iwa_martcolumns_fk2);
- create table 'informix'.iwa_dmd_marts (
- dmdm_id serial,
- dmdm_name varchar(128),
- dmdm_dbname varchar(128),
- primary key (dmdm_id) constraint iwa_dmd_marts_pk,
- unique (dmdm_name, dmdm_dbname) constraint iwa_dmd_marts_un1
- ) lock mode row;
- create table 'informix'.iwa_dmd_tables (
- dmdt_id serial,
- dmdt_mid integer,
- dmdt_owner varchar(32),
- dmdt_tabname varchar(128),
- dmdt_isfact integer,
- primary key (dmdt_id) constraint iwa_dmd_tables_pk,
- unique (dmdt_owner, dmdt_tabname, dmdt_mid) constraint iwa_dmd_tables_un1,
- foreign key (dmdt_mid) references 'informix'.iwa_dmd_marts (dmdm_id)
- on delete cascade constraint iwa_dmd_tables_fk1
- ) lock mode row;
- create table 'informix'.iwa_dmd_columns (
- dmdc_id serial,
- dmdc_tid integer,
- dmdc_colname varchar(128),
- primary key (dmdc_id) constraint iwa_dmd_columns_pk,
- foreign key (dmdc_tid) references 'informix'.iwa_dmd_tables (dmdt_id)
- on delete cascade constraint iwa_dmd_columns_fk1
- ) lock mode row;
- create table 'informix'.iwa_dmd_refs (
- dmdr_id serial,
- dmdr_mid integer,
- dmdr_sig varchar(255),
- dmdr_ctid integer,
- dmdr_ptid integer,
- dmdr_uniq char(1),
- dmdr_type char(1),
- primary key (dmdr_id) constraint iwa_dmd_refs_pk1,
- foreign key (dmdr_mid) references 'informix'.iwa_dmd_marts (dmdm_id)
- on delete cascade constraint iwa_dmd_refs_fk1,
- foreign key (dmdr_ctid) references 'informix'.iwa_dmd_tables (dmdt_id)
- constraint iwa_dmd_refs_fk2,
- foreign key (dmdr_ptid) references 'informix'.iwa_dmd_tables (dmdt_id)
- constraint iwa_dmd_refs_fk3,
- check (dmdr_uniq in ('y', 'n')) constraint iwa_dmd_refs_chk1,
- check (dmdr_type in ('i', 'l')) constraint iwa_dmd_refs_chk2
- ) lock mode row;
- create table 'informix'.iwa_dmd_refcols (
- dmdrc_id serial,
- dmdrc_rid integer,
- dmdrc_ccid integer,
- dmdrc_pcid integer,
- primary key (dmdrc_id) constraint iwa_dmd_refcols_pk1,
- foreign key (dmdrc_rid) references 'informix'.iwa_dmd_refs (dmdr_id)
- on delete cascade constraint iwa_dmd_refcols_fk1,
- foreign key (dmdrc_ccid) references 'informix'.iwa_dmd_columns (dmdc_id)
- constraint iwa_dmd_refcols_fk2,
- foreign key (dmdrc_pcid) references 'informix'.iwa_dmd_columns (dmdc_id)
- constraint iwa_dmd_refcols_fk3
- ) lock mode row;
- -- time series virtual table partitioning calendar
- create table 'informix'.iwa_tsvt_partcal (
- tab_id integer, -- -> iwa_marttables.mt_tab_id
- calname varchar(255) not null, -- calendar name
- parted integer not null -- table is partitioned
- ) lock mode row;
- alter table 'informix'.iwa_tsvt_partcal add constraint
- (foreign key (tab_id) references 'informix'.iwa_marttables(mt_tab_id)
- on delete cascade constraint iwa_tsvt_partcal_fk1);
- -- time series virtual table windows
- create table 'informix'.iwa_tsvt_windows (
- tab_id integer, -- -> iwa_marttables.mt_tab_id
- begin integer not null, -- begin interval
- end integer not null, -- end interval
- check (begin < end)
- ) lock mode row;
- alter table 'informix'.iwa_tsvt_windows add constraint
- (foreign key (tab_id) references 'informix'.iwa_marttables(mt_tab_id)
- on delete cascade constraint iwa_tsvt_windows_fk1);
- GRANT SELECT ON 'informix'.iwa_datamarts TO "db_monitor" as informix;
- GRANT SELECT ON 'informix'.iwa_marttables TO "db_monitor" as informix;
- GRANT SELECT ON 'informix'.iwa_martpartitions TO "db_monitor" as informix;
- GRANT SELECT ON 'informix'.iwa_martcolumns TO "db_monitor" as informix;
- GRANT SELECT ON 'informix'.iwa_dmd_marts TO "db_monitor" as informix;
- GRANT SELECT ON 'informix'.iwa_dmd_tables TO "db_monitor" as informix;
- GRANT SELECT ON 'informix'.iwa_dmd_columns TO "db_monitor" as informix;
- GRANT SELECT ON 'informix'.iwa_dmd_refs TO "db_monitor" as informix;
- GRANT SELECT ON 'informix'.iwa_dmd_refcols TO "db_monitor" as informix;
- GRANT SELECT ON 'informix'.iwa_tsvt_partcal TO "db_monitor" as informix;
- GRANT SELECT ON 'informix'.iwa_tsvt_windows TO "db_monitor" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_datamarts TO "db_admin" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_marttables TO "db_admin" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_martpartitions TO "db_admin" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_martcolumns TO "db_admin" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_dmd_marts TO "db_admin" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_dmd_tables TO "db_admin" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_dmd_columns TO "db_admin" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_dmd_refs TO "db_admin" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_dmd_refcols TO "db_admin" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_tsvt_partcal TO "db_admin" as informix;
- GRANT UPDATE, DELETE, INSERT ON 'informix'.iwa_tsvt_windows TO "db_admin" as informix;
- INSERT INTO ph_version(object,type,value) VALUES ('IWA','version',2);
- CLOSE DATABASE;
|