summaryrefslogtreecommitdiff
path: root/contrib/array/array_iterator.sql.in
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/array/array_iterator.sql.in')
-rw-r--r--contrib/array/array_iterator.sql.in191
1 files changed, 191 insertions, 0 deletions
diff --git a/contrib/array/array_iterator.sql.in b/contrib/array/array_iterator.sql.in
new file mode 100644
index 00000000000..6489545d97d
--- /dev/null
+++ b/contrib/array/array_iterator.sql.in
@@ -0,0 +1,191 @@
+-- SQL code to define the new array iterator functions and operators
+
+-- define the array operators *=, **=, *~ and **~ for type _text
+--
+create function array_texteq(_text, text) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_texteq(_text, text) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_textregexeq(_text, text) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_textregexeq(_text, text) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create operator *= (
+ leftarg=_text,
+ rightarg=text,
+ procedure=array_texteq);
+
+create operator **= (
+ leftarg=_text,
+ rightarg=text,
+ procedure=array_all_texteq);
+
+create operator *~ (
+ leftarg=_text,
+ rightarg=text,
+ procedure=array_textregexeq);
+
+create operator **~ (
+ leftarg=_text,
+ rightarg=text,
+ procedure=array_all_textregexeq);
+
+
+-- define the array operators *=, **=, *~ and **~ for type _char16
+--
+create function array_char16eq(_char16, char16) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_char16eq(_char16, char16) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_char16regexeq(_char16, text) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_char16regexeq(_char16, text) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create operator *= (
+ leftarg=_char16,
+ rightarg=char16,
+ procedure=array_char16eq);
+
+create operator **= (
+ leftarg=_char16,
+ rightarg=char16,
+ procedure=array_all_char16eq);
+
+create operator *~ (
+ leftarg=_char16,
+ rightarg=text,
+ procedure=array_char16regexeq);
+
+create operator **~ (
+ leftarg=_char16,
+ rightarg=text,
+ procedure=array_all_char16regexeq);
+
+
+-- define the array operators *=, **=, *> and **> for type _int4
+--
+create function array_int4eq(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_int4eq(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_int4ne(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_int4ne(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_int4gt(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_int4gt(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_int4ge(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_int4ge(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_int4lt(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_int4lt(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_int4le(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_int4le(_int4, int4) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create operator *= (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_int4eq);
+
+create operator **= (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_all_int4eq);
+
+create operator *<> (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_int4ne);
+
+create operator **<> (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_all_int4ne);
+
+create operator *> (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_int4gt);
+
+create operator **> (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_all_int4gt);
+
+create operator *>= (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_int4ge);
+
+create operator **>= (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_all_int4ge);
+
+create operator *< (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_int4lt);
+
+create operator **< (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_all_int4lt);
+
+create operator *<= (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_int4le);
+
+create operator **<= (
+ leftarg=_int4,
+ rightarg=int4,
+ procedure=array_all_int4le);
+
+-- end of file