summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2002-08-04 04:25:02 +0000
committerBruce Momjian2002-08-04 04:25:02 +0000
commitce3d08701058bc046c0126114488746f3fd21dc7 (patch)
tree7561dfc08fcf16abbb9fd53332d36ce828ed6a88
parent0b15c25225dc3ea1ff8e90f9afc3810916778b5d (diff)
This patch adds support for inet[] arrays to the /contrib/array module.
Neil Conway
-rw-r--r--contrib/array/array_iterator.c36
-rw-r--r--contrib/array/array_iterator.h5
-rw-r--r--contrib/array/array_iterator.sql.in89
3 files changed, 102 insertions, 28 deletions
diff --git a/contrib/array/array_iterator.c b/contrib/array/array_iterator.c
index 8a2455b673b..5616350b3a5 100644
--- a/contrib/array/array_iterator.c
+++ b/contrib/array/array_iterator.c
@@ -361,7 +361,41 @@ array_all_oidne(ArrayType *array, Oid value)
array, (Datum) value);
}
-/* end of file */
+int32
+array_ineteq(ArrayType *array, Oid value)
+{
+ return array_iterator((Oid) 869, /* inet */
+ (Oid) 920, /* network_eq */
+ 0, /* logical or */
+ array, (Datum) value);
+}
+
+int32
+array_all_ineteq(ArrayType *array, Oid value)
+{
+ return array_iterator((Oid) 869, /* inet */
+ (Oid) 920, /* network_eq */
+ 1, /* logical and */
+ array, (Datum) value);
+}
+
+int32
+array_inetne(ArrayType *array, Oid value)
+{
+ return array_iterator((Oid) 869, /* inet */
+ (Oid) 925, /* network_ne */
+ 0, /* logical and */
+ array, (Datum) value);
+}
+
+int32
+array_all_inetne(ArrayType *array, Oid value)
+{
+ return array_iterator((Oid) 869, /* inet */
+ (Oid) 925, /* network_ne */
+ 1, /* logical and */
+ array, (Datum) value);
+}
/*
* Local Variables:
diff --git a/contrib/array/array_iterator.h b/contrib/array/array_iterator.h
index 7889fdc0b2a..f959f09c7c7 100644
--- a/contrib/array/array_iterator.h
+++ b/contrib/array/array_iterator.h
@@ -34,6 +34,11 @@ 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
/*
diff --git a/contrib/array/array_iterator.sql.in b/contrib/array/array_iterator.sql.in
index d4182b112e2..806d010e724 100644
--- a/contrib/array/array_iterator.sql.in
+++ b/contrib/array/array_iterator.sql.in
@@ -2,19 +2,19 @@
-- define the array operators *=, **=, *~ and **~ for type _text
--
-create function array_texteq(_text, text) returns bool
+create or replace function array_texteq(_text, text) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_texteq(_text, text) returns bool
+create or replace function array_all_texteq(_text, text) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_textregexeq(_text, text) returns bool
+create or replace function array_textregexeq(_text, text) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_textregexeq(_text, text) returns bool
+create or replace function array_all_textregexeq(_text, text) returns bool
as 'MODULE_PATHNAME'
language 'c';
@@ -43,19 +43,19 @@ create operator **~ (
--
-- NOTE: "varchar" is also a reserved word and must be quoted.
--
-create function array_varchareq(_varchar, varchar) returns bool
+create or replace function array_varchareq(_varchar, varchar) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_varchareq(_varchar, varchar) returns bool
+create or replace function array_all_varchareq(_varchar, varchar) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_varcharregexeq(_varchar, varchar) returns bool
+create or replace function array_varcharregexeq(_varchar, varchar) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_varcharregexeq(_varchar, varchar) returns bool
+create or replace function array_all_varcharregexeq(_varchar, varchar) returns bool
as 'MODULE_PATHNAME'
language 'c';
@@ -82,19 +82,19 @@ create operator **~ (
-- define the array operators *=, **=, *~ and **~ for type _bpchar
--
-create function array_bpchareq(_bpchar, bpchar) returns bool
+create or replace function array_bpchareq(_bpchar, bpchar) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_bpchareq(_bpchar, bpchar) returns bool
+create or replace function array_all_bpchareq(_bpchar, bpchar) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_bpcharregexeq(_bpchar, bpchar) returns bool
+create or replace function array_bpcharregexeq(_bpchar, bpchar) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_bpcharregexeq(_bpchar, bpchar) returns bool
+create or replace function array_all_bpcharregexeq(_bpchar, bpchar) returns bool
as 'MODULE_PATHNAME'
language 'c';
@@ -121,51 +121,51 @@ create operator **~ (
-- define the array operators *=, **=, *> and **> for type _int4
--
-create function array_int4eq(_int4, int4) returns bool
+create or replace function array_int4eq(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_int4eq(_int4, int4) returns bool
+create or replace function array_all_int4eq(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_int4ne(_int4, int4) returns bool
+create or replace function array_int4ne(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_int4ne(_int4, int4) returns bool
+create or replace function array_all_int4ne(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_int4gt(_int4, int4) returns bool
+create or replace function array_int4gt(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_int4gt(_int4, int4) returns bool
+create or replace function array_all_int4gt(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_int4ge(_int4, int4) returns bool
+create or replace function array_int4ge(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_int4ge(_int4, int4) returns bool
+create or replace function array_all_int4ge(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_int4lt(_int4, int4) returns bool
+create or replace function array_int4lt(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_int4lt(_int4, int4) returns bool
+create or replace function array_all_int4lt(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_int4le(_int4, int4) returns bool
+create or replace function array_int4le(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_int4le(_int4, int4) returns bool
+create or replace function array_all_int4le(_int4, int4) returns bool
as 'MODULE_PATHNAME'
language 'c';
@@ -231,11 +231,11 @@ create operator **<= (
-- define the array operators *=, **<> for type _oid (added tobias 1. 1999)
--
-create function array_oideq(_oid, oid) returns bool
+create or replace function array_oideq(_oid, oid) returns bool
as 'MODULE_PATHNAME'
language 'c';
-create function array_all_oidne(_oid, oid) returns bool
+create or replace function array_all_oidne(_oid, oid) returns bool
as 'MODULE_PATHNAME'
language 'c';
@@ -249,5 +249,40 @@ create operator **<> (
rightarg=oid,
procedure=array_all_oidne);
+-- define the array operators *=, **=, *<>, **<> for type _inet
--- end of file
+create or replace function array_ineteq(_inet, inet) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create or replace function array_all_ineteq(_inet, inet) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create or replace function array_inetne(_inet, inet) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create or replace function array_all_inetne(_inet, inet) returns bool
+ as 'MODULE_PATHNAME'
+ language 'c';
+
+create operator *= (
+ leftarg=_inet,
+ rightarg=inet,
+ procedure=array_ineteq);
+
+create operator **= (
+ leftarg=_inet,
+ rightarg=inet,
+ procedure=array_all_ineteq);
+
+create operator *<> (
+ leftarg=_inet,
+ rightarg=inet,
+ procedure=array_inetne);
+
+create operator **<> (
+ leftarg=_inet,
+ rightarg=inet,
+ procedure=array_all_inetne);