[tarantool-patches] Re: [PATCH] sql: correct confusing message

n.pettik korablev at tarantool.org
Tue Mar 27 19:36:00 MSK 2018


If you decided to send patch v2, you should specify it:
git format-patch --subject-prefix='PATCH v2’

Moreover, as a rule if you send patch v2,
you should add brief change log.

Overall, patch seems to be OK, except for very minor remark:
please, deal with your IDE or text editor to avoid extra diffs
due to wrong indentation.

You can update remotely your branch and send only diff
in reply to this message.

> On 27 Mar 2018, at 19:02, N.Tatunov <hollow653 at gmail.com> wrote:
> 
> From: Hollow <hollow653 at gmail.com>
> 
> Required to fix the following message:
> 
> "- error: expressions prohibited in PRIMARY KEY and UNIQUE constraints"
> 
> Currently this message appears even when user tries to CREATE
> non-unique functional index which isn't concerned with the
> following error message. Thus far the message was corrected
> to the proper one.
> 
> Closes #3236
> ---
> 
> Branch: https://github.com/tarantool/tarantool
> Issue: https://github.com/tarantool/tarantool/issues/3236
> 
> src/box/sql/build.c                    |  8 +++----
> test/sql-tap/colname.test.lua          |  4 ++--
> test/sql/message-func-indexes.result   | 41 ++++++++++++++++++++++++++++++++++
> test/sql/message-func-indexes.test.lua | 18 +++++++++++++++
> 4 files changed, 65 insertions(+), 6 deletions(-)
> create mode 100644 test/sql/message-func-indexes.result
> create mode 100644 test/sql/message-func-indexes.test.lua
> 
> diff --git a/src/box/sql/build.c b/src/box/sql/build.c
> index dd0f45c..c7f6b3c 100644
> --- a/src/box/sql/build.c
> +++ b/src/box/sql/build.c
> @@ -1802,7 +1802,7 @@ emitNewSysSpaceSequenceRecord(Parse *pParse, int space_id, const char reg_seq_id
> 
> 	/* 1. Space id  */
> 	sqlite3VdbeAddOp2(v, OP_SCopy, space_id, first_col + 1);
> -	
> +    

Still redundant diff. Please check it carefully and don’t hurry.

> 	/* 2. Sequence id  */
> 	sqlite3VdbeAddOp2(v, OP_IntCopy, reg_seq_id, first_col + 2);
> 
> @@ -2015,7 +2015,7 @@ sqlite3EndTable(Parse * pParse,	/* Parse context */
> 
> 			sqlite3OpenTable(pParse, iCursor, sys_space_sequence,
> 					 OP_OpenWrite);
> -			
> +            

The same: redundant diff.

> 			reg_space_seq_record = emitNewSysSpaceSequenceRecord(
> 				pParse,
> 				iSpaceId,
> @@ -3065,8 +3065,8 @@ sqlite3CreateIndex(Parse * pParse,	/* All information about this parse */
> 		pCExpr = sqlite3ExprSkipCollate(pListItem->pExpr);
> 		if (pCExpr->op != TK_COLUMN) {
> 			sqlite3ErrorMsg(pParse,
> -					"expressions prohibited in PRIMARY KEY and "
> -					"UNIQUE constraints");
> +					"functional indexes aren't supported "
> +					"in the current version");
> 			goto exit_create_index;
> 		} else {
> 			j = pCExpr->iColumn;
> diff --git a/test/sql-tap/colname.test.lua b/test/sql-tap/colname.test.lua
> index 71010da..c96623e 100755
> --- a/test/sql-tap/colname.test.lua
> +++ b/test/sql-tap/colname.test.lua
> @@ -643,13 +643,13 @@ test:do_catchsql_test(
>     "colname-11.2",
>     [[CREATE TABLE t1(a, b, c, d, e, 
>       PRIMARY KEY(a), UNIQUE('b' COLLATE "unicode_ci" DESC));]],
> -    {1, "/expressions prohibited in PRIMARY KEY/"})
> +    {1, "/functional indexes aren't supported in the current version/"})
> 
> test:execsql("create table table1(a primary key, b, c)")
> 
> test:do_catchsql_test(
>     "colname-11.3",
>     [[ CREATE INDEX t1c ON table1('c'); ]],
> -    {1, "/expressions prohibited in PRIMARY KEY/"})
> +    {1, "/functional indexes aren't supported in the current version/"})
> 
> test:finish_test()
> diff --git a/test/sql/message-func-indexes.result b/test/sql/message-func-indexes.result
> new file mode 100644
> index 0000000..797cf28
> --- /dev/null
> +++ b/test/sql/message-func-indexes.result
> @@ -0,0 +1,41 @@
> +test_run = require('test_run').new()
> +---
> +...
> +-- Creating tables.
> +box.sql.execute("CREATE TABLE t1(id INTEGER PRIMARY KEY, a INTEGER)")
> +---
> +...
> +box.sql.execute("CREATE TABLE t2(object INTEGER PRIMARY KEY, price INTEGER, count INTEGER)")
> +---
> +...
> +-- Expressions that're supposed to create functional indexes
> +-- should return certain message.
> +box.sql.execute("CREATE INDEX i1 ON t1(a+1)")
> +---
> +- error: functional indexes aren't supported in the current version
> +...
> +box.sql.execute("CREATE INDEX i2 ON t1(a)")
> +---
> +...
> +box.sql.execute("CREATE INDEX i3 ON t2(price + 100)")
> +---
> +- error: functional indexes aren't supported in the current version
> +...
> +box.sql.execute("CREATE INDEX i4 ON t2(price)")
> +---
> +...
> +box.sql.execute("CREATE INDEX i5 ON t2(count + 1)")
> +---
> +- error: functional indexes aren't supported in the current version
> +...
> +box.sql.execute("CREATE INDEX i6 ON t2(count * price)")
> +---
> +- error: functional indexes aren't supported in the current version
> +...
> +-- Cleaning up.
> +box.sql.execute("DROP TABLE t1")
> +---
> +...
> +box.sql.execute("DROP TABLE t2") 
> +---
> +...
> diff --git a/test/sql/message-func-indexes.test.lua b/test/sql/message-func-indexes.test.lua
> new file mode 100644
> index 0000000..fac715b
> --- /dev/null
> +++ b/test/sql/message-func-indexes.test.lua
> @@ -0,0 +1,18 @@
> +test_run = require('test_run').new()
> +
> +-- Creating tables.
> +box.sql.execute("CREATE TABLE t1(id INTEGER PRIMARY KEY, a INTEGER)")
> +box.sql.execute("CREATE TABLE t2(object INTEGER PRIMARY KEY, price INTEGER, count INTEGER)")
> +
> +-- Expressions that're supposed to create functional indexes
> +-- should return certain message.
> +box.sql.execute("CREATE INDEX i1 ON t1(a+1)")
> +box.sql.execute("CREATE INDEX i2 ON t1(a)")
> +box.sql.execute("CREATE INDEX i3 ON t2(price + 100)")
> +box.sql.execute("CREATE INDEX i4 ON t2(price)")
> +box.sql.execute("CREATE INDEX i5 ON t2(count + 1)")
> +box.sql.execute("CREATE INDEX i6 ON t2(count * price)")
> +
> +-- Cleaning up.
> +box.sql.execute("DROP TABLE t1")
> +box.sql.execute("DROP TABLE t2") 
> -- 
> 2.7.4
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20180327/470fb55c/attachment.html>


More information about the Tarantool-patches mailing list