If we are pulling up a subquery that's under an outer join, and
the subquery's target list contains a strict expression that uses
both a subquery variable and a lateral-reference variable, it's okay
to pull up the expression without wrapping it in a PlaceHolderVar.
That's safe because if the subquery variable is forced to NULL
by the outer join, the expression result will come out as NULL too,
so we don't have to force that outcome by evaluating the expression
below the outer join. It'd be correct to wrap in a PHV, but that can
lead to very significantly worse plans, since we'd then have to use
a nestloop plan to pass down the lateral reference to where the
expression will be evaluated.
However, when we do that, we should not mark the lateral reference
variable as being nulled by the outer join, because it isn't after
we pull up the expression in this way. So the marking logic added
by
|
1 year ago | |
|---|---|---|
| config | jit: Remove {llvm-config,clang}-N configure probes. | 2 years ago |
| contrib | Clean up newlines following left parentheses | 1 year ago |
| doc | Revert "Handle better implicit transaction state of pipeline mode" | 1 year ago |
| src | Avoid mislabeling of lateral references when pulling up a subquery. | 1 year ago |
| .cirrus.star | Remove duplicate words in docs and code comments. | 2 years ago |
| .cirrus.tasks.yml | ci: Fix cached MacPorts installation management | 1 year ago |
| .cirrus.yml | ci: Make compute resources for CI configurable | 2 years ago |
| .dir-locals.el |
…
|
|
| .editorconfig |
…
|
|
| .git-blame-ignore-revs |
Add commit 7229ebe011 to .git-blame-ignore-revs.
|
1 year ago |
| .gitattributes | Exclude LLVM files from whitespace checks | 1 year ago |
| .gitignore |
…
|
|
| COPYRIGHT | Update copyright for 2024 | 2 years ago |
| GNUmakefile.in | Allow selecting the git revision to be packaged by "make dist". | 2 years ago |
| HISTORY |
…
|
|
| Makefile | Adapt REL_17_STABLE to its new status as a stable branch | 2 years ago |
| README.md | Adapt REL_17_STABLE to its new status as a stable branch | 2 years ago |
| aclocal.m4 | autoconf: Move export_dynamic determination to configure | 3 years ago |
| configure | Update configure probes for CFLAGS needed for ARM CRC instructions. | 1 year ago |
| configure.ac | Update configure probes for CFLAGS needed for ARM CRC instructions. | 1 year ago |
| meson.build | Clean up <stdbool.h> reference in meson.build. | 1 year ago |
| meson_options.txt | Allow selecting the git revision to be packaged by "make dist". | 2 years ago |
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/17/. In particular, information about building PostgreSQL from the source code can be found at https://www.postgresql.org/docs/17/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/.