r2189 - handle tags better during IPRanges UNIQUE pre-transforms
authorDenis Ovsienko <infrastation@yandex.ru>
Sat, 30 Aug 2008 16:11:11 +0000 (16:11 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Sat, 30 Aug 2008 16:11:11 +0000 (16:11 +0000)
 - add release notes for 0.16.3

README
upgrade.php

diff --git a/README b/README
index ca809d4..b03d279 100644 (file)
--- a/README
+++ b/README
@@ -117,6 +117,7 @@ Fedora: yum install php-mbstring
 ALTLinux: apt-get install php5-mbstring
 
 *** Upgrading to 0.16.1 ***
+
 This release fixes a missing UNIQUE key in the database. However, this fix
 may sometimes fail, if the table contains duplicate records. If the
 0.16.0-0.16.1 upgrade batch completed without errors, no action needs to be
@@ -135,3 +136,10 @@ mysql> select inet_ntoa(180879877);
 Then go to "virtual services" web-interface page and adjust the data as
 necessary. You would need to get rid of the duplicates accurately one by
 one, repeating the ADD UNIQUE query until it succeeds.
+
+*** Upgrading to 0.16.3 ***
+
+This release fixes a missing UNIQUE KEY in a table. The upgrade script may
+find it necessary first to transform some records. Because of this it is
+normal to see several "update TagStorage ... Duplicate entry" failed queries
+during the upgrade.
index cbd5e06..b056e9f 100644 (file)
@@ -77,6 +77,11 @@ function printReleaseNotes ($batchid)
                        echo 'necessary. You would need to get rid of the duplicates accurately one by one, repeating the ADD UNIQUE ';
                        echo 'query until it succeeds.<br><br>';
                        break;
+               case '0.16.3':
+                       echo "<font color=red><strong>Release notes for ${batchid}</strong></font><br>";
+                       echo 'This release fixes a missing UNIQUE KEY in a table. The upgrade script may find it necessary first to transform some records.<br>';
+                       echo 'Because of this it is normal to see several "update TagStorage ... Duplicate entry" failed queries during the upgrade.<br>';
+                       break;
                default:
                        break;
        }
@@ -1407,7 +1412,9 @@ CREATE TABLE `TagTree` (
                                                continue;
                                        }
                                        // Rewrite tags, but don't rebuild the chains. Let regular code sort it out.
+                                       // One of the next two queries will fail.
                                        $query[] = "update TagStorage set target_id = ${firstid} where target_id = ${row['id']} and target_realm = 'ipv4net'";
+                                       $query[] = "delete from TagStorage where target_id = ${row['id']} and target_realm = 'ipv4net'";
                                        $query[] = "delete from IPRanges where id = ${row['id']}";
                                }
                                unset ($r);