mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-04 00:02:52 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			MySQL
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			MySQL
		
	
	
	
	
	
--
 | 
						|
--	PostgreSQL code for CHKPASS.
 | 
						|
--  Written by D'Arcy J.M. Cain
 | 
						|
--  darcy@druid.net
 | 
						|
--  http://www.druid.net/darcy/
 | 
						|
-- 
 | 
						|
--  $Header: /cvsroot/pgsql/contrib/chkpass/chkpass.sql.in,v 1.1 2001/08/23 16:50:33 tgl Exp $
 | 
						|
--
 | 
						|
--  best viewed with tabs set to 4
 | 
						|
--
 | 
						|
 | 
						|
--
 | 
						|
--	Input and output functions and the type itself:
 | 
						|
--
 | 
						|
 | 
						|
create function chkpass_in(opaque)
 | 
						|
	returns opaque
 | 
						|
	as 'MODULE_PATHNAME'
 | 
						|
	language 'c';
 | 
						|
 | 
						|
create function chkpass_out(opaque)
 | 
						|
	returns opaque
 | 
						|
	as 'MODULE_PATHNAME'
 | 
						|
	language 'c';
 | 
						|
 | 
						|
create type chkpass (
 | 
						|
	internallength = 16,
 | 
						|
	externallength = 13,
 | 
						|
	input = chkpass_in,
 | 
						|
	output = chkpass_out
 | 
						|
);
 | 
						|
 | 
						|
create function raw(chkpass)
 | 
						|
	returns text
 | 
						|
	as 'MODULE_PATHNAME', 'chkpass_rout'
 | 
						|
	language 'c';
 | 
						|
 | 
						|
--
 | 
						|
--	The various boolean tests:
 | 
						|
--
 | 
						|
 | 
						|
create function eq(chkpass, text)
 | 
						|
	returns bool
 | 
						|
	as 'MODULE_PATHNAME', 'chkpass_eq'
 | 
						|
	language 'c';
 | 
						|
 | 
						|
create function ne(chkpass, text)
 | 
						|
	returns bool
 | 
						|
	as 'MODULE_PATHNAME', '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
 | 
						|
);
 | 
						|
 | 
						|
COMMENT ON TYPE chkpass IS 'password type with checks';
 | 
						|
 | 
						|
--
 | 
						|
--	eof
 | 
						|
--
 |