summaryrefslogtreecommitdiffstats
path: root/contrib/isn/expected
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/isn/expected')
-rw-r--r--contrib/isn/expected/isn.out266
1 files changed, 266 insertions, 0 deletions
diff --git a/contrib/isn/expected/isn.out b/contrib/isn/expected/isn.out
new file mode 100644
index 0000000..18fe37a
--- /dev/null
+++ b/contrib/isn/expected/isn.out
@@ -0,0 +1,266 @@
+--
+-- Test ISN extension
+--
+CREATE EXTENSION isn;
+-- Check whether any of our opclasses fail amvalidate
+-- ... they will, because of missing cross-type operators
+SELECT amname, opcname
+FROM (SELECT amname, opcname, opc.oid
+ FROM pg_opclass opc LEFT JOIN pg_am am ON am.oid = opcmethod
+ WHERE opc.oid >= 16384
+ ORDER BY 1, 2 OFFSET 0) ss
+WHERE NOT amvalidate(oid);
+INFO: operator family "isn_ops" of access method btree is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method btree is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method btree is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method btree is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method btree is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method btree is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method btree is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method btree is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method hash is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method hash is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method hash is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method hash is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method hash is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method hash is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method hash is missing cross-type operator(s)
+INFO: operator family "isn_ops" of access method hash is missing cross-type operator(s)
+ amname | opcname
+--------+------------
+ btree | ean13_ops
+ btree | isbn13_ops
+ btree | isbn_ops
+ btree | ismn13_ops
+ btree | ismn_ops
+ btree | issn13_ops
+ btree | issn_ops
+ btree | upc_ops
+ hash | ean13_ops
+ hash | isbn13_ops
+ hash | isbn_ops
+ hash | ismn13_ops
+ hash | ismn_ops
+ hash | issn13_ops
+ hash | issn_ops
+ hash | upc_ops
+(16 rows)
+
+--
+-- test valid conversions
+--
+SELECT '9780123456786'::EAN13, -- old book
+ '9790123456785'::EAN13, -- music
+ '9791234567896'::EAN13, -- new book
+ '9771234567898'::EAN13, -- serial
+ '0123456789012'::EAN13, -- upc
+ '1234567890128'::EAN13;
+ ean13 | ean13 | ean13 | ean13 | ean13 | ean13
+-------------------+-------------------+-----------------+-------------------+-----------------+-----------------
+ 978-0-12-345678-6 | 979-0-1234-5678-5 | 979-123456789-6 | 977-1234-567-89-8 | 012-345678901-2 | 123-456789012-8
+(1 row)
+
+SELECT '9780123456786'::ISBN,
+ '123456789X'::ISBN,
+ '9780123456786'::ISBN13::ISBN,
+ '9780123456786'::EAN13::ISBN;
+ isbn | isbn | isbn | isbn
+---------------+---------------+---------------+---------------
+ 0-12-345678-9 | 1-234-56789-X | 0-12-345678-9 | 0-12-345678-9
+(1 row)
+
+SELECT -- new books, shown as ISBN13 even for ISBN...
+ '9791234567896'::ISBN,
+ '9791234567896'::ISBN13::ISBN,
+ '9791234567896'::EAN13::ISBN;
+ isbn | isbn | isbn
+-----------------+-----------------+-----------------
+ 979-123456789-6 | 979-123456789-6 | 979-123456789-6
+(1 row)
+
+SELECT '9780123456786'::ISBN13,
+ '123456789X'::ISBN13,
+ '9791234567896'::ISBN13,
+ '9791234567896'::EAN13::ISBN13;
+ isbn13 | isbn13 | isbn13 | isbn13
+-------------------+-------------------+-----------------+-----------------
+ 978-0-12-345678-6 | 978-1-234-56789-7 | 979-123456789-6 | 979-123456789-6
+(1 row)
+
+SELECT '9790123456785'::ISMN,
+ '9790123456785'::EAN13::ISMN,
+ 'M123456785'::ISMN,
+ 'M-1234-5678-5'::ISMN;
+ ismn | ismn | ismn | ismn
+---------------+---------------+---------------+---------------
+ M-1234-5678-5 | M-1234-5678-5 | M-1234-5678-5 | M-1234-5678-5
+(1 row)
+
+SELECT '9790123456785'::ISMN13,
+ 'M123456785'::ISMN13,
+ 'M-1234-5678-5'::ISMN13;
+ ismn13 | ismn13 | ismn13
+-------------------+-------------------+-------------------
+ 979-0-1234-5678-5 | 979-0-1234-5678-5 | 979-0-1234-5678-5
+(1 row)
+
+SELECT '9771234567003'::ISSN,
+ '12345679'::ISSN;
+ issn | issn
+-----------+-----------
+ 1234-5679 | 1234-5679
+(1 row)
+
+SELECT '9771234567003'::ISSN13,
+ '12345679'::ISSN13,
+ '9771234567898'::ISSN13,
+ '9771234567898'::EAN13::ISSN13;
+ issn13 | issn13 | issn13 | issn13
+-------------------+-------------------+-------------------+-------------------
+ 977-1234-567-00-3 | 977-1234-567-00-3 | 977-1234-567-89-8 | 977-1234-567-89-8
+(1 row)
+
+SELECT '0123456789012'::UPC,
+ '0123456789012'::EAN13::UPC;
+ upc | upc
+--------------+--------------
+ 123456789012 | 123456789012
+(1 row)
+
+--
+-- test invalid checksums
+--
+SELECT '1234567890'::ISBN;
+ERROR: invalid check digit for ISBN number: "1234567890", should be X
+LINE 1: SELECT '1234567890'::ISBN;
+ ^
+SELECT 'M123456780'::ISMN;
+ERROR: invalid check digit for ISMN number: "M123456780", should be 5
+LINE 1: SELECT 'M123456780'::ISMN;
+ ^
+SELECT '12345670'::ISSN;
+ERROR: invalid check digit for ISSN number: "12345670", should be 9
+LINE 1: SELECT '12345670'::ISSN;
+ ^
+SELECT '9780123456780'::ISBN;
+ERROR: invalid check digit for ISBN number: "9780123456780", should be 6
+LINE 1: SELECT '9780123456780'::ISBN;
+ ^
+SELECT '9791234567890'::ISBN13;
+ERROR: invalid check digit for ISBN number: "9791234567890", should be 6
+LINE 1: SELECT '9791234567890'::ISBN13;
+ ^
+SELECT '0123456789010'::UPC;
+ERROR: invalid check digit for UPC number: "0123456789010", should be 2
+LINE 1: SELECT '0123456789010'::UPC;
+ ^
+SELECT '1234567890120'::EAN13;
+ERROR: invalid check digit for EAN13 number: "1234567890120", should be 8
+LINE 1: SELECT '1234567890120'::EAN13;
+ ^
+--
+-- test invalid conversions
+--
+SELECT '9790123456785'::ISBN; -- not a book
+ERROR: cannot cast ISMN to ISBN for number: "9790123456785"
+LINE 1: SELECT '9790123456785'::ISBN;
+ ^
+SELECT '9771234567898'::ISBN; -- not a book
+ERROR: cannot cast ISSN to ISBN for number: "9771234567898"
+LINE 1: SELECT '9771234567898'::ISBN;
+ ^
+SELECT '0123456789012'::ISBN; -- not a book
+ERROR: cannot cast UPC to ISBN for number: "0123456789012"
+LINE 1: SELECT '0123456789012'::ISBN;
+ ^
+SELECT '9790123456785'::ISBN13; -- not a book
+ERROR: cannot cast ISMN to ISBN for number: "9790123456785"
+LINE 1: SELECT '9790123456785'::ISBN13;
+ ^
+SELECT '9771234567898'::ISBN13; -- not a book
+ERROR: cannot cast ISSN to ISBN for number: "9771234567898"
+LINE 1: SELECT '9771234567898'::ISBN13;
+ ^
+SELECT '0123456789012'::ISBN13; -- not a book
+ERROR: cannot cast UPC to ISBN for number: "0123456789012"
+LINE 1: SELECT '0123456789012'::ISBN13;
+ ^
+SELECT '9780123456786'::ISMN; -- not music
+ERROR: cannot cast ISBN to ISMN for number: "9780123456786"
+LINE 1: SELECT '9780123456786'::ISMN;
+ ^
+SELECT '9771234567898'::ISMN; -- not music
+ERROR: cannot cast ISSN to ISMN for number: "9771234567898"
+LINE 1: SELECT '9771234567898'::ISMN;
+ ^
+SELECT '9791234567896'::ISMN; -- not music
+ERROR: cannot cast ISBN to ISMN for number: "9791234567896"
+LINE 1: SELECT '9791234567896'::ISMN;
+ ^
+SELECT '0123456789012'::ISMN; -- not music
+ERROR: cannot cast UPC to ISMN for number: "0123456789012"
+LINE 1: SELECT '0123456789012'::ISMN;
+ ^
+SELECT '9780123456786'::ISSN; -- not serial
+ERROR: cannot cast ISBN to ISSN for number: "9780123456786"
+LINE 1: SELECT '9780123456786'::ISSN;
+ ^
+SELECT '9790123456785'::ISSN; -- not serial
+ERROR: cannot cast ISMN to ISSN for number: "9790123456785"
+LINE 1: SELECT '9790123456785'::ISSN;
+ ^
+SELECT '9791234567896'::ISSN; -- not serial
+ERROR: cannot cast ISBN to ISSN for number: "9791234567896"
+LINE 1: SELECT '9791234567896'::ISSN;
+ ^
+SELECT '0123456789012'::ISSN; -- not serial
+ERROR: cannot cast UPC to ISSN for number: "0123456789012"
+LINE 1: SELECT '0123456789012'::ISSN;
+ ^
+SELECT '9780123456786'::UPC; -- not a product
+ERROR: cannot cast ISBN to UPC for number: "9780123456786"
+LINE 1: SELECT '9780123456786'::UPC;
+ ^
+SELECT '9771234567898'::UPC; -- not a product
+ERROR: cannot cast ISSN to UPC for number: "9771234567898"
+LINE 1: SELECT '9771234567898'::UPC;
+ ^
+SELECT '9790123456785'::UPC; -- not a product
+ERROR: cannot cast ISMN to UPC for number: "9790123456785"
+LINE 1: SELECT '9790123456785'::UPC;
+ ^
+SELECT '9791234567896'::UPC; -- not a product
+ERROR: cannot cast ISBN to UPC for number: "9791234567896"
+LINE 1: SELECT '9791234567896'::UPC;
+ ^
+SELECT 'postgresql...'::EAN13;
+ERROR: invalid input syntax for EAN13 number: "postgresql..."
+LINE 1: SELECT 'postgresql...'::EAN13;
+ ^
+SELECT 'postgresql...'::ISBN;
+ERROR: invalid input syntax for ISBN number: "postgresql..."
+LINE 1: SELECT 'postgresql...'::ISBN;
+ ^
+SELECT 9780123456786::EAN13;
+ERROR: cannot cast type bigint to ean13
+LINE 1: SELECT 9780123456786::EAN13;
+ ^
+SELECT 9780123456786::ISBN;
+ERROR: cannot cast type bigint to isbn
+LINE 1: SELECT 9780123456786::ISBN;
+ ^
+--
+-- test some comparisons, must yield true
+--
+SELECT '12345679'::ISSN = '9771234567003'::EAN13 AS "ok",
+ 'M-1234-5678-5'::ISMN = '9790123456785'::EAN13 AS "ok",
+ '9791234567896'::EAN13 != '123456789X'::ISBN AS "nope";
+ ok | ok | nope
+----+----+------
+ t | t | t
+(1 row)
+
+--
+-- cleanup
+--
+DROP EXTENSION isn;