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