From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Chapman Flack <chap(at)anastigmatix(dot)net> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
Subject: | Re: typmod is always -1 |
Date: | 2016-03-18 00:40:04 |
Message-ID: | 19183.1458261604@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Chapman Flack <chap(at)anastigmatix(dot)net> writes:
> It seems that a typmod can only be used restrict the set of possible
> values of the unmodified type (as clearly seen in the language "length
> conversion cast", since certainly a typmod allowing { string | length < N }
> is doing nothing but enforcing a subset of { string }. Each element of
> the subset is still a valid element of the whole set (naturally, boring)
> *and has to be represented the same way* (interesting): the representation
> mustn't do clever things that you would need to know the typmod in order to
> interpret, because most uses of a value are without access to the typmod.
You do need to be able to interpret values of the type without having
separate access to the typmod, but I don't think it follows that it's as
restrictive as you say. One easy way around that is to store the typmod
in the value.
Practical uses might include compressing the data in different ways
depending on typmod. I'm drawing a blank on other compelling examples
though I'm sure there are some. Have you looked at PostGIS? I'm pretty
sure some of their types make use of typmod in nontrivial ways.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Mark Dilger | 2016-03-18 00:40:16 | Re: Make primnodes.h gender neutral |
Previous Message | David G. Johnston | 2016-03-18 00:39:27 | Re: Make primnodes.h gender neutral |