| From: | Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> |
|---|---|
| To: | Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp |
| Cc: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: RangeType internal use |
| Date: | 2015-02-06 07:34:45 |
| Message-ID: | 20150206.163445.146207935.horiguchi.kyotaro@lab.ntt.co.jp |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi, from nearby:)
> I wonder why I cannot find a way to get a range type for a given (sub-)
> type. I would like to build a RangeType from Datum's of lower and upper
> bounds. Much like how construct_array() builds an ArrayType from a Datum
> array of elements given elements' type info.
>
> Is there some way I do not seem to know? If not, would it be worthwhile
> to make something like construct_range() that returns a RangeType given
> Datum's of lower and upper bounds and subtype info?
make_range needs the range type itself.
On SQL interfalce, you can get range type coresponds to a base
type by looking up the pg_range catalog.
SELECT rngtypid::regtype, rngsubtype::regtype
FROM pg_range WHERE rngsubtype = 'int'::regtype;
rngtypid | rngsubtype
-----------+------------
int4range | integer
But there's only one syscache for this catalog which takes range
type id. So the reverse resolution rngsubtype->rngtype seems not
available. TypeCahce has only comparison function info as surely
available element related to range types but this wouldn't
help. I think scanning the entire cache is not allowable even if
possible.
Perhaps what is needed is adding RANGESUBTYPE syscache but I
don't know whether it is allowable or not.
Thoughts?
regards,
--
Kyotaro Horiguchi
NTT Open Source Software Center
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Amit Langote | 2015-02-06 07:40:35 | Re: RangeType internal use |
| Previous Message | Michael Paquier | 2015-02-06 07:16:33 | Re: PATCH: Reducing lock strength of trigger and foreign key DDL |