Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Updated schema.
jlaffaye committed 15 years ago
commit 8c71fbfc4aef98f9c34babef7e77afeb9f40278a
parent ab79899
1 file changed +23 -16
modified libpkg/pkgdb.c
@@ -119,7 +119,8 @@ pkgdb_init(sqlite3 *sdb)
		"version TEXT,"
		"comment TEXT,"
		"desc TEXT,"
-
		"mtree_id TEXT REFERENCES mtree(id) ON DELETE RESTRICT,"
+
		"mtree_id INTEGER REFERENCES mtree(rowid) ON DELETE RESTRICT"
+
			" ON UPDATE CASCADE,"
		"message TEXT,"
		"arch TEXT,"
		"osversion TEXT,"
@@ -131,52 +132,58 @@ pkgdb_init(sqlite3 *sdb)
		"pkg_format_version INTEGER"
	");"
	"CREATE TABLE scripts ("
-
		"package_id TEXT REFERENCES packages(origin) ON DELETE CASCADE, "
+
		"package_id INTEGER REFERENCES packages(rowid) ON DELETE CASCADE"
+
			" ON UPDATE CASCADE,"
		"script TEXT,"
		"type INTEGER,"
		"PRIMARY KEY (package_id, type)"
	");"
-
	"CREATE INDEX scripts_package ON scripts (package_id);"
+
	"CREATE INDEX scripts_package ON scripts(package_id);"
	"CREATE TABLE exec ("
-
		"package_id TEXT REFERENCES packages(origin) ON DELETE CASCADE, "
+
		"package_id INTEGER REFERENCES packages(rowid) ON DELETE CASCADE"
+
			" ON UPDATE CASCADE,"
		"cmd TEXT,"
		"type INTEGER"
	");"
-
	"CREATE INDEX exec_package ON exec (package_id);"
+
	"CREATE INDEX exec_package ON exec(package_id);"
	"CREATE TABLE options ("
-
		"package_id TEXT REFERENCES packages(origin) ON DELETE CASCADE, "
+
		"package_id INTEGER REFERENCES packages(rowid) ON DELETE CASCADE"
+
			" ON UPDATE CASCADE,"
		"option TEXT,"
		"value TEXT,"
		"PRIMARY KEY (package_id,option)"
	");"
-
	"CREATE INDEX options_package ON options (package_id);"
+
	"CREATE INDEX options_package ON options(package_id);"
	"CREATE TABLE deps ("
		"origin TEXT,"
		"name TEXT,"
		"version TEXT,"
-
		"package_id TEXT REFERENCES packages(origin) ON DELETE CASCADE, "
+
		"package_id INTEGER REFERENCES packages(rowid) ON DELETE CASCADE"
+
			" ON UPDATE CASCADE,"
		"PRIMARY KEY (package_id,origin)"
	");"
-
	"CREATE INDEX deps_origin ON deps (origin);"
-
	"CREATE INDEX deps_package ON deps (package_id);"
+
	"CREATE INDEX deps_origin ON deps(origin);"
+
	"CREATE INDEX deps_package ON deps(package_id);"
	"CREATE TABLE files ("
		"path TEXT PRIMARY KEY,"
		"sha256 TEXT,"
-
		"package_id TEXT REFERENCES packages(origin) ON DELETE CASCADE"
+
		"package_id INTEGER REFERENCES packages(rowid) ON DELETE CASCADE"
+
			" ON UPDATE CASCADE"
	");"
-
	"CREATE INDEX files_package ON files (package_id);"
+
	"CREATE INDEX files_package ON files(package_id);"
	"CREATE TABLE conflicts ("
		"name TEXT,"
-
		"package_id TEXT REFERENCES packages(origin) ON DELETE CASCADE, "
+
		"package_id INTEGER REFERENCES packages(rowid) ON DELETE CASCADE"
+
			" ON UPDATE CASCADE,"
		"PRIMARY KEY (package_id,name)"
	");"
-
	"CREATE INDEX conflicts_package ON conflicts (package_id);"
+
	"CREATE INDEX conflicts_package ON conflicts(package_id);"
	"CREATE TABLE mtree ("
-
		"id TEXT PRIMARY KEY,"
+
		"sha256 TEXT PRIMARY KEY,"
		"content TEXT"
	");"
	"CREATE TRIGGER clean_mtree AFTER DELETE ON packages BEGIN "
-
		"DELETE FROM mtree WHERE id NOT IN (SELECT DISTINCT mtree_id FROM packages);"
+
		"DELETE FROM mtree WHERE rowid NOT IN (SELECT DISTINCT mtree_id FROM packages);"
	"END;";

	if (sqlite3_exec(sdb, sql, NULL, NULL, &errmsg) != SQLITE_OK) {