[yum-cvs] yum-metadata-parser db.c,1.7,1.8

James Bowes jbowes at linux.duke.edu
Tue Apr 3 14:02:38 UTC 2007


Update of /home/groups/yum/cvs/yum-metadata-parser
In directory login1.linux.duke.edu:/tmp/cvs-serv23420

Modified Files:
	db.c 
Log Message:
Create a pkgKey index for provides, requires, conflicts, and obsoletes.

Originally suggested by Florian Festi on yum-devel.


Index: db.c
===================================================================
RCS file: /home/groups/yum/cvs/yum-metadata-parser/db.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- db.c	18 Feb 2007 03:38:19 -0000	1.7
+++ db.c	3 Apr 2007 14:02:36 -0000	1.8
@@ -393,14 +393,18 @@
     const char *deps[] = { "requires", "provides", "conflicts", "obsoletes", NULL };
     int i;
 
+    const char *indexsql = "CREATE INDEX IF NOT EXISTS pkg%s on %s (pkgKey)";
+
     for (i = 0; deps[i]; i++) {
         const char *prereq;
+        char *query;
+
         if (!strcmp(deps[i], "requires")) {
             prereq = ", pre BOOLEAN DEFAULT FALSE";
         } else
             prereq = "";
 
-        char *query = g_strdup_printf (sql, deps[i], prereq);
+        query = g_strdup_printf (sql, deps[i], prereq);
         rc = sqlite3_exec (db, query, NULL, NULL, NULL);
         g_free (query);
 
@@ -410,6 +414,17 @@
                          deps[i], sqlite3_errmsg (db));
             return;
         }
+
+        query = g_strdup_printf(indexsql, deps[i], deps[i]);
+        rc = sqlite3_exec (db, query, NULL, NULL, NULL);
+        g_free (query);
+
+        if (rc != SQLITE_OK) {
+            g_set_error (err, YUM_DB_ERROR, YUM_DB_ERROR,
+                         "Can not create index on %s table: %s",
+                         deps[i], sqlite3_errmsg (db));
+            return;
+        }
     }
 
     sql = "CREATE INDEX providesname ON provides (name)";




More information about the Yum-cvs-commits mailing list