Domain Implicit Casting Trouble

Started by Dave Hartwigover 22 years ago2 messagesbugs
Jump to latest
#1Dave Hartwig
daveh@Routescape.com

I came across the following problem when migrating from 7.3.4 to 7.4b4.
Query #4 does not fail under version 7.3.4. But it does under version
7.4b4. It seems that in some situations the implicit cast fails. It
would not be a problem if I had the opportunity to manually cast these
queries. But I don't. I am using a client package (Hibernate) which
generates statements automatically based on an O/R mapping.

CREATE DOMAIN foo_varchardomain AS varchar(10);

CREATE DOMAIN foo_intdomain AS int4;

CREATE TABLE foo_table (i foo_intdomain, c foo_varchardomain);

INSERT INTO foo_table VALUES (1, 'x');

SELECT * FROM foo_table WHERE i = '1'::text;

SELECT * FROM foo_table WHERE i::int4 = '1'; -- query #1 ok

SELECT * FROM foo_table WHERE i = 1; -- query #2 ok

SELECT * FROM foo_table WHERE c = 'x'; -- query #3 ok

SELECT * FROM foo_table WHERE i = '1'; -- query #4 ERROR
ERROR: operator is not unique: foo_intdomain = "unknown"
HINT: Could not choose a best candidate operator. You may need to add
explicit type casts.

TIA
David

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dave Hartwig (#1)
Re: Domain Implicit Casting Trouble

"Dave Hartwig" <daveh@Routescape.com> writes:

I came across the following problem when migrating from 7.3.4 to 7.4b4.
Query #4 does not fail under version 7.3.4. But it does under version
7.4b4. It seems that in some situations the implicit cast fails.

Fixed in CVS tip. Thanks for the report.

regards, tom lane