Re: [bug] Wrong bool value parameter - Mailing list pgsql-bugs

From wenjing
Subject Re: [bug] Wrong bool value parameter
Date
Msg-id 03D702AD-6499-4FBD-B2F3-34872AC979D3@gmail.com
Whole thread Raw
In response to Re: [bug] Wrong bool value parameter  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs


2020年4月8日 21:45,Tom Lane <tgl@sss.pgh.pa.us> 写道:

Masahiko Sawada <masahiko.sawada@2ndquadrant.com> writes:
On Wed, 8 Apr 2020 at 16:00, wenjing <wjzeng2012@gmail.com> wrote:
Why do table parameters of a bool type have different rules than data types of a Boolean type?
postgres=# insert into test_bool_type values('fals');
ERROR:  invalid input syntax for type boolean: "fals"
LINE 1: insert into test_bool_type values('fals');

Hmm that seems strange. In my environment, both 'tr' and 'fa' are
accepted at least with the current HEAD

Yeah, it works for me too:

regression=# select 'fa'::bool;
bool
------
f
(1 row)

regression=# select 'fals'::bool;
bool
------
f
(1 row)

IIUC both bool of SQL data type and bool of GUC parameter type are
using the same function parse_bool_with_len() to parse the input
value. The behavior can vary depending on the environment?

parse_bool_with_len is not locale-sensitive for ASCII input.
Conceivably its case folding could vary for non-ASCII, but that's
not relevant here.

I am suspicious that the OP is not using community Postgres.
This seems like the kind of thing that EDB might've hacked
for better Oracle compatibility, for example.
Sorry, you're right. I used the modified code and got the wrong result.


regards, tom lane

pgsql-bugs by date:

Previous
From: PG Bug reporting form
Date:
Subject: BUG #16357: Incorrect rounding for negative arguments in to_timestamp()
Next
From: wenjing
Date:
Subject: Re: [bug] Wrong bool value parameter