Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Append to fts table when a package is added.
Vsevolod Stakhov committed 12 years ago
commit 25b92b9e1bd8851f13388b73749d7749cfe03dbb
parent 3b2db19
1 file changed +13 -1
modified libpkg/pkgdb.c
@@ -2316,6 +2316,7 @@ typedef enum _sql_prstmt_index {
	CONFLICT,
	PKG_PROVIDE,
	PROVIDE,
+
	FTS_APPEND,
	PRSTMT_LAST,
} sql_prstmt_index;

@@ -2508,10 +2509,16 @@ static sql_prstmt sql_prepared_statements[PRSTMT_LAST] = {
		"VALUES (?1, (SELECT id FROM provides WHERE provide = ?2))",
		"IT",
	},
-
	{
+
	[PROVIDE] = {
		NULL,
		"INSERT OR IGNORE INTO provides(provide) VALUES(?1)",
		"T",
+
	},
+
	[FTS_APPEND] = {
+
		NULL,
+
		"INSERT OR ROLLBACK INTO pkg_search(id, name, origin) "
+
		"VALUES (?1, ?2, ?3);",
+
		"ITT"
	}
	/* PRSTMT_LAST */
};
@@ -2681,6 +2688,11 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg, int complete, int forced)

	package_id = sqlite3_last_insert_rowid(s);

+
	if (run_prstmt(FTS_APPEND, package_id, name, origin) != SQLITE_DONE) {
+
		ERROR_SQLITE(s);
+
		goto cleanup;
+
	}
+

	/*
	 * update dep informations on packages that depends on the insert
	 * package