From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | n(dot)zhuchkov(at)postgrespro(dot)ru |
Cc: | "'pgsql-hackers'" <pgsql-hackers(at)postgresql(dot)org>, Alex Ignatov <a(dot)ignatov(at)postgrespro(dot)ru> |
Subject: | Re: Direct converting numeric types to bool |
Date: | 2018-03-26 15:13:42 |
Message-ID: | 26668.1522077222@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
n(dot)zhuchkov(at)postgrespro(dot)ru writes:
> Yes, in postgres already exists int::boolean casting and in case:
> select 10::bigint::int::boolean;
> it will perfectly work. But if you want to cast more significant number:
> select (2^32)::bigint::int::boolean;
> you receive the boundary value error.
Right. I don't see a reason why we shouldn't create a bigint-to-bool
cast to fix that, and smallint-to-bool maybe for completeness. However,
I'm less excited about float or numeric to bool, because I don't think
there is any very principled argument about what such a cast should do
with infinities, NaNs, or denormalized numbers. Somebody who knows
what should happen for their own application can create their own cast
that handles those cases ... but I'm unsure that there's a one-size-
fits-all answer that we could put into a default behavior.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2018-03-26 15:14:03 | Re: Why does load_external_function() return PGFunction? |
Previous Message | Alvaro Herrera | 2018-03-26 15:11:26 | Re: bugfifx: a minor mistake in brin_inclusion.c comment |