Fixes CASE/WHEN expression possibly returning a set #220
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.
closes #219
From what I understand the problem was that
boolExpr
was being called directly with a value of "UNNEST(.." which directly produces a set which is then returned in the body of aCASE/WHEN
expression.If you try to create the same problem with publicly exported functions (using
maybeTable
for example which callboolExpr
internally) then you are forced to>>=
theUNNEST
ed rows which results in a subexpression in SQL and theCASE/WHEN
ends up returning a single row instead of a set.MaybeTable
used to useguard
which woks around the requirement of an extra>>=
. The fix just removes thetag
check for thejust
column altogether. This seems fine to me becausethere can never be a case wheretag
is non-null andjust
is null. I e it seems like theguard
was redundant.