mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-12 18:34:36 +08:00
eec4c7366f
Here is a tar file the new directories, which substitute the old ones in contrib. Please remove the old directories array, datetime, miscutil, string and userlock before unpacking the tar file in contrib. Note that as the modules are now installed in lib/modules I install all my sql code in lib/sql. In my opinion also the other contributors should follow these rules.
161 lines
3.4 KiB
MySQL
161 lines
3.4 KiB
MySQL
-- 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.
|
|
|
|
-- Define the array functions *=, **=, *~ 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 functions *=, **=, *> 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';
|
|
|
|
-- Define the operators corresponding to the above functions
|
|
--
|
|
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);
|
|
|
|
-- end of file
|