diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-04-08 23:20:04 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-04-08 23:20:04 +0000 |
commit | 730840c9b649a48604083270d48792915ca89233 (patch) | |
tree | cf3ccc25e61cdfc07061ebec63393d77b3a2f643 /src/include/utils/array.h | |
parent | 6fb5115850be766c42177cebf672c68c7d8e3ddd (diff) | |
download | postgresql-730840c9b649a48604083270d48792915ca89233.tar.gz postgresql-730840c9b649a48604083270d48792915ca89233.zip |
First phase of work on array improvements. ARRAY[x,y,z] constructor
expressions, ARRAY(sub-SELECT) expressions, some array functions.
Polymorphic functions using ANYARRAY/ANYELEMENT argument and return
types. Some regression tests in place, documentation is lacking.
Joe Conway, with some kibitzing from Tom Lane.
Diffstat (limited to 'src/include/utils/array.h')
-rw-r--r-- | src/include/utils/array.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/include/utils/array.h b/src/include/utils/array.h index 1d154f485eb..25f6abe6275 100644 --- a/src/include/utils/array.h +++ b/src/include/utils/array.h @@ -10,7 +10,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: array.h,v 1.36 2002/11/08 17:27:03 momjian Exp $ + * $Id: array.h,v 1.37 2003/04/08 23:20:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -87,6 +87,9 @@ extern Datum array_eq(PG_FUNCTION_ARGS); extern Datum array_dims(PG_FUNCTION_ARGS); extern Datum array_lower(PG_FUNCTION_ARGS); extern Datum array_upper(PG_FUNCTION_ARGS); +extern Datum array_assign(PG_FUNCTION_ARGS); +extern Datum array_subscript(PG_FUNCTION_ARGS); +extern Datum array_type_coerce(PG_FUNCTION_ARGS); extern Datum array_ref(ArrayType *array, int nSubscripts, int *indx, int arraylen, int elmlen, bool elmbyval, char elmalign, @@ -110,6 +113,11 @@ extern Datum array_map(FunctionCallInfo fcinfo, Oid inpType, Oid retType); extern ArrayType *construct_array(Datum *elems, int nelems, Oid elmtype, int elmlen, bool elmbyval, char elmalign); +extern ArrayType *construct_md_array(Datum *elems, + int ndims, + int *dims, + int *lbs, + Oid elmtype, int elmlen, bool elmbyval, char elmalign); extern void deconstruct_array(ArrayType *array, Oid elmtype, int elmlen, bool elmbyval, char elmalign, @@ -128,4 +136,16 @@ extern void mda_get_prod(int n, int *range, int *prod); extern void mda_get_offset_values(int n, int *dist, int *prod, int *span); extern int mda_next_tuple(int n, int *curr, int *span); +/* + * prototypes for functions defined in array_userfuncs.c + */ +extern Datum singleton_array(PG_FUNCTION_ARGS); +extern Datum array_push(PG_FUNCTION_ARGS); +extern Datum array_accum(PG_FUNCTION_ARGS); +extern Datum array_cat(PG_FUNCTION_ARGS); + +extern ArrayType *create_singleton_array(Oid element_type, + Datum element, + int ndims); + #endif /* ARRAY_H */ |