release-23.1: importer: disallow subqueries in function arguments for pg_dump #118611
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport 1/1 commits from #118569 on behalf of @DrewKimball.
/cc @cockroachdb/release
Some functions can modify the db schema, and so can be included in a pg_dump file. The pg_dump importer logic type-checks such functions, which can lead to a nil-pointer panic in cases like the following:
SELECT addgeometrycolumn('t', 'foo', 4326, (SELECT 'POINT'), 2)
This is because subqueries cannot be type-checked outside the optbuilder, which sets the type annotation for the subquery.This patch explicitly disallows subqueries in the type-checking that happens for processing a pg_dump file. This will ensure that users get an expected
subqueries are not allowed in pg_dump function arguments
error, instead of the panic.Fixes #117724
Release note (bug fix): Fixed a rare panic that could happen during a pg_dump import that contains a function like
SELECT addgeometrycolumn(...)
. Now, attempting to import a pg_dump with a function that has a subquery in one of its arguments results in an expected error.Release justification: fix panic in pg_dump import