diff options
| author | Michael Paquier | 2023-08-12 01:44:15 +0000 |
|---|---|---|
| committer | Michael Paquier | 2023-08-12 01:44:15 +0000 |
| commit | 638d42a3c52081cf4882520f0622161bad69b40f (patch) | |
| tree | 397a7b97a73df3a82476b948374fa115028f278b /src/backend | |
| parent | 5dc456b7dda4f7d0d7735b066607c190c74d174a (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.y | 6 |
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; } ; |
