--- /dev/null
+TRUNCATE scratchpad.ebook_collections_to_records;
+
+TRUNCATE scratchpad.ebook_links_by_institution;
+
+-- Find any bib records that match on isbn
+INSERT INTO scratchpad.ebook_collections_to_records (collection, id, record) SELECT DISTINCT situ.collection, situ.id, rmsr.id AS record FROM scratchpad.ids_to_urls situ INNER JOIN reporter.materialized_simple_record rmsr ON ARRAY[situ.isbn] <@ rmsr.isbn WHERE situ.isbn IS NOT NULL AND (collection, situ.id, rmsr.id) NOT IN (SELECT collection, id, record FROM scratchpad.ebook_collections_to_records);
+
+-- Find any bib records that match on isbn, round 2, because reporter.materialized_simple_record needs updating
+INSERT INTO scratchpad.ebook_collections_to_records (collection, id, record) SELECT DISTINCT collection, situ.id, record FROM metabib.full_rec mfr INNER JOIN scratchpad.ids_to_urls situ ON situ.isbn = mfr.value AND mfr.tag = '020' AND mfr.subfield = 'a' WHERE (collection, situ.id, record) NOT IN (SELECT collection, id, record FROM scratchpad.ebook_collections_to_records) AND situ.isbn IS NOT NULL;
+
+-- Find any bib records that match on system control number
+INSERT INTO scratchpad.ebook_collections_to_records (collection, id, record) SELECT DISTINCT collection, situ.id, record FROM metabib.full_rec mfr INNER JOIN scratchpad.ids_to_urls situ ON LOWER(situ.sysctl) = mfr.value AND mfr.tag = '035' AND mfr.subfield = 'a' WHERE (collection, situ.id, record) NOT IN (SELECT collection, id, record FROM scratchpad.ebook_collections_to_records) AND situ.sysctl IS NOT NULL;
+
+-- Set the canonical number of unique records per batch
+INSERT INTO scratchpad.ebook_links_by_institution (library, cnt, collection) SELECT 'ALL', COUNT(*), x.collection FROM (SELECT DISTINCT id, collection FROM scratchpad.ids_to_urls) AS x GROUP BY x.collection ORDER BY x.collection;
+
+-- Table that maps which ebook record each library has for a given collection record
+CREATE TABLE scratchpad.ebook_record_by_library (library INTEGER, record BIGINT, id INTEGER, collection TEXT);
+
+-- Populate the table
+INSERT INTO scratchpad.ebook_record_by_library (library, record, id, collection) SELECT 109, record, id, seb.collection FROM scratchpad.ebook_collections_to_records seb WHERE seb.record IN (SELECT record FROM asset.call_number acn WHERE acn.deleted IS FALSE AND acn.owning_lib = 109) ORDER BY collection, id;
+
+INSERT INTO scratchpad.ebook_record_by_library (library, record, id, collection) SELECT 103, record, id, seb.collection FROM scratchpad.ebook_collections_to_records seb WHERE seb.record IN (SELECT record FROM asset.call_number acn WHERE acn.deleted IS FALSE AND acn.owning_lib = 103) ORDER BY collection, id;
+
+INSERT INTO scratchpad.ebook_record_by_library (library, record, id, collection) SELECT 124, record, id, seb.collection FROM scratchpad.ebook_collections_to_records seb WHERE seb.record IN (SELECT record FROM asset.call_number acn WHERE acn.deleted IS FALSE AND acn.owning_lib = 124) ORDER BY collection, id;
+
+CREATE TYPE scratchpad.ebook AS (id INTEGER, isbn TEXT, sysctl TEXT, author TEXT, title TEXT, url TEXT);
+
+CREATE OR REPLACE FUNCTION scratchpad.ebook_missing_records (IN INTEGER, IN TEXT)
+ RETURNS SETOF scratchpad.ebook AS
+$$
+ SELECT DISTINCT id, isbn, sysctl, author, title, url
+ FROM scratchpad.ids_to_urls
+ WHERE collection = $2
+ AND id NOT IN (
+ SELECT id
+ FROM scratchpad.ebook_record_by_library
+ WHERE collection = $2
+ AND library = $1
+ )
+ ORDER BY id;
+$$ LANGUAGE SQL;
+
+-- Create a function to tell us which records a particular library has for a particular collection
+CREATE OR REPLACE FUNCTION scratchpad.ebook_has_records (IN INTEGER, IN TEXT, OUT INTEGER, OUT TEXT, OUT TEXT, OUT TEXT, OUT TEXT)
+ RETURNS SETOF record AS
+$$
+ SELECT DISTINCT situ.id, isbn, sysctl, author, title
+ FROM scratchpad.ids_to_urls situ
+ INNER JOIN scratchpad.ebook_collections_to_records seb
+ ON situ.id = seb.id AND situ.collection = seb.collection
+ INNER JOIN asset.call_number acn
+ ON acn.record = seb.record
+-- INNER JOIN asset.uri_call_number_map auricnm
+-- ON auricnm.call_number = acn.id
+ WHERE situ.collection = $2 AND acn.deleted IS FALSE AND acn.owning_lib = $1
+ ORDER BY id;
+$$ LANGUAGE SQL;
+
+-- Should have scripted this but went with the power of Vim macros
+-- OWA missing records
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'cambridge-2009-12-01.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'cambridge-2009-12-01.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'cambridge-2010-04-12.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'cambridge-2010-04-12.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'cambridge-2010-08-18.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'cambridge-2010-08-18.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'cambridge-2010-09-30_137.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'cambridge-2010-09-30_137.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'duke-2010-08-24_92.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'duke-2010-08-24_92.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'duke-2011-02-02_10.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'duke-2011-02-02_10.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'duke-2011-02-14_15.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'duke-2011-02-14_15.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'gibson-chrc-2010-08-06.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'gibson-chrc-2010-08-06.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'gibson-chrc-2010-08-20.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'gibson-chrc-2010-08-20.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'gibson-chrc-2010-09-17.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'gibson-chrc-2010-09-17.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'gibson-chrc-2010-10-21_66.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'gibson-chrc-2010-10-21_66.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'gibson-chrc-2010-12-02_127.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'gibson-chrc-2010-12-02_127.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'gibson_chrc-2011-02-23_212.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'gibson_chrc-2011-02-23_212.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'oxford-2010-03-04.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'oxford-2010-03-04.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'oxford-2010-04-27.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'oxford-2010-04-27.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'oxford-2010-09-30_156.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'oxford-2010-09-30_156.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'oxford-2010-10-28_49.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'oxford-2010-10-28_49.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'oxford_2010-03-04.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'oxford_2010-03-04.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'springer-2009-12-01.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'springer-2009-12-01.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'springer-2010-02-11.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'springer-2010-02-11.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'springer-2010-04-28_1218.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'springer-2010-04-28_1218.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'springer-2010-06-27_165.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'springer-2011-06-27_165.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OWA', 'springer-2011-02-17_1751.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(109, 'springer-2011-02-17_1751.mrc')) AS foo;
+
+-- Laurentian ebook links
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'cambridge-2009-12-01.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'cambridge-2009-12-01.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'cambridge-2010-04-12.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'cambridge-2010-04-12.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'cambridge-2010-08-18.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'cambridge-2010-08-18.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'cambridge-2010-09-30_137.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'cambridge-2010-09-30_137.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'duke-2010-08-24_92.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'duke-2010-08-24_92.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'duke-2011-02-02_10.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'duke-2011-02-02_10.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'duke-2011-02-14_15.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'duke-2011-02-14_15.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'gibson-chrc-2010-08-06.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'gibson-chrc-2010-08-06.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'gibson-chrc-2010-08-20.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'gibson-chrc-2010-08-20.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'gibson-chrc-2010-09-17.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'gibson-chrc-2010-09-17.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'gibson-chrc-2010-10-21_66.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'gibson-chrc-2010-10-21_66.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'gibson-chrc-2010-12-02_127.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'gibson-chrc-2010-12-02_127.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'gibson_chrc-2011-02-23_212.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'gibson_chrc-2011-02-23_212.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'oxford-2010-03-04.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'oxford-2010-03-04.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'oxford-2010-04-27.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'oxford-2010-04-27.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'oxford-2010-09-30_156.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'oxford-2010-09-30_156.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'oxford-2010-10-28_49.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'oxford-2010-10-28_49.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'springer-2009-12-01.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'springer-2009-12-01.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'springer-2010-02-11.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'springer-2010-02-11.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'springer-2010-04-28_1218.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'springer-2010-04-28_1218.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'springer-2010-06-27_165.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'springer-2011-06-27_165.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSUL', 'springer-2011-02-17_1751.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(103, 'springer-2011-02-17_1751.mrc')) AS foo;
+
+-- Algoma ebook links
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'cambridge-2009-12-01.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'cambridge-2009-12-01.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'cambridge-2010-04-12.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'cambridge-2010-04-12.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'cambridge-2010-08-18.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'cambridge-2010-08-18.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'cambridge-2010-09-30_137.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'cambridge-2010-09-30_137.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'duke-2010-08-24_92.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'duke-2010-08-24_92.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'duke-2011-02-02_10.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'duke-2011-02-02_10.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'duke-2011-02-14_15.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'duke-2011-02-14_15.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'gibson-chrc-2010-08-06.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'gibson-chrc-2010-08-06.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'gibson-chrc-2010-08-20.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'gibson-chrc-2010-08-20.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'gibson-chrc-2010-09-17.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'gibson-chrc-2010-09-17.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'gibson-chrc-2010-10-21_66.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'gibson-chrc-2010-10-21_66.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'gibson-chrc-2010-12-02_127.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'gibson-chrc-2010-12-02_127.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'gibson_chrc-2011-02-23_212.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'gibson_chrc-2011-02-23_212.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'oxford-2010-03-04.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'oxford-2010-03-04.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'oxford-2010-04-27.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'oxford-2010-04-27.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'oxford-2010-09-30_156.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'oxford-2010-09-30_156.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'oxford-2010-10-28_49.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'oxford-2010-10-28_49.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'springer-2009-12-01.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'springer-2009-12-01.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'springer-2010-02-11.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'springer-2010-02-11.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'springer-2010-04-28_1218.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'springer-2010-04-28_1218.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'springer-2010-06-27_165.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'springer-2011-06-27_165.mrc')) AS foo;
+INSERT INTO scratchpad.ebook_links_by_institution (library, collection, cnt) SELECT 'OSTMA', 'springer-2011-02-17_1751.mrc', COUNT(*) FROM (SELECT DISTINCT id, isbn, sysctl, title, author FROM scratchpad.ebook_missing_records(124, 'springer-2011-02-17_1751.mrc')) AS foo;
+
+-- List record issues for springer
+SELECT * FROM scratchpad.ebook_links_by_institution WHERE collection LIKE 'sprin%' ORDER BY collection, library;
+
+-- Count how many records are missing from a given library's collection
+SELECT COUNT(*) FROM (SELECT DISTINCT collection, id FROM scratchpad.ids_to_urls WHERE collection = 'springer-2009-12-01.mrc' AND id NOT IN (SELECT id FROM scratchpad.ebook_record_by_library WHERE collection = 'springer-2009-12-01.mrc' AND library = 109)) AS foo;
+
+-- List the records missing from a given library's collection
+SELECT * FROM scratchpad.ids_to_urls WHERE collection = 'springer-2009-12-01.mrc' AND id NOT IN (SELECT id FROM scratchpad.ebook_record_by_library WHERE collection = 'springer-2009-12-01.mrc' AND library = 109)
+
+-- Now, a function to easily generate records to look up as potential matches
+CREATE TYPE scratchpad.ebook_missing_record_matches AS (collection TEXT, id INTEGER, record BIGINT, isbn TEXT, sysctl TEXT, author TEXT, title TEXT);
+
+CREATE FUNCTION scratchpad.ebook_missing_record_matches (IN library INTEGER, IN collection TEXT)
+ RETURNS SETOF scratchpad.ebook_missing_record_matches AS
+$$
+SELECT DISTINCT $2, seb.id, seb.record, situ.isbn, situ.sysctl, situ.author, situ.title
+ FROM scratchpad.ebook_collections_to_records seb
+ INNER JOIN scratchpad.ids_to_urls situ
+ ON situ.collection = $2 AND situ.id = seb.id
+ WHERE seb.id IN (
+ SELECT id FROM scratchpad.ebook_missing_records($1, $2)
+ ) AND seb.collection = $2
+$$ LANGUAGE SQL;