From: Florian G. <re...@us...> - 2007-04-11 13:43:43
|
Update of /cvsroot/perfparse/_perfparse/db_tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20268 Modified Files: convert.c Log Message: make cache work and cleanup Index: convert.c =================================================================== RCS file: /cvsroot/perfparse/_perfparse/db_tools/convert.c,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** convert.c 10 Apr 2007 23:24:00 -0000 1.28 --- convert.c 11 Apr 2007 13:43:40 -0000 1.29 *************** *** 48,67 **** // debug ! #define DEBUG - void addIdFields (); void checkTables (); - void addTableHostGroup (void); - void addTableDeletePolicy (void); - void addTableRegistry (void); - void addTablePrefs (void); - void addTableGraphs (void); - void addTableBinSummaryDelPolicy (); - void addTableBinSummary (); - void addTableBinSummaryHeader (); - void addTableBinSummaryData (); - void addTableUsers (); - void addTableRawSummary (); - void addTableRawSummaryData (); void pp_mysql_convert_sql_failure(char*f,int l, const char*str, const char *error); MYSQL_RES *dbtool_mysql_query(const char *sql, MYSQL *p_tmp_db_mysql, MYSQL_RES *p_tmp_query_result); --- 48,54 ---- // debug ! // #define DEBUG void checkTables (); void pp_mysql_convert_sql_failure(char*f,int l, const char*str, const char *error); MYSQL_RES *dbtool_mysql_query(const char *sql, MYSQL *p_tmp_db_mysql, MYSQL_RES *p_tmp_query_result); *************** *** 112,116 **** dbtool_freeResult(query_result_new); // save result in cache ! g_hash_table_insert(policiesCache,(gpointer) policy_name,&Pid); #ifdef DEBUG printw("\nPolicyId Cache Miss: %s -> %d\n",policy_name,Pid);refresh(); --- 99,105 ---- dbtool_freeResult(query_result_new); // save result in cache ! pPid=malloc(sizeof(int)); ! *pPid=Pid; ! g_hash_table_insert(policiesCache,(gpointer) policy_name,pPid); #ifdef DEBUG printw("\nPolicyId Cache Miss: %s -> %d\n",policy_name,Pid);refresh(); *************** *** 146,150 **** dbtool_freeResult(query_result_new); // save result in cache ! g_hash_table_insert(groupsCache,(gpointer) group_name,&Gid); #ifdef DEBUG printw("\nGroupId Cache Miss: %s -> %d\n",group_name,Gid);refresh(); --- 135,141 ---- dbtool_freeResult(query_result_new); // save result in cache ! pGid=malloc(sizeof(int)); ! *pGid=Gid; ! g_hash_table_insert(groupsCache,(gpointer) group_name,pGid); #ifdef DEBUG printw("\nGroupId Cache Miss: %s -> %d\n",group_name,Gid);refresh(); *************** *** 180,184 **** dbtool_freeResult(query_result_new); // save result in cache ! g_hash_table_insert(hostsCache,(gpointer) host_name,&Hid); #ifdef DEBUG printw("\nHostId Cache Miss: %s -> %d\n",host_name,Hid);refresh(); --- 171,177 ---- dbtool_freeResult(query_result_new); // save result in cache ! pHid=malloc(sizeof(int)); ! *pHid=Hid; ! g_hash_table_insert(hostsCache,(gpointer) host_name,pHid); #ifdef DEBUG printw("\nHostId Cache Miss: %s -> %d\n",host_name,Hid);refresh(); *************** *** 625,755 **** - /* - int i_steps=20; - int i=0; - char *s_cont_step=getRegistry("dummy","pp/database/conversion_step",NULL); - int i_cont_step=0; - if(s_cont_step != NULL) { - i_cont_step=atoi(s_cont_step); - printf(_("Previous database conversion not complete. Continuing with step %d.\n"), - i_cont_step); - } - - if(i_cont_step < i_steps) { - printf (_("Warning, this stage may take some time:\n")); - } - - if(i_cont_step < i++) { - - printf (_("[Step %d/%d] Creating new group table:\n"),i,i_steps); - query ("create table perfdata_groups \ - (group_id INT AUTO_INCREMENT PRIMARY KEY, \ - group_name VARCHAR(75) UNIQUE) type=InnoDB \ - select group_name from perfdata_host_group"); - setConversionStep(i); - } - - if(i_cont_step < i++) { - printf (_("[Step %d/%d] Dropping foreign key from perfdata_host to perfdata_host_group table.\n"),i,i_steps); - if(!DropForeignKey ("perfdata_host", "perfdata_host_group")) { - printf("Foreign Key not found!\nExiting.\n"); - exit(1); - } - setConversionStep(i); - } - - if(i_cont_step < i++) { - printf (_("[Step %d/%d] Dropping table perfdata_host_group\n"),i,i_steps); - query ("drop table perfdata_host_group"); - setConversionStep(i); - } - - if(i_cont_step < i++) { - printf(_("[Step %d/%d] Creating group mapping table perfdata_host_groups\n"),i,i_steps); - query ("CREATE TABLE IF NOT EXISTS perfdata_host_groups ( \ - group_id INT, \ - FOREIGN KEY perfdata_host_groups_ibfk_1 (group_id) \ - REFERENCES perfdata_groups(group_id) ON DELETE CASCADE, \ - host_id INT, \ - FOREIGN KEY perfdata_host_groups_ibfk_2 (host_id) \ - REFERENCES perfdata_host(host_id) ON DELETE CASCADE \ - ) type=InnoDB;"); - setConversionStep(i); - } - - if(i_cont_step < i++) { - printf(_("[Step %d/%d] Filling table perfdata_host_groups\n"),i,i_steps); - query ("insert into perfdata_host_groups(group_id,host_id) \ - select g.group_id, h.host_id from perfdata_groups g,\ - perfdata_host h where g.group_name=h.group_name"); - setConversionStep(i); - } - - */ - /* - if(i_cont_step < i++) { - printf(_("[Step %d/%d] Fixing keys of perfdata_host table pt. 1\n"),i,i_steps); - if(!DropForeignKey ("perfdata_service_raw", "perfdata_host")) { - printf("Foreign Key not found!\nExiting.\n"); - exit(1); - } - setConversionStep(i); - } - - - if(i_cont_step < i++) { - printf(_("[Step %d/%d] Fixing keys of perfdata_host table pt. 2\n"),i,i_steps); - if(!DropForeignKey ("perfdata_service_metric", "perfdata_host")) { - printf("Foreign Key not found!\nExiting.\n"); - exit(1); - } - setConversionStep(i); - } - */ - /* - if(i_cont_step < i++) { - printf(_("[Step %d/%d] Fixing keys of perfdata_host table pt. 3\n"),i,i_steps); - if(!DropForeignKey ("perfdata_service", "perfdata_host")) { - printf("Foreign Key not found!\nExiting.\n"); - exit(1); - } - setConversionStep(i); - } - - if(i_cont_step < i++) { - printf(_("[Step %d/%d] Fixing keys of perfdata_host table pt. 4\n"),i,i_steps); - if(!DropKey ("perfdata_host", "host_id")) { - printf("Key not found!\nExiting.\n"); - exit(1); - } - setConversionStep(i); - } - - if(i_cont_step < i++) { - printf(_("[Step %d/%d] Fixing keys of perfdata_host table pt. 5\n"),i,i_steps); - query("alter table perfdata_host drop primary key"); - setConversionStep(i); - } - - if(i_cont_step < i++) { - printf(_("[Step %d/%d] Fixing keys of perfdata_host table pt. 6\n"),i,i_steps); - query("alter table perfdata_host add constraint unique key perfdata_host_ix0 (host_name)"); - setConversionStep(i); - } - - if(i_cont_step < i++) { - printf(_("[Step %d/%d] Fixing keys of perfdata_host table pt. 7\n"),i,i_steps); - query("alter table perfdata_host modify column host_id INT AUTO_INCREMENT PRIMARY KEY"); - setConversionStep(i); - } - - if(i_cont_step < i++) { - printf(_("[Step %d/%d] Dropping group_name from perfdata_host table\n"),i,i_steps); - query("alter table perfdata_host drop column group_name"); - setConversionStep(i); - } - - */ - //TODO: End comment versioncheck //} --- 618,621 ---- *************** *** 799,803 **** } fmtstr=malloc(10); ! sprintf(fmtstr,"%%s%d",length); echo(); getyx(stdscr,y,x); --- 665,669 ---- } fmtstr=malloc(10); ! sprintf(fmtstr,"%%s%d",(int) length); echo(); getyx(stdscr,y,x); *************** *** 900,1146 **** } - int DropKey(char *sTableName, char *sColumnName) { - GString *querystr = g_string_new (""); - GString *resultstr = g_string_new (""); - char *tmpstr; - regex_t preg_struct; - regex_t *preg = &preg_struct; - GString *regex = g_string_new (""); - size_t nmatch = 10; - regmatch_t pmatch[10]; - int i; - - - g_string_printf (querystr, "show create table %s", sTableName); - query (querystr->str); - if ((result_row = mysql_fetch_row (query_result))) - { - g_string_assign (resultstr, result_row[1]); - g_string_printf (regex, - ".*KEY `(\\S+)` \\(`%s`\\).*", // todo: exclude foreign keys - sColumnName); - i = regcomp (preg, regex->str, REG_EXTENDED | REG_ICASE); - i = regexec (preg, resultstr->str, nmatch, pmatch, - REG_NOTEOL); - if (i == REG_NOMATCH) - { - return (FALSE); - } - else - { - for (i = 1; i < nmatch; i++) // pmatch[0] contains the whole search - { - if (pmatch[i].rm_so != -1 - && pmatch[i].rm_eo != -1) - { - tmpstr = resultstr->str + pmatch[i].rm_eo; - *tmpstr = '\0'; - printf ("Match %d so: %d, eo:%d String %s\n", i, - pmatch[i].rm_so, pmatch[i].rm_eo,resultstr->str+pmatch[i].rm_so); - g_string_printf (querystr, - "ALTER TABLE %s DROP KEY %s", - sTableName, resultstr->str + pmatch[i].rm_so); - query (querystr->str); - } - } - } - } - return(TRUE); - } - - - int - DropForeignKey (char *TableName, char *ForeignTableName) - { - GString *querystr = g_string_new (""); - GString *resultstr = g_string_new (""); - char *tmpstr; - regex_t preg_struct; - regex_t *preg = &preg_struct; - GString *regex = g_string_new (""); - size_t nmatch = 10; - regmatch_t pmatch[10]; - int i; - - - g_string_printf (querystr, "show create table %s", TableName); - query (querystr->str); - if ((result_row = mysql_fetch_row (query_result))) - { - g_string_assign (resultstr, result_row[1]); - g_string_printf (regex, - ".*CONSTRAINT `(\\S+)` FOREIGN KEY \\S+ REFERENCES `%s`.*", - ForeignTableName); - i = regcomp (preg, regex->str, REG_EXTENDED | REG_ICASE); - i = regexec (preg, resultstr->str, nmatch, pmatch, - REG_NOTEOL); - if (i == REG_NOMATCH) - { - return (FALSE); - } - else - { - for (i = 1; i < nmatch; i++) // pmatch[0] contains the whole search - { - if (pmatch[i].rm_so != -1 - && pmatch[i].rm_eo != -1) - { - tmpstr = resultstr->str + pmatch[i].rm_eo; - *tmpstr = '\0'; - /*printf ("Match %d so: %d, eo:%d String %s\n", i, - * pmatch[i].rm_so, pmatch[i].rm_eo,resultstr->str+pmatch[i].rm_so); */ - g_string_printf (querystr, - "ALTER TABLE %s DROP FOREIGN KEY %s", - TableName, resultstr->str + pmatch[i].rm_so); - query (querystr->str); - } - } - } - } - return(TRUE); - } - - void - addIdFields () - /* - * Adds the host_id, service_id and metric_id - * and populates to the correct values. - * - * Magor conversion Christmas 2004, Ben. - * - */ - { - int iNext; - #ifdef USE_DB_POSTGRESQL - int numberOfRows; - #endif - - /* - * 1. Hosts - */ - - if (addField ("perfdata_host", "host_id", "INT")) - { - query_no_return - ("ALTER TABLE perfdata_host ADD UNIQUE(host_id)"); - } - - iNext = query_int ("SELECT MAX(host_id) FROM perfdata_host"); - iNext++; - - query ("SELECT host_name, host_id FROM perfdata_host"); - - #ifdef USE_DB_MYSQL - while ((result_row = mysql_fetch_row (query_result))) - { - #elif defined USE_DB_POSTGRESQL - numberOfRows = rows (); - for (currentRow = 0; currentRow < numberOfRows; currentRow++) - { - #endif - - if (iData (1) == 0) - { - g_string_printf (s_SQL, - "UPDATE perfdata_host SET host_id = %d WHERE host_name = '%s'", - iNext, sql_escape (sData (0), - PERCENT_ESCAPE_CHAR)); - query_no_return (s_SQL->str); - iNext++; - } - - } - - - /* - * 2. Services - */ - - if (addField ("perfdata_service", "service_id", "INT")) - { - query_no_return - ("ALTER TABLE perfdata_service ADD UNIQUE(service_id)"); - } - - iNext = query_int ("SELECT MAX(service_id) FROM perfdata_service"); - iNext++; - - query ("SELECT host_name, service_description, service_id FROM perfdata_service"); - - #ifdef USE_DB_MYSQL - while ((result_row = mysql_fetch_row (query_result))) - { - #elif defined USE_DB_POSTGRESQL - numberOfRows = rows (); - for (currentRow = 0; currentRow < numberOfRows; currentRow++) - { - #endif - - if (iData (2) == 0) - { - g_string_printf (s_SQL, - "UPDATE perfdata_service SET service_id = %d WHERE service_description = '%s'", - iNext, sql_escape (sData (1), - PERCENT_ESCAPE_CHAR)); - g_string_append_printf (s_SQL, - " AND host_name = '%s'", - sql_escape (sData (0), - PERCENT_ESCAPE_CHAR)); - query_no_return (s_SQL->str); - iNext++; - } - - } - - - /* - * 3. Metrics - */ - - if (addField ("perfdata_service_metric", "metric_id", "INT")) - { - query_no_return - ("ALTER TABLE perfdata_service_metric ADD UNIQUE(metric_id)"); - } - - iNext = query_int - ("SELECT MAX(metric_id) FROM perfdata_service_metric"); - iNext++; - - query ("SELECT host_name, service_description, metric, metric_id FROM perfdata_service_metric"); - - #ifdef USE_DB_MYSQL - while ((result_row = mysql_fetch_row (query_result))) - { - #elif defined USE_DB_POSTGRESQL - numberOfRows = rows (); - for (currentRow = 0; currentRow < numberOfRows; currentRow++) - { - #endif - - if (iData (3) == 0) - { - g_string_printf (s_SQL, - "UPDATE perfdata_service_metric SET metric_id = %d WHERE metric = '%s'", - iNext, sql_escape (sData (2), - PERCENT_ESCAPE_CHAR)); - g_string_append_printf (s_SQL, - " AND service_description = '%s'", - sql_escape (sData (1), - PERCENT_ESCAPE_CHAR)); - g_string_append_printf (s_SQL, - " AND host_name = '%s'", - sql_escape (sData (0), - PERCENT_ESCAPE_CHAR)); - query_no_return (s_SQL->str); - iNext++; - } - - } - - - } - - void checkTables (void) --- 766,769 ---- *************** *** 1148,1151 **** --- 771,775 ---- /* * [TODO] Make this work with PostgreSQL + * TODO: Adopt to new DB structure */ *************** *** 1205,1208 **** --- 829,833 ---- } + /* if (!bHostGroup) addTableHostGroup (); *************** *** 1230,1233 **** --- 855,859 ---- if (!bRawSummaryData) addTableRawSummaryData (); + */ #endif *************** *** 1235,1535 **** } - void - addTableBinSummaryDelPolicy () - { - - g_string_assign (s_SQL, - "CREATE TABLE IF NOT EXISTS perfdata_bin_summary_del_policy (" - " policy_name VARCHAR(20) NOT NULL PRIMARY KEY," - " delete_policy INT DEFAULT NULL" - " ) type=InnoDB"); - query_no_return (s_SQL->str); - } - - - void - addTableBinSummary () - { - - g_string_assign (s_SQL, - "CREATE TABLE IF NOT EXISTS perfdata_bin_summary (" - " frequency INT NOT NULL," - " PRIMARY KEY (frequency)," - " notes TEXT NOT NULL DEFAULT ''," - " is_deleted TINYINT NOT NULL DEFAULT 0," - " default_delete INT NOT NULL DEFAULT 1000" - " ) type=InnoDB"); - query_no_return (s_SQL->str); - - } - - - void - addTableBinSummaryHeader () - { - - g_string_assign (s_SQL, - "CREATE TABLE IF NOT EXISTS perfdata_bin_summary_header (" - " metric_id INT NOT NULL," - " frequency INT NOT NULL," - " PRIMARY KEY (metric_id, frequency)," - " FOREIGN KEY (metric_id)" - " REFERENCES perfdata_service_metric (metric_id)" - " ON DELETE RESTRICT," - " INDEX frequency_idx (frequency)," - " FOREIGN KEY (frequency)" - " REFERENCES perfdata_bin_summary (frequency)" - " ON DELETE RESTRICT," - " last_data INTEGER," - " bin_delete_policy INTEGER DEFAULT NULL," - " bin_delete_policy_name VARCHAR(20) DEFAULT NULL," - " bin_delete_policy_type ENUM('template','user') NOT NULL," - " is_deleted TINYINT DEFAULT 0" - " ) type=InnoDB"); - query_no_return (s_SQL->str); - - } - - - void - addTableBinSummaryData () - { - g_string_assign (s_SQL, - "CREATE TABLE IF NOT EXISTS perfdata_bin_summary_data (" - " metric_id INT NOT NULL," - " frequency INT NOT NULL," - " ctime DATETIME NOT NULL," - " PRIMARY KEY (metric_id, frequency, ctime)," - " FOREIGN KEY (metric_id, frequency)" - " REFERENCES perfdata_bin_summary_header (metric_id, frequency)" - " ON DELETE RESTRICT," - " val_count INTEGER NOT NULL DEFAULT 0," - " sum_val DOUBLE NOT NULL," - " sum_square_val DOUBLE NOT NULL," - " max_val DOUBLE NOT NULL," - " min_val DOUBLE NOT NULL," - " max_warn DOUBLE NOT NULL," - " min_warn DOUBLE NOT NULL," - " max_critical DOUBLE NOT NULL," - " min_critical DOUBLE NOT NULL" - " ) type=InnoDB"); - query_no_return (s_SQL->str); - - } - - - - void - addTablePrefs (void) - { - g_string_assign (s_SQL, "CREATE TABLE IF NOT EXISTS perfdata_prefs (" - " user VARCHAR(20) NOT NULL PRIMARY KEY," - " group_name VARCHAR(75)," - " INDEX host_ix0 (group_name)," - " FOREIGN KEY (group_name) REFERENCES perfdata_host_group (group_name) ON DELETE SET NULL" - " ) type=InnoDB"); - query_no_return (s_SQL->str); - } - - void - addTableGraphs (void) - { - g_string_assign (s_SQL, "CREATE TABLE IF NOT EXISTS perfdata_graphs (" - " id INT PRIMARY KEY NOT NULL AUTO_INCREMENT," - " group_name VARCHAR(75)," - " INDEX host_ix0 (group_name)," - " FOREIGN KEY (group_name) REFERENCES perfdata_host_group (group_name) ON DELETE SET NULL," - " title VARCHAR(80)," - " descript TEXT," - " url TEXT" - " ) type=InnoDB"); - query_no_return (s_SQL->str); - } - - void - addTableRegistry (void) - { - g_string_assign (s_SQL, - "CREATE TABLE IF NOT EXISTS perfdata_registry (" - " host VARCHAR(75) DEFAULT NULL," - " rkey VARCHAR(80) NOT NULL," - " PRIMARY KEY (host, rkey)," - " rvalue TEXT," - " ctime DATETIME NOT NULL " - " ) type=InnoDB"); - query_no_return (s_SQL->str); - } - - void - addTableUsers (void) - { - g_string_assign (s_SQL, "CREATE TABLE IF NOT EXISTS perfdata_users (" - " user_name VARCHAR(20) NOT NULL," - " PRIMARY KEY (user_name)," - " password VARCHAR(20)," - " group_name VARCHAR(75)" - " REFERENCES perfdata_host_group (group_name)" - " ON DELETE SET NULL," - " raw_show_normal TINYINT NOT NULL DEFAULT 1," - " raw_show_warning TINYINT NOT NULL DEFAULT 1," - " raw_show_critical TINYINT NOT NULL DEFAULT 1," - " raw_show_unknown TINYINT NOT NULL DEFAULT 1," - " raw_refresh_time INT NOT NULL DEFAULT 0" - " ) type=InnoDB"); - query_no_return (s_SQL->str); - } - - - void - addTableHostGroup (void) - { - - - /* - * Add new host group table and link - */ - query_no_return - ("CREATE TABLE IF NOT EXISTS perfdata_host_group ( group_name VARCHAR(75) PRIMARY KEY) type=InnoDB"); - addField ("perfdata_host", "group_name", "VARCHAR(75)"); - query_no_return - ("ALTER TABLE perfdata_host ADD INDEX host_ix0 (group_name)"); - query_no_return - ("ALTER TABLE perfdata_host ADD FOREIGN KEY (group_name) REFERENCES perfdata_host_group(group_name) ON DELETE SET NULL"); - - - - } - - void - addTableDeletePolicy (void) - { - /* - * Field added in 0.06 and removed in 0.08 - */ - dropField ("perfdata_service_raw", "delete_policy"); - - /* - * Fields added in 0.11 - */ - query_no_return - ("CREATE TABLE IF NOT EXISTS perfdata_delete_policy ( " - "policy_name VARCHAR(20) NOT NULL PRIMARY KEY, " - "delete_policy INT DEFAULT NULL " ") TYPE=InnoDB"); - - /* - * table perfdata_host - */ - addField ("perfdata_host", "raw_delete_policy", - "INTEGER DEFAULT NULL"); - addField ("perfdata_host", "raw_delete_policy_name", - "VARCHAR(20) DEFAULT NULL"); - addField ("perfdata_host", "raw_delete_policy_type", - "ENUM('user','template') NOT NULL"); - query_no_return - ("ALTER TABLE perfdata_host ADD INDEX host_ix1 (raw_delete_policy_name)"); - query_no_return ("ALTER TABLE perfdata_host ADD " - "FOREIGN KEY (raw_delete_policy_name) " - "REFERENCES perfdata_delete_policy(policy_name) " - "ON DELETE SET NULL"); - - addField ("perfdata_host", "bin_delete_policy", - "INTEGER DEFAULT NULL"); - addField ("perfdata_host", "bin_delete_policy_name", - "VARCHAR(20) DEFAULT NULL"); - addField ("perfdata_host", "bin_delete_policy_type", - "ENUM('user','template') NOT NULL"); - query_no_return - ("ALTER TABLE perfdata_host ADD INDEX host_ix2 (bin_delete_policy_name)"); - query_no_return ("ALTER TABLE perfdata_host ADD " - "FOREIGN KEY (bin_delete_policy_name) " - "REFERENCES perfdata_delete_policy(policy_name) " - "ON DELETE SET NULL"); - query_no_return - ("UPDATE perfdata_host SET raw_delete_policy_type='template'"); - query_no_return - ("UPDATE perfdata_host SET bin_delete_policy_type='template'"); - - addField ("perfdata_host", "is_deleted", "TINYINT DEFAULT 0"); - - /* - * table perfdata_service - */ - addField ("perfdata_service", "raw_delete_policy", - "INTEGER DEFAULT NULL"); - addField ("perfdata_service", "raw_delete_policy_name", - "VARCHAR(20) DEFAULT NULL"); - addField ("perfdata_service", "raw_delete_policy_type", - "ENUM('template','user','host') NOT NULL"); - query_no_return - ("ALTER TABLE perfdata_service ADD INDEX service_ix2 (raw_delete_policy_name)"); - query_no_return ("ALTER TABLE perfdata_service ADD " - "FOREIGN KEY (raw_delete_policy_name) " - "REFERENCES perfdata_delete_policy(policy_name) " - "ON DELETE SET NULL"); - query_no_return - ("UPDATE perfdata_service SET raw_delete_policy=delete_policy, raw_delete_policy_type='user'"); - dropField ("perfdata_service", "delete_policy"); - - addField ("perfdata_service", "is_deleted", "TINYINT DEFAULT 0"); - - /* - * table perfdata_service_metric - */ - addField ("perfdata_service_metric", "bin_delete_policy", - "INTEGER DEFAULT NULL"); - addField ("perfdata_service_metric", "bin_delete_policy_name", - "VARCHAR(20) DEFAULT NULL"); - addField ("perfdata_service_metric", "bin_delete_policy_type", - "ENUM('template','user','host') NOT NULL"); - query_no_return - ("ALTER TABLE perfdata_service_metric ADD INDEX metric_ix2 (bin_delete_policy_name)"); - query_no_return ("ALTER TABLE perfdata_service_metric ADD " - "FOREIGN KEY (bin_delete_policy_name) " - "REFERENCES perfdata_delete_policy(policy_name) " - "ON DELETE SET NULL"); - query_no_return - ("UPDATE perfdata_service_metric SET bin_delete_policy=delete_policy, bin_delete_policy_type='user'"); - dropField ("perfdata_service_metric", "delete_policy"); - - addField ("perfdata_service_metric", "is_deleted", - "TINYINT DEFAULT 0"); - - } - - void - addTableRawSummary () - { - - g_string_assign (s_SQL, - "CREATE TABLE IF NOT EXISTS perfdata_raw_summary (" - "service_id INT NOT NULL," "epoch INT NOT NULL," - "last_ctime INT default NULL," - "last_nagios_status INT default NULL," - "PRIMARY KEY (service_id, epoch)," - "FOREIGN KEY (service_id)" - " REFERENCES perfdata_service (service_id)" - ") TYPE=InnoDB"); - query_no_return (s_SQL->str); - - } - - void - addTableRawSummaryData () - { - - g_string_assign (s_SQL, - "CREATE TABLE IF NOT EXISTS perfdata_raw_summary_data (" - "service_id INT NOT NULL ," "epoch INT NOT NULL ," - "epoch_start INT NOT NULL ," - "last_ctime INT NOT NULL ," - "last_nagios_status INT default NULL," - "count INT NOT NULL ," "sum_uptime INT NOT NULL ," - "sum_warntime INT NOT NULL ," - "sum_criticaltime INT NOT NULL ," - "sum_undeftime INT NOT NULL ," - "PRIMARY KEY (service_id,epoch,epoch_start)," - "FOREIGN KEY (service_id, epoch) REFERENCES perfdata_raw_summary (service_id, epoch)" - ") TYPE=InnoDB"); - - query_no_return (s_SQL->str); - } --- 861,862 ---- |