[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