SELECT row_to_json(T) FROM ( SELECT extract(epoch FROM now())::integer AS ts, ((1 - max(age(d.datfrozenxid))::double precision / current_setting('autovacuum_freeze_max_age')::bigint) * 100)::numeric(9,6) AS prc_before_av, ((1 - abs(max(age(d.datfrozenxid))::double precision / (1::bigint << (min(t.typlen)*8)))) * 100)::numeric(9,6) AS prc_before_stop FROM pg_database d CROSS JOIN pg_type t WHERE t.typname = 'xid' ) T;