krona-staff/scripts/restore-drill-report.sql

27 lines
1.1 KiB
SQL

\set ON_ERROR_STOP on
CREATE TEMP TABLE _staff_restore_counts (table_name text NOT NULL, tenant_id varchar(26) NOT NULL, row_count bigint NOT NULL);
DO $$
DECLARE item record;
BEGIN
FOR item IN
SELECT c.relname
FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p')
AND left(c.relname, 6) = 'staff_'
ORDER BY c.relname
LOOP
EXECUTE format(
'INSERT INTO _staff_restore_counts SELECT %L, tenant_id, count(*) FROM public.%I GROUP BY tenant_id',
item.relname, item.relname
);
END LOOP;
END $$;
SELECT table_name, tenant_id, row_count
FROM _staff_restore_counts ORDER BY table_name, tenant_id;
SELECT 'RLS', count(*), bool_and(c.relrowsecurity AND c.relforcerowsecurity)
FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p')
AND left(c.relname, 6) = 'staff_';
SELECT 'LEDGER', tenant_id, currency_code, sum(amount_minor)
FROM public.staff_payroll_ledger
GROUP BY tenant_id, currency_code ORDER BY tenant_id, currency_code;