Thread: pgsql: Ignore IntoClause.viewQuery in query jumbling

pgsql: Ignore IntoClause.viewQuery in query jumbling

From
Michael Paquier
Date:
Ignore IntoClause.viewQuery in query jumbling

IntoClause.viewQuery is a copy of the parsed-but-not-rewritten SELECT
clause copied to IntoClause when transforming CreateTableAsStmt for a
materialized view.  Including a second copy of the SELECT Query into the
query jumbling was leading to an incorrect numbering of the Const node
locations, as these would be counted twice instead of once.

This becomes visible once the query normalization is applied to CREATE
MATERIALIZED VIEW in pg_stat_statements in the shape of a query string
using only odd numbers for the normalized constants, (regression tests
added in pg_stat_statements as of de2aca2 would show the difference).
Including the original Query from CreateTableAsStmt is enough for the
query jumbling.

Reviewed-by: Bertrand Drouvot
Discussion: https://postgr.es/m/Y+MRdEq9W9XVa2AB@paquier.xyz

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d69cd3a2e29c68a3fdfd4e97167f9a7c6ad29e80

Modified Files
--------------
src/include/nodes/primnodes.h | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)