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