Forgot tests, sorry.
Here they are:


diff --git a/test/sql-tap/start-transaction.test.lua b/test/sql-tap/start-transaction.test.lua
new file mode 100755
index 0000000..a2a622e
--- /dev/null
+++ b/test/sql-tap/start-transaction.test.lua
@@ -0,0 +1,147 @@
+#!/usr/bin/env tarantool
+test = require("sqltester")
+test:plan(10)
+
+test:do_catchsql_test(
+ "start-transaction-1.0",
+ [[
+ BEGIN;
+ CREATE TABLE IF NOT EXISTS t(id int PRIMARY KEY);
+ COMMIT;
+ ]], {
+ -- <start-transaction-1.0>
+ 1, "near \"BEGIN\": syntax error"
+ -- <start-transaction-1.0>
+ })
+
+test:do_catchsql_test(
+ "start-transaction-1.1",
+ [[
+ BEGIN TRANSACTION;
+ CREATE TABLE IF NOT EXISTS t(id int PRIMARY KEY);
+ COMMIT;
+ ]], {
+ -- <start-transaction-1.1>
+ 1, "near \"BEGIN\": syntax error"
+ -- <start-transaction-1.1>
+ })
+
+test:do_catchsql_test(
+ "start-transaction-1.2",
+ [[
+ CREATE TABLE IF NOT EXISTS t(id int PRIMARY KEY);
+ START TRANSACTION;
+ INSERT INTO t VALUES (1);
+ DELETE FROM t;
+ COMMIT;
+ ]], {
+ -- <start-transaction-1.2>
+ 0
+ -- <start-transaction-1.2>
+ })
+
+test:do_catchsql_test(
+ "start-transaction-1.3",
+ [[
+ START TRANSACTION;
+ INSERT INTO t VALUES (1);
+ DELETE FROM t;
+ COMMIT TRANSACTION;
+ ]], {
+ -- <start-transaction-1.3>
+ 1, "keyword \"TRANSACTION\" is reserved"
+ -- <start-transaction-1.3>
+ })
+
+test:do_catchsql_test(
+ "start-transaction-1.4",
+ [[
+ COMMIT;
+ START TRANSACTION;
+ INSERT INTO t VALUES (1);
+ DELETE FROM t;
+ END;
+ ]], {
+ -- <start-transaction-1.4>
+ 1, "keyword \"END\" is reserved"
+ -- <start-transaction-1.4>
+ })
+
+test:do_catchsql_test(
+ "start-transaction-1.5",
+ [[
+ COMMIT;
+ START TRANSACTION;
+ INSERT INTO t VALUES (1);
+ DELETE FROM t;
+ END TRANSACTION;
+ ]], {
+ -- <start-transaction-1.5>
+ 1, "keyword \"END\" is reserved"
+ -- <start-transaction-1.5>
+ })
+
+test:do_catchsql_test(
+ "start-transaction-1.6",
+ [[
+ COMMIT;
+ START TRANSACTION;
+ INSERT INTO t VALUES (1);
+ DELETE FROM t;
+ ROLLBACK;
+ ]], {
+ -- <start-transaction-1.6>
+ 0
+ -- <start-transaction-1.6>
+ })
+
+test:do_catchsql_test(
+ "start-transaction-1.7",
+ [[
+ START TRANSACTION;
+ INSERT INTO t VALUES (1);
+ DELETE FROM t;
+ ROLLBACK TRANSACTION;
+ COMMIT;
+ ]], {
+ -- <start-transaction-1.7>
+ 1, "keyword \"TRANSACTION\" is reserved"
+ -- <start-transaction-1.7>
+ })
+
+test:do_catchsql_test(
+ "start-transaction-1.8",
+ [[
+ COMMIT;
+ START TRANSACTION;
+ INSERT INTO t VALUES (1);
+ DELETE FROM t;
+ SAVEPOINT s1;
+ INSERT INTO t VALUES (2);
+ DELETE FROM t;
+ ROLLBACK TO s1;
+ COMMIT;
+ ]], {
+ -- <start-transaction-1.8>
+ 0
+ -- <start-transaction-1.8>
+ })
+
+test:do_catchsql_test(
+ "start-transaction-1.9",
+ [[
+ START TRANSACTION;
+ INSERT INTO t VALUES (1);
+ DELETE FROM t;
+ SAVEPOINT s1;
+ INSERT INTO t VALUES (2);
+ DELETE FROM t;
+ ROLLBACK TRANSACTION TO s1;
+ COMMIT;
+ ]], {
+ -- <start-transaction-1.9>
+ 1, "keyword \"TRANSACTION\" is reserved"
+ -- <start-transaction-1.9>
+ })
+
+test:finish_test()