tree: implement heterogeneous variadic type lists #138106
Draft
+77
−5
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.
Previously, functions could have a VariadicType, which is some number of fixed arguments, followed by a homogeneous list of elements. In b2b7b09, CONCAT()'s implementation was changed to accept arguments of any type, without the homogeneous requirement. The type checker is now rejecting prepared statements with heterogeneous arguments to CONCAT() (and other internal functions that should reasonably accept heterogenous arguments).
This patch introduces a new TypeList that allows any sequence of arguments and uses that type for CONCAT().
Fixes: #136295
Release note (bug fix): PREPARE now accepts heterogeneous arguments to the CONCAT function.