summaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorMichael Paquier2023-08-12 01:44:15 +0000
committerMichael Paquier2023-08-12 01:44:15 +0000
commit638d42a3c52081cf4882520f0622161bad69b40f (patch)
tree397a7b97a73df3a82476b948374fa115028f278b /src/backend
parent5dc456b7dda4f7d0d7735b066607c190c74d174a (diff)
Show GIDs of two-phase commit commands as constants in pg_stat_statements
This relies on the "location" field added to TransactionStmt in 31de7e6, now applied to the "gid" field used by 2PC commands. These commands are now reported like: COMMIT PREPARED $1 PREPARE TRANSACTION $1 ROLLBACK PREPARED $1 Applying constants for these commands is a huge advantage for workloads that rely a lot on 2PC commands with different GIDs. Some tests are added to track the new behavior. Reviewed-by: Julien Rouhaud Discussion: https://postgr.es/m/ZMhT9kNtJJsHw6jK@paquier.xyz
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/parser/gram.y6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 15ece871a01..b3bdf947b6e 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -10924,7 +10924,7 @@ TransactionStmt:
n->kind = TRANS_STMT_PREPARE;
n->gid = $3;
- n->location = -1;
+ n->location = @3;
$$ = (Node *) n;
}
| COMMIT PREPARED Sconst
@@ -10933,7 +10933,7 @@ TransactionStmt:
n->kind = TRANS_STMT_COMMIT_PREPARED;
n->gid = $3;
- n->location = -1;
+ n->location = @3;
$$ = (Node *) n;
}
| ROLLBACK PREPARED Sconst
@@ -10942,7 +10942,7 @@ TransactionStmt:
n->kind = TRANS_STMT_ROLLBACK_PREPARED;
n->gid = $3;
- n->location = -1;
+ n->location = @3;
$$ = (Node *) n;
}
;