aboutsummaryrefslogtreecommitdiff
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.in77
1 files changed, 65 insertions, 12 deletions
diff --git a/contrib/array/array_iterator.sql.in b/contrib/array/array_iterator.sql.in
index 40deb7e0c60..cc95c8aea7b 100644
--- a/contrib/array/array_iterator.sql.in
+++ b/contrib/array/array_iterator.sql.in
@@ -1,13 +1,6 @@
--- array_iterator.sql --
---
--- SQL code to define the array iterator functions and operators.
---
--- Copyright (c) 1998, Massimo Dal Zotto <dz@cs.unitn.it>
---
--- This file is distributed under the GNU General Public License
--- either version 2, or (at your option) any later version.
+-- SQL code to define the new array iterator functions and operators
--- Define the array functions *=, **=, *~ and **~ for type _text
+-- define the array operators *=, **=, *~ and **~ for type _text
--
create function array_texteq(_text, text) returns bool
as 'MODULE_PATHNAME'
@@ -45,7 +38,47 @@ create operator **~ (
rightarg=text,
procedure=array_all_textregexeq);
--- Define the array functions *=, **=, *> and **> for type _int4
+
+-- 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'
@@ -95,8 +128,6 @@ create function array_all_int4le(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
--- Define the operators corresponding to the above functions
---
create operator *= (
leftarg=_int4,
rightarg=int4,
@@ -157,4 +188,26 @@ create operator **<= (
rightarg=int4,
procedure=array_all_int4le);
+-- define the array operators *=, **<> for type _oid (added tobias 1. 1999)
+--
+create function array_oideq(_oid, oid) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create function array_all_oidne(_oid, oid) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create operator *= (
+ leftarg=_oid,
+ rightarg=oid,
+ procedure=array_oideq);
+
+create operator **<> (
+ leftarg=_oid,
+ rightarg=oid,
+ procedure=array_all_oidne);
+
+
+
-- end of file