Skip to content

Commit 12aa7b6

Browse files
authored
Fix issue #385 (#386)
Adds missing check for `TransactionStmtKind::Start` when verifying the existence of transactions as this is the same as using BEGIN: https://www.postgresql.org/docs/current/sql-begin.html Fixes #385
1 parent 0019f41 commit 12aa7b6

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

linter/src/rules/ban_concurrent_index_creation_in_transaction.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ pub fn ban_concurrent_index_creation_in_transaction(
1414
for raw_stmt in tree {
1515
match &raw_stmt.stmt {
1616
Stmt::TransactionStmt(stmt) => {
17-
if stmt.kind == TransactionStmtKind::Begin && !in_transaction {
17+
if (stmt.kind == TransactionStmtKind::Begin
18+
|| stmt.kind == TransactionStmtKind::Start)
19+
&& !in_transaction
20+
{
1821
in_transaction = true;
1922
}
2023
if stmt.kind == TransactionStmtKind::Commit {

linter/src/rules/constraint_missing_not_valid.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ fn not_valid_validate_in_transaction(tree: &[RawStmt], assume_in_transaction: bo
1616
for raw_stmt in tree {
1717
match &raw_stmt.stmt {
1818
Stmt::TransactionStmt(stmt) => {
19-
if stmt.kind == TransactionStmtKind::Begin && !in_transaction {
19+
if (stmt.kind == TransactionStmtKind::Begin
20+
|| stmt.kind == TransactionStmtKind::Start)
21+
&& !in_transaction
22+
{
2023
in_transaction = true;
2124
not_valid_names.clear();
2225
}

linter/src/rules/prefer_robust_stmts.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ pub fn prefer_robust_stmts(
3737
for raw_stmt in tree {
3838
match &raw_stmt.stmt {
3939
Stmt::TransactionStmt(stmt) => match stmt.kind {
40-
TransactionStmtKind::Begin => inside_transaction = true,
40+
TransactionStmtKind::Begin | TransactionStmtKind::Start => {
41+
inside_transaction = true;
42+
}
4143
TransactionStmtKind::Commit => inside_transaction = false,
4244
_ => continue,
4345
},

linter/src/rules/utils.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ pub fn tables_created_in_transaction(
1313
for raw_stmt in tree {
1414
match &raw_stmt.stmt {
1515
Stmt::TransactionStmt(stmt) => match stmt.kind {
16-
TransactionStmtKind::Begin => inside_transaction = true,
16+
TransactionStmtKind::Begin | TransactionStmtKind::Start => {
17+
inside_transaction = true;
18+
}
1719
TransactionStmtKind::Commit => inside_transaction = false,
1820
_ => continue,
1921
},

0 commit comments

Comments
 (0)