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: n.zhuch...@postgrespro.ru [mailto:n.zhuch...@postgrespro.ru]
Sent: Wednesday, February 28, 2018 6:04 PM
To: pgsql-hackers <pgsql-hack...@postgresql.org>
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

Reply via email to