Re: [HACKERS] minor bug in 7.0: casting
Re: [HACKERS] minor bug in 7.0: casting
От:
Tom Lane <tgl@sss.pgh.pa.us>
Дата:
The Hermit Hacker writes: > Another one here ... > From: Don Baccus > donb=# create table foo(c char(2), v varchar(2)); > CREATE > donb=# select * from foo where c::varchar = v::varchar; > ERROR: Unable to identify an operator '=' for types 'bpchar' and 'varchar' > You will have to retype this query using an explicit cast As of current sources: regression=# create table foo(c char(2), v varchar(2)); CREATE regression=# select * from foo where c::varchar = v::varchar;c | v ---+--- (0 rows) I thought I fixed that before 7.0beta1, but am not feeling eager to rummage through cvs logs to prove it. regards, tom lane
minor bug in 7.0: casting
От:
The Hermit Hacker <scrappy@hub.org>
Дата:
Another one here ... ============= From: Don Baccus At 04:05 PM 2/29/00 -0400, you wrote: >No, bug reports are most welcome, antagonistic comments aren't ... big >difference ... donb=# create table foo(c char(2), v varchar(2)); CREATE donb=# select * from foo where c::varchar = v::varchar; ERROR: Unable to identify an operator '=' for types 'bpchar' and 'varchar' You will have to retype this query using an explicit cast donb=# select * from foo where cast(c as varchar) = cast(v as varchar); ERROR: Unable to identify an operator '=' for types 'bpchar' and 'varchar' You will have to retype this query using an explicit cast donb=# select * from foo where cast(c as text) = cast(v as text); ERROR: Unable to identify an operator '=' for types 'bpchar' and 'varchar' You will have to retype this query using an explicit cast If conversion isn't going to be supported, the error message should be improved (feel free to forward this to the appropriate person). In this case, the working application actually fills both variables (in practice, from different tables) with two-character state codes, so the cast would work. Should casts presume the user doesn't know what they're doing? I don't know. I can fix this, of course, by changing the data model I've inherited from Oracle to consistently use either char(2) or varchar(2). - Don Baccus, Portland OR Nature photos, on-line guides, Pacific Northwest Rare Bird Alert Service and other goodies at http://donb.photo.net. =====================