[Resend: Domains and function]

From: elein <elein(at)varlena(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Cc: elein <elein(at)varlena(dot)com>
Subject: [Resend: Domains and function]
Date: 2004-02-05 20:46:21
Message-ID: 20040205124621.K2622@cookie.varlena.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

I sent this a while ago to general and then
hackers and got no response.

The question is whether to qualify the return value
of a function when it returns a domain with
a check clause.

I believe it should--otherwise the domain is
only useful on insert and is not acting
like a full fledged type. However, I suspect
that there is no underlying support for
type checks in the general system.

Elein

----- Forwarded message from elein <elein(at)varlena(dot)com> -----

I can create a function with a domain and
define it to return a domain.

The parameter is checked to see if it qualifies
in the constraint of the domain, however, the
return value is not.

Is this a bug? Is the author of the function
responsible for re-inforcing the constraint
at runtime?

This is the test case in 7.4:

=# create domain one2hundred AS integer
-# DEFAULT '1' CONSTRAINT email_domain check( VALUE > 0 AND VALUE <=100 );
CREATE DOMAIN
=#
=# create function gb52_add( one2hundred )
-# returns one2hundred as
-# '
'# BEGIN
'# RETURN $1 + 10;
'# END;
'# ' language 'plpgsql';
CREATE FUNCTION
=#
=# select gb52_add( 80);
gb52_add
----------
90
(1 row)

=# select gb52_add( 100);
gb52_add
----------
110
(1 row)

=# select gb52_add( 90);
gb52_add
----------
100
(1 row)

=# select gb52_add( 91);
gb52_add
----------
101
(1 row)

=# select gb52_add( 191);
ERROR: value for domain one2hundred violates check constraint "email_domain"

============================================================
elein(at)varlena(dot)com Varlena, LLC www.varlena.com

PostgreSQL Consulting, Support & Training

PostgreSQL General Bits http://www.varlena.com/GeneralBits/
=============================================================
I have always depended on the [QA] of strangers.

----- End forwarded message -----

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Achilleus Mantzios 2004-02-06 08:13:25 Re: IN does not negate, exists does
Previous Message Tom Lane 2004-02-05 17:03:07 Re: IN does not negate, exists does

Browse pgsql-hackers by date

  From Date Subject
Next Message Marc G. Fournier 2004-02-05 21:04:58 Re: It's past time to redo the smgr API
Previous Message Chester Kustarz 2004-02-05 20:45:19 Re: PITR Dead horse?