Re: Significant Execution Time Difference Between PG13.14 and PG16.4 for Query on information_schema Tables.
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Richard Guo <guofenglinux@gmail.com>
Cc: David Rowley <dgrowleyml@gmail.com>, nikhil raj <nikhilraj474@gmail.com>,
pgsql-hackers@lists.postgresql.org
Date: 2024-08-29T20:53:03Z
Lists: pgsql-hackers, pgsql-general
Attachments
- v1-0001-Remove-one-memoize-test-case-added-by-commit-069d.patch (text/x-diff) patch v1-0001
- v1-0002-Avoid-inserting-PlaceHolderVars-in-cases-where-pr.patch (text/x-diff) patch v1-0002
Richard Guo <guofenglinux@gmail.com> writes: > On Thu, Aug 29, 2024 at 4:47 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> In the meantime, I think this test case is mighty artificial, >> and it wouldn't bother me any to just take it out again for the >> time being. > Yeah, I think we can remove the 't1.two+t2.two' test case if we go > with your proposed patch to address this performance regression. Here's a polished-up patchset for that. I made the memoize test removal a separate patch because (a) it only applies to master and (b) it seems worth calling out as something we might be able to revert later. I found one bug in the draft patch: add_nulling_relids only processes Vars of level zero, so we have to apply it before not after adjusting the Vars' levelsup. An alternative could be to add a levelsup parameter to add_nulling_relids, but that seemed like unnecessary complication. regards, tom lane
Commits
-
Avoid inserting PlaceHolderVars in cases where pre-v16 PG did not.
- b43110869fd8 17.0 landed
- 80d9c07a4a8c 16.5 landed
- cb8e50a4a09f 18.0 landed
-
Remove one memoize test case added by commit 069d0ff02.
- 3409b4db631f 18.0 landed