SOURCES: database_autoincrement_corruption.patch (NEW) - new

arekm arekm at pld-linux.org
Thu Jun 29 13:00:10 CEST 2006


Author: arekm                        Date: Thu Jun 29 11:00:10 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- new

---- Files affected:
SOURCES:
   database_autoincrement_corruption.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/database_autoincrement_corruption.patch
diff -u /dev/null SOURCES/database_autoincrement_corruption.patch:1.1
--- /dev/null	Thu Jun 29 13:00:10 2006
+++ SOURCES/database_autoincrement_corruption.patch	Thu Jun 29 13:00:05 2006
@@ -0,0 +1,28 @@
+diff -ruBbd cacti-0.8.6h/lib/database.php cacti-0.8.6h-patched/lib/database.php
+--- cacti-0.8.6h/lib/database.php	2006-04-24 20:07:11.000000000 -0400
++++ cacti-0.8.6h-patched/lib/database.php	2006-04-24 20:04:26.000000000 -0400
+@@ -214,17 +214,21 @@
+    @arg $table_name - the name of the table to make the replacement in
+    @arg $key_cols - the primary key(s)
+    @returns - the auto incriment id column (if applicable) */
+-function sql_save($array_items, $table_name, $key_cols = "id", $autoinc = TRUE) {
++function sql_save($array_items, $table_name, $key_cols = "id", $autoinc = true) {
+ 	global $cnn_id;
+ 
+ 	while (list ($key, $value) = each ($array_items)) {
+ 		$array_items[$key] = "\"" . sql_sanitize($value) . "\"";
+ 	}
+ 
+-	if (!$cnn_id->Replace($table_name, $array_items, $key_cols, FALSE, $autoinc)) { return 0; }
++	$replace_result = $cnn_id->Replace($table_name, $array_items, $key_cols, FALSE, $autoinc);
++
++	if ($replace_result == 0) {
++		return 0;
++	}
+ 
+ 	/* get the last AUTO_ID and return it */
+-	if ($cnn_id->Insert_ID() == "0") {
++	if (($cnn_id->Insert_ID() == "0") || ($replace_result == 1)) {
+ 		if (!is_array($key_cols)) {
+ 			if (isset($array_items[$key_cols])) {
+ 				return str_replace("\"", "", $array_items[$key_cols]);
================================================================


More information about the pld-cvs-commit mailing list