[tarantool-patches] [PATCH 6/7] sql: don't add system spaces to Table hash
Nikita Pettik
korablev at tarantool.org
Fri Aug 24 01:55:52 MSK 2018
Part of #3561
---
src/box/sql.c | 105 ---------------------------------------------
src/box/sql/prepare.c | 13 ------
src/box/sql/tarantoolInt.h | 20 ---------
3 files changed, 138 deletions(-)
diff --git a/src/box/sql.c b/src/box/sql.c
index 61c766540..bec74bf29 100644
--- a/src/box/sql.c
+++ b/src/box/sql.c
@@ -1066,111 +1066,6 @@ cursor_advance(BtCursor *pCur, int *pRes)
return SQLITE_OK;
}
-/*********************************************************************
- * Schema support.
- */
-
-static int
-space_foreach_put_cb(struct space *space, void *udata)
-{
- if (space->def->opts.sql == NULL)
- return 0; /* Not SQL space. */
- sql_init_callback((struct init_data *) udata, space->def->name,
- space->def->id, 0, space->def->opts.sql);
- for (uint32_t i = 0; i < space->index_count; ++i) {
- struct index_def *def = space_index_def(space, i);
- if (def->opts.sql != NULL) {
- sql_init_callback((struct init_data *) udata, def->name,
- def->space_id, def->iid, def->opts.sql);
- }
- }
- return 0;
-}
-
-/* Load database schema from Tarantool. */
-void tarantoolSqlite3LoadSchema(struct init_data *init)
-{
- sql_init_callback(
- init, TARANTOOL_SYS_SCHEMA_NAME,
- BOX_SCHEMA_ID, 0,
- "CREATE TABLE \""TARANTOOL_SYS_SCHEMA_NAME
- "\" (\"key\" TEXT PRIMARY KEY, \"value\")"
- );
-
- sql_init_callback(
- init, TARANTOOL_SYS_SPACE_NAME,
- BOX_SPACE_ID, 0,
- "CREATE TABLE \""TARANTOOL_SYS_SPACE_NAME
- "\" (\"id\" INT PRIMARY KEY, \"owner\" INT, \"name\" TEXT, "
- "\"engine\" TEXT, \"field_count\" INT, \"opts\", \"format\")"
- );
-
- sql_init_callback(
- init, TARANTOOL_SYS_INDEX_NAME,
- BOX_INDEX_ID, 0,
- "CREATE TABLE \""TARANTOOL_SYS_INDEX_NAME"\" "
- "(\"id\" INT, \"iid\" INT, \"name\" TEXT, \"type\" TEXT,"
- "\"opts\", \"parts\", PRIMARY KEY (\"id\", \"iid\"))"
- );
-
- sql_init_callback(
- init, TARANTOOL_SYS_TRIGGER_NAME,
- BOX_TRIGGER_ID, 0,
- "CREATE TABLE \""TARANTOOL_SYS_TRIGGER_NAME"\" ("
- "\"name\" TEXT PRIMARY KEY, \"space_id\" INT, \"opts\")"
- );
-
- sql_init_callback(
- init, TARANTOOL_SYS_TRUNCATE_NAME,
- BOX_TRUNCATE_ID, 0,
- "CREATE TABLE \""TARANTOOL_SYS_TRUNCATE_NAME
- "\" (\"id\" INT PRIMARY KEY, \"count\" INT NOT NULL)"
- );
-
- sql_init_callback(init, TARANTOOL_SYS_SEQUENCE_NAME, BOX_SEQUENCE_ID, 0,
- "CREATE TABLE \""TARANTOOL_SYS_SEQUENCE_NAME
- "\" (\"id\" INT PRIMARY KEY, \"uid\" INT, \"name\" TEXT, \"step\" INT, "
- "\"max\" INT, \"min\" INT, \"start\" INT, \"cache\" INT, \"cycle\" INT)");
-
- sql_init_callback(init, TARANTOOL_SYS_SPACE_SEQUENCE_NAME,
- BOX_SPACE_SEQUENCE_ID, 0,
- "CREATE TABLE \""TARANTOOL_SYS_SPACE_SEQUENCE_NAME
- "\" (\"space_id\" INT PRIMARY KEY, \"sequence_id\" INT, \"flag\" INT)");
-
- sql_init_callback(init, TARANTOOL_SYS_SQL_STAT1_NAME,
- BOX_SQL_STAT1_ID, 0,
- "CREATE TABLE \""TARANTOOL_SYS_SQL_STAT1_NAME
- "\"(\"tbl\" text,"
- "\"idx\" text,"
- "\"stat\" not null,"
- "PRIMARY KEY(\"tbl\", \"idx\"))");
-
- sql_init_callback(init, TARANTOOL_SYS_SQL_STAT4_NAME,
- BOX_SQL_STAT4_ID, 0,
- "CREATE TABLE \""TARANTOOL_SYS_SQL_STAT4_NAME
- "\"(\"tbl\" text,"
- "\"idx\" text,"
- "\"neq\" text,"
- "\"nlt\" text,"
- "\"ndlt\" text,"
- "\"sample\","
- "PRIMARY KEY(\"tbl\", \"idx\", \"sample\"))");
-
- sql_init_callback(init, TARANTOOL_SYS_FK_CONSTRAINT_NAME,
- BOX_FK_CONSTRAINT_ID, 0,
- "CREATE TABLE \""TARANTOOL_SYS_FK_CONSTRAINT_NAME
- "\"(\"name\" TEXT, \"parent_id\" INT, \"child_id\" INT,"
- "\"deferred\" INT, \"match\" TEXT, \"on_delete\" TEXT,"
- "\"on_update\" TEXT, \"child_cols\", \"parent_cols\","
- "PRIMARY KEY(\"name\", \"child_id\"))");
-
- /* Read _space */
- if (space_foreach(space_foreach_put_cb, init) != 0) {
- init->rc = SQL_TARANTOOL_ERROR;
- return;
- }
-}
-
/*********************************************************************
* Metainformation about available spaces and indices is stored in
* _space and _index system spaces respectively.
diff --git a/src/box/sql/prepare.c b/src/box/sql/prepare.c
index bea9dc583..a59e70dd0 100644
--- a/src/box/sql/prepare.c
+++ b/src/box/sql/prepare.c
@@ -140,14 +140,6 @@ sqlite3InitDatabase(sqlite3 * db)
memset(&init, 0, sizeof(init));
init.db = db;
-
- /* Load schema from Tarantool - into the primary db only. */
- tarantoolSqlite3LoadSchema(&init);
-
- if (init.rc) {
- rc = init.rc;
- goto error_out;
- }
/* Read the schema information out of the schema tables
*/
assert(db->init.busy);
@@ -160,11 +152,6 @@ sqlite3InitDatabase(sqlite3 * db)
rc = SQLITE_NOMEM_BKPT;
sqlite3ResetAllSchemasOfConnection(db);
}
-
- error_out:
- if (rc == SQLITE_NOMEM || rc == SQLITE_IOERR_NOMEM) {
- sqlite3OomFault(db);
- }
return rc;
}
diff --git a/src/box/sql/tarantoolInt.h b/src/box/sql/tarantoolInt.h
index 69af6e723..9334de52d 100644
--- a/src/box/sql/tarantoolInt.h
+++ b/src/box/sql/tarantoolInt.h
@@ -10,30 +10,10 @@
struct fkey_def;
-/*
- * Tarantool system spaces.
- */
-#define TARANTOOL_SYS_SEQUENCE_NAME "_sequence"
-#define TARANTOOL_SYS_SPACE_SEQUENCE_NAME "_space_sequence"
-#define TARANTOOL_SYS_SCHEMA_NAME "_schema"
-#define TARANTOOL_SYS_SPACE_NAME "_space"
-#define TARANTOOL_SYS_INDEX_NAME "_index"
-#define TARANTOOL_SYS_TRIGGER_NAME "_trigger"
-#define TARANTOOL_SYS_TRUNCATE_NAME "_truncate"
-#define TARANTOOL_SYS_SQL_STAT1_NAME "_sql_stat1"
-#define TARANTOOL_SYS_SQL_STAT4_NAME "_sql_stat4"
-#define TARANTOOL_SYS_FK_CONSTRAINT_NAME "_fk_constraint"
-
-/* Max space id seen so far. */
-#define TARANTOOL_SYS_SCHEMA_MAXID_KEY "max_id"
-
/* Insert or replace operation types - necessary for vdbe */
#define TARANTOOL_INDEX_INSERT 1
#define TARANTOOL_INDEX_REPLACE 2
-/* Load database schema from Tarantool. */
-void tarantoolSqlite3LoadSchema(struct init_data *init);
-
/* Misc */
const char *tarantoolErrorMessage();
--
2.15.1
More information about the Tarantool-patches
mailing list