Allow more expressions for selected statements #242
Merged
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.
As raised in #213 and discussed in #215, some valid expressions, such as negative numbers, are not supported by the
INSERT
statement. Thus, this PR carefully extends the range of expressions allowed in theINSERT
statements, but also inEXECUTE
statements and in hints.I looked into SQL:2023 to see which expressions are allowed inside the
VALUES
list of anINSERT
statement, and there are a lot of valid alternatives in the standard. Some of them are collected in the following:Note that all of this is scattered accross many pages and places as part of complex hierarchies. I collected just a few possibilities here. I marked newly supported (+) and some unsupported (-) alternatives. Furthermore, this PR also allows for signed numerical/interval expressions (a.k.a unary minus of numeric/interval). Cast expressions are restricted to only take other allowed expressions as input.
Besides, this PR updates the CI runners to Ubuntu 24.04 and uses its shipped clang/gcc versions. While checking the runners, I noticed that (i) there was an issue with the member variable introduced in #240 and (ii) that did not cause the CI to fail. I sneaked in fixes for both.
fixes #215