diff options
Diffstat (limited to 'contrib/chkpass/chkpass.sql')
-rw-r--r-- | contrib/chkpass/chkpass.sql | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/contrib/chkpass/chkpass.sql b/contrib/chkpass/chkpass.sql new file mode 100644 index 00000000000..f8fce419a96 --- /dev/null +++ b/contrib/chkpass/chkpass.sql @@ -0,0 +1,82 @@ +-- +-- PostgreSQL code for CHKPASS. +-- Written by D'Arcy J.M. Cain +-- darcy@druid.net +-- http://www.druid.net/darcy/ +-- +-- $Header: /cvsroot/pgsql/contrib/chkpass/Attic/chkpass.sql,v 1.1 2001/05/03 12:32:13 darcy Exp $ +-- best viewed with tabs set to 4 +-- %%PGDIR%% changed to your local directory where modules is +-- + +load '%%PGDIR%%/modules/chkpass.so'; + +-- +-- Input and output functions and the type itself: +-- + +create function chkpass_in(opaque) + returns opaque + as '%%PGDIR%%/modules/chkpass.so' + language 'c'; + +create function chkpass_out(opaque) + returns opaque + as '%%PGDIR%%/modules/chkpass.so' + language 'c'; + +create type chkpass ( + internallength = 16, + externallength = 13, + input = chkpass_in, + output = chkpass_out +); + +create function raw(chkpass) + returns text + as '%%PGDIR%%/modules/chkpass.so', 'chkpass_rout' + language 'c'; + +-- +-- The various boolean tests: +-- + +create function eq(chkpass, text) + returns bool + as '%%PGDIR%%/modules/chkpass.so', 'chkpass_eq' + language 'c'; + +create function ne(chkpass, text) + returns bool + as '%%PGDIR%%/modules/chkpass.so', 'chkpass_ne' + language 'c'; + +-- +-- Now the operators. Note how some of the parameters to some +-- of the 'create operator' commands are commented out. This +-- is because they reference as yet undefined operators, and +-- will be implicitly defined when those are, further down. +-- + +create operator = ( + leftarg = chkpass, + rightarg = text, + commutator = =, +-- negator = <>, + procedure = eq +); + +create operator <> ( + leftarg = chkpass, + rightarg = text, + negator = =, + procedure = ne +); + +INSERT INTO pg_description (objoid, description) + SELECT oid, 'password type with checks' + FROM pg_type WHERE typname = 'chkpass'; + +-- +-- eof +-- |