From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> To: imeevma@tarantool.org Cc: tarantool-patches@dev.tarantool.org Subject: Re: [Tarantool-patches] [PATCH v5 4/5] sql: remove control pragmas Date: Fri, 27 Dec 2019 18:26:39 +0300 [thread overview] Message-ID: <ac820692-3097-b2a1-dcab-ed0e419520e4@tarantool.org> (raw) In-Reply-To: <734163151611e2da16f7901b42f9829d63f26053.1577445318.git.imeevma@gmail.com> Hi! Thanks for the patch! I've pushed my review fixes on top of this commit. See it below and on the branch. If you agree, then squash. Otherwise lets discuss. ================================================================================ commit 66b927c57c84b49ef2244efb49c0986928fb8e2b Author: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> Date: Fri Dec 27 17:32:35 2019 +0300 Review fixes 4/5 diff --git a/src/box/sql/sqlInt.h b/src/box/sql/sqlInt.h index d859d6380..f4d6e52cd 100644 --- a/src/box/sql/sqlInt.h +++ b/src/box/sql/sqlInt.h @@ -3771,7 +3771,6 @@ sql_space_def_check_format(const struct space_def *space_def); void sqlDetach(Parse *, Expr *); int sqlAtoF(const char *z, double *, int); int sqlGetInt32(const char *, int *); -int sqlAtoi(const char *); /** * Return number of symbols in the given string. @@ -3959,8 +3958,6 @@ int sql_rem_int(int64_t lhs, bool is_lhs_neg, int64_t rhs, bool is_rhs_neg, int64_t *res, bool *is_res_neg); -u8 sqlGetBoolean(const char *z, u8); - const void *sqlValueText(sql_value *); int sqlValueBytes(sql_value *); void sqlValueSetStr(sql_value *, int, const void *, diff --git a/src/box/sql/util.c b/src/box/sql/util.c index 0e115accf..f908e9ced 100644 --- a/src/box/sql/util.c +++ b/src/box/sql/util.c @@ -495,8 +495,6 @@ sql_atoi64(const char *z, int64_t *val, bool *is_neg, int length) * This routine accepts both decimal and hexadecimal notation for integers. * * Any non-numeric characters that following zNum are ignored. - * This is different from sqlAtoi64() which requires the - * input number to be zero-terminated. */ int sqlGetInt32(const char *zNum, int *pValue) @@ -553,19 +551,6 @@ sqlGetInt32(const char *zNum, int *pValue) return 1; } -/* - * Return a 32-bit integer value extracted from a string. If the - * string is not an integer, just return 0. - */ -int -sqlAtoi(const char *z) -{ - int x = 0; - if (z) - sqlGetInt32(z, &x); - return x; -} - /* * The variable-length integer encoding is as follows: * diff --git a/src/box/sql/vdbe.c b/src/box/sql/vdbe.c index 8e12c37a0..c5c0a9790 100644 --- a/src/box/sql/vdbe.c +++ b/src/box/sql/vdbe.c @@ -4778,8 +4778,8 @@ case OP_Program: { /* jump */ /* If the p5 flag is clear, then recursive invocation of triggers is * disabled for backwards compatibility (p5 is set if this sub-program - * is really a trigger, not a foreign key action, and the flag set - * and cleared by the "PRAGMA recursive_triggers" command is clear). + * is really a trigger, not a foreign key action, and the setting + * 'recursive_triggers' is not set). * * It is recursive invocation of triggers, at the SQL level, that is * disabled. In some cases a single trigger may generate more than one diff --git a/src/box/sql/vdbe.h b/src/box/sql/vdbe.h index 1e585d89d..0f2703091 100644 --- a/src/box/sql/vdbe.h +++ b/src/box/sql/vdbe.h @@ -199,11 +199,6 @@ int sqlVdbeAddOp4(Vdbe *, int, int, int, int, const char *zP4, int); int sqlVdbeAddOp4Dup8(Vdbe *, int, int, int, int, const u8 *, int); int sqlVdbeAddOp4Int(Vdbe *, int, int, int, int, int); void sqlVdbeEndCoroutine(Vdbe *, int); -#if defined(SQL_DEBUG) && !defined(SQL_TEST_REALLOC_STRESS) -void sqlVdbeVerifyNoResultRow(Vdbe * p); -#else -#define sqlVdbeVerifyNoResultRow(A) -#endif void sqlVdbeChangeOpcode(Vdbe *, u32 addr, u8); void sqlVdbeChangeP1(Vdbe *, u32 addr, int P1); void sqlVdbeChangeP2(Vdbe *, u32 addr, int P2); diff --git a/src/box/sql/vdbeaux.c b/src/box/sql/vdbeaux.c index 5b4bc0182..43e0566bb 100644 --- a/src/box/sql/vdbeaux.c +++ b/src/box/sql/vdbeaux.c @@ -533,24 +533,6 @@ sqlVdbeCurrentAddr(Vdbe * p) return p->nOp; } -/* - * Verify that the VM passed as the only argument does not contain - * an OP_ResultRow opcode. Fail an assert() if it does. This is used - * by code in pragma.c to ensure that the implementation of certain - * pragmas comports with the flags specified in the mkpragmatab.tcl - * script. - */ -#if defined(SQL_DEBUG) && !defined(SQL_TEST_REALLOC_STRESS) -void -sqlVdbeVerifyNoResultRow(Vdbe * p) -{ - int i; - for (i = 0; i < p->nOp; i++) { - assert(p->aOp[i].opcode != OP_ResultRow); - } -} -#endif - /* * This function returns a pointer to the array of opcodes associated with * the Vdbe passed as the first argument. It is the callers responsibility diff --git a/test/sql-tap/lua/sqltester.lua b/test/sql-tap/lua/sqltester.lua index de5ef6b8b..9b0218e63 100644 --- a/test/sql-tap/lua/sqltester.lua +++ b/test/sql-tap/lua/sqltester.lua @@ -413,7 +413,7 @@ box.cfg{ } local engine = test_run and test_run:get_cfg('engine') or 'memtx' -_ = box.space._session_settings:update('sql_default_engine', {{'=', 2, engine}}) +box.space._session_settings:update('sql_default_engine', {{'=', 2, engine}}) function test.engine(self) return engine diff --git a/test/sql-tap/select1.test.lua b/test/sql-tap/select1.test.lua index f309e1e73..bea5b9c7c 100755 --- a/test/sql-tap/select1.test.lua +++ b/test/sql-tap/select1.test.lua @@ -2,6 +2,12 @@ test = require("sqltester") test:plan(173) +function set_full_column_names(value) + box.space._session_settings:update('sql_full_column_names', { + {'=', 2, value} + }) +end + --!./tcltestrunner.lua -- ["set","testdir",[["file","dirname",["argv0"]]]] -- ["source",[["testdir"],"\/tester.tcl"]] @@ -916,7 +922,7 @@ test:do_catchsql2_test( test:do_test( "select1-6.1.1", function() - box.space._session_settings:update('sql_full_column_names', {{'=', 2, true}}) + set_full_column_names(true) return test:catchsql2 "SELECT f1 FROM test1 ORDER BY f2" end, { -- <select1-6.1.1> @@ -952,7 +958,7 @@ test:do_test( msg = test:execsql2 "SELECT DISTINCT * FROM test1 WHERE f1==11" end) v = v == true and {0} or {1} - box.space._session_settings:update('sql_full_column_names', {{'=', 2, false}}) + set_full_column_names(false) return table.insert(v,msg) or v end, { -- <select1-6.1.4> @@ -1043,13 +1049,13 @@ test:do_catchsql2_test( test:do_test( "select1-6.5.1", function() - box.space._session_settings:update('sql_full_column_names', {{'=', 2, true}}) + set_full_column_names(true) local msg v = pcall( function () msg = test:execsql2 "SELECT test1.f1+F2 FROM test1 ORDER BY f2" end) v = v == true and {0} or {1} - box.space._session_settings:update('sql_full_column_names', {{'=', 2, false}}) + set_full_column_names(false) return table.insert(v,msg) or v end, { -- <select1-6.5.1> @@ -1123,7 +1129,7 @@ test:do_catchsql2_test( test:do_test( "select1-6.9.3", function() - box.space._session_settings:update('sql_full_column_names', {{'=', 2, false}}) + set_full_column_names(false) return test:execsql2 [[ SELECT test1 . f1, test1 . f2 FROM test1 LIMIT 1 ]] @@ -1136,7 +1142,7 @@ test:do_test( test:do_test( "select1-6.9.4", function() - box.space._session_settings:update('sql_full_column_names', {{'=', 2, true}}) + set_full_column_names(true) return test:execsql2 [[ SELECT test1 . f1, test1 . f2 FROM test1 LIMIT 1 ]] @@ -1149,7 +1155,7 @@ test:do_test( test:do_test( "select1-6.9.5", function() - box.space._session_settings:update('sql_full_column_names', {{'=', 2, true}}) + set_full_column_names(true) return test:execsql2 [[ SELECT 123.45; ]] @@ -1228,7 +1234,7 @@ test:do_execsql2_test( test:do_test( "select1-6.9.11", function() - box.space._session_settings:update('sql_full_column_names', {{'=', 2, true}}) + set_full_column_names(true) return test:execsql2 [[ SELECT a.f1, b.f2 FROM test1 a, test1 b LIMIT 1 ]] @@ -1251,7 +1257,7 @@ test:do_execsql2_test( test:do_test( "select1-6.9.13", function() - box.space._session_settings:update('sql_full_column_names', {{'=', 2, false}}) + set_full_column_names(false) return test:execsql2 [[ SELECT a.f1, b.f1 FROM test1 a, test1 b LIMIT 1 ]] @@ -1274,7 +1280,7 @@ test:do_execsql2_test( test:do_test( "select1-6.9.15", function() - box.space._session_settings:update('sql_full_column_names', {{'=', 2, true}}) + set_full_column_names(true) return test:execsql2 [[ SELECT a.f1, b.f1 FROM test1 a, test1 b LIMIT 1 ]] @@ -1294,7 +1300,7 @@ test:do_execsql2_test( -- </select1-6.9.16> }) -box.space._session_settings:update('sql_full_column_names', {{'=', 2, false}}) +set_full_column_names(false) test:do_catchsql2_test( "select1-6.10", [[ diff --git a/test/sql/transitive-transactions.result b/test/sql/transitive-transactions.result index e5868d7b0..91c35a309 100644 --- a/test/sql/transitive-transactions.result +++ b/test/sql/transitive-transactions.result @@ -87,7 +87,7 @@ box.space.PARENT:select(); --- - - [1, 1] ... --- Make sure that 'PRAGMA defer_foreign_keys' works. +-- Make sure that setting 'defer_foreign_keys' works. -- box.execute('DROP TABLE child;') box.execute('CREATE TABLE child(id INT PRIMARY KEY, x INT REFERENCES parent(y))') diff --git a/test/sql/transitive-transactions.test.lua b/test/sql/transitive-transactions.test.lua index f4df716c3..5565de7fe 100644 --- a/test/sql/transitive-transactions.test.lua +++ b/test/sql/transitive-transactions.test.lua @@ -45,7 +45,7 @@ fk_violation_3(); box.space.CHILD:select(); box.space.PARENT:select(); --- Make sure that 'PRAGMA defer_foreign_keys' works. +-- Make sure that setting 'defer_foreign_keys' works. -- box.execute('DROP TABLE child;') box.execute('CREATE TABLE child(id INT PRIMARY KEY, x INT REFERENCES parent(y))')
next prev parent reply other threads:[~2019-12-27 15:26 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-27 11:18 [Tarantool-patches] [PATCH v5 0/5] Remove " imeevma 2019-12-27 11:18 ` [Tarantool-patches] [PATCH v5 1/5] sql: remove PRAGMA "count_changes" imeevma 2019-12-27 11:18 ` [Tarantool-patches] [PATCH v5 2/5] sql: remove PRAGMA "short_column_names" imeevma 2019-12-27 16:55 ` Nikita Pettik 2019-12-29 12:58 ` Mergen Imeev 2019-12-27 11:18 ` [Tarantool-patches] [PATCH v5 3/5] sql: remove PRAGMA "sql_compound_select_limit" imeevma 2019-12-27 11:18 ` [Tarantool-patches] [PATCH v5 4/5] sql: remove control pragmas imeevma 2019-12-27 15:26 ` Vladislav Shpilevoy [this message] 2019-12-29 12:44 ` Mergen Imeev 2019-12-29 12:59 ` Mergen Imeev 2019-12-29 13:23 ` Mergen Imeev 2019-12-27 11:18 ` [Tarantool-patches] [PATCH v5 5/5] sql: refactor PRAGMA-related code imeevma 2019-12-27 15:26 ` Vladislav Shpilevoy 2019-12-29 12:46 ` Mergen Imeev 2019-12-30 10:19 [Tarantool-patches] [PATCH v5 0/5] Remove control pragmas imeevma 2019-12-30 10:19 ` [Tarantool-patches] [PATCH v5 4/5] sql: remove " imeevma
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=ac820692-3097-b2a1-dcab-ed0e419520e4@tarantool.org \ --to=v.shpilevoy@tarantool.org \ --cc=imeevma@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v5 4/5] sql: remove control pragmas' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox