aboutsummaryrefslogtreecommitdiff
path: root/contrib/array/array_iterator.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-08-26 17:54:02 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-08-26 17:54:02 +0000
commit5cabcfccce4b8b826c9b30828f3012b7926a6946 (patch)
tree3e14c0710a45b4195734dd3189eb89eac4969073 /contrib/array/array_iterator.h
parent8009c275925dda90f1275ba70f5c2a63abaa520b (diff)
downloadpostgresql-5cabcfccce4b8b826c9b30828f3012b7926a6946.tar.gz
postgresql-5cabcfccce4b8b826c9b30828f3012b7926a6946.zip
Modify array operations to include array's element type OID in the
array header, and to compute sizing and alignment of array elements the same way normal tuple access operations do --- viz, using the tupmacs.h macros att_addlength and att_align. This makes the world safe for arrays of cstrings or intervals, and should make it much easier to write array-type-polymorphic functions; as examples see the cleanups of array_out and contrib/array_iterator. By Joe Conway and Tom Lane.
Diffstat (limited to 'contrib/array/array_iterator.h')
-rw-r--r--contrib/array/array_iterator.h43
1 files changed, 18 insertions, 25 deletions
diff --git a/contrib/array/array_iterator.h b/contrib/array/array_iterator.h
index f959f09c7c7..c85d68f27ac 100644
--- a/contrib/array/array_iterator.h
+++ b/contrib/array/array_iterator.h
@@ -1,23 +1,23 @@
#ifndef ARRAY_ITERATOR_H
#define ARRAY_ITERATOR_H
-static int32 array_iterator(Oid elemtype, Oid proc, int and,
+static int32 array_iterator(Oid proc, int and,
ArrayType *array, Datum value);
-int32 array_texteq(ArrayType *array, char *value);
-int32 array_all_texteq(ArrayType *array, char *value);
-int32 array_textregexeq(ArrayType *array, char *value);
-int32 array_all_textregexeq(ArrayType *array, char *value);
+int32 array_texteq(ArrayType *array, void *value);
+int32 array_all_texteq(ArrayType *array, void *value);
+int32 array_textregexeq(ArrayType *array, void *value);
+int32 array_all_textregexeq(ArrayType *array, void *value);
-int32 array_varchareq(ArrayType *array, char *value);
-int32 array_all_varchareq(ArrayType *array, char *value);
-int32 array_varcharregexeq(ArrayType *array, char *value);
-int32 array_all_varcharregexeq(ArrayType *array, char *value);
+int32 array_varchareq(ArrayType *array, void *value);
+int32 array_all_varchareq(ArrayType *array, void *value);
+int32 array_varcharregexeq(ArrayType *array, void *value);
+int32 array_all_varcharregexeq(ArrayType *array, void *value);
-int32 array_bpchareq(ArrayType *array, char *value);
-int32 array_all_bpchareq(ArrayType *array, char *value);
-int32 array_bpcharregexeq(ArrayType *array, char *value);
-int32 array_all_bpcharregexeq(ArrayType *array, char *value);
+int32 array_bpchareq(ArrayType *array, void *value);
+int32 array_all_bpchareq(ArrayType *array, void *value);
+int32 array_bpcharregexeq(ArrayType *array, void *value);
+int32 array_all_bpcharregexeq(ArrayType *array, void *value);
int32 array_int4eq(ArrayType *array, int4 value);
int32 array_all_int4eq(ArrayType *array, int4 value);
@@ -35,16 +35,9 @@ int32 array_all_int4le(ArrayType *array, int4 value);
int32 array_oideq(ArrayType *array, Oid value);
int32 array_all_oidne(ArrayType *array, Oid value);
-int32 array_ineteq(ArrayType *array, Oid value);
-int32 array_all_ineteq(ArrayType *array, Oid value);
-int32 array_inetne(ArrayType *array, Oid value);
-int32 array_all_inetne(ArrayType *array, Oid value);
-#endif
+int32 array_ineteq(ArrayType *array, void *value);
+int32 array_all_ineteq(ArrayType *array, void *value);
+int32 array_inetne(ArrayType *array, void *value);
+int32 array_all_inetne(ArrayType *array, void *value);
-/*
- * Local Variables:
- * tab-width: 4
- * c-indent-level: 4
- * c-basic-offset: 4
- * End:
- */
+#endif