syntax sugar for conditional check
Hello,
I thought it would be cool to have conditional check syntax, which gets converted to simple check constraint syntax.
Here’s a gist:
https://gist.github.com/aj0strow/5a07f2ddcad324c4dac2c4095c821999
It’s just sugar, but i think it would make check constraints easier to read, and easier to write without backwards boolean logic.
Thank you,
AJ
On Thu, Mar 31, 2016 at 10:19 AM, Alexander Ostrow <aj@epcylon.com> wrote:
Hello,
I thought it would be cool to have conditional check syntax, which gets
converted to simple check constraint syntax.Here’s a gist:
https://gist.github.com/aj0strow/5a07f2ddcad324c4dac2c4095c821999
It’s just sugar, but i think it would make check constraints easier to
read, and easier to write without backwards boolean logic.
For future reference please make every effort to make emails to the list
self-contained - which has the added benefit of avoid link expiration in
the future.
As to the recommendation at hand - I don't see significant value in
implementing non-SQL Standard syntax in this area.
David J.
On 3/31/16 12:19 PM, Alexander Ostrow wrote:
Hello,
I thought it would be cool to have conditional check syntax, which gets
converted to simple check constraint syntax.Here’s a gist:
https://gist.github.com/aj0strow/5a07f2ddcad324c4dac2c4095c821999
It’s just sugar, but i think it would make check constraints easier to
read, and easier to write without backwards boolean logic.
Rather than this, I think an exclusive-or operator would be a lot more
useful. The only difficulty I run into with CHECK constaints is when I
want to ensure that only ONE condition is true.
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
2016-04-01 18:57 GMT+02:00 David G. Johnston <david.g.johnston@gmail.com>:
On Thu, Mar 31, 2016 at 10:19 AM, Alexander Ostrow <aj@epcylon.com> wrote:
Hello,
I thought it would be cool to have conditional check syntax, which gets
converted to simple check constraint syntax.Here’s a gist:
https://gist.github.com/aj0strow/5a07f2ddcad324c4dac2c4095c821999
It’s just sugar, but i think it would make check constraints easier to
read, and easier to write without backwards boolean logic.For future reference please make every effort to make emails to the list
self-contained - which has the added benefit of avoid link expiration in
the future.As to the recommendation at hand - I don't see significant value in
implementing non-SQL Standard syntax in this area.
+1
This formula should be known to all developers
Regards
Pavel
Show quoted text
David J.
Jim Nasby <Jim.Nasby@BlueTreble.com> writes:
Rather than this, I think an exclusive-or operator would be a lot more
useful. The only difficulty I run into with CHECK constaints is when I
want to ensure that only ONE condition is true.
"bool != bool" works as XOR. If you need "exactly one of N" you could
do something like "(cond1::int + cond2::int + ...) = 1". We could
wrap some syntactic sugar around either of these, but it's not clear
to me that it'd be any more useful than a custom SQL function.
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On 4/1/16 1:08 PM, Tom Lane wrote:
Jim Nasby <Jim.Nasby@BlueTreble.com> writes:
Rather than this, I think an exclusive-or operator would be a lot more
useful. The only difficulty I run into with CHECK constaints is when I
want to ensure that only ONE condition is true."bool != bool" works as XOR. If you need "exactly one of N" you could
do something like "(cond1::int + cond2::int + ...) = 1". We could
wrap some syntactic sugar around either of these, but it's not clear
to me that it'd be any more useful than a custom SQL function.
It would prevent having to re-create that function every time... :)
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Fri, Apr 1, 2016 at 3:22 PM, Jim Nasby <Jim.Nasby@bluetreble.com> wrote:
On 4/1/16 1:08 PM, Tom Lane wrote:
Jim Nasby <Jim.Nasby@BlueTreble.com> writes:
Rather than this, I think an exclusive-or operator would be a lot more
useful. The only difficulty I run into with CHECK constaints is when I
want to ensure that only ONE condition is true."bool != bool" works as XOR. If you need "exactly one of N" you could
do something like "(cond1::int + cond2::int + ...) = 1". We could
wrap some syntactic sugar around either of these, but it's not clear
to me that it'd be any more useful than a custom SQL function.It would prevent having to re-create that function every time... :)
And it would nicely complement our recent addition of "
num_nonnulls
(variadic "any")"
David J.