[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