← back to Carnegie Identity Audit
execution-20260911/database-rollback.sql
14 lines
BEGIN;
LOCK TABLE carnegie_catalog IN SHARE ROW EXCLUSIVE MODE;
CREATE TEMP TABLE repair_expected(id int,sku text,before text,after text) ON COMMIT DROP;
INSERT INTO repair_expected VALUES (4494,'DWAG-379296','63001-upholstery','63001'),(4495,'DWAG-379297','630010-upholstery','630010'),(4496,'DWAG-379298','630011-upholstery','630011'),(4497,'DWAG-379299','630012-upholstery','630012'),(4498,'DWAG-379300','630013-upholstery','630013'),(4499,'DWAG-379301','630014-upholstery','630014'),(4500,'DWAG-379302','630015-upholstery','630015'),(4501,'DWAG-379303','630016-upholstery','630016'),(4502,'DWAG-379304','630017-upholstery','630017'),(4503,'DWAG-379305','630018-upholstery','630018'),(4504,'DWAG-379306','630019-upholstery','630019'),(4505,'DWAG-379307','63002-upholstery','63002'),(4506,'DWAG-379308','630020-upholstery','630020'),(4507,'DWAG-379309','630021-upholstery','630021'),(4508,'DWAG-379310','630022-upholstery','630022'),(4509,'DWAG-379311','630023-upholstery','630023'),(4510,'DWAG-379312','630024-upholstery','630024'),(4511,'DWAG-379313','630025-upholstery','630025'),(4512,'DWAG-379314','630026-upholstery','630026'),(4513,'DWAG-379315','63003-upholstery','63003'),(4514,'DWAG-379316','63004-upholstery','63004'),(4515,'DWAG-379317','63005-upholstery','63005'),(4516,'DWAG-379318','63006-upholstery','63006'),(4517,'DWAG-379319','63007-upholstery','63007'),(4518,'DWAG-379320','63008-upholstery','63008'),(4519,'DWAG-379321','63009-upholstery','63009');
DO $$ BEGIN
IF (SELECT count(*) FROM carnegie_catalog c JOIN repair_expected e ON c.id=e.id AND c.dw_sku=e.sku AND c.mfr_sku=e.before)<>26 THEN RAISE EXCEPTION 'prestate mismatch'; END IF;
END $$;
UPDATE carnegie_catalog c SET mfr_sku=e.after FROM repair_expected e WHERE c.id=e.id AND c.dw_sku=e.sku AND c.mfr_sku=e.before;
DO $$ BEGIN
IF (SELECT count(*) FROM carnegie_catalog c JOIN repair_expected e ON c.id=e.id AND c.dw_sku=e.sku AND c.mfr_sku=e.after)<>26 THEN RAISE EXCEPTION 'poststate mismatch'; END IF;
IF (SELECT count(*)=count(DISTINCT mfr_sku) FROM carnegie_catalog) IS NOT TRUE THEN RAISE EXCEPTION 'identity collision'; END IF;
END $$;
SELECT 'verified26';
COMMIT;