From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 0D01E2A4CA for ; Thu, 23 Aug 2018 18:56:17 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r4JzpV-ApT8v for ; Thu, 23 Aug 2018 18:56:16 -0400 (EDT) Received: from smtp48.i.mail.ru (smtp48.i.mail.ru [94.100.177.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id ACABC2A4EA for ; Thu, 23 Aug 2018 18:56:16 -0400 (EDT) From: Nikita Pettik Subject: [tarantool-patches] [PATCH 6/7] sql: don't add system spaces to Table hash Date: Fri, 24 Aug 2018 01:55:52 +0300 Message-Id: In-Reply-To: References: In-Reply-To: References: Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: tarantool-patches@freelists.org Cc: v.shpilevoy@tarantool.org, Nikita Pettik 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