SELECT
n.nspname AS schema_name,
c.relname AS object_name,
c.relkind AS object_kind,
octet_length(c.relname::text) AS name_bytes,
current_setting('max_identifier_length')::integer
- octet_length(c.relname::text) AS remaining_bytes
FROM pg_class AS c
JOIN pg_namespace AS n ON n.oid = c.relnamespace
WHERE n.nspname NOT LIKE 'pg_%'
AND n.nspname <> 'information_schema'
AND c.relkind IN ('r', 'p', 'i', 'I', 'v', 'm', 'S', 'f')
AND octet_length(c.relname::text) >= 50
ORDER BY name_bytes DESC, schema_name, object_name;