123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966 |
- {**************************************************************************}
- {* *}
- {* Licensed Materials - Property of IBM and/or HCL *}
- {* *}
- {* IBM Informix Dynamic Server *}
- {* (c) Copyright IBM Corporation 1996, 2016 All rights reserved. *}
- {* (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved. *}
- {* *}
- {**************************************************************************}
- { }
- { Title: db_install.sql }
- { Description: }
- { setup sysadmin database }
- {*****************************************************************
- ******************************************************************
- Create the SQL admin UDRs
- ******************************************************************
- ******************************************************************}
- create function
- is_hdr_allowed()
- returns informix.integer
- external name '(is_hdr_allowed)'
- language C
- NOT VARIANT;
- create function
- is_cdr_allowed()
- returns informix.integer
- external name '(is_cdr_allowed)'
- language C
- NOT VARIANT;
- create function
- is_compression_allowed()
- returns informix.integer
- external name '(is_compression_allowed)'
- language C
- NOT VARIANT;
- create function
- is_fragm_allowed()
- returns informix.integer
- external name '(is_fragm_allowed)'
- language C
- NOT VARIANT;
- create function
- is_pdq_allowed()
- returns informix.integer
- external name '(is_pdq_allowed)'
- language C
- NOT VARIANT;
- create function
- informix_get_product_type()
- returns informix.integer
- external name '(get_product_type)'
- language C
- NOT VARIANT;
- create function
- string_to_utf8(string lvarchar(4096), source_locale lvarchar)
- returns lvarchar
- external name '(string_to_utf8)'
- language C;
- create function
- informix.task(informix.lvarchar)
- returns informix.lvarchar
- external name '(task)'
- language C;
- create function
- informix.task(informix.lvarchar, informix.lvarchar)
- returns informix.lvarchar
- external name '(task_c)'
- language C;
- create function
- informix.task(informix.lvarchar, informix.lvarchar, informix.lvarchar)
- returns informix.lvarchar
- external name '(task_cc)'
- language C;
- create function
- informix.task(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar)
- returns informix.lvarchar
- external name '(task_ccc)'
- language C;
- create function
- informix.task(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar)
- returns informix.lvarchar
- external name '(task_cccc)'
- language C;
- create function
- informix.task(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar)
- returns informix.lvarchar
- external name '(task_ccccc)'
- language C;
- create function
- informix.task(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar)
- returns informix.lvarchar
- external name '(task_cccccc)'
- language C;
- create function
- informix.task(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar)
- returns informix.lvarchar
- external name '(task_ccccccc)'
- language C;
- create function
- informix.task(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar)
- returns informix.lvarchar
- external name '(task_cccccccc)'
- language C;
- create function
- informix.task(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar)
- returns informix.lvarchar
- external name '(task_ccccccccc)'
- language C;
- create function
- informix.admin(informix.lvarchar)
- returns integer
- external name '(admin)'
- language C;
- create function
- informix.admin(informix.lvarchar, informix.lvarchar)
- returns integer
- external name '(admin_c)'
- language C;
- create function
- informix.admin(informix.lvarchar, informix.lvarchar, informix.lvarchar)
- returns integer
- external name '(admin_cc)'
- language C;
- create function
- informix.admin(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar)
- returns integer
- external name '(admin_ccc)'
- language C;
- create function
- informix.admin(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar)
- returns integer
- external name '(admin_cccc)'
- language C;
- create function
- informix.admin(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar)
- returns integer
- external name '(admin_ccccc)'
- language C;
- create function
- informix.admin(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar)
- returns integer
- external name '(admin_cccccc)'
- language C;
- create function
- informix.admin(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar)
- returns integer
- external name '(admin_ccccccc)'
- language C;
- create function
- informix.admin(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar)
- returns integer
- external name '(admin_cccccccc)'
- language C;
- create function
- informix.admin(informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar, informix.lvarchar, informix.lvarchar,
- informix.lvarchar)
- returns integer
- external name '(admin_ccccccccc)'
- language C;
- create function
- informix.exectask(informix.lvarchar)
- returns integer
- external name '(ph_sensor_c)'
- language C;
- create function
- informix.exectask(lvarchar, lvarchar)
- returns integer
- external name '(ph_sensor_cc)'
- language C;
- create function
- informix.exectask(informix.integer)
- returns integer
- external name '(ph_sensor_i)'
- language C;
- create function
- informix.exectask(integer,lvarchar)
- returns integer
- external name '(ph_sensor_ic)'
- language C;
- create function
- informix.exectask_async(informix.lvarchar)
- returns integer
- external name '(ph_sensor_c_async)'
- language C;
- create function
- informix.exectask_async(lvarchar, lvarchar)
- returns integer
- external name '(ph_sensor_cc_async)'
- language C;
- create function
- informix.exectask_async(informix.integer)
- returns integer
- external name '(ph_sensor_i_async)'
- language C;
- create function
- informix.exectask_async(integer, lvarchar)
- returns integer
- external name '(ph_sensor_ic_async)'
- language C;
- create function informix.alert_exec_recommend(informix.integer)
- returns integer
- external name '(ph_alert_exec_recommend)'
- language C;
- create function informix.ph_dbs_alert(informix.integer, informix.integer,
- informix.pointer)
- returns integer
- external name '(ph_dbs_alert)'
- language C;
- create function informix.refreshstats(informix.integer, informix.integer,
- informix.pointer)
- returns integer
- external name '(refreshstats)'
- language C;
- create function informix.admin_list_perms(informix.lvarchar)
- returns informix.lvarchar
- external name '(admin_list_perms)'
- language C;
- CREATE FUNCTION informix.ph_reset_next_execution(attr INTEGER)
- RETURNING DATETIME YEAR TO SECOND, INTEGER
- DEFINE curr_time DATETIME YEAR TO SECOND;
- DEFINE flags INTEGER;
- -- Set TK_ATTR_EVALUTE_TIME_ONLY (0x2) flag
- LET flags = BITOR(attr, 2);
- LET curr_time = CURRENT;
- RETURN curr_time, flags;
- END FUNCTION;
- CREATE PROCEDURE informix.ph_task_delete_check(attr INTEGER);
- -- Check if we are trying to delete a system generated task
- -- Marked via TK_ATTR_SYSTEM_TASK (0x4) flag
- IF BITAND(attr, 4) <> 0 THEN
- RAISE EXCEPTION -274, -107;
- END IF
- END PROCEDURE;
- {*****************************************************************
- ******************************************************************
- Create the admin API tables
- ******************************************************************
- ******************************************************************}
- DROP ROLE IF EXISTS db_monitor;
- CREATE ROLE IF NOT EXISTS db_monitor;
- DROP ROLE IF EXISTS db_admin;
- CREATE ROLE IF NOT EXISTS db_admin;
- REVOKE EXECUTE ON ROUTINE exectask(lvarchar) FROM public;
- REVOKE EXECUTE ON ROUTINE exectask(lvarchar,lvarchar) FROM public;
- REVOKE EXECUTE ON ROUTINE exectask(integer) FROM public;
- REVOKE EXECUTE ON ROUTINE exectask(integer,lvarchar) FROM public;
- REVOKE EXECUTE ON ROUTINE exectask_async(lvarchar) FROM public;
- REVOKE EXECUTE ON ROUTINE exectask_async(lvarchar,lvarchar) FROM public;
- REVOKE EXECUTE ON ROUTINE exectask_async(integer) FROM public;
- REVOKE EXECUTE ON ROUTINE exectask_async(integer,lvarchar) FROM public;
- GRANT EXECUTE ON ROUTINE exectask(integer) TO db_admin as informix;
- GRANT EXECUTE ON ROUTINE exectask(integer,lvarchar) TO db_admin as informix;
- GRANT EXECUTE ON ROUTINE exectask(lvarchar) TO db_admin as informix;
- GRANT EXECUTE ON ROUTINE exectask(lvarchar,lvarchar) TO db_admin as informix;
- GRANT EXECUTE ON ROUTINE exectask_async(integer) TO db_admin as informix;
- GRANT EXECUTE ON ROUTINE exectask_async(integer,lvarchar) TO db_admin as informix;
- GRANT EXECUTE ON ROUTINE exectask_async(lvarchar) TO db_admin as informix;
- GRANT EXECUTE ON ROUTINE exectask_async(lvarchar,lvarchar) TO db_admin as informix;
- create table informix.command_history
- (
- cmd_number serial(100),
- cmd_exec_time datetime YEAR TO SECOND
- DEFAULT CURRENT YEAR TO SECOND,
- cmd_user varchar(254),
- cmd_hostname varchar(254),
- cmd_executed varchar(254),
- cmd_ret_status integer,
- cmd_ret_msg lvarchar(30000)
- );
- CREATE UNIQUE INDEX informix.ix_cmd_hist_01 ON command_history(cmd_number);
- CREATE INDEX informix.ix_cmd_hist_02 ON command_history(cmd_executed);
- CREATE INDEX informix.ix_cmd_hist_03 ON command_history(cmd_exec_time);
- {*****************************************************************
- ******************************************************************
- AUTO DBA
- ******************************************************************
- ******************************************************************}
- create procedure
- informix.wake_dba()
- external name '(ph_wakeup)'
- language C;
- create function
- informix.db_sch_worker()
- returns informix.integer
- external name '(db_sch_worker)'
- language C;
- create function
- informix.db_sched()
- returns informix.integer
- external name '(db_sched)'
- language C;
- create function
- informix.db_low_memory_mgr()
- returns informix.integer
- external name '(db_low_memory_mgr)'
- language C;
- create function
- informix.dbutil()
- returns informix.integer
- external name '(dbutil)'
- language C;
- create function
- informix.low_memory_mgr_message(informix.integer, informix.integer,
- informix.lvarchar, informix.integer default 1 )
- returns informix.integer
- external name '(dbcron_alert_msg_low_memory)'
- language C;
- create function
- informix.yieldn()
- returns informix.integer
- external name '(admin_yield)'
- language C;
- create function
- informix.yieldn(informix.integer)
- returns informix.integer
- external name '(admin_yieldn)'
- language C;
- create function
- informix.admin_check_auth(informix.lvarchar)
- returns informix.integer
- external name '(admin_check_auth)'
- language C;
- create function
- informix.run_job(informix.integer, informix.integer,
- informix.lvarchar default null)
- returns integer
- external name '(bg_jobs)'
- language C;
- {*****************************************************************
- ******************************************************************
- Create the AUTO DBA tables
- ******************************************************************
- ******************************************************************}
- CREATE TABLE informix.ph_group (
- group_id SERIAL,
- group_name varchar(129),
- group_description lvarchar
- ) LOCK MODE ROW;
- CREATE UNIQUE INDEX informix.ix_ph_group_01 ON ph_group(group_id);
- CREATE UNIQUE INDEX informix.ix_ph_group_02 ON ph_group(group_name);
- ALTER TABLE informix.ph_group ADD CONSTRAINT UNIQUE (group_name) CONSTRAINT u_ph_group_01;
- INSERT INTO ph_group VALUES (0,"MISC","no group was defined");
- CREATE TABLE informix.ph_task (
- tk_id SERIAL,
- tk_name CHAR(36)
- CHECK ( tk_name[1,1] != ' ' ),
- tk_description LVARCHAR,
- tk_type CHAR(18)
- DEFAULT 'SENSOR' NOT NULL
- CHECK ( UPPER(tk_type) IN
- ("SENSOR", "TASK",
- "STARTUP SENSOR", "STARTUP TASK" ) ) CONSTRAINT ph_task_constr1,
- tk_sequence INTEGER DEFAULT 0,
- tk_result_table LVARCHAR,
- tk_create LVARCHAR DEFAULT NULL,
- tk_dbs VARCHAR(250) DEFAULT 'sysadmin',
- tk_execute LVARCHAR,
- tk_delete INTERVAL day(2) TO second
- DEFAULT INTERVAL( 0 1:00:00 ) day to second,
- tk_start_time DATETIME hour to second
- DEFAULT DATETIME(08:00:00) hour to second,
- tk_stop_time DATETIME hour TO second
- DEFAULT DATETIME(19:00:00) hour to second,
- tk_frequency INTERVAL day(2) to second
- DEFAULT INTERVAL( 1 0:00:00 ) day to second
- CHECK (tk_frequency > INTERVAL(0 00:00:00) day to second)
- CONSTRAINT ph_task_constr2,
- tk_next_execution DATETIME year TO second
- DEFAULT CURRENT year to second,
- tk_total_executions INTEGER DEFAULT 0,
- tk_total_time FLOAT DEFAULT 0.0,
- tk_Monday BOOLEAN DEFAULT 'T',
- tk_Tuesday BOOLEAN DEFAULT 'T',
- tk_Wednesday BOOLEAN DEFAULT 'T',
- tk_Thursday BOOLEAN DEFAULT 'T',
- tk_Friday BOOLEAN DEFAULT 'T',
- tk_Saturday BOOLEAN DEFAULT 'T',
- tk_Sunday BOOLEAN DEFAULT 'T',
- tk_attributes INTEGER DEFAULT 0,
- tk_group VARCHAR(129) DEFAULT 'MISC'
- REFERENCES ph_group(group_name),
- tk_enable BOOLEAN DEFAULT 'T',
- tk_priority INTEGER DEFAULT 0
- ) LOCK MODE ROW;
- CREATE UNIQUE INDEX informix.ix_ph_task_01 ON ph_task(tk_id);
- CREATE UNIQUE INDEX informix.ix_ph_task_02 ON ph_task(tk_name);
- CREATE INDEX informix.ix_ph_task_03 ON ph_task(tk_next_execution, tk_id);
- CREATE TRIGGER informix.ph_task_trig1
- INSERT ON ph_task
- AFTER ( EXECUTE PROCEDURE wake_dba() );
- CREATE TRIGGER informix.ph_task_trig_update_exec_time
- UPDATE OF tk_frequency, tk_start_time, tk_stop_time,
- tk_Monday, tk_Tuesday, tk_Wednesday, tk_Thursday,
- tk_Friday, tk_Saturday, tk_Sunday, tk_enable
- ON ph_task
- REFERENCING OLD AS pre NEW AS post
- FOR EACH ROW
- (EXECUTE FUNCTION ph_reset_next_execution(post.tk_attributes)
- INTO tk_next_execution, tk_attributes)
- AFTER (EXECUTE PROCEDURE wake_dba());
- CREATE TRIGGER informix.ph_task_delete
- DELETE ON ph_task
- REFERENCING OLD AS pre
- FOR EACH ROW
- (EXECUTE PROCEDURE ph_task_delete_check(pre.tk_attributes));
- CREATE TABLE informix.ph_run (
- run_id SERIAL,
- run_task_id INTEGER,
- run_task_seq INTEGER,
- run_retcode INTEGER,
- run_time DATETIME year to second
- DEFAULT CURRENT year to second,
- run_duration FLOAT,
- run_ztime INTEGER,
- run_btime INTEGER,
- run_mttime INTEGER
- ) LOCK MODE ROW;
- CREATE UNIQUE INDEX informix.ix_ph_run_01 ON ph_run(run_id);
- CREATE INDEX informix.ix_ph_run_02 ON ph_run(run_task_seq,run_task_id);
- CREATE INDEX informix.ix_ph_run_03 ON ph_run(run_task_id,run_time);
- CREATE TABLE informix.ph_alert (
- ID SERIAL,
- alert_task_id INTEGER,
- alert_task_seq INTEGER,
- alert_type CHAR(8)
- DEFAULT 'INFO'
- CHECK ( UPPER(alert_type) IN
- ("INFO","WARNING","ERROR") ),
- alert_color CHAR(15)
- DEFAULT 'GREEN'
- CHECK ( UPPER(alert_color) IN
- ("RED","YELLOW","GREEN") ),
- alert_time DATETIME year TO second
- DEFAULT CURRENT year to second,
- alert_state CHAR(15)
- DEFAULT 'NEW'
- CHECK ( UPPER(alert_state) IN
- ("NEW","ADDRESSED",
- "ACKNOWLEDGED","IGNORED") ),
- alert_state_changed DATETIME year TO second
- DEFAULT CURRENT year to second,
- alert_object_type CHAR(15)
- DEFAULT 'MISC'
- CHECK ( UPPER(alert_object_type) IN
- ("SERVER","DATABASE","TABLE","INDEX", "DBSPACE",
- "CHUNK","USER","SQL","MISC","ALARM") ) CONSTRAINT ph_alert_constr1,
- alert_object_name VARCHAR(254),
- alert_message LVARCHAR,
- alert_action_dbs LVARCHAR(256)
- DEFAULT 'sysadmin',
- alert_action LVARCHAR,
- alert_object_info BIGINT
- DEFAULT 0
- ) LOCK MODE ROW;
- CREATE UNIQUE INDEX informix.ix_ph_alert_01 ON ph_alert(ID);
- CREATE INDEX informix.ix_ph_alert_02 ON
- ph_alert(alert_task_seq,alert_task_id);
- CREATE INDEX informix.ix_ph_alert_03 ON
- ph_alert(alert_time);
- CREATE TABLE informix.ph_threshold (
- ID SERIAL,
- name VARCHAR(254),
- task_name CHAR(36),
- value LVARCHAR,
- value_type VARCHAR(254)
- DEFAULT 'STRING'
- CHECK (UPPER(value_type) MATCHES "STRING" OR
- UPPER(value_type) MATCHES "NUMERIC" OR
- UPPER(value_type) MATCHES "NUMERIC(*.*)"),
- description LVARCHAR
- ) LOCK MODE ROW;
- CREATE UNIQUE INDEX informix.ix_ph_threshold_01 ON ph_threshold(ID);
- CREATE INDEX informix.ix_ph_threshold_02 ON ph_threshold(name);
- CREATE VIEW informix.ph_config ( ID, name, task_name, value, value_type )
- AS SELECT ID, name, task_name, value, value_type
- FROM ph_threshold;
- revoke all on informix.ph_task from public as informix;
- revoke all on informix.ph_run from public as informix;
- revoke all on informix.ph_alert from public as informix;
- revoke all on informix.ph_threshold from public as informix;
- grant select on informix.ph_alert to public as informix;
- CREATE VIEW informix.ph_alerts
- (
- alert_id, run_id, task_id,
- task_name, task_description,
- alert_type, alert_color, alert_time,
- alert_state, alert_object_type, alert_object_name,
- alert_message, alert_action_dbs, alert_action, alert_object_info
- )
- AS SELECT ph_alert.id, ph_run.run_id, ph_task.tk_id,
- tk_name, tk_description, alert_type, alert_color,
- alert_time,
- alert_state, alert_object_type, alert_object_name,
- alert_message, alert_action_dbs, alert_action, alert_object_info
- FROM ph_alert, ph_run, ph_task
- WHERE ph_alert.alert_task_id = ph_task.tk_id
- AND ph_run.run_task_id = ph_task.tk_id
- AND ph_alert.alert_task_seq = ph_run.run_task_seq;
- CREATE TABLE informix.ph_bg_jobs
- (
- ph_bg_id SERIAL NOT NULL,
- ph_bg_name VARCHAR(255) NOT NULL,
- ph_bg_job_id INTEGER NOT NULL,
- ph_bg_type VARCHAR(255) DEFAULT 'MISC' NOT NULL,
- ph_bg_desc VARCHAR(255),
- ph_bg_sequence SMALLINT NOT NULL,
- ph_bg_flags INTEGER DEFAULT 0 NOT NULL,
- ph_bg_stop_on_error BOOLEAN DEFAULT 'f' NOT NULL,
- ph_bg_database VARCHAR(255) NOT NULL,
- ph_bg_cmd LVARCHAR(30000) NOT NULL
- ) LOCK MODE ROW;
- CREATE UNIQUE INDEX informix.ph_bg_jobs_ix1 ON ph_bg_jobs (ph_bg_id);
- CREATE UNIQUE INDEX informix.ph_bg_jobs_ix2 ON ph_bg_jobs (ph_bg_job_id, ph_bg_sequence);
- CREATE UNIQUE INDEX informix.ph_bg_jobs_ix3 ON ph_bg_jobs (ph_bg_name, ph_bg_sequence);
- CREATE TABLE informix.ph_bg_jobs_results
- (
- ph_bgr_id SERIAL NOT NULL,
- ph_bgr_bg_id INTEGER NOT NULL,
- ph_bgr_tk_id INTEGER NOT NULL,
- ph_bgr_tk_sequence INTEGER NOT NULL,
- ph_bgr_starttime DATETIME YEAR TO SECOND
- DEFAULT CURRENT YEAR TO SECOND NOT NULL,
- ph_bgr_stoptime DATETIME YEAR TO SECOND DEFAULT NULL,
- ph_bgr_retcode INTEGER DEFAULT NULL,
- ph_bgr_retcode2 INTEGER DEFAULT NULL,
- ph_bgr_retmsg LVARCHAR(30000) DEFAULT NULL
- ) LOCK MODE ROW;
- CREATE UNIQUE INDEX informix.ph_bg_jobs_results_ix1 ON ph_bg_jobs_results (ph_bgr_id);
- CREATE INDEX informix.ph_bg_jobs_results_ix2 ON ph_bg_jobs_results (ph_bgr_bg_id);
- CREATE TRIGGER informix.ph_bg_jobs_delete
- DELETE ON ph_bg_jobs
- REFERENCING OLD AS pre
- FOR EACH ROW
- (DELETE FROM ph_bg_jobs_results
- WHERE ph_bg_jobs_results.ph_bgr_bg_id = pre.ph_bg_id);
- REVOKE ALL ON informix.ph_bg_jobs FROM public as informix;
- REVOKE ALL ON informix.ph_bg_jobs_results FROM public as informix;
- GRANT SELECT ON informix.ph_bg_jobs TO public as informix;
- GRANT SELECT ON informix.ph_bg_jobs_results TO public as informix;
- CREATE SEQUENCE informix.ph_bg_jobs_seq INCREMENT BY 1 START WITH 1 CYCLE NOCACHE ;
- CREATE TABLE IF NOT EXISTS informix.ph_allow
- (
- name CHAR(32) PRIMARY KEY,
- perms BIGINT,
- lastupdated DATETIME YEAR TO SECOND
- DEFAULT CURRENT YEAR TO SECOND
- ) LOCK MODE ROW;
- REVOKE ALL ON informix.ph_allow FROM public as informix;
- GRANT SELECT ON informix.ph_allow TO public as informix;
- CREATE VIEW IF NOT EXISTS
- ph_allow_list(name, perms, lastupdated, perm_list) AS
- SELECT name, perms, lastupdated, admin_list_perms(perms)
- FROM ph_allow;
- {
- **********************************************************************
- **********************************************************************
- EXAMPLE FUNCTIONS
- **********************************************************************
- **********************************************************************
- }
- create function
- informix.dbcron_submit_task(informix.lvarchar, informix.lvarchar)
- returns integer
- external name '(dbcron_submit_task)'
- language C;
- create function
- informix.dbcron_submit_task(informix.lvarchar, informix.pointer)
- returns integer
- external name '(dbcron_submit_task)'
- language C;
- create function
- informix.rhead()
- returns informix.pointer
- external name '(get_RHEAD)'
- language C;
- create function
- informix.dbcron_template_udr_ptr(informix.integer, informix.pointer)
- returns integer
- external name '(dbcron_template_udr_ptr)'
- language C;
- create function
- informix.ifx_ha_fire_logwrap_alarm ( varchar ( 128 ) )
- returns integer
- external name '(cloneFireLogWrapAlarm)'
- language C;
- create function
- informix.adm_add_storage(informix.pointer)
- returns informix.integer
- external name '(adm_add_storage)'
- language C;
- create function
- informix.mon_low_storage(informix.integer,informix.integer)
- returns informix.integer
- external name '(mon_low_storage)'
- language C;
- create function
- informix.adm_auto_compress(informix.integer, informix.integer,
- informix.pointer)
- returns informix.integer
- external name '(adm_auto_compress)'
- language C;
- {* This table should be the last one created. Its *
- * creation order ensures other object were created *
- * successfully.
- *}
-
- create table informix.ph_version
- (
- object varchar(129),
- type varchar(18),
- value integer
- );
- create unique index informix.ph_version_ix1 on ph_version (object,type);
- insert into ph_version values ("ph_version","value",1);
- insert into ph_version values ("ph_version","table",3);
- insert into ph_version values ("ph_task","table",27);
- insert into ph_version values ("ph_task","index",3);
- insert into ph_version values ("ph_task","colnames",291);
- insert into ph_version values ("ph_run","table",9);
- insert into ph_version values ("ph_run","index",3);
- insert into ph_version values ("ph_run","colnames",88);
- insert into ph_version values ("ph_alert","table",14);
- insert into ph_version values ("ph_alert","index",2);
- insert into ph_version values ("ph_alert","colnames",182);
- insert into ph_version values ("ph_threshold","table",6);
- insert into ph_version values ("ph_threshold","index",2);
- insert into ph_version values ("ph_threshold","colnames",41);
- insert into ph_version values ("command_history","table",7);
- insert into ph_version values ("command_history","index",3);
- insert into ph_version values ("command_history","colnames",80);
- insert into ph_version values ("ph_group","table",3);
- insert into ph_version values ("ph_group","index",2);
- insert into ph_version values ("ph_group","colnames",35);
- {*
- * Storage pool
- *
- * This table stores directories, cooked files and raw devices for use
- * by the storage provisioning feature. Columns are as follows:
- * entry_id -- Serial used to id an entry
- * path -- The path to the device/directory/file
- * beg_offset -- Starting offset of entry
- * end_offset -- End offset of entry
- * chunk_size -- Minimum size of an allocation from this entry
- * priority -- Affects order in which this entry will be considered
- * last_alloc -- Date/time of last allocation from this entry
- * logid -- We use the last two columns to store a log position
- * logused -- so we can allocate in round-robin fashion.
- *
- * All entries can be broken down into two categories: Fixed Length and
- * Extendable. The information stored in three of the columns is different
- * for the two types of entry:
- *
- * Fixed Length
- * beg_offset Starting offset into device
- * end_offset End offset into device
- * chunk_size minimum size of chunk allocated from this device
- *
- * Extendable
- * beg_offset Starting offset into device, 0 for directory
- * end_offset 0
- * chunk_size Initial size of either the device or the cooked
- * chunks within the directory
- *
- * Note that we can distinguish between fixed length and extendable items,
- * since fixed length entries always have a non-zero end_offset value. We
- * distinguish between directories and files/devices using the mt_aio_stat()
- * routine.
- *
- * Valid 'priority' values are:
- * 1 = High
- * 2 = Medium
- * 3 = Low
- *
- * Default: 2
- *}
- create table informix.storagepool
- (
- entry_id serial not null,
- path varchar(255) not null,
- beg_offset bigint not null,
- end_offset bigint not null,
- chunk_size bigint not null,
- status varchar(255),
- priority int default 2,
- last_alloc datetime year to second,
- logid int,
- logused int
- ) lock mode row;
- create unique index informix.ix_storagepool_1 ON storagepool(entry_id);
- {*****************************************************************
- ******************************************************************
- Create the DSAC Common SQL API procedures
- ******************************************************************
- ******************************************************************}
- create function SYSPROC.GET_MESSAGE
- ( INOUT MAJOR_VERSION INTEGER
- , INOUT MINOR_VERSION INTEGER
- , REQUESTED_LOCALE VARCHAR(33)
- , XML_INPUT BLOB
- , XML_FILTER BLOB
- , OUT XML_OUTPUT BLOB
- , OUT XML_MESSAGE BLOB)
- RETURNING INTEGER
- WITH (HANDLESNULLS)
- external name '(admin_get_message)'
- LANGUAGE C;
- create function SYSPROC.GET_CONFIG
- ( INOUT MAJOR_VERSION INTEGER
- , INOUT MINOR_VERSION INTEGER
- , REQUESTED_LOCALE VARCHAR(33)
- , XML_INPUT BLOB
- , XML_FILTER BLOB
- , OUT XML_OUTPUT BLOB
- , OUT XML_MESSAGE BLOB)
- RETURNING INTEGER
- WITH (HANDLESNULLS)
- external name '(admin_get_config)'
- LANGUAGE C;
- create function SYSPROC.GET_SYSTEM_INFO
- ( INOUT MAJOR_VERSION INTEGER
- , INOUT MINOR_VERSION INTEGER
- , REQUESTED_LOCALE VARCHAR(33)
- , XML_INPUT BLOB
- , XML_FILTER BLOB
- , OUT XML_OUTPUT BLOB
- , OUT XML_MESSAGE BLOB)
- RETURNING INTEGER
- WITH (HANDLESNULLS)
- external name '(admin_get_system_info)'
- LANGUAGE C;
- create function SYSPROC.SET_CONFIG
- ( INOUT MAJOR_VERSION INTEGER
- , INOUT MINOR_VERSION INTEGER
- , REQUESTED_LOCALE VARCHAR(33)
- , XML_INPUT BLOB
- , XML_FILTER BLOB
- , OUT XML_OUTPUT BLOB
- , OUT XML_MESSAGE BLOB)
- RETURNING INTEGER
- WITH (HANDLESNULLS)
- external name '(admin_set_config)'
- LANGUAGE C;
- create function SYSPROC.ITMA_SET_CONFIG (
- HOST LVARCHAR(256),
- PORT INTEGER,
- OPTIONS LVARCHAR(2048),
- ACTION SMALLINT,
- OUT SQLCODE INTEGER ,
- OUT MESSAGE LVARCHAR(1331))
- RETURNING INTEGER
- WITH (HANDLESNULLS)
- external name '(admin_itma_set_config)'
- LANGUAGE C;
- create function informix.autoregexe(integer, integer, lvarchar)
- RETURNS integer
- external name '(autoregexe)'
- LANGUAGE C;
- create function informix.autoregvp(integer, integer, lvarchar)
- RETURNS integer
- external name '(autoregvp)'
- LANGUAGE C;
- create function
- informix.rwt_db_purge_tables(integer, integer, lvarchar)
- returns integer
- external name '(rwt_db_purge_tables)'
- language C;
- revoke execute on function
- rwt_db_purge_tables(integer, integer, lvarchar)
- from public;
- create function
- informix.rwt_db_purge_tables(integer, integer,
- informix.pointer)
- returns integer
- external name '(rwt_fm_purge_tables)'
- language C;
- revoke execute on function
- rwt_db_purge_tables(integer, integer, informix.pointer)
- from public;
- create function
- informix.rwt_purge_tables(tk_id integer, id integer)
- returns integer
- define dbname char(128);
- define rc integer;
- on exception
- set rc
- end exception with resume;
- foreach select name into dbname from sysmaster:sysdatabases
- execute function exectask("db_purge_tables", dbname) into rc;
- end foreach;
- return 0;
- end function;
- revoke execute on rwt_purge_tables from public;
- DROP TABLE IF EXISTS tenant;
- CREATE TABLE informix.tenant (
- tenant_id INTEGER,
- tenant_dbsname VARCHAR(128) PRIMARY KEY,
- tenant_resources BSON,
- tenant_create_time DATETIME YEAR TO SECOND
- DEFAULT CURRENT YEAR TO SECOND,
- tenant_last_updated DATETIME YEAR TO SECOND
- DEFAULT CURRENT YEAR TO SECOND
- );
- CLOSE DATABASE;
|