Joe Conway kirjutas E, 07.04.2003 kell 05:12:
> Joe Conway wrote:
> It covers the following:
> ----------------------------------------------------------------------
> 1. Support for polymorphic functions, accepting and returning ANYARRAY
> and ANYELEMENT datatypes that are "tied" to each other and resolved
> to an actual type at runtime. This also includes the ability to
> define aggregates using the polymorphic functions.
>
> 2. Array handling functions:
> - singleton_array(ANYELEMENT) returns ANYARRAY
> - array_append(ANYARRAY, ANYELEMENT) returns ANYARRAY
> - array_prepend(ANYELEMENT, ANYARRAY) returns ANYARRAY
> - array_accum(ANYARRAY, ANYELEMENT) returns ANYARRAY
> - array_assign(ANYARRAY, int, ANYELEMENT) returns ANYARRAY
> - array_subscript(ANYARRAY, int) returns ANYELEMENT
> - array_cat(ANYARRAY, ANYARRAY) returns ANYARRAY
>
How hard would it be to add
array_eq, array_ne, array_gt, array_le and corresponding operators
SELECT ARRAY[1,2,3] = ARRAY[1,2,3]; # --> TRUE
SELECT ARRAY[1,2,3] < ARRAY[1,2,3]; # --> FALSE
SELECT ARRAY[1,2,3] <= ARRAY[1,2,3]; # --> TRUE
SELECT ARRAY[1,2,3] > ARRAY[1,2,3]; # --> FALSE
SELECT ARRAY[1,2,3] >= ARRAY[1,2,3]; # --> TRUE
I'd assume them to behave like string comparisons, i.e shorter subarray
is smaller:
SELECT ARRAY[1,2] < ARRAY[1,2,3]; # --> FALSE
Support for sorting and b-tree indexing could be nice too.
> Still needs to be done (in roughly this order):
> ----------------------------------------------------------------------
> 1. Functions:
> - str_to_array(str TEXT, delim TEXT) returns TEXT[]
> - array_to_str(array ANYARRAY, delim TEXT) returns TEXT
>
> 2. Documentation update:
> Update "User's Guide"->"Data Types"->"Arrays" documentation
> create a new section: "User's Guide"->
> "Functions and Operators"->
> "Array Functions and Operators"
>
>
> 4. PL/pgSQL support for polymorphic types
Where should one start to add PL/Python support for polymorphic types ?
> 6. Move as much of contrib/intarray into backend as makes sense,
> including migration to use polymorphic semantics (therefore make
> work on other than int where possible). Note: this may not happen
> for 7.4 as it looks to be fairly involved, at least at first glance.
What about moving contrib/intagg into backend ?
(And converting it into ANYagg on the way ;)
--------------------
Hannu