BUG REPORT: Unable to cast boolean::smallint

Started by James Pittmanover 11 years ago4 messagesbugs
Jump to latest
#1James Pittman
j.pittman@travelaudience.com

It does not seem possible to be able to cast a boolean to a smallint.

Whilst the following is possible:

SELECT true::int;

int4
------
1
(1 row)

The following is not (as of 9.4beta3)

SELECT true::smallint;
ERROR: cannot cast type boolean to smallint

It would seem logically consistent that both cases would hold true

Apologies if this is more of a 'feature request' than a bug.

Kind regards,

James

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: James Pittman (#1)
Re: BUG REPORT: Unable to cast boolean::smallint

James Pittman <j.pittman@travelaudience.com> writes:

It does not seem possible to be able to cast a boolean to a smallint.

Well, there are also not direct casts provided from boolean to bigint,
numeric, real, or double precision ;-). I'm not terribly excited about
this.

regards, tom lane

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#3David G. Johnston
david.g.johnston@gmail.com
In reply to: Tom Lane (#2)
Re: BUG REPORT: Unable to cast boolean::smallint

Tom Lane-2 wrote

James Pittman &lt;

j.pittman@

&gt; writes:

It does not seem possible to be able to cast a boolean to a smallint.

Well, there are also not direct casts provided from boolean to bigint,
numeric, real, or double precision ;-). I'm not terribly excited about
this.

So why is there one for Boolean to int?

To the OP, why do you think you want one?

While I haven't used it much converting Boolean to zero/one for use in a
math formula is a known use case though likely one where the difference
between int and smallint would probably be marginalized.

David J.

--
View this message in context: http://postgresql.1045698.n5.nabble.com/BUG-REPORT-Unable-to-cast-boolean-smallint-tp5825768p5825784.html
Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#4Marko Tiikkaja
marko@joh.to
In reply to: David G. Johnston (#3)
Re: BUG REPORT: Unable to cast boolean::smallint

On 11/5/14 5:31 PM, David G Johnston wrote:

Tom Lane-2 wrote

Well, there are also not direct casts provided from boolean to bigint,
numeric, real, or double precision ;-). I'm not terribly excited about
this.

So why is there one for Boolean to int?

That can be useful for e.g. CHECK (bool1::int + bool2::int + bool3::int
= 1).

.marko

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs