[darwinbuild-changes] [748] branches/PR-7593824
source_changes at macosforge.org
source_changes at macosforge.org
Mon Mar 8 16:14:45 PST 2010
Revision: 748
http://trac.macosforge.org/projects/darwinbuild/changeset/748
Author: wsiegrist at apple.com
Date: 2010-03-08 16:14:45 -0800 (Mon, 08 Mar 2010)
Log Message:
-----------
Start of schema versioning/upgrade support
Modified Paths:
--------------
branches/PR-7593824/darwinup/DB.cpp
branches/PR-7593824/darwinup/Database.cpp
branches/PR-7593824/darwinup/Database.h
Property Changed:
----------------
branches/PR-7593824/
branches/PR-7593824/darwinbuild/darwinbuild.in
branches/PR-7593824/darwinbuild/darwinmaster.in
branches/PR-7593824/darwinbuild/installXcode.in
branches/PR-7593824/darwinbuild/packageRoots.in
branches/PR-7593824/darwinbuild/thinPackages.in
Property changes on: branches/PR-7593824
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388:399-419
/branches/PR-6358021:442-443
/branches/PR-6392966:423-427
/branches/PR-6398060:433-434
/branches/PR-6493844:460-461
/branches/PR-6497694:466-468,471
/branches/PR-6634286:632-650
/branches/PR-6688645:479-490
/branches/PR-6722857:495-499
/branches/PR-6729491:655-664
/branches/PR-7250612:635-650
/branches/PR-7341154:682-694
/branches/PR-7431723:660-664
/branches/PR-7461534:650-664
/branches/PR-7482850:670-671
/branches/PR-7489777:676-731
/branches/PR-7529688:692-694
/branches/PR-7598640:703-731
/trunk:432-434,740-741
+ /branches/PR-4841388:399-419
/branches/PR-6358021:442-443
/branches/PR-6392966:423-427
/branches/PR-6398060:433-434
/branches/PR-6493844:460-461
/branches/PR-6497694:466-468,471
/branches/PR-6634286:632-650
/branches/PR-6688645:479-490
/branches/PR-6722857:495-499
/branches/PR-6729491:655-664
/branches/PR-7250612:635-650
/branches/PR-7341154:682-694
/branches/PR-7431723:660-664
/branches/PR-7461534:650-664
/branches/PR-7482850:670-671
/branches/PR-7489777:676-731
/branches/PR-7529688:692-694
/branches/PR-7598640:703-731
/trunk:432-434,740-742
Property changes on: branches/PR-7593824/darwinbuild/darwinbuild.in
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388/darwinbuild/darwinbuild:399-419
/branches/PR-6358021/darwinbuild/darwinbuild:442-443
/branches/PR-6392966/darwinbuild/darwinbuild:423-427
/branches/PR-6398060/darwinbuild/darwinbuild:433-434
/branches/PR-6493844/darwinbuild/darwinbuild.in:460-461
/branches/PR-6497694/darwinbuild/darwinbuild.in:466-468,471
/branches/PR-6634286/darwinbuild/darwinbuild.in:632-650
/branches/PR-6688645/darwinbuild/darwinbuild.in:479-490
/branches/PR-6722857/darwinbuild/darwinbuild.in:495-499
/branches/PR-6729491/darwinbuild/darwinbuild.in:655-664
/branches/PR-7250612/darwinbuild/darwinbuild.in:635-650
/branches/PR-7341154/darwinbuild/darwinbuild.in:682-694
/branches/PR-7431723/darwinbuild/darwinbuild.in:660-664
/branches/PR-7461534/darwinbuild/darwinbuild.in:650-664
/branches/PR-7489777/darwinbuild/darwinbuild.in:676-731
/branches/PR-7529688/darwinbuild/darwinbuild.in:692-694
/branches/PR-7598640/darwinbuild/darwinbuild.in:703-731
/trunk/darwinbuild/darwinbuild:432-434
/trunk/darwinbuild/darwinbuild.in:740-741
+ /branches/PR-4841388/darwinbuild/darwinbuild:399-419
/branches/PR-6358021/darwinbuild/darwinbuild:442-443
/branches/PR-6392966/darwinbuild/darwinbuild:423-427
/branches/PR-6398060/darwinbuild/darwinbuild:433-434
/branches/PR-6493844/darwinbuild/darwinbuild.in:460-461
/branches/PR-6497694/darwinbuild/darwinbuild.in:466-468,471
/branches/PR-6634286/darwinbuild/darwinbuild.in:632-650
/branches/PR-6688645/darwinbuild/darwinbuild.in:479-490
/branches/PR-6722857/darwinbuild/darwinbuild.in:495-499
/branches/PR-6729491/darwinbuild/darwinbuild.in:655-664
/branches/PR-7250612/darwinbuild/darwinbuild.in:635-650
/branches/PR-7341154/darwinbuild/darwinbuild.in:682-694
/branches/PR-7431723/darwinbuild/darwinbuild.in:660-664
/branches/PR-7461534/darwinbuild/darwinbuild.in:650-664
/branches/PR-7489777/darwinbuild/darwinbuild.in:676-731
/branches/PR-7529688/darwinbuild/darwinbuild.in:692-694
/branches/PR-7598640/darwinbuild/darwinbuild.in:703-731
/trunk/darwinbuild/darwinbuild:432-434
/trunk/darwinbuild/darwinbuild.in:740-742
Property changes on: branches/PR-7593824/darwinbuild/darwinmaster.in
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388/darwinbuild/darwinmaster.sh:399-419
/branches/PR-6358021/darwinbuild/darwinmaster.sh:442-443
/branches/PR-6392966/darwinbuild/darwinmaster.sh:423-427
/branches/PR-6398060/darwinbuild/darwinmaster.sh:433-434
/branches/PR-6493844/darwinbuild/darwinmaster.sh.in:460-461
/branches/PR-6497694/darwinbuild/darwinmaster.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/darwinmaster.in:632-650
/branches/PR-6688645/darwinbuild/darwinmaster.sh.in:479-490
/branches/PR-6722857/darwinbuild/darwinmaster.sh.in:495-499
/branches/PR-6729491/darwinbuild/darwinmaster.in:655-664
/branches/PR-7250612/darwinbuild/darwinmaster.in:635-650
/branches/PR-7341154/darwinbuild/darwinmaster.in:682-694
/branches/PR-7431723/darwinbuild/darwinmaster.in:660-664
/branches/PR-7461534/darwinbuild/darwinmaster.in:650-664
/branches/PR-7489777/darwinbuild/darwinmaster.in:676-731
/branches/PR-7529688/darwinbuild/darwinmaster.in:692-694
/branches/PR-7598640/darwinbuild/darwinmaster.in:703-731
/trunk/darwinbuild/darwinmaster.in:740-741
/trunk/darwinbuild/darwinmaster.sh:432-434
+ /branches/PR-4841388/darwinbuild/darwinmaster.sh:399-419
/branches/PR-6358021/darwinbuild/darwinmaster.sh:442-443
/branches/PR-6392966/darwinbuild/darwinmaster.sh:423-427
/branches/PR-6398060/darwinbuild/darwinmaster.sh:433-434
/branches/PR-6493844/darwinbuild/darwinmaster.sh.in:460-461
/branches/PR-6497694/darwinbuild/darwinmaster.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/darwinmaster.in:632-650
/branches/PR-6688645/darwinbuild/darwinmaster.sh.in:479-490
/branches/PR-6722857/darwinbuild/darwinmaster.sh.in:495-499
/branches/PR-6729491/darwinbuild/darwinmaster.in:655-664
/branches/PR-7250612/darwinbuild/darwinmaster.in:635-650
/branches/PR-7341154/darwinbuild/darwinmaster.in:682-694
/branches/PR-7431723/darwinbuild/darwinmaster.in:660-664
/branches/PR-7461534/darwinbuild/darwinmaster.in:650-664
/branches/PR-7489777/darwinbuild/darwinmaster.in:676-731
/branches/PR-7529688/darwinbuild/darwinmaster.in:692-694
/branches/PR-7598640/darwinbuild/darwinmaster.in:703-731
/trunk/darwinbuild/darwinmaster.in:740-742
/trunk/darwinbuild/darwinmaster.sh:432-434
Property changes on: branches/PR-7593824/darwinbuild/installXcode.in
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388/darwinbuild/installXcode:399-419
/branches/PR-6358021/darwinbuild/installXcode:442-443
/branches/PR-6392966/darwinbuild/installXcode:423-427
/branches/PR-6398060/darwinbuild/installXcode:433-434
/branches/PR-6493844/darwinbuild/installXcode.in:460-461
/branches/PR-6497694/darwinbuild/installXcode.in:466-468,471
/branches/PR-6634286/darwinbuild/installXcode.in:632-650
/branches/PR-6688645/darwinbuild/installXcode.in:479-490
/branches/PR-6722857/darwinbuild/installXcode.in:495-499
/branches/PR-6729491/darwinbuild/installXcode.in:655-664
/branches/PR-7250612/darwinbuild/installXcode.in:635-650
/branches/PR-7341154/darwinbuild/installXcode.in:682-694
/branches/PR-7431723/darwinbuild/installXcode.in:660-664
/branches/PR-7461534/darwinbuild/installXcode.in:650-664
/branches/PR-7489777/darwinbuild/installXcode.in:676-731
/branches/PR-7529688/darwinbuild/installXcode.in:692-694
/branches/PR-7598640/darwinbuild/installXcode.in:703-731
/trunk/darwinbuild/installXcode:432-434
/trunk/darwinbuild/installXcode.in:740-741
+ /branches/PR-4841388/darwinbuild/installXcode:399-419
/branches/PR-6358021/darwinbuild/installXcode:442-443
/branches/PR-6392966/darwinbuild/installXcode:423-427
/branches/PR-6398060/darwinbuild/installXcode:433-434
/branches/PR-6493844/darwinbuild/installXcode.in:460-461
/branches/PR-6497694/darwinbuild/installXcode.in:466-468,471
/branches/PR-6634286/darwinbuild/installXcode.in:632-650
/branches/PR-6688645/darwinbuild/installXcode.in:479-490
/branches/PR-6722857/darwinbuild/installXcode.in:495-499
/branches/PR-6729491/darwinbuild/installXcode.in:655-664
/branches/PR-7250612/darwinbuild/installXcode.in:635-650
/branches/PR-7341154/darwinbuild/installXcode.in:682-694
/branches/PR-7431723/darwinbuild/installXcode.in:660-664
/branches/PR-7461534/darwinbuild/installXcode.in:650-664
/branches/PR-7489777/darwinbuild/installXcode.in:676-731
/branches/PR-7529688/darwinbuild/installXcode.in:692-694
/branches/PR-7598640/darwinbuild/installXcode.in:703-731
/trunk/darwinbuild/installXcode:432-434
/trunk/darwinbuild/installXcode.in:740-742
Property changes on: branches/PR-7593824/darwinbuild/packageRoots.in
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388/darwinbuild/packageRoots.sh:399-419
/branches/PR-6358021/darwinbuild/packageRoots.sh:442-443
/branches/PR-6392966/darwinbuild/packageRoots.sh:423-427
/branches/PR-6398060/darwinbuild/packageRoots.sh:433-434
/branches/PR-6493844/darwinbuild/packageRoots.sh.in:460-461
/branches/PR-6497694/darwinbuild/packageRoots.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/packageRoots.in:632-650
/branches/PR-6688645/darwinbuild/packageRoots.sh.in:479-490
/branches/PR-6722857/darwinbuild/packageRoots.sh.in:495-499
/branches/PR-6729491/darwinbuild/packageRoots.in:655-664
/branches/PR-7250612/darwinbuild/packageRoots.in:635-650
/branches/PR-7341154/darwinbuild/packageRoots.in:682-694
/branches/PR-7431723/darwinbuild/packageRoots.in:660-664
/branches/PR-7461534/darwinbuild/packageRoots.in:650-664
/branches/PR-7489777/darwinbuild/packageRoots.in:676-731
/branches/PR-7529688/darwinbuild/packageRoots.in:692-694
/branches/PR-7598640/darwinbuild/packageRoots.in:703-731
/trunk/darwinbuild/packageRoots.in:740-741
/trunk/darwinbuild/packageRoots.sh:432-434
+ /branches/PR-4841388/darwinbuild/packageRoots.sh:399-419
/branches/PR-6358021/darwinbuild/packageRoots.sh:442-443
/branches/PR-6392966/darwinbuild/packageRoots.sh:423-427
/branches/PR-6398060/darwinbuild/packageRoots.sh:433-434
/branches/PR-6493844/darwinbuild/packageRoots.sh.in:460-461
/branches/PR-6497694/darwinbuild/packageRoots.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/packageRoots.in:632-650
/branches/PR-6688645/darwinbuild/packageRoots.sh.in:479-490
/branches/PR-6722857/darwinbuild/packageRoots.sh.in:495-499
/branches/PR-6729491/darwinbuild/packageRoots.in:655-664
/branches/PR-7250612/darwinbuild/packageRoots.in:635-650
/branches/PR-7341154/darwinbuild/packageRoots.in:682-694
/branches/PR-7431723/darwinbuild/packageRoots.in:660-664
/branches/PR-7461534/darwinbuild/packageRoots.in:650-664
/branches/PR-7489777/darwinbuild/packageRoots.in:676-731
/branches/PR-7529688/darwinbuild/packageRoots.in:692-694
/branches/PR-7598640/darwinbuild/packageRoots.in:703-731
/trunk/darwinbuild/packageRoots.in:740-742
/trunk/darwinbuild/packageRoots.sh:432-434
Property changes on: branches/PR-7593824/darwinbuild/thinPackages.in
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/PR-4841388/darwinbuild/thinPackages.sh:399-419
/branches/PR-6358021/darwinbuild/thinPackages.sh:442-443
/branches/PR-6392966/darwinbuild/thinPackages.sh:423-427
/branches/PR-6398060/darwinbuild/thinPackages.sh:433-434
/branches/PR-6493844/darwinbuild/thinPackages.sh.in:460-461
/branches/PR-6497694/darwinbuild/thinPackages.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/thinPackages.in:632-650
/branches/PR-6688645/darwinbuild/thinPackages.sh.in:479-490
/branches/PR-6722857/darwinbuild/thinPackages.sh.in:495-499
/branches/PR-6729491/darwinbuild/thinPackages.in:655-664
/branches/PR-7250612/darwinbuild/thinPackages.in:635-650
/branches/PR-7341154/darwinbuild/thinPackages.in:682-694
/branches/PR-7431723/darwinbuild/thinPackages.in:660-664
/branches/PR-7461534/darwinbuild/thinPackages.in:650-664
/branches/PR-7489777/darwinbuild/thinPackages.in:676-731
/branches/PR-7529688/darwinbuild/thinPackages.in:692-694
/branches/PR-7598640/darwinbuild/thinPackages.in:703-731
/trunk/darwinbuild/thinPackages.in:740-741
/trunk/darwinbuild/thinPackages.sh:432-434
+ /branches/PR-4841388/darwinbuild/thinPackages.sh:399-419
/branches/PR-6358021/darwinbuild/thinPackages.sh:442-443
/branches/PR-6392966/darwinbuild/thinPackages.sh:423-427
/branches/PR-6398060/darwinbuild/thinPackages.sh:433-434
/branches/PR-6493844/darwinbuild/thinPackages.sh.in:460-461
/branches/PR-6497694/darwinbuild/thinPackages.sh.in:466-468,471
/branches/PR-6634286/darwinbuild/thinPackages.in:632-650
/branches/PR-6688645/darwinbuild/thinPackages.sh.in:479-490
/branches/PR-6722857/darwinbuild/thinPackages.sh.in:495-499
/branches/PR-6729491/darwinbuild/thinPackages.in:655-664
/branches/PR-7250612/darwinbuild/thinPackages.in:635-650
/branches/PR-7341154/darwinbuild/thinPackages.in:682-694
/branches/PR-7431723/darwinbuild/thinPackages.in:660-664
/branches/PR-7461534/darwinbuild/thinPackages.in:650-664
/branches/PR-7489777/darwinbuild/thinPackages.in:676-731
/branches/PR-7529688/darwinbuild/thinPackages.in:692-694
/branches/PR-7598640/darwinbuild/thinPackages.in:703-731
/trunk/darwinbuild/thinPackages.in:740-742
/trunk/darwinbuild/thinPackages.sh:432-434
Modified: branches/PR-7593824/darwinup/DB.cpp
===================================================================
--- branches/PR-7593824/darwinup/DB.cpp 2010-03-09 00:14:18 UTC (rev 747)
+++ branches/PR-7593824/darwinup/DB.cpp 2010-03-09 00:14:45 UTC (rev 748)
@@ -34,6 +34,7 @@
DarwinupDatabase::DarwinupDatabase(const char* path) : Database(path) {
+ m_schema_version = 1;
this->connect();
}
@@ -41,7 +42,7 @@
// parent automatically deallocates schema objects
}
-void DarwinupDatabase::init_schema() {
+int DarwinupDatabase::init_schema() {
this->m_archives_table = new Table("archives");
ADD_PK(m_archives_table, "serial");
ADD_INDEX(m_archives_table, "uuid", TYPE_BLOB, true);
@@ -49,6 +50,7 @@
ADD_INTEGER(m_archives_table, "date_added");
ADD_INTEGER(m_archives_table, "active");
ADD_INTEGER(m_archives_table, "info");
+ ADD_TEXT(m_archives_table, "osbuild");
assert(this->add_table(this->m_archives_table)==0);
this->m_files_table = new Table("files");
@@ -65,8 +67,19 @@
assert(this->m_files_table->set_custom_create("CREATE UNIQUE INDEX files_archive_path "
"ON files (archive, path);") == 0);
assert(this->add_table(this->m_files_table)==0);
+
+ return 0;
}
+int DarwinupDatabase::upgrade_schema(uint32_t fromversion) {
+
+ if (fromversion < 1) {
+ this->sql_once("ALTER TABLE archives ADD COLUMN osbuild TEXT");
+ }
+
+ return 0;
+}
+
int DarwinupDatabase::activate_archive(uint64_t serial) {
uint64_t active = 1;
return this->set_archive_active(serial, &active);
Modified: branches/PR-7593824/darwinup/Database.cpp
===================================================================
--- branches/PR-7593824/darwinup/Database.cpp 2010-03-09 00:14:18 UTC (rev 747)
+++ branches/PR-7593824/darwinup/Database.cpp 2010-03-09 00:14:45 UTC (rev 748)
@@ -40,6 +40,7 @@
}
Database::Database() {
+ m_schema_version = 0;
m_table_max = 2;
m_table_count = 0;
m_tables = (Table**)malloc(sizeof(Table*) * m_table_max);
@@ -51,6 +52,7 @@
}
Database::Database(const char* path) {
+ m_schema_version = 0;
m_table_max = 2;
m_table_count = 0;
m_tables = (Table**)malloc(sizeof(Table*) * m_table_max);
@@ -81,10 +83,14 @@
}
-void Database::init_schema() {
+int Database::init_schema() {
// do nothing... children should implement this
}
+int Database::upgrade_schema(uint32_t fromversion) {
+ // do nothing... children should implement this
+}
+
const char* Database::path() {
return m_path;
}
@@ -94,12 +100,19 @@
}
int Database::connect() {
+ int res = DB_OK;
+
if (!m_path) {
fprintf(stderr, "Error: need to specify a path to Database.\n");
return -1;
}
- int res = SQLITE_OK;
- this->init_schema();
+
+ res = this->pre_connect();
+ if (res) {
+ fprintf(stderr, "Error: pre-connection failed.\n");
+ return res;
+ }
+
res = sqlite3_open(m_path, &m_db);
if (res) {
sqlite3_close(m_db);
@@ -108,28 +121,56 @@
m_path);
return res;
}
+
+ res = this->post_connect();
+ if (res) {
+ fprintf(stderr, "Error: post-connection failed.\n");
+ return res;
+ }
+
+ return res;
+}
+int Database::pre_connect() {
+ int res = DB_OK;
+ res = this->init_internal_schema();
+ res = this->init_schema();
+ return res;
+}
+
+int Database::post_connect() {
+ int res = DB_OK
+
+ // prepare transaction statements
+ if (res == DB_OK)
+ res = sqlite3_prepare_v2(m_db, "BEGIN TRANSACTION", 18,
+ &m_begin_transaction, NULL);
+ if (res == DB_OK)
+ res = sqlite3_prepare_v2(m_db, "ROLLBACK TRANSACTION", 21,
+ &m_rollback_transaction, NULL);
+ if (res == DB_OK)
+ res = sqlite3_prepare_v2(m_db, "COMMIT TRANSACTION", 19,
+ &m_commit_transaction, NULL);
+
+ // debug settings
extern uint32_t verbosity;
if (verbosity & VERBOSE_SQL) {
sqlite3_trace(m_db, dbtrace, NULL);
}
if (this->is_empty()) {
+ // create schema since it is empty
assert(this->create_tables() == 0);
+ } else {
+ // not empty, but upgrade schema if needed
+ version = this->get_schema_version();
+ if (version < this->m_schema_version) {
+ assert(this->upgrade_schema(version) == 0);
+ this->set_schema_version(this->m_schema_version);
+ }
}
- // prepare transaction statements
- if (res == SQLITE_OK)
- res = sqlite3_prepare_v2(m_db, "BEGIN TRANSACTION", 18,
- &m_begin_transaction, NULL);
- if (res == SQLITE_OK)
- res = sqlite3_prepare_v2(m_db, "ROLLBACK TRANSACTION", 21,
- &m_rollback_transaction, NULL);
- if (res == SQLITE_OK)
- res = sqlite3_prepare_v2(m_db, "COMMIT TRANSACTION", 19,
- &m_commit_transaction, NULL);
-
- return res;
+ return res;
}
int Database::connect(const char* path) {
@@ -589,6 +630,56 @@
return res;
}
+int Database::init_internal_schema() {
+ this->m_information_table = new Table("database_information");
+ ADD_PK(m_information_table, "id");
+ ADD_INDEX(m_information_table, "variable", TYPE_TEXT, true);
+ ADD_TEXT(m_information_table, "value");
+ assert(this->add_table(this->m_information_table)==0);
+}
+
+int Database::get_information_value(char* variable, char** value) {
+ return this->get_value("get_information_value",
+ value,
+ this->m_information_table,
+ this->m_information_table->columns(1), // value
+ 1,
+ this->m_information_table->columns(0), // variable
+ '=', variable);
+}
+
+uint32_t Database::get_schema_version() {
+ char* vertxt;
+ int res = DB_OK;
+ res = this->get_information_value("schema_version", &vertxt);
+ if (FOUND(res)) {
+ uint32_t version = (uint32_t)strtoul(vertxt, NULL, 10);
+ free(vertxt);
+ return version;
+ } else {
+ // lack of information table/value means we are
+ // upgrading an old database
+ return 0;
+ }
+}
+
+int Database::update_information_value(char* variable, char* value) {
+ return this->update_value("update_information_value",
+ this->m_information_table,
+ this->m_information_table->columns(1), // value
+ value,
+ 1,
+ this->m_information_table->columns(0), // variable
+ '=', variable);
+}
+
+int Database::set_schema_version(uint32_t version) {
+ int res = DB_OK;
+ res = this->update_information_value("schema_version", &version);
+ return res;
+}
+
+
size_t Database::store_column(sqlite3_stmt* stmt, int column, uint8_t* output) {
size_t used;
int type = sqlite3_column_type(stmt, column);
Modified: branches/PR-7593824/darwinup/Database.h
===================================================================
--- branches/PR-7593824/darwinup/Database.h 2010-03-09 00:14:18 UTC (rev 747)
+++ branches/PR-7593824/darwinup/Database.h 2010-03-09 00:14:45 UTC (rev 748)
@@ -98,7 +98,12 @@
* should use Table::add_column() or the ADD_*
* macros in their init_schema() to define their schema
*/
- virtual void init_schema();
+ virtual int init_schema();
+ /**
+ * upgrade_schema should execute sql statements needed to
+ * upgrade from fromversion to the current version
+ */
+ virtual int upgrade_schema(uint32_t fromversion);
const char* path();
const char* error();
@@ -168,17 +173,24 @@
protected:
+ // pre- and post- connection work
+ int pre_connect();
+ int post_connect();
+
// execute query with printf-style format, does not cache statement
- int sql_once(const char* fmt, ...);
+ int sql_once(const char* fmt, ...);
// cache statement with name, execute query with printf-style format
- int sql(const char* name, const char* fmt, ...);
- int execute(sqlite3_stmt* stmt);
+ int sql(const char* name, const char* fmt, ...);
+ int execute(sqlite3_stmt* stmt);
- int add_table(Table*);
+ int add_table(Table*);
// test if database has had its tables created
bool is_empty();
+ // create tables for the client
int create_tables();
+ // create tables for ourselves
+ int create_internal_tables();
// bind all table columns from va_list
int bind_all_columns(sqlite3_stmt* stmt, Table* table, va_list args);
@@ -201,7 +213,11 @@
char* m_path;
sqlite3* m_db;
-
+
+ uint32_t m_schema_version;
+ Table* m_information_table;
+ sqlite3_stmt m_get_information_value;
+
Table** m_tables;
uint32_t m_table_count;
uint32_t m_table_max;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20100308/79cfb17b/attachment-0001.html>
More information about the darwinbuild-changes
mailing list