[prev in list] [next in list] [prev in thread] [next in thread]
List: pgsql-hackers
Subject: Re: [HACKERS] Binary I/O for isn extension
From: Shay Rojansky <roji () roji ! org>
Date: 2016-05-31 12:13:40
Message-ID: CADT4RqAiU_znq=-mzTZf5mukjmNkoaf_Qin7yen+6kjRZUCN6w () mail ! gmail ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
>
> When adding new functions to an extension you need to bump the version of
> the extension by renaming the file, updating the .control file, creating an
> upgrade script, and updating the Makefile to include the new files.
Attached is a new version of the patch, adding an upgrade script and the
rest of it. Note that because, as Fabien noted, there's doesn't seem to be
a way to add send/receive functions with ALTER TYPE, I did that by updating
pg_type directly - hope that's OK.
[Attachment #5 (text/html)]
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">When adding new functions to an extension you need to bump \
the version of the extension by renaming the file, updating the .control file, \
creating an upgrade script, and updating the Makefile to include the new \
files.</blockquote><div><br></div><div>Attached is a new version of the patch, adding \
an upgrade script and the rest of it. Note that because, as Fabien noted, there's \
doesn't seem to be a way to add send/receive functions with ALTER TYPE, I did \
that by updating pg_type directly - hope that's OK.</div></div><br></div></div>
["isn-binary.patch" (application/octet-stream)]
diff --git a/contrib/isn/Makefile b/contrib/isn/Makefile
index 96aaf35..9543a4b 100644
*** a/contrib/isn/Makefile
--- b/contrib/isn/Makefile
***************
*** 3,9 ****
MODULES = isn
EXTENSION = isn
! DATA = isn--1.0.sql isn--unpackaged--1.0.sql
PGFILEDESC = "isn - data types for international product numbering standards"
REGRESS = isn
--- 3,9 ----
MODULES = isn
EXTENSION = isn
! DATA = isn--1.1.sql isn--1.0--1.1.sql isn--unpackaged--1.0.sql
PGFILEDESC = "isn - data types for international product numbering standards"
REGRESS = isn
diff --git a/contrib/isn/isnew file mode 100644
index 0000000..7676756
*** /dev/null
--- b/contrib/isn/isn--1.0--1.1.sql
***************
*** 0 ****
--- 1,13 ----
+ CREATE FUNCTION ean13_recv(internal)
+ RETURNS ean13
+ AS 'MODULE_PATHNAME'
+ LANGUAGE C
+ STRICT IMMUTABLE;
+ CREATE FUNCTION ean13_send(ean13)
+ RETURNS bytea
+ AS 'MODULE_PATHNAME'
+ LANGUAGE C
+ STRICT IMMUTABLE;
+
+ UPDATE pg_type SET typreceive='ean13_recv' WHERE typname IN ('ean13', 'isbn13', \
'ismn13', 'issn13', 'isbn', 'ismn', 'issn', 'upc'); + UPDATE pg_type SET \
typsend='ean13_send' WHERE typname IN ('ean13', 'isbn13', 'ismn13', 'issn13', \
'isbn', 'ismn', 'issn', 'upc');
diff --git a/contrib/isn/isn--1.0.sqdeleted file mode 100644
index ce74c17..0000000
*** a/contrib/isn/isn--1.0.sql
--- /dev/null
***************
*** 1,3196 ****
- /* contrib/isn/isn--1.0.sql */
-
- -- complain if script is sourced in psql, rather than via CREATE EXTENSION
- \echo Use "CREATE EXTENSION isn" to load this file. \quit
-
- -- 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');
- --
-
- --
- -- 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,
- LIKE = pg_catalog.int8
- );
- 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,
- LIKE = pg_catalog.int8
- );
- 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,
- LIKE = pg_catalog.int8
- );
- 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,
- LIKE = pg_catalog.int8
- );
- 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,
- LIKE = pg_catalog.int8
- );
- 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,
- LIKE = pg_catalog.int8
- );
- 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,
- LIKE = pg_catalog.int8
- );
- 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,
- LIKE = pg_catalog.int8
- );
- 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,
- MERGES,
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- HASHES);
- 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,
- MERGES,
- 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,
- MERGES,
- HASHES);
- 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 families for the various operator classes:
- --
- ---------------------------------------------------
-
- CREATE OPERATOR FAMILY isn_ops USING btree;
- CREATE OPERATOR FAMILY isn_ops USING hash;
-
- --
- -- Operator classes:
- --
- ---------------------------------------------------
- -- EAN13:
- CREATE FUNCTION btean13cmp(ean13, ean13)
- RETURNS int4
- 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 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;
-
- ALTER OPERATOR FAMILY isn_ops USING btree 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),
- 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 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 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 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),
- 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);
-
- 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:
- CREATE FUNCTION btisbn13cmp(isbn13, isbn13)
- RETURNS int4
- AS 'btint8cmp'
- LANGUAGE 'internal'
- IMMUTABLE STRICT;
-
- CREATE OPERATOR CLASS isbn13_ops DEFAULT
- FOR TYPE isbn13 USING btree FAMILY isn_ops AS
- OPERATOR 1 <,
- OPERATOR 2 <=,
- OPERATOR 3 =,
- OPERATOR 4 >=,
- OPERATOR 5 >,
- 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 FAMILY isn_ops AS
- OPERATOR 1 =,
- FUNCTION 1 hashisbn13(isbn13);
-
- -- ISBN13 vs other types:
- 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;
-
- 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 FAMILY isn_ops AS
- OPERATOR 1 <,
- OPERATOR 2 <=,
- OPERATOR 3 =,
- OPERATOR 4 >=,
- OPERATOR 5 >,
- 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 FAMILY isn_ops AS
- OPERATOR 1 =,
- FUNCTION 1 hashisbn(isbn);
-
- -- ISBN vs other types:
- 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;
-
- 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 FAMILY isn_ops AS
- OPERATOR 1 <,
- OPERATOR 2 <=,
- OPERATOR 3 =,
- OPERATOR 4 >=,
- OPERATOR 5 >,
- 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 FAMILY isn_ops AS
- OPERATOR 1 =,
- FUNCTION 1 hashismn13(ismn13);
-
- -- ISMN13 vs other types:
- 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;
-
- 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 FAMILY isn_ops AS
- OPERATOR 1 <,
- OPERATOR 2 <=,
- OPERATOR 3 =,
- OPERATOR 4 >=,
- OPERATOR 5 >,
- 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 FAMILY isn_ops AS
- OPERATOR 1 =,
- FUNCTION 1 hashismn(ismn);
-
- -- ISMN vs other types:
- 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;
-
- 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 FAMILY isn_ops AS
- OPERATOR 1 <,
- OPERATOR 2 <=,
- OPERATOR 3 =,
- OPERATOR 4 >=,
- OPERATOR 5 >,
- 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 FAMILY isn_ops AS
- OPERATOR 1 =,
- FUNCTION 1 hashissn13(issn13);
-
- -- ISSN13 vs other types:
- 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;
-
- 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 FAMILY isn_ops AS
- OPERATOR 1 <,
- OPERATOR 2 <=,
- OPERATOR 3 =,
- OPERATOR 4 >=,
- OPERATOR 5 >,
- 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 FAMILY isn_ops AS
- OPERATOR 1 =,
- FUNCTION 1 hashissn(issn);
-
- -- ISSN vs other types:
- 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;
-
- 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 FAMILY isn_ops AS
- OPERATOR 1 <,
- OPERATOR 2 <=,
- OPERATOR 3 =,
- OPERATOR 4 >=,
- OPERATOR 5 >,
- 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 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:
- --
- ---------------------------------------------------
- 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;
--- 0 ----
diff --git a/cnew file mode 100644
index 0000000..347d692
*** /dev/null
--- b/contrib/isn/isn--1.1.sql
***************
*** 0 ****
--- 1,3222 ----
+ /* contrib/isn/isn--1.0.sql */
+
+ -- complain if script is sourced in psql, rather than via CREATE EXTENSION
+ \echo Use "CREATE EXTENSION isn" to load this file. \quit
+
+ -- 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');
+ --
+
+ --
+ -- 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 FUNCTION ean13_recv(internal)
+ RETURNS ean13
+ AS 'MODULE_PATHNAME'
+ LANGUAGE C
+ STRICT IMMUTABLE;
+ CREATE FUNCTION ean13_send(ean13)
+ RETURNS bytea
+ AS 'MODULE_PATHNAME'
+ LANGUAGE C
+ STRICT IMMUTABLE;
+ CREATE TYPE ean13 (
+ INPUT = ean13_in,
+ OUTPUT = ean13_out,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
+ LIKE = pg_catalog.int8
+ );
+ 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,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
+ LIKE = pg_catalog.int8
+ );
+ 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,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
+ LIKE = pg_catalog.int8
+ );
+ 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,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
+ LIKE = pg_catalog.int8
+ );
+ 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,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
+ LIKE = pg_catalog.int8
+ );
+ 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,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
+ LIKE = pg_catalog.int8
+ );
+ 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,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
+ LIKE = pg_catalog.int8
+ );
+ 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,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
+ LIKE = pg_catalog.int8
+ );
+ 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,
+ MERGES,
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ HASHES);
+ 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,
+ MERGES,
+ 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,
+ MERGES,
+ HASHES);
+ 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 families for the various operator classes:
+ --
+ ---------------------------------------------------
+
+ CREATE OPERATOR FAMILY isn_ops USING btree;
+ CREATE OPERATOR FAMILY isn_ops USING hash;
+
+ --
+ -- Operator classes:
+ --
+ ---------------------------------------------------
+ -- EAN13:
+ CREATE FUNCTION btean13cmp(ean13, ean13)
+ RETURNS int4
+ 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 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;
+
+ ALTER OPERATOR FAMILY isn_ops USING btree 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),
+ 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 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 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 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),
+ 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);
+
+ 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:
+ CREATE FUNCTION btisbn13cmp(isbn13, isbn13)
+ RETURNS int4
+ AS 'btint8cmp'
+ LANGUAGE 'internal'
+ IMMUTABLE STRICT;
+
+ CREATE OPERATOR CLASS isbn13_ops DEFAULT
+ FOR TYPE isbn13 USING btree FAMILY isn_ops AS
+ OPERATOR 1 <,
+ OPERATOR 2 <=,
+ OPERATOR 3 =,
+ OPERATOR 4 >=,
+ OPERATOR 5 >,
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashisbn13(isbn13);
+
+ -- ISBN13 vs other types:
+ 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;
+
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 <,
+ OPERATOR 2 <=,
+ OPERATOR 3 =,
+ OPERATOR 4 >=,
+ OPERATOR 5 >,
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashisbn(isbn);
+
+ -- ISBN vs other types:
+ 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;
+
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 <,
+ OPERATOR 2 <=,
+ OPERATOR 3 =,
+ OPERATOR 4 >=,
+ OPERATOR 5 >,
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashismn13(ismn13);
+
+ -- ISMN13 vs other types:
+ 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;
+
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 <,
+ OPERATOR 2 <=,
+ OPERATOR 3 =,
+ OPERATOR 4 >=,
+ OPERATOR 5 >,
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashismn(ismn);
+
+ -- ISMN vs other types:
+ 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;
+
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 <,
+ OPERATOR 2 <=,
+ OPERATOR 3 =,
+ OPERATOR 4 >=,
+ OPERATOR 5 >,
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashissn13(issn13);
+
+ -- ISSN13 vs other types:
+ 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;
+
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 <,
+ OPERATOR 2 <=,
+ OPERATOR 3 =,
+ OPERATOR 4 >=,
+ OPERATOR 5 >,
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 =,
+ FUNCTION 1 hashissn(issn);
+
+ -- ISSN vs other types:
+ 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;
+
+ 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 FAMILY isn_ops AS
+ OPERATOR 1 <,
+ OPERATOR 2 <=,
+ OPERATOR 3 =,
+ OPERATOR 4 >=,
+ OPERATOR 5 >,
+ 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 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:
+ --
+ ---------------------------------------------------
+ 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;
diff --git a/contrib/isn/isn.c index 49d088f..233d7ee 100644
*** a/contrib/isn/isn.c
--- b/contrib/isn/isn.c
***************
*** 16,21 ****
--- 16,23 ----
#include "fmgr.h"
#include "utils/builtins.h"
+ #include "lib/stringinfo.h"
+ #include "libpq/pqformat.h"
#include "isn.h"
#include "EAN13.h"
***************
*** 1037,1042 **** upc_in(PG_FUNCTION_ARGS)
--- 1039,1067 ----
PG_RETURN_EAN13(result);
}
+ /* binary I/O functions
+ */
+ PG_FUNCTION_INFO_V1(ean13_recv);
+ Datum
+ ean13_recv(PG_FUNCTION_ARGS)
+ {
+ StringInfo buf = (StringInfo) PG_GETARG_POINTER(0);
+
+ PG_RETURN_EAN13((ean13) pq_getmsgint64(buf));
+ }
+
+ PG_FUNCTION_INFO_V1(ean13_send);
+ Datum
+ ean13_send(PG_FUNCTION_ARGS)
+ {
+ ean13 val = PG_GETARG_EAN13(0);
+ StringInfoData buf;
+
+ pq_begintypsend(&buf);
+ pq_sendint64(&buf, val);
+ PG_RETURN_BYTEA_P(pq_endtypsend(&buf));
+ }
+
/* casting functions
*/
PG_FUNCTION_INFO_V1(isbn_cast_from_ean13);
diff --git a/contrib/isnindex cf0b2eb..544bd8d 100644
*** a/contrib/isn/isn.control
--- b/contrib/isn/isn.control
***************
*** 1,5 ****
# isn extension
comment = 'data types for international product numbering standards'
! default_version = '1.0'
module_pathname = '$libdir/isn'
relocatable = true
--- 1,5 ----
# isn extension
comment = 'data types for international product numbering standards'
! default_version = '1.1'
module_pathname = '$libdir/isn'
relocatable = true
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic