postgresql/contrib/isn/isn.sql.in
Tom Lane 31edbadf4a Downgrade implicit casts to text to be assignment-only, except for the ones
from the other string-category types; this eliminates a lot of surprising
interpretations that the parser could formerly make when there was no directly
applicable operator.

Create a general mechanism that supports casts to and from the standard string
types (text,varchar,bpchar) for *every* datatype, by invoking the datatype's
I/O functions.  These new casts are assignment-only in the to-string direction,
explicit-only in the other, and therefore should create no surprising behavior.
Remove a bunch of thereby-obsoleted datatype-specific casting functions.

The "general mechanism" is a new expression node type CoerceViaIO that can
actually convert between *any* two datatypes if their external text
representations are compatible.  This is more general than needed for the
immediate feature, but might be useful in plpgsql or other places in future.

This commit does nothing about the issue that applying the concatenation
operator || to non-text types will now fail, often with strange error messages
due to misinterpreting the operator as array concatenation.  Since it often
(not always) worked before, we should either make it succeed or at least give
a more user-friendly error; but details are still under debate.

Peter Eisentraut and Tom Lane
2007-06-05 21:31:09 +00:00

3097 lines
63 KiB
MySQL

--
-- 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 $
--
-- Example:
-- create table test ( id isbn );
-- insert into test values('978-0-393-04002-9');
--
-- select isbn('978-0-393-04002-9');
-- select isbn13('0-901690-54-6');
--
-- Adjust this setting to control where the objects get created.
SET search_path = public;
BEGIN;
--
-- Input and output functions and data types:
--
---------------------------------------------------
CREATE FUNCTION ean13_in(cstring)
RETURNS ean13
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION ean13_out(ean13)
RETURNS cstring
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE TYPE ean13 (
INPUT = ean13_in,
OUTPUT = ean13_out,
INTERNALLENGTH = 8,
ALIGNMENT = double,
STORAGE = PLAIN
);
COMMENT ON TYPE ean13
IS 'International European Article Number (EAN13)';
CREATE FUNCTION isbn13_in(cstring)
RETURNS isbn13
AS 'MODULE_PATHNAME', 'isbn_in'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION ean13_out(isbn13)
RETURNS cstring
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE TYPE isbn13 (
INPUT = isbn13_in,
OUTPUT = ean13_out,
INTERNALLENGTH = 8,
ALIGNMENT = double,
STORAGE = PLAIN
);
COMMENT ON TYPE isbn13
IS 'International Standard Book Number 13 (ISBN13)';
CREATE FUNCTION ismn13_in(cstring)
RETURNS ismn13
AS 'MODULE_PATHNAME', 'ismn_in'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION ean13_out(ismn13)
RETURNS cstring
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE TYPE ismn13 (
INPUT = ismn13_in,
OUTPUT = ean13_out,
INTERNALLENGTH = 8,
ALIGNMENT = double,
STORAGE = PLAIN
);
COMMENT ON TYPE ismn13
IS 'International Standard Music Number 13 (ISMN13)';
CREATE FUNCTION issn13_in(cstring)
RETURNS issn13
AS 'MODULE_PATHNAME', 'issn_in'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION ean13_out(issn13)
RETURNS cstring
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE TYPE issn13 (
INPUT = issn13_in,
OUTPUT = ean13_out,
INTERNALLENGTH = 8,
ALIGNMENT = double,
STORAGE = PLAIN
);
COMMENT ON TYPE issn13
IS 'International Standard Serial Number 13 (ISSN13)';
-- Short format:
CREATE FUNCTION isbn_in(cstring)
RETURNS isbn
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION isn_out(isbn)
RETURNS cstring
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE TYPE isbn (
INPUT = isbn_in,
OUTPUT = isn_out,
INTERNALLENGTH = 8,
ALIGNMENT = double,
STORAGE = PLAIN
);
COMMENT ON TYPE isbn
IS 'International Standard Book Number (ISBN)';
CREATE FUNCTION ismn_in(cstring)
RETURNS ismn
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION isn_out(ismn)
RETURNS cstring
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE TYPE ismn (
INPUT = ismn_in,
OUTPUT = isn_out,
INTERNALLENGTH = 8,
ALIGNMENT = double,
STORAGE = PLAIN
);
COMMENT ON TYPE ismn
IS 'International Standard Music Number (ISMN)';
CREATE FUNCTION issn_in(cstring)
RETURNS issn
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION isn_out(issn)
RETURNS cstring
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE TYPE issn (
INPUT = issn_in,
OUTPUT = isn_out,
INTERNALLENGTH = 8,
ALIGNMENT = double,
STORAGE = PLAIN
);
COMMENT ON TYPE issn
IS 'International Standard Serial Number (ISSN)';
CREATE FUNCTION upc_in(cstring)
RETURNS upc
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION isn_out(upc)
RETURNS cstring
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE TYPE upc (
INPUT = upc_in,
OUTPUT = isn_out,
INTERNALLENGTH = 8,
ALIGNMENT = double,
STORAGE = PLAIN
);
COMMENT ON TYPE upc
IS 'Universal Product Code (UPC)';
--
-- Operator functions:
--
---------------------------------------------------
-- EAN13:
CREATE FUNCTION isnlt(ean13, ean13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, ean13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, ean13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, ean13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, ean13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, ean13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, isbn13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, isbn13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, isbn13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, isbn13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, isbn13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, isbn13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, ismn13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, ismn13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, ismn13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, ismn13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, ismn13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, ismn13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, issn13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, issn13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, issn13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, issn13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, issn13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, issn13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, isbn)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, isbn)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, isbn)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, isbn)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, isbn)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, isbn)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, ismn)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, ismn)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, ismn)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, ismn)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, ismn)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, ismn)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, issn)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, issn)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, issn)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, issn)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, issn)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, issn)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ean13, upc)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ean13, upc)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ean13, upc)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ean13, upc)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ean13, upc)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ean13, upc)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
-- ISBN13:
CREATE FUNCTION isnlt(isbn13, isbn13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn13, isbn13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn13, isbn13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn13, isbn13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn13, isbn13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn13, isbn13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(isbn13, isbn)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn13, isbn)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn13, isbn)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn13, isbn)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn13, isbn)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn13, isbn)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(isbn13, ean13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn13, ean13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn13, ean13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn13, ean13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn13, ean13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn13, ean13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
-- ISBN:
CREATE FUNCTION isnlt(isbn, isbn)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn, isbn)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn, isbn)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn, isbn)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn, isbn)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn, isbn)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(isbn, isbn13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn, isbn13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn, isbn13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn, isbn13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn, isbn13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn, isbn13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(isbn, ean13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(isbn, ean13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(isbn, ean13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(isbn, ean13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(isbn, ean13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(isbn, ean13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
-- ISMN13:
CREATE FUNCTION isnlt(ismn13, ismn13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn13, ismn13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn13, ismn13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn13, ismn13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn13, ismn13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn13, ismn13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ismn13, ismn)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn13, ismn)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn13, ismn)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn13, ismn)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn13, ismn)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn13, ismn)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ismn13, ean13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn13, ean13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn13, ean13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn13, ean13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn13, ean13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn13, ean13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
-- ISMN:
CREATE FUNCTION isnlt(ismn, ismn)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn, ismn)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn, ismn)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn, ismn)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn, ismn)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn, ismn)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ismn, ismn13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn, ismn13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn, ismn13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn, ismn13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn, ismn13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn, ismn13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(ismn, ean13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(ismn, ean13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(ismn, ean13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(ismn, ean13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(ismn, ean13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(ismn, ean13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
-- ISSN13:
CREATE FUNCTION isnlt(issn13, issn13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn13, issn13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn13, issn13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn13, issn13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn13, issn13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn13, issn13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(issn13, issn)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn13, issn)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn13, issn)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn13, issn)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn13, issn)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn13, issn)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(issn13, ean13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn13, ean13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn13, ean13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn13, ean13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn13, ean13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn13, ean13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
-- ISSN:
CREATE FUNCTION isnlt(issn, issn)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn, issn)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn, issn)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn, issn)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn, issn)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn, issn)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(issn, issn13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn, issn13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn, issn13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn, issn13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn, issn13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn, issn13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(issn, ean13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(issn, ean13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(issn, ean13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(issn, ean13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(issn, ean13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(issn, ean13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
---------------------------------------------------
-- UPC:
CREATE FUNCTION isnlt(upc, upc)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(upc, upc)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(upc, upc)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(upc, upc)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(upc, upc)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(upc, upc)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnlt(upc, ean13)
RETURNS boolean
AS 'int8lt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnle(upc, ean13)
RETURNS boolean
AS 'int8le'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isneq(upc, ean13)
RETURNS boolean
AS 'int8eq'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnge(upc, ean13)
RETURNS boolean
AS 'int8ge'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isngt(upc, ean13)
RETURNS boolean
AS 'int8gt'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION isnne(upc, ean13)
RETURNS boolean
AS 'int8ne'
LANGUAGE 'internal'
IMMUTABLE STRICT;
--
-- Now the operators:
--
--
-- EAN13 operators:
--
---------------------------------------------------
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ean13,
RIGHTARG = ean13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ean13,
RIGHTARG = ean13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ean13,
RIGHTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
RIGHTARG = ean13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ean13,
RIGHTARG = ean13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ean13,
RIGHTARG = ean13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ean13,
RIGHTARG = isbn13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ean13,
RIGHTARG = isbn13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ean13,
RIGHTARG = isbn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
RIGHTARG = isbn13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ean13,
RIGHTARG = isbn13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ean13,
RIGHTARG = isbn13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = isbn13,
RIGHTARG = ean13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = isbn13,
RIGHTARG = ean13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = isbn13,
RIGHTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = isbn13,
RIGHTARG = ean13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = isbn13,
RIGHTARG = ean13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = isbn13,
RIGHTARG = ean13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ean13,
RIGHTARG = ismn13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ean13,
RIGHTARG = ismn13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ean13,
RIGHTARG = ismn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
RIGHTARG = ismn13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ean13,
RIGHTARG = ismn13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ean13,
RIGHTARG = ismn13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ismn13,
RIGHTARG = ean13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ismn13,
RIGHTARG = ean13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ismn13,
RIGHTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ismn13,
RIGHTARG = ean13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ismn13,
RIGHTARG = ean13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ismn13,
RIGHTARG = ean13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ean13,
RIGHTARG = issn13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ean13,
RIGHTARG = issn13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ean13,
RIGHTARG = issn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
RIGHTARG = issn13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ean13,
RIGHTARG = issn13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ean13,
RIGHTARG = issn13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ean13,
RIGHTARG = isbn,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ean13,
RIGHTARG = isbn,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ean13,
RIGHTARG = isbn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
RIGHTARG = isbn,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ean13,
RIGHTARG = isbn,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ean13,
RIGHTARG = isbn,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ean13,
RIGHTARG = ismn,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ean13,
RIGHTARG = ismn,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ean13,
RIGHTARG = ismn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
RIGHTARG = ismn,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ean13,
RIGHTARG = ismn,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ean13,
RIGHTARG = ismn,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ean13,
RIGHTARG = issn,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ean13,
RIGHTARG = issn,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ean13,
RIGHTARG = issn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
RIGHTARG = issn,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ean13,
RIGHTARG = issn,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ean13,
RIGHTARG = issn,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ean13,
RIGHTARG = upc,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ean13,
RIGHTARG = upc,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ean13,
RIGHTARG = upc,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ean13,
RIGHTARG = upc,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ean13,
RIGHTARG = upc,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ean13,
RIGHTARG = upc,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
--
-- ISBN13 operators:
--
---------------------------------------------------
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = isbn13,
RIGHTARG = isbn13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = isbn13,
RIGHTARG = isbn13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = isbn13,
RIGHTARG = isbn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = isbn13,
RIGHTARG = isbn13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = isbn13,
RIGHTARG = isbn13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = isbn13,
RIGHTARG = isbn13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = isbn13,
RIGHTARG = isbn,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = isbn13,
RIGHTARG = isbn,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = isbn13,
RIGHTARG = isbn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = isbn13,
RIGHTARG = isbn,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = isbn13,
RIGHTARG = isbn,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = isbn13,
RIGHTARG = isbn,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
--
-- ISBN operators:
--
---------------------------------------------------
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = isbn,
RIGHTARG = isbn,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = isbn,
RIGHTARG = isbn,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = isbn,
RIGHTARG = isbn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = isbn,
RIGHTARG = isbn,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = isbn,
RIGHTARG = isbn,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = isbn,
RIGHTARG = isbn,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = isbn,
RIGHTARG = isbn13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = isbn,
RIGHTARG = isbn13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = isbn,
RIGHTARG = isbn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = isbn,
RIGHTARG = isbn13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = isbn,
RIGHTARG = isbn13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = isbn,
RIGHTARG = isbn13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = isbn,
RIGHTARG = ean13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = isbn,
RIGHTARG = ean13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = isbn,
RIGHTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = isbn,
RIGHTARG = ean13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = isbn,
RIGHTARG = ean13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = isbn,
RIGHTARG = ean13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
--
-- ISMN13 operators:
--
---------------------------------------------------
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ismn13,
RIGHTARG = ismn13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ismn13,
RIGHTARG = ismn13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ismn13,
RIGHTARG = ismn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ismn13,
RIGHTARG = ismn13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ismn13,
RIGHTARG = ismn13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ismn13,
RIGHTARG = ismn13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ismn13,
RIGHTARG = ismn,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ismn13,
RIGHTARG = ismn,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ismn13,
RIGHTARG = ismn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ismn13,
RIGHTARG = ismn,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ismn13,
RIGHTARG = ismn,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ismn13,
RIGHTARG = ismn,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
--
-- ISMN operators:
--
---------------------------------------------------
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ismn,
RIGHTARG = ismn,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ismn,
RIGHTARG = ismn,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ismn,
RIGHTARG = ismn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ismn,
RIGHTARG = ismn,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ismn,
RIGHTARG = ismn,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ismn,
RIGHTARG = ismn,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ismn,
RIGHTARG = ismn13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ismn,
RIGHTARG = ismn13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ismn,
RIGHTARG = ismn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ismn,
RIGHTARG = ismn13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ismn,
RIGHTARG = ismn13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ismn,
RIGHTARG = ismn13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = ismn,
RIGHTARG = ean13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = ismn,
RIGHTARG = ean13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = ismn,
RIGHTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = ismn,
RIGHTARG = ean13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = ismn,
RIGHTARG = ean13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = ismn,
RIGHTARG = ean13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
--
-- ISSN13 operators:
--
---------------------------------------------------
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = issn13,
RIGHTARG = issn13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = issn13,
RIGHTARG = issn13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = issn13,
RIGHTARG = issn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = issn13,
RIGHTARG = issn13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = issn13,
RIGHTARG = issn13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = issn13,
RIGHTARG = issn13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = issn13,
RIGHTARG = issn,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = issn13,
RIGHTARG = issn,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = issn13,
RIGHTARG = issn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = issn13,
RIGHTARG = issn,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = issn13,
RIGHTARG = issn,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = issn13,
RIGHTARG = issn,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = issn13,
RIGHTARG = ean13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = issn13,
RIGHTARG = ean13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = issn13,
RIGHTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = issn13,
RIGHTARG = ean13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = issn13,
RIGHTARG = ean13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = issn13,
RIGHTARG = ean13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
--
-- ISSN operators:
--
---------------------------------------------------
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = issn,
RIGHTARG = issn,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = issn,
RIGHTARG = issn,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = issn,
RIGHTARG = issn,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = issn,
RIGHTARG = issn,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = issn,
RIGHTARG = issn,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = issn,
RIGHTARG = issn,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = issn,
RIGHTARG = issn13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = issn,
RIGHTARG = issn13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = issn,
RIGHTARG = issn13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = issn,
RIGHTARG = issn13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = issn,
RIGHTARG = issn13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = issn,
RIGHTARG = issn13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = issn,
RIGHTARG = ean13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = issn,
RIGHTARG = ean13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = issn,
RIGHTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = issn,
RIGHTARG = ean13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = issn,
RIGHTARG = ean13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = issn,
RIGHTARG = ean13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
--
-- UPC operators:
--
---------------------------------------------------
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = upc,
RIGHTARG = upc,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = upc,
RIGHTARG = upc,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = upc,
RIGHTARG = upc,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = upc,
RIGHTARG = upc,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = upc,
RIGHTARG = upc,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = upc,
RIGHTARG = upc,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR < (
PROCEDURE = isnlt,
LEFTARG = upc,
RIGHTARG = ean13,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <= (
PROCEDURE = isnle,
LEFTARG = upc,
RIGHTARG = ean13,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR = (
PROCEDURE = isneq,
LEFTARG = upc,
RIGHTARG = ean13,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel);
CREATE OPERATOR >= (
PROCEDURE = isnge,
LEFTARG = upc,
RIGHTARG = ean13,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR > (
PROCEDURE = isngt,
LEFTARG = upc,
RIGHTARG = ean13,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel );
CREATE OPERATOR <> (
PROCEDURE = isnne,
LEFTARG = upc,
RIGHTARG = ean13,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
--
-- Operator classes:
--
---------------------------------------------------
-- EAN13:
CREATE FUNCTION btean13cmp(ean13, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btean13cmp(ean13, isbn13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btean13cmp(ean13, ismn13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btean13cmp(ean13, issn13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btean13cmp(ean13, isbn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btean13cmp(ean13, ismn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btean13cmp(ean13, issn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btean13cmp(ean13, upc)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS ean13_ops DEFAULT
FOR TYPE ean13 USING btree AS
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),
OPERATOR 1 <,
OPERATOR 2 <= (ean13, isbn13),
OPERATOR 2 <= (ean13, ismn13),
OPERATOR 2 <= (ean13, issn13),
OPERATOR 2 <= (ean13, isbn),
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, isbn),
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, isbn),
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, isbn),
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);
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);
---------------------------------------------------
-- ISBN13:
CREATE FUNCTION btisbn13cmp(isbn13, isbn13)
RETURNS int4
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),
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'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS isbn13_ops DEFAULT
FOR TYPE isbn13 USING hash AS
OPERATOR 1 =,
FUNCTION 1 hashisbn13(isbn13);
---------------------------------------------------
-- ISBN:
CREATE FUNCTION btisbncmp(isbn, isbn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btisbncmp(isbn, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btisbncmp(isbn, isbn13)
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),
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'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS isbn_ops DEFAULT
FOR TYPE isbn USING hash AS
OPERATOR 1 =,
FUNCTION 1 hashisbn(isbn);
---------------------------------------------------
-- ISMN13:
CREATE FUNCTION btismn13cmp(ismn13, ismn13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btismn13cmp(ismn13, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btismn13cmp(ismn13, ismn)
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),
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'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS ismn13_ops DEFAULT
FOR TYPE ismn13 USING hash AS
OPERATOR 1 =,
FUNCTION 1 hashismn13(ismn13);
---------------------------------------------------
-- ISMN:
CREATE FUNCTION btismncmp(ismn, ismn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btismncmp(ismn, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btismncmp(ismn, ismn13)
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),
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'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS ismn_ops DEFAULT
FOR TYPE ismn USING hash AS
OPERATOR 1 =,
FUNCTION 1 hashismn(ismn);
---------------------------------------------------
-- ISSN13:
CREATE FUNCTION btissn13cmp(issn13, issn13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btissn13cmp(issn13, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btissn13cmp(issn13, issn)
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),
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'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS issn13_ops DEFAULT
FOR TYPE issn13 USING hash AS
OPERATOR 1 =,
FUNCTION 1 hashissn13(issn13);
---------------------------------------------------
-- ISSN:
CREATE FUNCTION btissncmp(issn, issn)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btissncmp(issn, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btissncmp(issn, issn13)
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),
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'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS issn_ops DEFAULT
FOR TYPE issn USING hash AS
OPERATOR 1 =,
FUNCTION 1 hashissn(issn);
---------------------------------------------------
-- UPC:
CREATE FUNCTION btupccmp(upc, upc)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE FUNCTION btupccmp(upc, ean13)
RETURNS int4
AS 'btint8cmp'
LANGUAGE 'internal'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS upc_ops DEFAULT
FOR TYPE upc USING btree AS
OPERATOR 1 < (upc, ean13),
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'
IMMUTABLE STRICT;
CREATE OPERATOR CLASS upc_ops DEFAULT
FOR TYPE upc USING hash AS
OPERATOR 1 =,
FUNCTION 1 hashupc(upc);
--
-- Type casts:
--
---------------------------------------------------
CREATE FUNCTION isbn13(ean13)
RETURNS isbn13
AS 'MODULE_PATHNAME', 'isbn_cast_from_ean13'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE FUNCTION ismn13(ean13)
RETURNS ismn13
AS 'MODULE_PATHNAME', 'ismn_cast_from_ean13'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE FUNCTION issn13(ean13)
RETURNS issn13
AS 'MODULE_PATHNAME', 'issn_cast_from_ean13'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE FUNCTION isbn(ean13)
RETURNS isbn
AS 'MODULE_PATHNAME', 'isbn_cast_from_ean13'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE FUNCTION ismn(ean13)
RETURNS ismn
AS 'MODULE_PATHNAME', 'ismn_cast_from_ean13'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE FUNCTION issn(ean13)
RETURNS issn
AS 'MODULE_PATHNAME', 'issn_cast_from_ean13'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE FUNCTION upc(ean13)
RETURNS upc
AS 'MODULE_PATHNAME', 'upc_cast_from_ean13'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE CAST (ean13 AS isbn13) WITH FUNCTION isbn13(ean13);
CREATE CAST (ean13 AS isbn) WITH FUNCTION isbn(ean13);
CREATE CAST (ean13 AS ismn13) WITH FUNCTION ismn13(ean13);
CREATE CAST (ean13 AS ismn) WITH FUNCTION ismn(ean13);
CREATE CAST (ean13 AS issn13) WITH FUNCTION issn13(ean13);
CREATE CAST (ean13 AS issn) WITH FUNCTION issn(ean13);
CREATE CAST (ean13 AS upc) WITH FUNCTION upc(ean13);
CREATE CAST (isbn13 AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (isbn AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (ismn13 AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (ismn AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (issn13 AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (issn AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (upc AS ean13) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (isbn AS isbn13) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (isbn13 AS isbn) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (ismn AS ismn13) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (ismn13 AS ismn) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (issn AS issn13) WITHOUT FUNCTION AS ASSIGNMENT;
CREATE CAST (issn13 AS issn) WITHOUT FUNCTION AS ASSIGNMENT;
--
-- Validation stuff for lose types:
--
CREATE FUNCTION make_valid(ean13)
RETURNS ean13
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION make_valid(isbn13)
RETURNS isbn13
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION make_valid(ismn13)
RETURNS ismn13
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION make_valid(issn13)
RETURNS issn13
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION make_valid(isbn)
RETURNS isbn
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION make_valid(ismn)
RETURNS ismn
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION make_valid(issn)
RETURNS issn
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION make_valid(upc)
RETURNS upc
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION is_valid(ean13)
RETURNS boolean
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION is_valid(isbn13)
RETURNS boolean
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION is_valid(ismn13)
RETURNS boolean
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION is_valid(issn13)
RETURNS boolean
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION is_valid(isbn)
RETURNS boolean
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION is_valid(ismn)
RETURNS boolean
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION is_valid(issn)
RETURNS boolean
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
CREATE FUNCTION is_valid(upc)
RETURNS boolean
AS 'MODULE_PATHNAME'
LANGUAGE 'C'
IMMUTABLE STRICT;
--
-- isn_weak(boolean) - Sets the weak input mode.
-- This function is intended for testing use only!
--
CREATE FUNCTION isn_weak(boolean)
RETURNS boolean
AS 'MODULE_PATHNAME', 'accept_weak_input'
LANGUAGE 'C'
IMMUTABLE STRICT;
--
-- isn_weak() - Gets the weak input mode status
--
CREATE FUNCTION isn_weak()
RETURNS boolean
AS 'MODULE_PATHNAME', 'weak_input_status'
LANGUAGE 'C'
IMMUTABLE STRICT;
COMMIT;