[darwinbuild-changes] [125] trunk/darwinxref/DBDataStore.c
source_changes at macosforge.org
source_changes at macosforge.org
Wed Oct 4 01:48:36 PDT 2006
Revision: 125
http://trac.macosforge.org/projects/darwinbuild/changeset/125
Author: ssen
Date: 2006-10-04 01:48:36 -0700 (Wed, 04 Oct 2006)
Log Message:
-----------
For properties that are exactly arrays like "fooprop" = ("bar", "baz"),
have the SQL insert statements add an dummy index key:
INSERT (property, key, value) ("fooprop", 0, "bar")
INSERT (property, key, value) ("fooprop", 1, "baz")
So that during retrieval in _DBCopyPropArray(), the output array
is sorted the same way as the plist (since it does an
"ORDER BY key"). Properties that have an array nested in a dictionary
don't get this treatment, so they may be retrieved in a different
and non-deterministic order than they were inserted.
This solves the specific problem where you want "source_sites" to contain
multiple mirrors in a specified priority order, or where one source
site might have overriding content and must be accessed first.
As above, "dependencies" > "build" don't preserve sort order, but for
the current usage, that's OK.
Modified Paths:
--------------
trunk/darwinxref/DBDataStore.c
Modified: trunk/darwinxref/DBDataStore.c
===================================================================
--- trunk/darwinxref/DBDataStore.c 2005-07-30 06:24:27 UTC (rev 124)
+++ trunk/darwinxref/DBDataStore.c 2006-10-04 08:48:36 UTC (rev 125)
@@ -461,9 +461,9 @@
for (i = 0; i < count; ++i) {
char* cvalu = strdup_cfstr(CFArrayGetValueAtIndex(value, i));
if (project) {
- SQL("INSERT INTO properties (build,project,property,value) VALUES (%Q, %Q, %Q, %Q)", cbuild, cproj, cprop, cvalu);
+ SQL("INSERT INTO properties (build,project,property,key,value) VALUES (%Q, %Q, %Q, %Q)", cbuild, cproj, cprop, i, cvalu);
} else {
- SQL("INSERT INTO properties (build,property,value) VALUES (%Q, %Q, %Q)", cbuild, cprop, cvalu);
+ SQL("INSERT INTO properties (build,property,key,value) VALUES (%Q, %Q, %d, %Q)", cbuild, cprop, i, cvalu);
}
free(cvalu);
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20061004/d4da5fe4/attachment.html
More information about the darwinbuild-changes
mailing list