summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authoralex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-11-24 16:58:31 +0000
committeralex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-11-24 16:58:31 +0000
commit69c3bb458c5fd3924b1149f2e8e1852fdcffb7fd (patch)
tree3d3be14102ca9965e9e847f388e6d50c1aaef35e /src/libs
parent1964ae1cb717b09523b924d351627d1601ab968f (diff)
downloadzabbix-69c3bb458c5fd3924b1149f2e8e1852fdcffb7fd.tar.gz
zabbix-69c3bb458c5fd3924b1149f2e8e1852fdcffb7fd.tar.xz
zabbix-69c3bb458c5fd3924b1149f2e8e1852fdcffb7fd.zip
More changes for DB.
git-svn-id: svn://svn.zabbix.com/trunk@3514 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/zbxdbhigh/db.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/libs/zbxdbhigh/db.c b/src/libs/zbxdbhigh/db.c
index e8c7c549..4635fe82 100644
--- a/src/libs/zbxdbhigh/db.c
+++ b/src/libs/zbxdbhigh/db.c
@@ -1796,8 +1796,9 @@ int DBadd_alert(zbx_uint64_t actionid, zbx_uint64_t userid, zbx_uint64_t trigger
DBescape_string(sendto,sendto_esc,MAX_STRING_LEN);
DBescape_string(subject,subject_esc,MAX_STRING_LEN);
DBescape_string(message,message_esc,MAX_STRING_LEN);
- DBexecute("insert into alerts (actionid,triggerid,userid,clock,mediatypeid,sendto,subject,message,status,retries,maxrepeats,delay)"
- " values (" ZBX_FS_UI64 "," ZBX_FS_UI64 "," ZBX_FS_UI64 ",%d," ZBX_FS_UI64 ",'%s','%s','%s',0,0,%d,%d)",
+ DBexecute("insert into alerts (alertid, actionid,triggerid,userid,clock,mediatypeid,sendto,subject,message,status,retries,maxrepeats,delay)"
+ " values (" ZBX_FS_UI64 "," ZBX_FS_UI64 "," ZBX_FS_UI64 "," ZBX_FS_UI64 ",%d," ZBX_FS_UI64 ",'%s','%s','%s',0,0,%d,%d)",
+ DBget_maxid("alert_maxid"),
actionid,triggerid,userid,now,mediatypeid,sendto_esc,subject_esc,message_esc, maxrepeats, repeatdelay);
return SUCCEED;
@@ -2013,3 +2014,29 @@ zbx_uint64_t DBget_nextid(char *table, char *field)
return res;
}
+
+zbx_uint64_t DBget_maxid(char *field)
+{
+ DB_RESULT result;
+ DB_ROW row;
+ zbx_uint64_t ret;
+
+ result = DBselect("select %s from nodes where nodeid=%d", field, CONFIG_NODEID);
+ row = DBfetch(result);
+
+ if(!row || DBis_null(row[0])==SUCCEED)
+ {
+ ret = CONFIG_NODEID*(zbx_uint64_t)__UINT64_C(100000000000000) + 1;
+ }
+ else
+ {
+ ZBX_STR2UINT64(ret, row[0]);
+ ret = CONFIG_NODEID*(zbx_uint64_t)__UINT64_C(100000000000000) + ret;
+ ret++;
+ }
+ DBexecute("update nodes set %s=%s+1 where nodeid=%d",
+ field, field, CONFIG_NODEID);
+ DBfree_result(result);
+
+ return ret;
+}