SELECT
table_schema,
table_name,
string_agg(
column_name || ' (' || data_type || ')',
', ' ORDER BY ordinal_position
) AS columns
FROM information_schema.columns
WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
AND (
table_name ILIKE '%oper%'
OR table_name ILIKE '%action%'
OR table_name ILIKE '%constructor%'
OR table_name ILIKE '%button%'
OR table_name ILIKE '%script%'
)
GROUP BY
table_schema,
table_name
ORDER BY
table_schema,
table_name;