postgresql/contrib/array/array_iterator.sql.in

355 lines
6.8 KiB
MySQL
Raw Normal View History

-- SQL code to define the new array iterator functions and operators
1997-11-06 05:38:25 +08:00
-- define the array operators *=, **=, *~ and **~ for type _text
1997-11-06 05:38:25 +08:00
--
-- Adjust this setting to control where the objects get created.
SET search_path = public;
1997-11-06 05:38:25 +08:00
SET autocommit TO 'on';
1997-11-06 05:38:25 +08:00
CREATE OR REPLACE FUNCTION array_texteq(_text, text)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
1997-11-06 05:38:25 +08:00
CREATE OR REPLACE FUNCTION array_all_texteq(_text, text)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
1997-11-06 05:38:25 +08:00
CREATE OR REPLACE FUNCTION array_textregexeq(_text, text)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
1997-11-06 05:38:25 +08:00
CREATE OR REPLACE FUNCTION array_all_textregexeq(_text, text)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
1997-11-06 05:38:25 +08:00
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
);
1997-11-06 05:38:25 +08:00
-- define the array operators *=, **=, *~ and **~ for type _varchar
--
-- NOTE: "varchar" is also a reserved word and must be quoted.
--
CREATE OR REPLACE FUNCTION array_varchareq(_varchar, varchar)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_varchareq(_varchar, varchar)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_varcharregexeq(_varchar, varchar)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_varcharregexeq(_varchar, varchar)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
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 OR REPLACE FUNCTION array_bpchareq(_bpchar, bpchar)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_bpchareq(_bpchar, bpchar)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_bpcharregexeq(_bpchar, bpchar)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_bpcharregexeq(_bpchar, bpchar)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
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
1997-11-06 05:38:25 +08:00
--
CREATE OR REPLACE FUNCTION array_int4eq(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_int4eq(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_int4ne(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_int4ne(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_int4gt(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_int4gt(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_int4ge(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_int4ge(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_int4lt(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_int4lt(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_int4le(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_int4le(_int4, int4)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
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
);
1997-11-06 05:38:25 +08:00
-- define the array operators *=, **<> for type _oid (added tobias 1. 1999)
--
CREATE OR REPLACE FUNCTION array_oideq(_oid, oid)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_oidne(_oid, oid)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OPERATOR *= (
LEFTARG=_oid,
RIGHTARG=oid,
PROCEDURE=array_oideq
);
CREATE OPERATOR **<> (
LEFTARG=_oid,
RIGHTARG=oid,
PROCEDURE=array_all_oidne
);
-- define the array operators *=, **=, *<>, **<> for type _inet
CREATE OR REPLACE FUNCTION array_ineteq(_inet, inet)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_ineteq(_inet, inet)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_inetne(_inet, inet)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
CREATE OR REPLACE FUNCTION array_all_inetne(_inet, inet)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isStrict);
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
);