From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
Cc: | Shachar Shemesh <psql(at)shemesh(dot)biz>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Using domains for case insensitivity |
Date: | 2004-06-18 16:00:10 |
Message-ID: | 21149.1087574410@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
> Shachar Shemesh wrote:
>> According to the docs, domains are not meant for that purpose, but
>> for changing constraints of a type. Is it possible to define a domain
>> that will have the same defaults and constraints as the base type,
>> but will have different comparison functions? Will that provide me
>> with what I need?
> Domains constrain the allowed values of a data type and nothing more.
> If you were able to override operators, then you would create a new
> data type, thus losing a fundamental property of domains. So this is
> not the route you want to pursue.
I agree. I think there are some cases where the function resolution
code would pick a function declared to take the domain as input, but
it'd be a chancy thing, because for all nontrivial cases the code first
flattens domains to base types.
You can make a separate type that just happens to use the same I/O
functions, and then create a binary-compatible cast to the old type to
allow free use of the existing operators. This is much more likely to
work reliably.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2004-06-18 16:09:58 | Re: Casts question |
Previous Message | Darko Prenosil | 2004-06-18 15:35:14 | Re: SPI equivalent for libpq PQftable & PQFtablecolumn |