prql
prql copied to clipboard
Preventing single-equals-sign errors in filters
I think using a single =
sign in a filter
operation should result in an error. SQL uses single-equals for comparison (plus people make typos), which means you can easily type up the following:
from x
filter left_side = right_side
I could be wrong, but I seem to remember this erroring at some point in the past. Now, it happily compiles to:
SELECT
*
FROM
x
WHERE
right_side
Furthermore, if right_side
was instead right
in PRQL, then the compiled SQL would instead contain WHERE "right"
.
I thought for a second that the compiler genuinely assigned the value of right_side
to the variable left_side
here, but it doesn't, because:
from x
filter something = right_side
select something
compiles to
SELECT
something
FROM
x
WHERE
right_side
instead of
SELECT
- something
+ right_side
FROM
x
WHERE
right_side
Yes agree, this should be an error