Re: Casting Integer to Boolean in assignment

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Casting Integer to Boolean in assignment
Дата
Msg-id 1bc32f58-a479-ee28-353f-b11810bab95e@aklaver.com
обсуждение исходный текст
Ответ на Re: Casting Integer to Boolean in assignment  (Geoff Winkless <pgsqladmin@geoff.dj>)
Ответы Re: Casting Integer to Boolean in assignment  (Geoff Winkless <pgsqladmin@geoff.dj>)
Список 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 по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: log_min_duration_statement
Следующее
От: Adrian Klaver
Дата:
Сообщение: Re: How duplicate values inserted into the primary key column oftable and how to fix it