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@gmail.com> wrote:

From: Hollow <hollow653@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