Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Initialize prepare statements normally.
Vsevolod Stakhov committed 11 years ago
commit 38dab066ac8e451075eeba79c618ee8c2b1703fe
parent 473d563
1 file changed +17 -28
modified libpkg/pkgdb.c
@@ -1257,6 +1257,12 @@ pkgdb_open_all(struct pkgdb **db_p, pkgdb_t type, const char *reponame)
		}
	}

+
	if (prstmt_initialize(db) != EPKG_OK) {
+
		pkgdb_close(db);
+
		return (EPKG_FATAL);
+
	}
+

+

	profile = pkg_object_bool(pkg_config_get("SQLITE_PROFILE"));
	if (profile) {
		pkg_debug(1, "pkgdb profiling is enabled");
@@ -2698,18 +2704,20 @@ prstmt_initialize(struct pkgdb *db)

	assert(db != NULL);

-
	sqlite = db->sqlite;
+
	if (!db->prstmt_initialized) {
+
		sqlite = db->sqlite;

-
	for (i = 0; i < PRSTMT_LAST; i++)
-
	{
-
		pkg_debug(4, "Pkgdb: running '%s'", SQL(i));
-
		ret = sqlite3_prepare_v2(sqlite, SQL(i), -1, &STMT(i), NULL);
-
		if (ret != SQLITE_OK) {
-
			ERROR_SQLITE(sqlite, SQL(i));
-
			return (EPKG_FATAL);
+
		for (i = 0; i < PRSTMT_LAST; i++)
+
		{
+
			pkg_debug(4, "Pkgdb: running '%s'", SQL(i));
+
			ret = sqlite3_prepare_v2(sqlite, SQL(i), -1, &STMT(i), NULL);
+
			if (ret != SQLITE_OK) {
+
				ERROR_SQLITE(sqlite, SQL(i));
+
				return (EPKG_FATAL);
+
			}
		}
+
		db->prstmt_initialized = true;
	}
-
	db->prstmt_initialized = true;

	return (EPKG_OK);
}
@@ -2804,9 +2812,6 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg, int complete, int forced)
		return (EPKG_FATAL);
	}

-
	if (!db->prstmt_initialized && prstmt_initialize(db) != EPKG_OK)
-
		return (EPKG_FATAL);
-

	s = db->sqlite;

	if (!complete && pkgdb_transaction_begin(s, NULL) != EPKG_OK)
@@ -3222,10 +3227,6 @@ pkgdb_reanalyse_shlibs(struct pkgdb *db, struct pkg *pkg)
	}

	if ((ret = pkg_analyse_files(db, pkg, NULL)) == EPKG_OK) {
-
		if (!db->prstmt_initialized &&
-
		    prstmt_initialize(db) != EPKG_OK)
-
			return (EPKG_FATAL);
-

		s = db->sqlite;
		pkg_get(pkg, PKG_ROWID, &package_id);

@@ -3273,9 +3274,6 @@ pkgdb_add_annotation(struct pkgdb *db, struct pkg *pkg, const char *tag,
	assert(tag != NULL);
	assert(value != NULL);

-
	if (!db->prstmt_initialized && prstmt_initialize(db) != EPKG_OK)
-
		return (EPKG_FATAL);
-

	pkg_get(pkg, PKG_UNIQUEID, &uniqueid);

	if (run_prstmt(ANNOTATE1, tag) != SQLITE_DONE
@@ -3306,9 +3304,6 @@ pkgdb_set_pkg_digest(struct pkgdb *db, struct pkg *pkg)
	assert(pkg != NULL);
	assert(db != NULL);

-
	if (!db->prstmt_initialized && prstmt_initialize(db) != EPKG_OK)
-
		return (EPKG_FATAL);
-

	pkg_get(pkg, PKG_DIGEST, &digest, PKG_ROWID, &id);
	if (run_prstmt(UPDATE_DIGEST, digest, id) != SQLITE_DONE) {
		ERROR_SQLITE(db->sqlite, SQL(UPDATE_DIGEST));
@@ -3329,9 +3324,6 @@ pkgdb_modify_annotation(struct pkgdb *db, struct pkg *pkg, const char *tag,
	assert(tag != NULL);
	assert(value != NULL);

-
	if (!db->prstmt_initialized && prstmt_initialize(db) != EPKG_OK)
-
		return (EPKG_FATAL);
-

	if (pkgdb_transaction_begin(db->sqlite, NULL) != EPKG_OK)
		return (EPKG_FATAL);

@@ -3373,9 +3365,6 @@ pkgdb_delete_annotation(struct pkgdb *db, struct pkg *pkg, const char *tag)
	assert(pkg != NULL);
	assert(tag != NULL);

-
	if (!db->prstmt_initialized && prstmt_initialize(db) != EPKG_OK)
-
		return (EPKG_FATAL);
-

	if (pkgdb_transaction_begin(db->sqlite, NULL) != EPKG_OK)
		return (EPKG_FATAL);