Heya folks, 

Recently I've been using a Kotlin library SQLDelight 
<https://cashapp.github.io/sqldelight/2.0.0-alpha05/> which is great but has 
some issues with PostgreSQL support. In particular, for null parameters it 
converts `=` to `IS` - and it treats `IS` as a binary operator (rather than `IS 
NULL` unary operator), which Postgres doesn't like wrt prepared statements

prepare test(text) as (SELECT * FROM test WHERE nullable_col IS $1);
ERROR:  syntax error at or near "$1"
LINE 1: ...epare test(text) as (SELECT * FROM test WHERE nullable_col IS $1);
full details at [1]

I’ve been working on a PR to use `IS NOT DISTINCT FROM` as the `=` substitution 
for nullable parameters rather than `IS`, however unfortunately that’s not 
universally supported either (MySQL). 

Just wondering if anyone has other ideas? I guess there’s no interest in adding 
support for `IS` as basically an alias for `IS NOT DISTINCT FROM`? (and `IS 
NOT` for `IS DISTINCT FROM`)

TIA

David Wheeler

[1] https://github.com/cashapp/sqldelight/issues/3863

Reply via email to