Fortunately with new JSON functions PostgreSQL we now have possibility to overcome it – at least for tables. So we can do some manipulations with data from the table without necessity to hard code column names.
Here is one example how to do it – shows table columns as separate rows:
with srcdata as ( select tablename as _row_key, row_to_json(t) as _row from pg_tables t where tablename in ( 'pg_class', 'pg_am')), columns as (select json_object_keys(_row) as _column from (select * from srcdata limit 1) a ) select _row_key, _column, _row->_column as _value from srcdata, columns
Result looks like this: