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; + ]], { + -- + 1, "near \"BEGIN\": syntax error" + -- + }) + +test:do_catchsql_test( + "start-transaction-1.1", + [[ + BEGIN TRANSACTION; + CREATE TABLE IF NOT EXISTS t(id int PRIMARY KEY); + COMMIT; + ]], { + -- + 1, "near \"BEGIN\": syntax error" + -- + }) + +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; + ]], { + -- + 0 + -- + }) + +test:do_catchsql_test( + "start-transaction-1.3", + [[ + START TRANSACTION; + INSERT INTO t VALUES (1); + DELETE FROM t; + COMMIT TRANSACTION; + ]], { + -- + 1, "keyword \"TRANSACTION\" is reserved" + -- + }) + +test:do_catchsql_test( + "start-transaction-1.4", + [[ + COMMIT; + START TRANSACTION; + INSERT INTO t VALUES (1); + DELETE FROM t; + END; + ]], { + -- + 1, "keyword \"END\" is reserved" + -- + }) + +test:do_catchsql_test( + "start-transaction-1.5", + [[ + COMMIT; + START TRANSACTION; + INSERT INTO t VALUES (1); + DELETE FROM t; + END TRANSACTION; + ]], { + -- + 1, "keyword \"END\" is reserved" + -- + }) + +test:do_catchsql_test( + "start-transaction-1.6", + [[ + COMMIT; + START TRANSACTION; + INSERT INTO t VALUES (1); + DELETE FROM t; + ROLLBACK; + ]], { + -- + 0 + -- + }) + +test:do_catchsql_test( + "start-transaction-1.7", + [[ + START TRANSACTION; + INSERT INTO t VALUES (1); + DELETE FROM t; + ROLLBACK TRANSACTION; + COMMIT; + ]], { + -- + 1, "keyword \"TRANSACTION\" is reserved" + -- + }) + +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; + ]], { + -- + 0 + -- + }) + +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; + ]], { + -- + 1, "keyword \"TRANSACTION\" is reserved" + -- + }) + +test:finish_test()