926bbab448
remove transactions use create or replace function make formatting consistent set search patch on first line Add documentation on modifying *.sql to set the search patch, and mention that major upgrades should still run the installation scripts. Some of these issues were spotted by Tom today.
67 lines
1.1 KiB
MySQL
67 lines
1.1 KiB
MySQL
-- Adjust this setting to control where the objects get created.
|
|
SET search_path = public;
|
|
|
|
--
|
|
-- Input and output functions and the type itself:
|
|
--
|
|
|
|
CREATE OR REPLACE FUNCTION chkpass_in(cstring)
|
|
RETURNS chkpass
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION chkpass_out(chkpass)
|
|
RETURNS cstring
|
|
AS 'MODULE_PATHNAME'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE TYPE chkpass (
|
|
internallength = 16,
|
|
externallength = 13,
|
|
input = chkpass_in,
|
|
output = chkpass_out
|
|
);
|
|
|
|
CREATE OR REPLACE FUNCTION raw(chkpass)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'chkpass_rout'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- The various boolean tests:
|
|
--
|
|
|
|
CREATE OR REPLACE FUNCTION eq(chkpass, text)
|
|
RETURNS bool
|
|
AS 'MODULE_PATHNAME', 'chkpass_eq'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION ne(chkpass, text)
|
|
RETURNS bool
|
|
AS 'MODULE_PATHNAME', 'chkpass_ne'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- Now the operators.
|
|
--
|
|
|
|
CREATE OPERATOR = (
|
|
leftarg = chkpass,
|
|
rightarg = text,
|
|
negator = <>,
|
|
procedure = eq
|
|
);
|
|
|
|
CREATE OPERATOR <> (
|
|
leftarg = chkpass,
|
|
rightarg = text,
|
|
negator = =,
|
|
procedure = ne
|
|
);
|
|
|
|
COMMENT ON TYPE chkpass IS 'password type with checks';
|
|
|
|
--
|
|
-- eof
|
|
--
|