Re: WIP: RangeTypes
От | Thom Brown |
---|---|
Тема | Re: WIP: RangeTypes |
Дата | |
Msg-id | AANLkTimxBpR2CT8uqxyV0oJ6DOmVvi4EkfMruyjk89e5@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: WIP: RangeTypes (Jeff Davis <pgsql@j-davis.com>) |
Ответы |
Re: WIP: RangeTypes
|
Список | pgsql-hackers |
On 28 January 2011 07:45, Jeff Davis <pgsql@j-davis.com> wrote: > Updated patch. > > Changes: > > * Documentation for operators/functions > * a comprehensive set of operators and functions > * BTree opclass > * Hash opclass > * built-in range types: > - PERIOD (timestamp) > - PERIODTZ (timestamptz) > - DATERANGE (date) > - INTRANGE (int4) > - NUMRANGE (numeric) > * added subtype float function to the API, which will be useful for > GiST > * created canonical functions for intrange and daterange, so that: > '[1,5]'::intrange = '[1,6)'::intrange > * added length() function, written in SQL as: > select upper($1) - lower($1) > which uses polymorphic "-" operator to avoid the need to > give the subtype subtract function and return type to the generic > API > > Open items: > > * More documentation work > * Settle any representation/alignment concerns > * Should the new length() function be marked as immutable, stable, > or volatile? It uses the polymorphic "-" operator, and I suppose > someone could define a non-immutable version of that before calling > length(). Then again, it is likely to be inlined anyway, right? > * GiST > - docs > - catalog work > - implementation > * typmod support (optional) > > This is nearing completion. GiST is by far the most amount of effort > remaining that I'm aware of. Comments about the API, naming, > representation, interface, funcationality, grammar, etc. are welcome. > > Regards, > Jeff Davis Very nice work Jeff! This is not very graceful: postgres=# CREATE TYPE numrange AS RANGE (SUBTYPE=numeric, SUBTYPE_CMP=numeric_cmp); ERROR: duplicate key value violates unique constraint "pg_range_rgnsubtype_index" DETAIL: Key (rngsubtype)=(1700) already exists. Also, if I try the same, but with a different name for the type, I get the same error. Why does that restriction exist? Can't you have types which happen to use the exact same subtype? -- Thom Brown Twitter: @darkixion IRC (freenode): dark_ixion Registered Linux user: #516935
В списке pgsql-hackers по дате отправления: