Binary I/O for isn extension
Hi.
Attached is a small patch which adds binary input/output for the types
added by the isn extension.
Shay
Attachments:
isn-binary.patchapplication/octet-stream; name=isn-binary.patchDownload
diff --git a/contrib/isn/isn--1.0.sql b/contrib/isn/isn--1.0.sql
index ce74c17..347d692 100644
*** a/contrib/isn/isn--1.0.sql
--- b/contrib/isn/isn--1.0.sql
***************
*** 25,33 **** CREATE FUNCTION ean13_out(ean13)
--- 25,45 ----
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
***************
*** 46,51 **** CREATE FUNCTION ean13_out(isbn13)
--- 58,65 ----
CREATE TYPE isbn13 (
INPUT = isbn13_in,
OUTPUT = ean13_out,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
LIKE = pg_catalog.int8
);
COMMENT ON TYPE isbn13
***************
*** 64,69 **** CREATE FUNCTION ean13_out(ismn13)
--- 78,85 ----
CREATE TYPE ismn13 (
INPUT = ismn13_in,
OUTPUT = ean13_out,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
LIKE = pg_catalog.int8
);
COMMENT ON TYPE ismn13
***************
*** 82,87 **** CREATE FUNCTION ean13_out(issn13)
--- 98,105 ----
CREATE TYPE issn13 (
INPUT = issn13_in,
OUTPUT = ean13_out,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
LIKE = pg_catalog.int8
);
COMMENT ON TYPE issn13
***************
*** 102,107 **** CREATE FUNCTION isn_out(isbn)
--- 120,127 ----
CREATE TYPE isbn (
INPUT = isbn_in,
OUTPUT = isn_out,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
LIKE = pg_catalog.int8
);
COMMENT ON TYPE isbn
***************
*** 120,125 **** CREATE FUNCTION isn_out(ismn)
--- 140,147 ----
CREATE TYPE ismn (
INPUT = ismn_in,
OUTPUT = isn_out,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
LIKE = pg_catalog.int8
);
COMMENT ON TYPE ismn
***************
*** 138,143 **** CREATE FUNCTION isn_out(issn)
--- 160,167 ----
CREATE TYPE issn (
INPUT = issn_in,
OUTPUT = isn_out,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
LIKE = pg_catalog.int8
);
COMMENT ON TYPE issn
***************
*** 156,161 **** CREATE FUNCTION isn_out(upc)
--- 180,187 ----
CREATE TYPE upc (
INPUT = upc_in,
OUTPUT = isn_out,
+ RECEIVE = ean13_recv,
+ SEND = ean13_send,
LIKE = pg_catalog.int8
);
COMMENT ON TYPE upc
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);
Hi,
Thanks for the patch, you can add it to our commitfest app so it gets
reviewed in the next commitfest.
https://commitfest.postgresql.org/
A suggestion to make it easier for your patch to be accepted:
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.
Andreas
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Hello,
Attached is a small patch which adds binary input/output for the types
added by the isn extension.
I added this patch to the next CF (2016-09) under "Miscellaneous".
Out of curiosity, what is the motivation?
--
Fabien.
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
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.
Thanks for the guidance, I'll fix all that and resubmit a patch.
Thanks for the patch, you can add it to our commitfest app so it gets
reviewed in the next commitfest.
I did this.
A suggestion to make it easier for your patch to be accepted:
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.
Indeed.
Moreover I'm not sure that a type may me updated incrementaly to add new
send/receive functions.
--
Fabien.
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
I added this patch to the next CF (2016-09) under "Miscellaneous".
Thanks!
Out of curiosity, what is the motivation?
I'm the owner of Npgsql, the open-source .NET driver for PostgreSQL, which
is a binary-first driver. That is, working with types that have no binary
I/O is possible but awkward.
I hope the general direction is (or will be) to have binary I/O for all
supported types, both for compatibility with binary-first consumers such as
Npgsql and for general efficiency.
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.
Attachments:
isn-binary.patchapplication/octet-stream; name=isn-binary.patchDownload
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
Hello Shay,
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.
This patch does not apply anymore, because there as been an update in
between to mark relevant contrib functions as "parallel".
Could you update the patch?
--
Fabien.
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Mon, Aug 22, 2016 at 8:14 AM, Fabien COELHO <coelho@cri.ensmp.fr> wrote:
Hello Shay,
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.This patch does not apply anymore, because there as been an update in
between to mark relevant contrib functions as "parallel".Could you update the patch?
So, it's been over a month since this request, and there doesn't seem
to be an update to this patch. The CommitFest is over in 2 days, so
I've marked this "Returned with Feedback". Shay, please feel free to
resubmit for the next CommitFest.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Sorry about this, I just haven't had a free moment (and it's definitely not
very high priority...)
On Wed, Sep 28, 2016 at 5:04 PM, Robert Haas <robertmhaas@gmail.com> wrote:
Show quoted text
On Mon, Aug 22, 2016 at 8:14 AM, Fabien COELHO <coelho@cri.ensmp.fr>
wrote:Hello Shay,
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 tobe
a way to add send/receive functions with ALTER TYPE, I did that by
updating
pg_type directly - hope that's OK.This patch does not apply anymore, because there as been an update in
between to mark relevant contrib functions as "parallel".Could you update the patch?
So, it's been over a month since this request, and there doesn't seem
to be an update to this patch. The CommitFest is over in 2 days, so
I've marked this "Returned with Feedback". Shay, please feel free to
resubmit for the next CommitFest.--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
On Wed, Sep 28, 2016 at 2:05 PM, Shay Rojansky <roji@roji.org> wrote:
Sorry about this, I just haven't had a free moment (and it's definitely not
very high priority...)
No issues, just cleaning house.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers