Re: Casting Integer to Boolean in assignment - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Casting Integer to Boolean in assignment
Date
Msg-id 1bc32f58-a479-ee28-353f-b11810bab95e@aklaver.com
Whole thread Raw
In response to Re: Casting Integer to Boolean in assignment  (Geoff Winkless <pgsqladmin@geoff.dj>)
Responses Re: Casting Integer to Boolean in assignment
List pgsql-general
On 1/24/19 7:21 AM, Geoff Winkless wrote:
> On Thu, 24 Jan 2019 at 15:11, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> People don't generally post to the lists after a type-mismatch error
>> catches a typo for them.  So it's pretty hard to tell about "how
>> many" developers would find one behavior more useful than the other.
>> It is safe to say, though, that the same developer complaining today
>> might have their bacon saved tomorrow.
> 
> I've missed off WHERE clauses on a live database (oops) in my time,
> and I'm happy to see work being done to safeguard against that
> (although I tend to be of the opinion that it's not something you ever
> do twice!) but I can confidently state that I've never once been
> caught out by being surprised that a number was treated as a boolean.
> 
> How could you even write a query like the one Thomas posted? It
> doesn't even look remotely sensible.

create table delete_test(id integer);

insert into delete_test values (2), (3), (4);

delete from delete_test where 1::boolean; 
 

DELETE 3

select * from delete_test ; 
 

  id 
 

---- 
 

(0 rows)

> 
> But I have been caught out by boolean vs int, enough that I bothered
> to search out that ALTER statement. And I'm a lazy person at heart, so
> if something irritated me enough to bother doing that, you can be sure
> it was _really_ irritating me.
> 
> Geoff
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: log_min_duration_statement
Next
From: Adrian Klaver
Date:
Subject: Re: How duplicate values inserted into the primary key column oftable and how to fix it