text: CREATE OR REPLACE VIEW hdb_catalog.hdb_column AS
       WITH primary_key_references AS (
              SELECT fkey.table_schema           AS src_table_schema
                   , fkey.table_name             AS src_table_name
                   , fkey.columns->>0            AS src_column_name
                   , json_agg(json_build_object(
                       'schema', fkey.ref_table_table_schema,
                       'name', fkey.ref_table
                     )) AS ref_tables
                FROM hdb_catalog.hdb_foreign_key_constraint AS fkey
                JOIN hdb_catalog.hdb_primary_key            AS pkey
                      ON pkey.table_schema   = fkey.ref_table_table_schema
                     AND pkey.table_name     = fkey.ref_table
                     AND pkey.columns::jsonb = fkey.ref_columns::jsonb
               WHERE json_array_length(fkey.columns) = 1
            GROUP BY fkey.table_schema
                   , fkey.table_name
                   , fkey.columns->>0)
     SELECT columns.table_schema
          , columns.table_name
          , columns.column_name AS name
          , columns.udt_name AS type
          , columns.is_nullable
          , columns.ordinal_position
          , coalesce(pkey_refs.ref_tables, '[]') AS primary_key_references
          , col_description(pg_class.oid, columns.ordinal_position) AS description
  FROM information_schema.columns
  JOIN pg_class ON pg_class.relname = columns.table_name
  JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
       AND pg_namespace.nspname = columns.table_schema
  LEFT JOIN primary_key_references AS pkey_refs
      ON columns.table_schema = pkey_refs.src_table_schema
      AND columns.table_name   = pkey_refs.src_table_name
      AND columns.column_name  = pkey_refs.src_column_name;
  