From 824e6054672c3ab8251d659cdd6535b96a269f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= Date: Tue, 9 Apr 2024 10:46:12 +0200 Subject: [PATCH 1/3] ebnf savepoint --- sql-statements/sql-statement-savepoint.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sql-statements/sql-statement-savepoint.md b/sql-statements/sql-statement-savepoint.md index 055eb6661499e..ff7e2f3c14608 100644 --- a/sql-statements/sql-statement-savepoint.md +++ b/sql-statements/sql-statement-savepoint.md @@ -36,6 +36,19 @@ RELEASE SAVEPOINT identifier After the transaction is committed or rolled back, all savepoints in the transaction will be deleted. +## Synopsis + +```ebnf+diagram +SavepointStmt ::= + "SAVEPOINT" Identifier + +RollbackToStmt ::= + "ROLLBACK" "TO" "SAVEPOINT"? Identifier + +ReleaseSavepointStmt ::= + "RELEASE" "SAVEPOINT" Identifier +``` + ## Examples Create a table `t1`: From 52d4bd8f0d7c7b7fbe32d92f4bb879261c363818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= Date: Tue, 9 Apr 2024 10:55:07 +0200 Subject: [PATCH 2/3] Add note about rollback work --- sql-statements/sql-statement-savepoint.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sql-statements/sql-statement-savepoint.md b/sql-statements/sql-statement-savepoint.md index ff7e2f3c14608..90988101dfcf6 100644 --- a/sql-statements/sql-statement-savepoint.md +++ b/sql-statements/sql-statement-savepoint.md @@ -154,6 +154,8 @@ SELECT * FROM t1; When `ROLLBACK TO SAVEPOINT` is used to roll back a transaction to a specified savepoint, MySQL releases the locks held only after the specified savepoint, while in TiDB pessimistic transaction, TiDB does not immediately release the locks held after the specified savepoint. Instead, TiDB releases all locks when the transaction is committed or rolled back. +TiDB doesn't support the `ROLLBACK WORK TO SAVEPOINT ...` syntax that MySQL does. + ## See also * [COMMIT](/sql-statements/sql-statement-commit.md) From 9c84e791f862e5a69a6c5ca7313cada8092a1f89 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 18 Apr 2024 10:24:50 +0800 Subject: [PATCH 3/3] wording updates --- sql-statements/sql-statement-savepoint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-savepoint.md b/sql-statements/sql-statement-savepoint.md index 90988101dfcf6..735ef8ccf352b 100644 --- a/sql-statements/sql-statement-savepoint.md +++ b/sql-statements/sql-statement-savepoint.md @@ -154,7 +154,7 @@ SELECT * FROM t1; When `ROLLBACK TO SAVEPOINT` is used to roll back a transaction to a specified savepoint, MySQL releases the locks held only after the specified savepoint, while in TiDB pessimistic transaction, TiDB does not immediately release the locks held after the specified savepoint. Instead, TiDB releases all locks when the transaction is committed or rolled back. -TiDB doesn't support the `ROLLBACK WORK TO SAVEPOINT ...` syntax that MySQL does. +TiDB does not support the MySQL syntax `ROLLBACK WORK TO SAVEPOINT ...`. ## See also