diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2011-02-16 01:52:04 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2011-02-16 01:53:03 -0500 |
commit | 6e02755b22ea62775c906d29b87b55b38ab70bd2 (patch) | |
tree | 726925e7176a6b845a7e19220b2a80baed1d08da /src/include/utils/array.h | |
parent | 4695da5ae97bbb58d274887fd68edbe88d03ebcb (diff) | |
download | postgresql-6e02755b22ea62775c906d29b87b55b38ab70bd2.tar.gz postgresql-6e02755b22ea62775c906d29b87b55b38ab70bd2.zip |
Add FOREACH IN ARRAY looping to plpgsql.
(I'm not entirely sure that we've finished bikeshedding the syntax details,
but the functionality seems OK.)
Pavel Stehule, reviewed by Stephen Frost and Tom Lane
Diffstat (limited to 'src/include/utils/array.h')
-rw-r--r-- | src/include/utils/array.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/include/utils/array.h b/src/include/utils/array.h index 7f7e744cb12..6bc280f1424 100644 --- a/src/include/utils/array.h +++ b/src/include/utils/array.h @@ -114,6 +114,9 @@ typedef struct ArrayMapState ArrayMetaState ret_extra; } ArrayMapState; +/* ArrayIteratorData is private in arrayfuncs.c */ +typedef struct ArrayIteratorData *ArrayIterator; + /* * fmgr macros for array objects */ @@ -254,6 +257,10 @@ extern Datum makeArrayResult(ArrayBuildState *astate, extern Datum makeMdArrayResult(ArrayBuildState *astate, int ndims, int *dims, int *lbs, MemoryContext rcontext, bool release); +extern ArrayIterator array_create_iterator(ArrayType *arr, int slice_ndim); +extern bool array_iterate(ArrayIterator iterator, Datum *value, bool *isnull); +extern void array_free_iterator(ArrayIterator iterator); + /* * prototypes for functions defined in arrayutils.c */ |