-- 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 _varchar -- -- NOTE: "varchar" is also a reserved word and must be quoted. -- create function array_varchareq(_varchar, varchar) returns bool as 'MODULE_PATHNAME' language 'c'; create function array_all_varchareq(_varchar, varchar) returns bool as 'MODULE_PATHNAME' language 'c'; create function array_varcharregexeq(_varchar, varchar) returns bool as 'MODULE_PATHNAME' language 'c'; create function array_all_varcharregexeq(_varchar, varchar) returns bool as 'MODULE_PATHNAME' language 'c'; create operator *= ( leftarg=_varchar, rightarg="varchar", procedure=array_varchareq); create operator **= ( leftarg=_varchar, rightarg="varchar", procedure=array_all_varchareq); create operator *~ ( leftarg=_varchar, rightarg="varchar", procedure=array_varcharregexeq); create operator **~ ( leftarg=_varchar, rightarg="varchar", procedure=array_all_varcharregexeq); -- define the array operators *=, **=, *~ and **~ for type _bpchar -- create function array_bpchareq(_bpchar, bpchar) returns bool as 'MODULE_PATHNAME' language 'c'; create function array_all_bpchareq(_bpchar, bpchar) returns bool as 'MODULE_PATHNAME' language 'c'; create function array_bpcharregexeq(_bpchar, bpchar) returns bool as 'MODULE_PATHNAME' language 'c'; create function array_all_bpcharregexeq(_bpchar, bpchar) returns bool as 'MODULE_PATHNAME' language 'c'; create operator *= ( leftarg=_bpchar, rightarg=bpchar, procedure=array_bpchareq); create operator **= ( leftarg=_bpchar, rightarg=bpchar, procedure=array_all_bpchareq); create operator *~ ( leftarg=_bpchar, rightarg=bpchar, procedure=array_bpcharregexeq); create operator **~ ( leftarg=_bpchar, rightarg=bpchar, procedure=array_all_bpcharregexeq); -- 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); -- 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