Thanks for your feedback!
Really, support migration from Oracle isn't the best argumentation for
this patch.
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.
Also in operations with floating-point numbers, may arise a fault in the
results of calculations, because of which the number will always be cast
in true
Thus it sounds like not a bad idea to support direct casting from
numeric types to boolean. What do you think?
Alex Ignatov писал 2018-02-28 18:23:
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> Sent: Wednesday, February 28, 2018 6:04 PM
> To: pgsql-hackers <[email protected]>
> Subject: Direct converting numeric types to bool
>
> Attached patch allow direct convertion of numeric types to bool like
> integer::bool.
> Supported types:
> - smallint;
> - bigint;
> - real;
> - double precision;
> - decimal(numeric).
>
> This functionality is helped with migration from Oracle.
>
> --
> Nikita Zhuchkov
> Postgres Professional: http://www.postgrespro.com The Russian Postgres
> Company
>
> Hello!
>
> What prevent us from:
>
> postgres=# select 1::bigint::int::boolean;
> bool
> ------
> t
> (1 row)
>
> It is just one additional casting and required no additional patching
> --
> Alex Ignatov
> Postgres Professional: http://www.postgrespro.com
> The Russian Postgres Company