diff --git a/src/box/alter.cc b/src/box/alter.cc index 718d0029345c96254e11c5ec923ee1e833d4774c..a37a68ce435e6fa5b56264733b75a748bd784244 100644 --- a/src/box/alter.cc +++ b/src/box/alter.cc @@ -3710,7 +3710,7 @@ on_replace_dd_trigger(struct trigger * /* trigger */, void *event) if (strlen(trigger_name) != trigger_name_len || memcmp(trigger_name_src, trigger_name, trigger_name_len) != 0) { - tnt_raise(ClientError, ER_SQL, + tnt_raise(ClientError, ER_SQL_EXECUTE, "trigger name does not match extracted " "from SQL"); } @@ -3718,7 +3718,7 @@ on_replace_dd_trigger(struct trigger * /* trigger */, void *event) tuple_field_u32_xc(new_tuple, BOX_TRIGGER_FIELD_SPACE_ID); if (space_id != sql_trigger_space_id(new_trigger)) { - tnt_raise(ClientError, ER_SQL, + tnt_raise(ClientError, ER_SQL_EXECUTE, "trigger space_id does not match the value " "resolved on AST building from SQL"); } diff --git a/src/box/errcode.h b/src/box/errcode.h index e2ec240d2f00e0530054c45aebe3a7cc7be8647a..28d438333b0e4bf094bf00bec63c568a5bab7c4c 100644 --- a/src/box/errcode.h +++ b/src/box/errcode.h @@ -212,7 +212,7 @@ struct errcode_record { /*157 */_(ER_SQL_BIND_TYPE, "Bind value type %s for parameter %s is not supported") \ /*158 */_(ER_SQL_BIND_PARAMETER_MAX, "SQL bind parameter limit reached: %d") \ /*159 */_(ER_SQL_EXECUTE, "Failed to execute SQL statement: %s") \ - /*160 */_(ER_SQL, "SQL error: %s") \ + /*160 */_(ER_UNUSED, "") \ /*161 */_(ER_SQL_BIND_NOT_FOUND, "Parameter %s was not found in the statement") \ /*162 */_(ER_ACTION_MISMATCH, "Field %s contains %s on conflict action, but %s in index parts") \ /*163 */_(ER_VIEW_MISSING_SQL, "Space declared as a view must have SQL statement") \ diff --git a/src/box/sql/build.c b/src/box/sql/build.c index c40685e445f7147b170add8e27608c3ee1590349..bfc2d38829729fe22fa739cbc0e535041c13e93c 100644 --- a/src/box/sql/build.c +++ b/src/box/sql/build.c @@ -459,7 +459,7 @@ sql_column_add_nullable_action(struct Parse *parser, const char *action = on_conflict_action_strs[field->nullable_action]; err = tt_sprintf(err, field->name, def->name, action); - diag_set(ClientError, ER_SQL, err); + diag_set(ClientError, ER_SQL_EXECUTE, err); parser->is_aborted = true; return; } diff --git a/src/box/sql/delete.c b/src/box/sql/delete.c index d9b485ac51e1b480c6309da10e1924bd12f3efd8..ba0bc2c52410bd5caf34155f9639ad0a3cb727c6 100644 --- a/src/box/sql/delete.c +++ b/src/box/sql/delete.c @@ -103,7 +103,7 @@ sql_table_truncate(struct Parse *parse, struct SrcList *tab_list) if (! rlist_empty(&space->parent_fk_constraint)) { const char *err = "can not truncate space '%s' because other " "objects depend on it"; - diag_set(ClientError, ER_SQL, + diag_set(ClientError, ER_SQL_EXECUTE, tt_sprintf(err, space->def->name)); goto tarantool_error; } @@ -111,7 +111,7 @@ sql_table_truncate(struct Parse *parse, struct SrcList *tab_list) const char *err_msg = tt_sprintf("can not truncate space '%s' because space "\ "is a view", space->def->name); - diag_set(ClientError, ER_SQL, err_msg); + diag_set(ClientError, ER_SQL_EXECUTE, err_msg); goto tarantool_error; } sqlVdbeAddOp2(v, OP_Clear, space->def->id, true); diff --git a/src/box/sql/resolve.c b/src/box/sql/resolve.c index d65f74410f96e991b867e957cf34778e0dc25671..be8cc25a7238783acd11285905719e161d203078 100644 --- a/src/box/sql/resolve.c +++ b/src/box/sql/resolve.c @@ -1329,7 +1329,7 @@ resolveSelectStep(Walker * pWalker, Select * p) return WRC_Abort; if ((sNC.ncFlags & NC_HasAgg) == 0 || (sNC.ncFlags & NC_HasUnaggregatedId) != 0) { - diag_set(ClientError, ER_SQL, "HAVING " + diag_set(ClientError, ER_SQL_EXECUTE, "HAVING " "argument must appear in the GROUP BY " "clause or be used in an aggregate " "function"); diff --git a/src/box/sql/trigger.c b/src/box/sql/trigger.c index d1aafac5a7a19bea10d60947fce1556100f0623b..bfc6c1001acc7eedb1d244f88c33e81c25f525de 100644 --- a/src/box/sql/trigger.c +++ b/src/box/sql/trigger.c @@ -443,7 +443,7 @@ sql_trigger_replace(const char *name, uint32_t space_id, if (trigger != NULL) { /* Do not create a trigger on a system space. */ if (space_is_system(space)) { - diag_set(ClientError, ER_SQL, + diag_set(ClientError, ER_SQL_EXECUTE, "cannot create trigger on system table"); return -1; } @@ -452,7 +452,7 @@ sql_trigger_replace(const char *name, uint32_t space_id, * views only support INSTEAD of triggers. */ if (space->def->opts.is_view && trigger->tr_tm != TK_INSTEAD) { - diag_set(ClientError, ER_SQL, + diag_set(ClientError, ER_SQL_EXECUTE, tt_sprintf("cannot create %s "\ "trigger on view: %s", trigger->tr_tm == TK_BEFORE ? "BEFORE" : "AFTER", @@ -460,7 +460,7 @@ sql_trigger_replace(const char *name, uint32_t space_id, return -1; } if (!space->def->opts.is_view && trigger->tr_tm == TK_INSTEAD) { - diag_set(ClientError, ER_SQL, + diag_set(ClientError, ER_SQL_EXECUTE, tt_sprintf("cannot create "\ "INSTEAD OF trigger on space: %s", space->def->name)); return -1; diff --git a/test/box/misc.result b/test/box/misc.result index 33e41b55e1b527417f675ba280fcdd9fc5d9f7ff..43b5a4a155bd4347919e3e8b0f2318afd526b66b 100644 --- a/test/box/misc.result +++ b/test/box/misc.result @@ -489,7 +489,6 @@ t; 157: box.error.SQL_BIND_TYPE 158: box.error.SQL_BIND_PARAMETER_MAX 159: box.error.SQL_EXECUTE - 160: box.error.SQL 161: box.error.SQL_BIND_NOT_FOUND 162: box.error.ACTION_MISMATCH 163: box.error.VIEW_MISSING_SQL diff --git a/test/sql-tap/select3.test.lua b/test/sql-tap/select3.test.lua index cb973637f3d618e4e5651e15204a2dd60d218bd8..2807d42c6b92a01d5f709438aa25e601a6d8f5e8 100755 --- a/test/sql-tap/select3.test.lua +++ b/test/sql-tap/select3.test.lua @@ -200,7 +200,7 @@ test:do_catchsql_test("select3-3.1", [[ SELECT log, count(*) FROM t1 HAVING log>=4 ]], { -- <select3-3.1> - 1, "SQL error: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" + 1, "Failed to execute SQL statement: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" -- </select3-3.1> }) diff --git a/test/sql-tap/select5.test.lua b/test/sql-tap/select5.test.lua index 1353b39fc12e524f8efb9925491d9d5425b8934c..d34de313989670932628f1029c9b9a39d6acc3d3 100755 --- a/test/sql-tap/select5.test.lua +++ b/test/sql-tap/select5.test.lua @@ -424,7 +424,7 @@ test:do_catchsql_test( SELECT s1 FROM te40 HAVING s1 = 1; ]], { -- <select5-9.1> - 1, "SQL error: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" + 1, "Failed to execute SQL statement: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" -- </select5-9.1> }) @@ -434,7 +434,7 @@ test:do_catchsql_test( SELECT SUM(s1) FROM te40 HAVING s1 = 2; ]], { -- <select5-9.2> - 1, "SQL error: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" + 1, "Failed to execute SQL statement: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" -- </select5-9.2> }) @@ -444,7 +444,7 @@ test:do_catchsql_test( SELECT s1 FROM te40 HAVING SUM(s1) = 2; ]], { -- <select5-9.3> - 1, "SQL error: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" + 1, "Failed to execute SQL statement: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" -- </select5-9.3> }) @@ -484,7 +484,7 @@ test:do_catchsql_test( SELECT SUM(s1),s2 FROM te40 HAVING SUM(s1) > 0; ]], { -- <select5-9.7> - 1, "SQL error: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" + 1, "Failed to execute SQL statement: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" -- </select5-9.7> }) @@ -494,7 +494,7 @@ test:do_catchsql_test( SELECT SUM(s1) FROM te40 HAVING SUM(s1) > 0 and s2 > 0; ]], { -- <select5-9.8> - 1, "SQL error: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" + 1, "Failed to execute SQL statement: HAVING argument must appear in the GROUP BY clause or be used in an aggregate function" -- </select5-9.8> }) diff --git a/test/sql-tap/trigger1.test.lua b/test/sql-tap/trigger1.test.lua index 64763fafaf4ee4badbfce2259226168f28220d5b..38d7c55253456860ec1a20a7dcdb8cc837920f79 100755 --- a/test/sql-tap/trigger1.test.lua +++ b/test/sql-tap/trigger1.test.lua @@ -260,7 +260,7 @@ test:do_catchsql_test( end; ]], { -- <trigger1-1.12> - 1, "SQL error: cannot create INSTEAD OF trigger on space: T1" + 1, "Failed to execute SQL statement: cannot create INSTEAD OF trigger on space: T1" -- </trigger1-1.12> }) @@ -274,7 +274,7 @@ test:do_catchsql_test( end; ]], { -- <trigger1-1.13> - 1, "SQL error: cannot create BEFORE trigger on view: V1" + 1, "Failed to execute SQL statement: cannot create BEFORE trigger on view: V1" -- </trigger1-1.13> }) @@ -289,7 +289,7 @@ test:do_catchsql_test( end; ]], { -- <trigger1-1.14> - 1, "SQL error: cannot create AFTER trigger on view: V1" + 1, "Failed to execute SQL statement: cannot create AFTER trigger on view: V1" -- </trigger1-1.14> }) diff --git a/test/sql/delete.result b/test/sql/delete.result index 0e442e5b374349071c2b2b4e99588c0c4ccedad3..0bc389f232047d9d5924a8d3010300d32518c610 100644 --- a/test/sql/delete.result +++ b/test/sql/delete.result @@ -128,7 +128,8 @@ box.execute("CREATE VIEW v1 AS SELECT * FROM t1;") ... box.execute("TRUNCATE TABLE v1;") --- -- error: 'SQL error: can not truncate space ''V1'' because space is a view' +- error: 'Failed to execute SQL statement: can not truncate space ''V1'' because space + is a view' ... -- Can't truncate table with FK. box.execute("CREATE TABLE t2(x INT PRIMARY KEY REFERENCES t1(id));") @@ -137,8 +138,8 @@ box.execute("CREATE TABLE t2(x INT PRIMARY KEY REFERENCES t1(id));") ... box.execute("TRUNCATE TABLE t1;") --- -- error: 'SQL error: can not truncate space ''T1'' because other objects depend on - it' +- error: 'Failed to execute SQL statement: can not truncate space ''T1'' because other + objects depend on it' ... -- Table triggers should be ignored. box.execute("DROP TABLE t2;") diff --git a/test/sql/on-conflict.result b/test/sql/on-conflict.result index 2f29f5b99e79b032a514b202cc863f4b3c1377f5..be89caffe81a302b8270f43a1600f07bcd67bfe3 100644 --- a/test/sql/on-conflict.result +++ b/test/sql/on-conflict.result @@ -59,8 +59,8 @@ box.execute("CREATE TABLE te17 (s1 INT NULL PRIMARY KEY);") ... box.execute("CREATE TABLE test (a int PRIMARY KEY, b int NULL ON CONFLICT IGNORE);") --- -- error: 'SQL error: NULL declaration for column ''B'' of table ''TEST'' has been - already set to ''none''' +- error: 'Failed to execute SQL statement: NULL declaration for column ''B'' of table + ''TEST'' has been already set to ''none''' ... box.execute("CREATE TABLE test (a int, b int NULL, c int, PRIMARY KEY(a, b, c))") --- diff --git a/test/sql/triggers.result b/test/sql/triggers.result index 38fe32c188e8e101464648af80b6092ac1f9bfd9..307b3908550a406e7ad6878c10ab1ebc85440626 100644 --- a/test/sql/triggers.result +++ b/test/sql/triggers.result @@ -45,22 +45,24 @@ tuple = {"T1t", space_id, {sql = "CREATE TRIGGER t1t AFTER INSERT ON t1 FOR EACH ... box.space._trigger:insert(tuple) --- -- error: 'SQL error: trigger name does not match extracted from SQL' +- error: 'Failed to execute SQL statement: trigger name does not match extracted from + SQL' ... tuple = {"T1t", space_id, {sql = "CREATE TRIGGER t12t AFTER INSERT ON t1 FOR EACH ROW BEGIN INSERT INTO t2 VALUES(1); END;"}} --- ... box.space._trigger:insert(tuple) --- -- error: 'SQL error: trigger name does not match extracted from SQL' +- error: 'Failed to execute SQL statement: trigger name does not match extracted from + SQL' ... tuple = {"T2T", box.space.T1.id + 1, {sql = "CREATE TRIGGER t2t AFTER INSERT ON t1 FOR EACH ROW BEGIN INSERT INTO t2 VALUES(1); END;"}} --- ... box.space._trigger:insert(tuple) --- -- error: 'SQL error: trigger space_id does not match the value resolved on AST building - from SQL' +- error: 'Failed to execute SQL statement: trigger space_id does not match the value + resolved on AST building from SQL' ... immutable_part(box.space._trigger:select()) --- @@ -244,7 +246,8 @@ tuple = {"T1T", space_id, {sql = [[create trigger t1t instead of update on t1 fo ... box.space._trigger:insert(tuple) --- -- error: 'SQL error: cannot create INSTEAD OF trigger on space: T1' +- error: 'Failed to execute SQL statement: cannot create INSTEAD OF trigger on space: + T1' ... box.execute("CREATE VIEW V1 AS SELECT * FROM t1;") --- @@ -258,14 +261,14 @@ tuple = {"V1T", space_id, {sql = [[create trigger v1t before update on v1 for ea ... box.space._trigger:insert(tuple) --- -- error: 'SQL error: cannot create BEFORE trigger on view: V1' +- error: 'Failed to execute SQL statement: cannot create BEFORE trigger on view: V1' ... tuple = {"V1T", space_id, {sql = [[create trigger v1t AFTER update on v1 for each row begin delete from t1 WHERE a=old.a+2; end;]]}} --- ... box.space._trigger:insert(tuple) --- -- error: 'SQL error: cannot create AFTER trigger on view: V1' +- error: 'Failed to execute SQL statement: cannot create AFTER trigger on view: V1' ... space_id = box.space._fk_constraint.id --- @@ -275,7 +278,7 @@ tuple = {"T1T", space_id, {sql = [[create trigger t1t instead of update on "_fk_ ... box.space._trigger:insert(tuple) --- -- error: 'SQL error: cannot create trigger on system table' +- error: 'Failed to execute SQL statement: cannot create trigger on system table' ... box.execute("DROP VIEW V1;") ---