Thread: "blah" is not a domain error

"blah" is not a domain error

From
"Jim C. Nasby"
Date:
I know domain support is pretty broken, so maybe this is a known issue...

decibel=# create table test(m money);
CREATE TABLE
decibel=# insert into test values('-1.00');
INSERT 0 1
decibel=# alter domain money add check(money>0);
ERROR:  "money" is not a domain
decibel=# drop domain money;
ERROR:  "money" is not a domain
decibel=# \dD
             List of domains
 Schema | Name | Type | Modifier | Check
--------+------+------+----------+-------
(0 rows)

decibel=# \d test
    Table "public.test"
 Column | Type  | Modifiers
--------+-------+-----------
 m      | money |

decibel=# create domain money as numeric(99,2);
ERROR:  type "money" already exists
decibel=# select version();
                                                                        version
                               

-------------------------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 8.1.2 on powerpc-apple-darwin8.4.0, compiled by GCC powerpc-apple-darwin8-gcc-4.0.0 (GCC) 4.0.0 20041026
(AppleComputer, Inc. build 4061) 
(1 row)

decibel=#
--
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461

Re: "blah" is not a domain error

From
Tom Lane
Date:
"Jim C. Nasby" <jnasby@pervasive.com> writes:
> I know domain support is pretty broken, so maybe this is a known issue...

What are you concerned about exactly?  It looks perfectly reasonable
to me.  "money" is a base type not a domain.

            regards, tom lane

Re: "blah" is not a domain error

From
"Jim C. Nasby"
Date:
On Wed, May 24, 2006 at 05:29:34PM -0400, Tom Lane wrote:
> "Jim C. Nasby" <jnasby@pervasive.com> writes:
> > I know domain support is pretty broken, so maybe this is a known issue...
>
> What are you concerned about exactly?  It looks perfectly reasonable
> to me.  "money" is a base type not a domain.

Oops... I thought we'd removed it.

Shouldn't it be an error to create a domain that conflicts with an existing
type?

bench=# create domain money as numeric(21,2);
CREATE DOMAIN
bench=# drop domain money;
ERROR:  "money" is not a domain
bench=# create domain money as numeric(21,2);
ERROR:  type "money" already exists
bench=# select version();
                                               version
------------------------------------------------------------------------------------------------------
 PostgreSQL 8.2devel on x86_64-unknown-freebsd6.0, compiled by GCC gcc (GCC) 3.4.4 [FreeBSD] 20050518
(1 row)

bench=#
--
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461

Re: "blah" is not a domain error

From
Tom Lane
Date:
"Jim C. Nasby" <jnasby@pervasive.com> writes:
> Shouldn't it be an error to create a domain that conflicts with an existing
> type?

It is, if you create it in the same schema.  "money", along with all the
other built-in types, is in pg_catalog not public.

            regards, tom lane