Thread: conversion problems with domains

conversion problems with domains

From
Andreas Pflug
Date:
PostgreSQL 7.3.2

CREATE DOMAIN testdom AS int4;
CREATE TABLE testtab(testcol testdom);
INSERT INTO testtab VALUES (1);
INSERT INTO testtab VALUES (2);
VACUUM ANALYZE testtab;

SELECT * FROM testtab WHERE testcol > 1;

The select will give   "ERROR: convert_numeric_to_scalar: unsupported type 3381436"

If no VACUUM ANALYZE is performed (no entry in pg_stats), the select 
will work ok.
The select will also succeed, if testcol is compared to something 
different from 1.

Defining a cast   CREATE CAST(testdom as int4) WITHOUT FUNCTION AS IMPLICIT
doesn't help.


If I change the datatype
   UPDATE pg_attribute             SET atttypid=(select oid from pg_type where typname = 'int4')     WHERE
atttypid=(selectoid from pg_type where typname = 'testdom')           AND attname='testcol'
 

the select will work as expected.






Re: conversion problems with domains

From
Tom Lane
Date:
Andreas Pflug <Andreas.Pflug@web.de> writes:
> PostgreSQL 7.3.2
> CREATE DOMAIN testdom AS int4;
> CREATE TABLE testtab(testcol testdom);
> INSERT INTO testtab VALUES (1);
> INSERT INTO testtab VALUES (2);
> VACUUM ANALYZE testtab;

> SELECT * FROM testtab WHERE testcol > 1;

I've applied a patch to fix this.
        regards, tom lane