提交 ce3d0870 编写于 作者: B Bruce Momjian

This patch adds support for inet[] arrays to the /contrib/array module.

Neil Conway
上级 0b15c252
......@@ -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:
......
......@@ -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
/*
......
......@@ -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);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册