postgresql/src/backend
Tom Lane e6440d5007 Remove inadequate assertion check in CTE inlining.
inline_cte() expected to find exactly as many references to the
target CTE as its cterefcount indicates.  While that should be
accurate for the tree as emitted by the parser, there are some
optimizations that occur upstream of here that could falsify it,
notably removal of unused subquery output expressions.

Trying to make the accounting 100% accurate seems expensive and
doomed to future breakage.  It's not really worth it, because
all this code is protecting is downstream assumptions that every
referenced CTE has a plan.  Let's convert those assertions to
regular test-and-elog just in case there's some actual problem,
and then drop the failing assertion.

Per report from Tomas Vondra (thanks also to Richard Guo for
analysis).  Back-patch to v12 where the faulty code came in.

Discussion: https://postgr.es/m/29196a1e-ed47-c7ca-9be2-b1c636816183@enterprisedb.com
2022-04-21 17:58:52 -04:00
..
access Rethink the delay-checkpoint-end mechanism in the back-branches. 2022-04-14 11:10:11 -04:00
bootstrap Skip WAL for new relfilenodes, under wal_level=minimal. 2020-04-04 12:25:34 -07:00
catalog Rethink the delay-checkpoint-end mechanism in the back-branches. 2022-04-14 11:10:11 -04:00
commands Fix breakage in AlterFunction(). 2022-04-19 23:03:59 -04:00
executor Revert applying column aliases to the output of whole-row Vars. 2022-03-17 18:18:05 -04:00
foreign Update copyrights for 2020 2020-01-01 12:21:45 -05:00
jit Back-patch LLVM 14 API changes. 2022-03-16 11:41:13 +13:00
lib Fix typo in comment 2021-04-20 14:36:41 +02:00
libpq Allow root-owned SSL private keys in libpq, not only the backend. 2022-03-02 11:57:02 -05:00
main Add PostgreSQL home page to --help output 2020-02-28 13:12:21 +01:00
nodes Fix assorted missing logic for GroupingFunc nodes. 2022-03-21 17:44:29 -04:00
optimizer Remove inadequate assertion check in CTE inlining. 2022-04-21 17:58:52 -04:00
parser Avoid invalid array reference in transformAlterTableStmt(). 2022-04-18 12:16:45 -04:00
partitioning Avoid using ambiguous word "non-negative" in error messages. 2021-07-28 01:21:52 +09:00
po Translation updates 2022-02-07 13:36:22 +01:00
port Reject huge_pages=on if shared_memory_type=sysv. 2021-10-26 13:04:40 +13:00
postmaster Fix waiting in RegisterSyncRequest(). 2022-03-16 15:37:15 +13:00
regex Make pg_regexec() robust against out-of-range search_start. 2021-09-11 15:19:49 -04:00
replication Fix the check to limit sync workers. 2022-04-19 09:08:05 +05:30
rewrite Fix rewriter to set hasModifyingCTE correctly on rewritten queries. 2021-09-08 12:05:43 -04:00
snowball Update copyrights for 2020 2020-01-01 12:21:45 -05:00
statistics Build inherited extended stats on partitioned tables 2022-01-15 19:14:00 +01:00
storage Rethink the delay-checkpoint-end mechanism in the back-branches. 2022-04-14 11:10:11 -04:00
tcop Suppress warning about stack_base_ptr with late-model GCC. 2022-02-17 22:45:34 -05:00
tsearch Don't leak compiled regex(es) when an ispell cache entry is dropped. 2021-03-18 21:44:43 -04:00
utils Fix CLUSTER tuplesorts on abbreviated expressions. 2022-04-20 17:17:39 -07:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
Makefile Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nls.mk Translation updates 2020-09-14 13:14:53 +02:00