When rewriting a GRAPH_TABLE into a subquery, replace_property_refs_mutator() bumps levelsup of lateral references by one so that they reference outside the subquery. This works for path patterns that result in only one path query. Patterns that produce multiple path queries are rewritten as a UNION of path queries. Since every path query becomes a subquery of the UNION statement, the levelsup of lateral references in those path queries need an additional bump. This adjustment was missing resulting in the lateral references being interpreted as references in the UNION query itself. This caused different symptoms like a crash in create_lateral_join_info() or error "plan should not reference subplan's variable". The symptoms varied depending on the number of RangeTblEntries in the UNION statement. This commit adds the missing adjustment. Author: Ayush Tiwari <ayushtiwari.slg01@gmail.com> Author: Satya Narlapuram <satyanarlapuram@gmail.com> Reviewed-by: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/CAHg%2BQDfnLzsgjaQ_CiKSpP4JH3MKOiwoawEcCzXa9uYr45yiWw%40mail.gmail.com |
||
|---|---|---|
| .github | ||
| config | ||
| contrib | ||
| doc | ||
| src | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .mailmap | ||
| aclocal.m4 | ||
| configure | ||
| configure.ac | ||
| COPYRIGHT | ||
| GNUmakefile.in | ||
| HISTORY | ||
| Makefile | ||
| meson.build | ||
| meson_options.txt | ||
| README.md | ||
PostgreSQL Database Management System
This directory contains the source code distribution of the PostgreSQL database management system.
PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. This distribution also contains C language bindings.
Copyright and license information can be found in the file COPYRIGHT.
General documentation about this version of PostgreSQL can be found at https://www.postgresql.org/docs/devel/. In particular, information about building PostgreSQL from the source code can be found at https://www.postgresql.org/docs/devel/installation.html.
The latest version of this software, and related software, may be obtained at https://www.postgresql.org/download/. For more information look at our web site located at https://www.postgresql.org/.