Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

These scripts retrieve holdings that should be reviewed. These scripts DO NOT update those holdings. These scripts just show valid/invalid Holdings from DB by conditions from comment.


Script 11a: Retrieve holdings where the source is anything other than FOLIO or MARC (e.g. -):

Code Block
languagesql
titleSelect Holdings where sourceName are not FOLIO and MARC
SELECT 
*
FROM ${tenant}_mod_inventory_storage.holdings_record
WHERE ${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'sourceId' =NOT IN (
SELECT 
id::text
FROM ${tenant}_mod_inventory_storage.holdings_records_source) OR 
${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'sourceId' IS NULL;

Script 1b: Update holdings where the source is anything other than FOLIO or MARC (e.g. -):

Code Block
languagesql
titleUpdate Holdings where sourceId are not FOLIO and MARC or Null
WITH source_id AS (
SELECT id::text FROM ${tenant}_mod_inventory_storage.holdings_records_source WHERE ${tenant}_mod_inventory_storage.holdings_records_source.jsonb ->> 'name' != 'FOLIO'
)
ANDUPDATE ${tenant}_mod_inventory_storage.holdings_records_sourcerecord SET sourceid = (SELECT * FROM source_id)::uuid, jsonb = jsonb_set(jsonb, '{sourceId}', to_jsonb((SELECT * FROM source_id)), true)
WHERE ${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'name' != 'MARC'sourceId' NOT IN (SELECT id::text FROM ${tenant}_mod_inventory_storage.holdings_records_source)
OR  ${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'sourceId' IS NULL;;


Script 2: Retrieve holdings where source = MARC and there is existing linked SRS MARC HOLDINGS record (by external_hrid) from records_lb from source-record-storage schema.

Code Block
languagesql
titleSelect Holdings where sourceName=MARC and external_hrid exists in SRS
SELECT * 
FROM ${tenant}_mod_inventory_storage.holdings_record RIGHT JOIN ${tenant}_mod_source_record_storage.records_lb
ON ${tenant}_mod_inventory_storage.holdings_record.jsonb->>'hrid' = ${tenant}_mod_source_record_storage.records_lb.external_hrid
WHERE ${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'sourceId' = (
SELECT 
id::text
FROM ${tenant}_mod_inventory_storage.holdings_records_source
WHERE ${tenant}_mod_inventory_storage.holdings_records_source.jsonb ->> 'name' = 'MARC');


Script 33a: Retrieve holdings where source = MARC and there is NO existing SRS MARC HOLDINGS record (by external_hrid) from records_lb from source-record-storage schema.

Code Block
languagesql
titleSelect Holdings where sourceName=MARC and external_hrid NOT exists in SRS
SELECT  *
FROM    ${tenant}_mod_inventory_storage.holdings_record
WHERE   ${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'sourceId' = (
SELECT 
id::text
FROM ${tenant}_mod_inventory_storage.holdings_records_source
WHERE ${tenant}_mod_inventory_storage.holdings_records_source.jsonb ->> 'name' = 'MARC')
AND NOT EXISTS
(SELECT  *
 FROM    ${tenant}_mod_source_record_storage.records_lb
 WHERE   ${tenant}_mod_source_record_storage.records_lb.external_hrid = ${tenant}_mod_inventory_storage.holdings_record.jsonb->>'hrid');


Script 3b: Update holdings where source = MARC and there is NO existing SRS MARC HOLDINGS record (by external_hrid) from records_lb from source-record-storage schema.

Code Block
languagesql
titleUpdate Holdings where sourceName=MARC and external_hrid NOT exists in SRS
WITH source_id AS (
SELECT id::text FROM ${tenant}_mod_inventory_storage.holdings_records_source WHERE ${tenant}_mod_inventory_storage.holdings_records_source.jsonb ->> 'name' = 'FOLIO'
)
UPDATE ${tenant}_mod_inventory_storage.holdings_record SET sourceid = (SELECT * FROM source_id)::uuid, jsonb = jsonb_set(jsonb, '{sourceId}', to_jsonb((SELECT * FROM source_id)), true)
WHERE ${tenant}_mod_inventory_storage.holdings_record.jsonb ->> 'sourceId' = (SELECT id::text FROM ${tenant}_mod_inventory_storage.holdings_records_source WHERE ${tenant}_mod_inventory_storage.holdings_records_source.jsonb ->> 'name' = 'MARC')
AND NOT EXISTS (SELECT * FROM ${tenant}_mod_source_record_storage.records_lb WHERE ${tenant}_mod_source_record_storage.records_lb.external_hrid = ${tenant}_mod_inventory_storage.holdings_record.jsonb->>'hrid');

...