[93266] branches/release_2_1/base

cal at macports.org cal at macports.org
Fri May 18 09:22:15 PDT 2012


Revision: 93266
          https://trac.macports.org/changeset/93266
Author:   cal at macports.org
Date:     2012-05-18 09:22:14 -0700 (Fri, 18 May 2012)
Log Message:
-----------
Cherry-pick of r93256 from trunk
Fix database upgrade on Tiger, where SQLite doesn't support ALTER TABLE ADD COLUMN, closes #34463

Revision Links:
--------------
    https://trac.macports.org/changeset/93256

Modified Paths:
--------------
    branches/release_2_1/base/ChangeLog
    branches/release_2_1/base/src/cregistry/sql.c

Property Changed:
----------------
    branches/release_2_1/base/
    branches/release_2_1/base/ChangeLog


Property changes on: branches/release_2_1/base
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/gsoc08-privileges/base:37343-46937
/branches/gsoc09-logging/base:51231-60371
/branches/gsoc11-rev-upgrade/base:78828-88375
/branches/universal-sanity/base:51872-52323
/branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base:91825,91829,91834,92072,92342,92404,92546,92730,92785,92881,92903,92976,93062,93129,93153,93197,93250,93258-93259,93261
/users/perry/base-bugs_and_notes:45682-46060
/users/perry/base-select:44044-44692
   + /branches/gsoc08-privileges/base:37343-46937
/branches/gsoc09-logging/base:51231-60371
/branches/gsoc11-rev-upgrade/base:78828-88375
/branches/universal-sanity/base:51872-52323
/branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base:91825,91829,91834,92072,92342,92404,92546,92730,92785,92881,92903,92976,93062,93129,93153,93197,93250,93256,93258-93259,93261
/users/perry/base-bugs_and_notes:45682-46060
/users/perry/base-select:44044-44692

Modified: branches/release_2_1/base/ChangeLog
===================================================================
--- branches/release_2_1/base/ChangeLog	2012-05-18 15:27:00 UTC (rev 93265)
+++ branches/release_2_1/base/ChangeLog	2012-05-18 16:22:14 UTC (rev 93266)
@@ -18,6 +18,9 @@
     - Fixed port lookups failing for all sources when the index is missing in
       one source (#30593, jmr in r92976)
 
+    - Fix databse upgrade on Tiger, where SQLite doesn't support ALTER TABLE ADD
+      COLUMN (cal in r93256)
+
 Release 2.1.0 (2012-05-15 by jmr):
     - New configure.compiler options: macports-clang-2.9, macports-clang-3.0,
       macports-clang-3.1, macports-gcc-4.7, macports-gcc-4.8


Property changes on: branches/release_2_1/base/ChangeLog
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/gsoc08-privileges/base/ChangeLog:37343-46937
/branches/gsoc09-logging/base/ChangeLog:51231-60371
/branches/gsoc11-rev-upgrade/base/ChangeLog:78828-88375
/branches/universal-sanity/base/ChangeLog:51872-52323
/branches/variant-descs-14482/base/ChangeLog:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base/ChangeLog:91825,91829,91834,92072,92342,92404,92546,92730,92785,92881,92903,93062,93129,93153,93197,93225,93250
/users/perry/base-bugs_and_notes/ChangeLog:45682-46060
/users/perry/base-select/ChangeLog:44044-44692
   + /branches/gsoc08-privileges/base/ChangeLog:37343-46937
/branches/gsoc09-logging/base/ChangeLog:51231-60371
/branches/gsoc11-rev-upgrade/base/ChangeLog:78828-88375
/branches/universal-sanity/base/ChangeLog:51872-52323
/branches/variant-descs-14482/base/ChangeLog:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base/ChangeLog:91825,91829,91834,92072,92342,92404,92546,92730,92785,92881,92903,93062,93129,93153,93197,93225,93250,93256
/users/perry/base-bugs_and_notes/ChangeLog:45682-46060
/users/perry/base-select/ChangeLog:44044-44692

Modified: branches/release_2_1/base/src/cregistry/sql.c
===================================================================
--- branches/release_2_1/base/src/cregistry/sql.c	2012-05-18 15:27:00 UTC (rev 93265)
+++ branches/release_2_1/base/src/cregistry/sql.c	2012-05-18 16:22:14 UTC (rev 93266)
@@ -263,7 +263,41 @@
             /* we need to update to 1.1, add binary field and index to files
              * table */
             static char* version_1_1_queries[] = {
+#if SQLITE_VERSION_NUMBER >= 3002000
                 "ALTER TABLE registry.files ADD COLUMN binary BOOL",
+#else
+                /*
+                 * SQLite < 3.2.0 doesn't support ALTER TABLE ADD COLUMN
+                 * Unfortunately, Tiger ships with SQLite < 3.2.0 (#34463)
+                 * This is taken from http://www.sqlite.org/faq.html#q11
+                 */
+
+                /* Create a temporary table */
+                "CREATE TEMPORARY TABLE mp_files_backup (id INTEGER, path TEXT, "
+                    "actual_path TEXT, active INT, mtime DATETIME, md5sum TEXT, editable INT, "
+                    "FOREIGN KEY(id) REFERENCES ports(id))",
+
+                /* Copy all data into the temporary table */
+                "INSERT INTO mp_files_backup SELECT id, path, actual_path, active, mtime, "
+                    "md5sum, editable FROM registry.files",
+
+                /* Drop the original table and re-create it with the new structure */
+                "DROP TABLE registry.files",
+                "CREATE TABLE registry.files (id INTEGER, path TEXT, actual_path TEXT, "
+                    "active INT, mtime DATETIME, md5sum TEXT, editable INT, binary BOOL, "
+                    "FOREIGN KEY(id) REFERENCES ports(id))",
+                "CREATE INDEX registry.file_port ON files(id)",
+                "CREATE INDEX registry.file_path ON files(path)",
+                "CREATE INDEX registry.file_actual ON files(actual_path)",
+
+                /* Copy all data back from temporary table */
+                "INSERT INTO registry.files (id, path, actual_path, active, mtime, md5sum, "
+                    "editable) SELECT id, path, actual_path, active, mtime, md5sum, "
+                    "editable FROM mp_files_backup",
+
+                /* Remove temporary table */
+                "DROP TABLE mp_files_backup",
+#endif
                 "CREATE INDEX registry.file_binary ON files(binary)",
 
                 "UPDATE registry.metadata SET value = '1.100' WHERE key = 'version'",
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120518/aaae6e66/attachment.html>


More information about the macports-changes mailing list