-- PostgreSQL code for ISNs (ISBN, ISMN, ISSN, EAN13, UPC)
-- Copyright (c) 2004-2006, German Mendez Bravo (Kronuz)
--
--- $PostgreSQL: pgsql/contrib/isn/isn.sql.in,v 1.5 2007/06/05 21:31:03 tgl Exp $
+-- $PostgreSQL: pgsql/contrib/isn/isn.sql.in,v 1.6 2007/09/30 17:13:19 tgl Exp $
--
-- Example:
-- create table test ( id isbn );
IS 'International Standard Serial Number 13 (ISSN13)';
-- Short format:
-
+
CREATE FUNCTION isbn_in(cstring)
RETURNS isbn
AS 'MODULE_PATHNAME'
CREATE FUNCTION isnlt(ean13, ean13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, ean13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, ean13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, ean13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, ean13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, ean13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, isbn13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, isbn13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, isbn13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, isbn13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, isbn13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, isbn13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, ismn13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, ismn13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, ismn13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, ismn13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, ismn13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, ismn13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, issn13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, issn13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, issn13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, issn13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, issn13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, issn13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, isbn)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, isbn)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, isbn)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, isbn)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, isbn)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, isbn)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, ismn)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, ismn)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, ismn)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, ismn)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, ismn)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, ismn)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, issn)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, issn)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, issn)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, issn)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, issn)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, issn)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, upc)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, upc)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, upc)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, upc)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, upc)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, upc)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
CREATE FUNCTION isnlt(isbn13, isbn13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn13, isbn13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn13, isbn13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn13, isbn13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn13, isbn13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn13, isbn13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(isbn13, isbn)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn13, isbn)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn13, isbn)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn13, isbn)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn13, isbn)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn13, isbn)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(isbn13, ean13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn13, ean13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn13, ean13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn13, ean13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn13, ean13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn13, ean13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
CREATE FUNCTION isnlt(isbn, isbn)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn, isbn)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn, isbn)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn, isbn)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn, isbn)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn, isbn)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(isbn, isbn13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn, isbn13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn, isbn13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn, isbn13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn, isbn13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn, isbn13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(isbn, ean13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn, ean13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn, ean13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn, ean13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn, ean13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn, ean13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
CREATE FUNCTION isnlt(ismn13, ismn13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn13, ismn13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn13, ismn13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn13, ismn13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn13, ismn13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn13, ismn13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ismn13, ismn)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn13, ismn)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn13, ismn)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn13, ismn)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn13, ismn)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn13, ismn)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ismn13, ean13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn13, ean13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn13, ean13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn13, ean13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn13, ean13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn13, ean13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
CREATE FUNCTION isnlt(ismn, ismn)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn, ismn)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn, ismn)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn, ismn)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn, ismn)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn, ismn)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ismn, ismn13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn, ismn13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn, ismn13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn, ismn13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn, ismn13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn, ismn13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ismn, ean13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn, ean13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn, ean13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn, ean13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn, ean13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn, ean13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
CREATE FUNCTION isnlt(issn13, issn13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn13, issn13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn13, issn13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn13, issn13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn13, issn13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn13, issn13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(issn13, issn)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn13, issn)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn13, issn)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn13, issn)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn13, issn)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn13, issn)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(issn13, ean13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn13, ean13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn13, ean13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn13, ean13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn13, ean13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn13, ean13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
CREATE FUNCTION isnlt(issn, issn)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn, issn)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn, issn)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn, issn)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn, issn)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn, issn)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(issn, issn13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn, issn13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn, issn13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn, issn13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn, issn13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn, issn13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(issn, ean13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn, ean13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn, ean13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn, ean13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn, ean13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn, ean13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
CREATE FUNCTION isnlt(upc, upc)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(upc, upc)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(upc, upc)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(upc, upc)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(upc, upc)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(upc, upc)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(upc, ean13)
RETURNS boolean
AS 'int8lt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(upc, ean13)
RETURNS boolean
AS 'int8le'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(upc, ean13)
RETURNS boolean
AS 'int8eq'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(upc, ean13)
RETURNS boolean
AS 'int8ge'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(upc, ean13)
RETURNS boolean
AS 'int8gt'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(upc, ean13)
RETURNS boolean
AS 'int8ne'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
--
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
+ MERGES,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = isbn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ismn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
+ MERGES,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = isbn13,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
+ MERGES,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = isbn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = isbn,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
+ MERGES,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ismn13,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
+ MERGES,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ismn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ismn,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
+ MERGES,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = issn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = issn13,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
+ MERGES,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = issn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = issn,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
+ MERGES,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
- JOIN = eqjoinsel);
+ JOIN = eqjoinsel,
+ MERGES,
+ HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = upc,
RESTRICT = neqsel,
JOIN = neqjoinsel);
+--
+-- Operator families for the various operator classes:
+--
+---------------------------------------------------
+
+CREATE OPERATOR FAMILY isn_ops USING btree;
+CREATE OPERATOR FAMILY isn_ops USING hash;
+
--
-- Operator classes:
--
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
+
+CREATE OPERATOR CLASS ean13_ops DEFAULT
+ FOR TYPE ean13 USING btree FAMILY isn_ops AS
+ OPERATOR 1 <,
+ OPERATOR 2 <=,
+ OPERATOR 3 =,
+ OPERATOR 4 >=,
+ OPERATOR 5 >,
+ FUNCTION 1 btean13cmp(ean13, ean13);
+
+CREATE FUNCTION hashean13(ean13)
+ RETURNS int4
+ AS 'hashint8'
+ LANGUAGE 'internal' IMMUTABLE STRICT;
+
+CREATE OPERATOR CLASS ean13_ops DEFAULT
+ FOR TYPE ean13 USING hash FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashean13(ean13);
+
+-- EAN13 vs other types:
CREATE FUNCTION btean13cmp(ean13, isbn13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE OPERATOR CLASS ean13_ops DEFAULT
- FOR TYPE ean13 USING btree AS
+ALTER OPERATOR FAMILY isn_ops USING btree ADD
OPERATOR 1 < (ean13, isbn13),
OPERATOR 1 < (ean13, ismn13),
OPERATOR 1 < (ean13, issn13),
OPERATOR 1 < (ean13, ismn),
OPERATOR 1 < (ean13, issn),
OPERATOR 1 < (ean13, upc),
- OPERATOR 1 <,
OPERATOR 2 <= (ean13, isbn13),
OPERATOR 2 <= (ean13, ismn13),
OPERATOR 2 <= (ean13, issn13),
OPERATOR 2 <= (ean13, ismn),
OPERATOR 2 <= (ean13, issn),
OPERATOR 2 <= (ean13, upc),
- OPERATOR 2 <=,
OPERATOR 3 = (ean13, isbn13),
OPERATOR 3 = (ean13, ismn13),
OPERATOR 3 = (ean13, issn13),
OPERATOR 3 = (ean13, ismn),
OPERATOR 3 = (ean13, issn),
OPERATOR 3 = (ean13, upc),
- OPERATOR 3 =,
OPERATOR 4 >= (ean13, isbn13),
OPERATOR 4 >= (ean13, ismn13),
OPERATOR 4 >= (ean13, issn13),
OPERATOR 4 >= (ean13, ismn),
OPERATOR 4 >= (ean13, issn),
OPERATOR 4 >= (ean13, upc),
- OPERATOR 4 >=,
OPERATOR 5 > (ean13, isbn13),
OPERATOR 5 > (ean13, ismn13),
OPERATOR 5 > (ean13, issn13),
OPERATOR 5 > (ean13, ismn),
OPERATOR 5 > (ean13, issn),
OPERATOR 5 > (ean13, upc),
- OPERATOR 5 >,
FUNCTION 1 btean13cmp(ean13, isbn13),
FUNCTION 1 btean13cmp(ean13, ismn13),
FUNCTION 1 btean13cmp(ean13, issn13),
FUNCTION 1 btean13cmp(ean13, isbn),
FUNCTION 1 btean13cmp(ean13, ismn),
FUNCTION 1 btean13cmp(ean13, issn),
- FUNCTION 1 btean13cmp(ean13, upc),
- FUNCTION 1 btean13cmp(ean13, ean13);
+ FUNCTION 1 btean13cmp(ean13, upc);
-CREATE FUNCTION hashean13(ean13)
- RETURNS int4
- AS 'hashint8'
- LANGUAGE 'internal' IMMUTABLE STRICT;
-
-CREATE OPERATOR CLASS ean13_ops DEFAULT
- FOR TYPE ean13 USING hash AS
- OPERATOR 1 =,
- FUNCTION 1 hashean13(ean13);
+ALTER OPERATOR FAMILY isn_ops USING hash ADD
+ OPERATOR 1 = (ean13, isbn13),
+ OPERATOR 1 = (ean13, ismn13),
+ OPERATOR 1 = (ean13, issn13),
+ OPERATOR 1 = (ean13, isbn),
+ OPERATOR 1 = (ean13, ismn),
+ OPERATOR 1 = (ean13, issn),
+ OPERATOR 1 = (ean13, upc);
---------------------------------------------------
-- ISBN13:
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btisbn13cmp(isbn13, ean13)
- RETURNS int4
- AS 'btint8cmp'
- LANGUAGE 'internal'
- IMMUTABLE STRICT;
-CREATE FUNCTION btisbn13cmp(isbn13, isbn)
- RETURNS int4
- AS 'btint8cmp'
- LANGUAGE 'internal'
- IMMUTABLE STRICT;
CREATE OPERATOR CLASS isbn13_ops DEFAULT
- FOR TYPE isbn13 USING btree AS
- OPERATOR 1 < (isbn13, ean13),
- OPERATOR 1 < (isbn13, isbn),
+ FOR TYPE isbn13 USING btree FAMILY isn_ops AS
OPERATOR 1 <,
- OPERATOR 2 <= (isbn13, ean13),
- OPERATOR 2 <= (isbn13, isbn),
OPERATOR 2 <=,
- OPERATOR 3 = (isbn13, ean13),
- OPERATOR 3 = (isbn13, isbn),
OPERATOR 3 =,
- OPERATOR 4 >= (isbn13, ean13),
- OPERATOR 4 >= (isbn13, isbn),
OPERATOR 4 >=,
- OPERATOR 5 > (isbn13, ean13),
- OPERATOR 5 > (isbn13, isbn),
OPERATOR 5 >,
- FUNCTION 1 btisbn13cmp(isbn13, ean13),
- FUNCTION 1 btisbn13cmp(isbn13, isbn),
FUNCTION 1 btisbn13cmp(isbn13, isbn13);
CREATE FUNCTION hashisbn13(isbn13)
RETURNS int4
AS 'hashint8'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS isbn13_ops DEFAULT
- FOR TYPE isbn13 USING hash AS
- OPERATOR 1 =,
- FUNCTION 1 hashisbn13(isbn13);
+ FOR TYPE isbn13 USING hash FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashisbn13(isbn13);
----------------------------------------------------
--- ISBN:
-CREATE FUNCTION btisbncmp(isbn, isbn)
+-- ISBN13 vs other types:
+CREATE FUNCTION btisbn13cmp(isbn13, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btisbncmp(isbn, ean13)
+CREATE FUNCTION btisbn13cmp(isbn13, isbn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btisbncmp(isbn, isbn13)
+
+ALTER OPERATOR FAMILY isn_ops USING btree ADD
+ OPERATOR 1 < (isbn13, ean13),
+ OPERATOR 1 < (isbn13, isbn),
+ OPERATOR 2 <= (isbn13, ean13),
+ OPERATOR 2 <= (isbn13, isbn),
+ OPERATOR 3 = (isbn13, ean13),
+ OPERATOR 3 = (isbn13, isbn),
+ OPERATOR 4 >= (isbn13, ean13),
+ OPERATOR 4 >= (isbn13, isbn),
+ OPERATOR 5 > (isbn13, ean13),
+ OPERATOR 5 > (isbn13, isbn),
+ FUNCTION 1 btisbn13cmp(isbn13, ean13),
+ FUNCTION 1 btisbn13cmp(isbn13, isbn);
+
+ALTER OPERATOR FAMILY isn_ops USING hash ADD
+ OPERATOR 1 = (isbn13, ean13),
+ OPERATOR 1 = (isbn13, isbn);
+
+---------------------------------------------------
+-- ISBN:
+CREATE FUNCTION btisbncmp(isbn, isbn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS isbn_ops DEFAULT
- FOR TYPE isbn USING btree AS
- OPERATOR 1 < (isbn, ean13),
- OPERATOR 1 < (isbn, isbn13),
+ FOR TYPE isbn USING btree FAMILY isn_ops AS
OPERATOR 1 <,
- OPERATOR 2 <= (isbn, ean13),
- OPERATOR 2 <= (isbn, isbn13),
OPERATOR 2 <=,
- OPERATOR 3 = (isbn, ean13),
- OPERATOR 3 = (isbn, isbn13),
OPERATOR 3 =,
- OPERATOR 4 >= (isbn, ean13),
- OPERATOR 4 >= (isbn, isbn13),
OPERATOR 4 >=,
- OPERATOR 5 > (isbn, ean13),
- OPERATOR 5 > (isbn, isbn13),
OPERATOR 5 >,
- FUNCTION 1 btisbncmp(isbn, ean13),
- FUNCTION 1 btisbncmp(isbn, isbn13),
FUNCTION 1 btisbncmp(isbn, isbn);
CREATE FUNCTION hashisbn(isbn)
RETURNS int4
AS 'hashint8'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS isbn_ops DEFAULT
- FOR TYPE isbn USING hash AS
- OPERATOR 1 =,
- FUNCTION 1 hashisbn(isbn);
+ FOR TYPE isbn USING hash FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashisbn(isbn);
----------------------------------------------------
--- ISMN13:
-CREATE FUNCTION btismn13cmp(ismn13, ismn13)
+-- ISBN vs other types:
+CREATE FUNCTION btisbncmp(isbn, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btismn13cmp(ismn13, ean13)
+CREATE FUNCTION btisbncmp(isbn, isbn13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btismn13cmp(ismn13, ismn)
+
+ALTER OPERATOR FAMILY isn_ops USING btree ADD
+ OPERATOR 1 < (isbn, ean13),
+ OPERATOR 1 < (isbn, isbn13),
+ OPERATOR 2 <= (isbn, ean13),
+ OPERATOR 2 <= (isbn, isbn13),
+ OPERATOR 3 = (isbn, ean13),
+ OPERATOR 3 = (isbn, isbn13),
+ OPERATOR 4 >= (isbn, ean13),
+ OPERATOR 4 >= (isbn, isbn13),
+ OPERATOR 5 > (isbn, ean13),
+ OPERATOR 5 > (isbn, isbn13),
+ FUNCTION 1 btisbncmp(isbn, ean13),
+ FUNCTION 1 btisbncmp(isbn, isbn13);
+
+ALTER OPERATOR FAMILY isn_ops USING hash ADD
+ OPERATOR 1 = (isbn, ean13),
+ OPERATOR 1 = (isbn, isbn13);
+
+---------------------------------------------------
+-- ISMN13:
+CREATE FUNCTION btismn13cmp(ismn13, ismn13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS ismn13_ops DEFAULT
- FOR TYPE ismn13 USING btree AS
- OPERATOR 1 < (ismn13, ean13),
- OPERATOR 1 < (ismn13, ismn),
+ FOR TYPE ismn13 USING btree FAMILY isn_ops AS
OPERATOR 1 <,
- OPERATOR 2 <= (ismn13, ean13),
- OPERATOR 2 <= (ismn13, ismn),
OPERATOR 2 <=,
- OPERATOR 3 = (ismn13, ean13),
- OPERATOR 3 = (ismn13, ismn),
OPERATOR 3 =,
- OPERATOR 4 >= (ismn13, ean13),
- OPERATOR 4 >= (ismn13, ismn),
OPERATOR 4 >=,
- OPERATOR 5 > (ismn13, ean13),
- OPERATOR 5 > (ismn13, ismn),
OPERATOR 5 >,
- FUNCTION 1 btismn13cmp(ismn13, ean13),
- FUNCTION 1 btismn13cmp(ismn13, ismn),
FUNCTION 1 btismn13cmp(ismn13, ismn13);
CREATE FUNCTION hashismn13(ismn13)
RETURNS int4
AS 'hashint8'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS ismn13_ops DEFAULT
- FOR TYPE ismn13 USING hash AS
- OPERATOR 1 =,
- FUNCTION 1 hashismn13(ismn13);
+ FOR TYPE ismn13 USING hash FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashismn13(ismn13);
----------------------------------------------------
--- ISMN:
-CREATE FUNCTION btismncmp(ismn, ismn)
+-- ISMN13 vs other types:
+CREATE FUNCTION btismn13cmp(ismn13, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btismncmp(ismn, ean13)
+CREATE FUNCTION btismn13cmp(ismn13, ismn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btismncmp(ismn, ismn13)
+
+ALTER OPERATOR FAMILY isn_ops USING btree ADD
+ OPERATOR 1 < (ismn13, ean13),
+ OPERATOR 1 < (ismn13, ismn),
+ OPERATOR 2 <= (ismn13, ean13),
+ OPERATOR 2 <= (ismn13, ismn),
+ OPERATOR 3 = (ismn13, ean13),
+ OPERATOR 3 = (ismn13, ismn),
+ OPERATOR 4 >= (ismn13, ean13),
+ OPERATOR 4 >= (ismn13, ismn),
+ OPERATOR 5 > (ismn13, ean13),
+ OPERATOR 5 > (ismn13, ismn),
+ FUNCTION 1 btismn13cmp(ismn13, ean13),
+ FUNCTION 1 btismn13cmp(ismn13, ismn);
+
+ALTER OPERATOR FAMILY isn_ops USING hash ADD
+ OPERATOR 1 = (ismn13, ean13),
+ OPERATOR 1 = (ismn13, ismn);
+
+---------------------------------------------------
+-- ISMN:
+CREATE FUNCTION btismncmp(ismn, ismn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS ismn_ops DEFAULT
- FOR TYPE ismn USING btree AS
- OPERATOR 1 < (ismn, ean13),
- OPERATOR 1 < (ismn, ismn13),
+ FOR TYPE ismn USING btree FAMILY isn_ops AS
OPERATOR 1 <,
- OPERATOR 2 <= (ismn, ean13),
- OPERATOR 2 <= (ismn, ismn13),
OPERATOR 2 <=,
- OPERATOR 3 = (ismn, ean13),
- OPERATOR 3 = (ismn, ismn13),
OPERATOR 3 =,
- OPERATOR 4 >= (ismn, ean13),
- OPERATOR 4 >= (ismn, ismn13),
OPERATOR 4 >=,
- OPERATOR 5 > (ismn, ean13),
- OPERATOR 5 > (ismn, ismn13),
OPERATOR 5 >,
- FUNCTION 1 btismncmp(ismn, ean13),
- FUNCTION 1 btismncmp(ismn, ismn13),
FUNCTION 1 btismncmp(ismn, ismn);
CREATE FUNCTION hashismn(ismn)
RETURNS int4
AS 'hashint8'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS ismn_ops DEFAULT
- FOR TYPE ismn USING hash AS
- OPERATOR 1 =,
- FUNCTION 1 hashismn(ismn);
+ FOR TYPE ismn USING hash FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashismn(ismn);
----------------------------------------------------
--- ISSN13:
-CREATE FUNCTION btissn13cmp(issn13, issn13)
+-- ISMN vs other types:
+CREATE FUNCTION btismncmp(ismn, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btissn13cmp(issn13, ean13)
+CREATE FUNCTION btismncmp(ismn, ismn13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btissn13cmp(issn13, issn)
+
+ALTER OPERATOR FAMILY isn_ops USING btree ADD
+ OPERATOR 1 < (ismn, ean13),
+ OPERATOR 1 < (ismn, ismn13),
+ OPERATOR 2 <= (ismn, ean13),
+ OPERATOR 2 <= (ismn, ismn13),
+ OPERATOR 3 = (ismn, ean13),
+ OPERATOR 3 = (ismn, ismn13),
+ OPERATOR 4 >= (ismn, ean13),
+ OPERATOR 4 >= (ismn, ismn13),
+ OPERATOR 5 > (ismn, ean13),
+ OPERATOR 5 > (ismn, ismn13),
+ FUNCTION 1 btismncmp(ismn, ean13),
+ FUNCTION 1 btismncmp(ismn, ismn13);
+
+ALTER OPERATOR FAMILY isn_ops USING hash ADD
+ OPERATOR 1 = (ismn, ean13),
+ OPERATOR 1 = (ismn, ismn13);
+
+---------------------------------------------------
+-- ISSN13:
+CREATE FUNCTION btissn13cmp(issn13, issn13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS issn13_ops DEFAULT
- FOR TYPE issn13 USING btree AS
- OPERATOR 1 < (issn13, ean13),
- OPERATOR 1 < (issn13, issn),
+ FOR TYPE issn13 USING btree FAMILY isn_ops AS
OPERATOR 1 <,
- OPERATOR 2 <= (issn13, ean13),
- OPERATOR 2 <= (issn13, issn),
OPERATOR 2 <=,
- OPERATOR 3 = (issn13, ean13),
- OPERATOR 3 = (issn13, issn),
OPERATOR 3 =,
- OPERATOR 4 >= (issn13, ean13),
- OPERATOR 4 >= (issn13, issn),
OPERATOR 4 >=,
- OPERATOR 5 > (issn13, ean13),
- OPERATOR 5 > (issn13, issn),
OPERATOR 5 >,
- FUNCTION 1 btissn13cmp(issn13, ean13),
- FUNCTION 1 btissn13cmp(issn13, issn),
FUNCTION 1 btissn13cmp(issn13, issn13);
CREATE FUNCTION hashissn13(issn13)
RETURNS int4
AS 'hashint8'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS issn13_ops DEFAULT
- FOR TYPE issn13 USING hash AS
- OPERATOR 1 =,
- FUNCTION 1 hashissn13(issn13);
+ FOR TYPE issn13 USING hash FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashissn13(issn13);
----------------------------------------------------
--- ISSN:
-CREATE FUNCTION btissncmp(issn, issn)
+-- ISSN13 vs other types:
+CREATE FUNCTION btissn13cmp(issn13, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btissncmp(issn, ean13)
+CREATE FUNCTION btissn13cmp(issn13, issn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btissncmp(issn, issn13)
+
+ALTER OPERATOR FAMILY isn_ops USING btree ADD
+ OPERATOR 1 < (issn13, ean13),
+ OPERATOR 1 < (issn13, issn),
+ OPERATOR 2 <= (issn13, ean13),
+ OPERATOR 2 <= (issn13, issn),
+ OPERATOR 3 = (issn13, ean13),
+ OPERATOR 3 = (issn13, issn),
+ OPERATOR 4 >= (issn13, ean13),
+ OPERATOR 4 >= (issn13, issn),
+ OPERATOR 5 > (issn13, ean13),
+ OPERATOR 5 > (issn13, issn),
+ FUNCTION 1 btissn13cmp(issn13, ean13),
+ FUNCTION 1 btissn13cmp(issn13, issn);
+
+ALTER OPERATOR FAMILY isn_ops USING hash ADD
+ OPERATOR 1 = (issn13, ean13),
+ OPERATOR 1 = (issn13, issn);
+
+---------------------------------------------------
+-- ISSN:
+CREATE FUNCTION btissncmp(issn, issn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS issn_ops DEFAULT
- FOR TYPE issn USING btree AS
- OPERATOR 1 < (issn, ean13),
- OPERATOR 1 < (issn, issn13),
+ FOR TYPE issn USING btree FAMILY isn_ops AS
OPERATOR 1 <,
- OPERATOR 2 <= (issn, ean13),
- OPERATOR 2 <= (issn, issn13),
OPERATOR 2 <=,
- OPERATOR 3 = (issn, ean13),
- OPERATOR 3 = (issn, issn13),
OPERATOR 3 =,
- OPERATOR 4 >= (issn, ean13),
- OPERATOR 4 >= (issn, issn13),
OPERATOR 4 >=,
- OPERATOR 5 > (issn, ean13),
- OPERATOR 5 > (issn, issn13),
OPERATOR 5 >,
- FUNCTION 1 btissncmp(issn, ean13),
- FUNCTION 1 btissncmp(issn, issn13),
FUNCTION 1 btissncmp(issn, issn);
CREATE FUNCTION hashissn(issn)
RETURNS int4
AS 'hashint8'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS issn_ops DEFAULT
- FOR TYPE issn USING hash AS
- OPERATOR 1 =,
- FUNCTION 1 hashissn(issn);
+ FOR TYPE issn USING hash FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashissn(issn);
----------------------------------------------------
--- UPC:
-CREATE FUNCTION btupccmp(upc, upc)
+-- ISSN vs other types:
+CREATE FUNCTION btissncmp(issn, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
-CREATE FUNCTION btupccmp(upc, ean13)
+CREATE FUNCTION btissncmp(issn, issn13)
+ RETURNS int4
+ AS 'btint8cmp'
+ LANGUAGE 'internal'
+ IMMUTABLE STRICT;
+
+ALTER OPERATOR FAMILY isn_ops USING btree ADD
+ OPERATOR 1 < (issn, ean13),
+ OPERATOR 1 < (issn, issn13),
+ OPERATOR 2 <= (issn, ean13),
+ OPERATOR 2 <= (issn, issn13),
+ OPERATOR 3 = (issn, ean13),
+ OPERATOR 3 = (issn, issn13),
+ OPERATOR 4 >= (issn, ean13),
+ OPERATOR 4 >= (issn, issn13),
+ OPERATOR 5 > (issn, ean13),
+ OPERATOR 5 > (issn, issn13),
+ FUNCTION 1 btissncmp(issn, ean13),
+ FUNCTION 1 btissncmp(issn, issn13);
+
+ALTER OPERATOR FAMILY isn_ops USING hash ADD
+ OPERATOR 1 = (issn, ean13),
+ OPERATOR 1 = (issn, issn13);
+
+---------------------------------------------------
+-- UPC:
+CREATE FUNCTION btupccmp(upc, upc)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS upc_ops DEFAULT
- FOR TYPE upc USING btree AS
- OPERATOR 1 < (upc, ean13),
+ FOR TYPE upc USING btree FAMILY isn_ops AS
OPERATOR 1 <,
- OPERATOR 2 <= (upc, ean13),
OPERATOR 2 <=,
- OPERATOR 3 = (upc, ean13),
OPERATOR 3 =,
- OPERATOR 4 >= (upc, ean13),
OPERATOR 4 >=,
- OPERATOR 5 > (upc, ean13),
OPERATOR 5 >,
- FUNCTION 1 btupccmp(upc, ean13),
FUNCTION 1 btupccmp(upc, upc);
CREATE FUNCTION hashupc(upc)
RETURNS int4
AS 'hashint8'
- LANGUAGE 'internal'
+ LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS upc_ops DEFAULT
- FOR TYPE upc USING hash AS
- OPERATOR 1 =,
- FUNCTION 1 hashupc(upc);
+ FOR TYPE upc USING hash FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashupc(upc);
+
+-- UPC vs other types:
+CREATE FUNCTION btupccmp(upc, ean13)
+ RETURNS int4
+ AS 'btint8cmp'
+ LANGUAGE 'internal'
+ IMMUTABLE STRICT;
+
+ALTER OPERATOR FAMILY isn_ops USING btree ADD
+ OPERATOR 1 < (upc, ean13),
+ OPERATOR 2 <= (upc, ean13),
+ OPERATOR 3 = (upc, ean13),
+ OPERATOR 4 >= (upc, ean13),
+ OPERATOR 5 > (upc, ean13),
+ FUNCTION 1 btupccmp(upc, ean13);
+
+ALTER OPERATOR FAMILY isn_ops USING hash ADD
+ OPERATOR 1 = (upc, ean13);
--
-- Type casts:
IMMUTABLE STRICT;
--
--- isn_weak(boolean) - Sets the weak input mode.
+-- isn_weak(boolean) - Sets the weak input mode.
-- This function is intended for testing use only!
--
CREATE FUNCTION isn_weak(boolean)