src/main/java/com/google/cloud/spanner/pgadapter/statements/PgCatalog.java [677:712]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            + "        case regexp_replace(c.spanner_type, '\\(.*\\)', '')\n"
            + "            when 'boolean' then 16\n"
            + "            when 'bytea' then 17\n"
            + "            when 'bigint' then 20\n"
            + "            when 'real' then 700\n"
            + "            when 'double precision' then 701\n"
            + "            when 'character varying' then 1043\n"
            + "            when 'date' then 1082\n"
            + "            when 'timestamp with time zone' then 1184\n"
            + "            when 'numeric' then 1700\n"
            + "            when 'jsonb' then 3802\n"
            + "            when 'boolean[]' then 1000\n"
            + "            when 'bytea[]' then 1001\n"
            + "            when 'bigint[]' then 1016\n"
            + "            when 'real[]' then 1021\n"
            + "            when 'double precision[]' then 1022\n"
            + "            when 'character varying[]' then 1015\n"
            + "            when 'date[]' then 1182\n"
            + "            when 'timestamp with time zone[]' then 1185\n"
            + "            when 'numeric[]' then 1231\n"
            + "            when 'jsonb[]' then 3807\n"
            + "            else 0\n"
            + "        end as atttypid,\n"
            + "        0::bigint as attstattarget,\n"
            + "        character_maximum_length as attlen, c.ordinal_position as attnum,\n"
            + "        case data_type when 'ARRAY' then 1::bigint else 0::bigint end as attndims,\n"
            + "        -1::bigint as attcacheoff,\n"
            + "        coalesce(c.character_maximum_length, -1::bigint) as atttypmod, true as attbyval,\n"
            + "        'i' as attalign, 'p' as attstorage, ''::varchar as attcompression,\n"
            + "        c.is_nullable='NO' as attnotnull,\n"
            + "        (c.column_default is not null or c.generation_expression is not null) as atthasdef,\n"
            + "        false as atthasmissing,'' as attidentity,\n"
            + "        case c.generation_expression is not null when true then 's' else '' end as attgenerated,\n"
            + "        false as attisdropped, true as attislocal, 0 as attinhcount, null::bigint as attcollation, '{}'::bigint[] as attacl,\n"
            + "        '{}'::text[] as attoptions, '{}'::text[] as attfdwoptions, null as attmissingval,\n"
            + "        c.spanner_type\n"
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/main/java/com/google/cloud/spanner/pgadapter/statements/PgCatalog.java [717:752]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            + "        case regexp_replace(c.spanner_type, '\\(.*\\)', '')\n"
            + "            when 'boolean' then 16\n"
            + "            when 'bytea' then 17\n"
            + "            when 'bigint' then 20\n"
            + "            when 'real' then 700\n"
            + "            when 'double precision' then 701\n"
            + "            when 'character varying' then 1043\n"
            + "            when 'date' then 1082\n"
            + "            when 'timestamp with time zone' then 1184\n"
            + "            when 'numeric' then 1700\n"
            + "            when 'jsonb' then 3802\n"
            + "            when 'boolean[]' then 1000\n"
            + "            when 'bytea[]' then 1001\n"
            + "            when 'bigint[]' then 1016\n"
            + "            when 'real[]' then 1021\n"
            + "            when 'double precision[]' then 1022\n"
            + "            when 'character varying[]' then 1015\n"
            + "            when 'date[]' then 1182\n"
            + "            when 'timestamp with time zone[]' then 1185\n"
            + "            when 'numeric[]' then 1231\n"
            + "            when 'jsonb[]' then 3807\n"
            + "            else 0\n"
            + "        end as atttypid,\n"
            + "        0::bigint as attstattarget,\n"
            + "        character_maximum_length as attlen, c.ordinal_position as attnum,\n"
            + "        case data_type when 'ARRAY' then 1::bigint else 0::bigint end as attndims,\n"
            + "        -1::bigint as attcacheoff,\n"
            + "        coalesce(c.character_maximum_length, -1::bigint) as atttypmod, true as attbyval,\n"
            + "        'i' as attalign, 'p' as attstorage, ''::varchar as attcompression,\n"
            + "        c.is_nullable='NO' as attnotnull,\n"
            + "        (c.column_default is not null or c.generation_expression is not null) as atthasdef,\n"
            + "        false as atthasmissing,'' as attidentity,\n"
            + "        case c.generation_expression is not null when true then 's' else '' end as attgenerated,\n"
            + "        false as attisdropped, true as attislocal, 0 as attinhcount, null::bigint as attcollation, '{}'::bigint[] as attacl,\n"
            + "        '{}'::text[] as attoptions, '{}'::text[] as attfdwoptions, null as attmissingval,\n"
            + "        c.spanner_type\n"
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



