27 lines
1.1 KiB
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;
|