aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/citext.sgml
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2025-05-21 10:22:12 +0900
committerMichael Paquier <michael@paquier.xyz>2025-05-21 10:22:12 +0900
commit06450c7b8c70120cebe91e4b6ed3cec9d7051d0a (patch)
treed77c334cda66cdd1f36dddd048ed25131478f095 /doc/src/sgml/citext.sgml
parenta6060f1cbec39575634043baeeaeb11e86042fa6 (diff)
downloadpostgresql-master.tar.gz
postgresql-master.zip
Fix regression with location calculation of nested statementsHEADmaster
The statement location calculated for some nested query cases was wrong when multiple queries are sent as a single string, these being separated by semicolons. As pointed by Sami Imseih, the location calculation was incorrect when the last query of nested statement with multiple queries does **NOT** finish with a semicolon for the last statement. In this case, the statement length tracked by RawStmt is 0, which is equivalent to say that the string should be used until its end. The code previously discarded this case entirely, causing the location to remain at 0, the same as pointing at the beginning of the string. This caused pg_stat_statements to store incorrect query strings. This issue has been introduced in 499edb09741b. I have looked at the diffs generated by pgaudit back then, and noticed the difference generated for this nested query case, but I have missed the point that it was an actual regression with an existing case. A test case is added in pg_stat_statements to provide some coverage, restoring the pre-17 behavior for the calculation of the query locations. Special thanks to David Steele, who, through an analysis of the test diffs generated by pgaudit with the new v18 logic, has poked me about the fact that my original analysis of the matter was wrong. The test output of pg_overexplain is updated to reflect the new logic, as the new locations refer to the beginning of the argument passed to the function explain_filter(). When the module was introduced in 8d5ceb113e3f, which was after 499edb09741b (for the new calculation method), the locations of the test were not actually right: the plan generated for the query string given in input of the function pointed to the top-level query, not the nested one. Reported-by: David Steele <david@pgbackrest.org> Author: Michael Paquier <michael@paquier.xyz> Reviewed-by: Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com> Reviewed-by: Jian He <jian.universality@gmail.com> Reviewed-by: Sami Imseih <samimseih@gmail.com> Reviewed-by: David Steele <david@pgbackrest.org> Discussion: https://postgr.es/m/844a3b38-bbf1-4fb2-9fd6-f58c35c09917@pgbackrest.org
Diffstat (limited to 'doc/src/sgml/citext.sgml')
0 files changed, 0 insertions, 0 deletions