IS as a binary operator - Mailing list pgsql-general

From david wheeler
Subject IS as a binary operator
Date
Msg-id 4996BD98-0349-4871-B952-AFD8261920D0@gmail.com
Whole thread Raw
Responses Re: IS as a binary operator  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Heya folks, 

Recently I've been using a Kotlin library SQLDelight 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


pgsql-general by date:

Previous
From: Stephen Frost
Date:
Subject: Re: can't get psql authentication against Active Directory working
Next
From: Tom Lane
Date:
Subject: Re: IS as a binary operator