Skip to content

Include udt and domain information in TypeInfo #134

@JonathanLorimer

Description

@JonathanLorimer

It would be nice if TypeInfo contained the domain name of a type as well as the underlying udt_name. This would allow better runtime type checking. This information can be retrieved from information_schema.columns:

testdb=# \d information_schema.columns
                               View "information_schema.columns"
          Column          |                Type                | Collation | Nullable | Default
--------------------------+------------------------------------+-----------+----------+---------
 table_catalog            | information_schema.sql_identifier  |           |          |
 table_schema             | information_schema.sql_identifier  |           |          |
 table_name               | information_schema.sql_identifier  |           |          |
 column_name              | information_schema.sql_identifier  |           |          |
 ordinal_position         | information_schema.cardinal_number |           |          |
 column_default           | information_schema.character_data  |           |          |
 is_nullable              | information_schema.yes_or_no       |           |          |
 data_type                | information_schema.character_data  |           |          |
 character_maximum_length | information_schema.cardinal_number |           |          |
 character_octet_length   | information_schema.cardinal_number |           |          |
 numeric_precision        | information_schema.cardinal_number |           |          |
 numeric_precision_radix  | information_schema.cardinal_number |           |          |
 numeric_scale            | information_schema.cardinal_number |           |          |
 datetime_precision       | information_schema.cardinal_number |           |          |
 interval_type            | information_schema.character_data  |           |          |
 interval_precision       | information_schema.cardinal_number |           |          |
 character_set_catalog    | information_schema.sql_identifier  |           |          |
 character_set_schema     | information_schema.sql_identifier  |           |          |
 character_set_name       | information_schema.sql_identifier  |           |          |
 collation_catalog        | information_schema.sql_identifier  |           |          |
 collation_schema         | information_schema.sql_identifier  |           |          |
 collation_name           | information_schema.sql_identifier  |           |          |
 domain_catalog           | information_schema.sql_identifier  |           |          |
 domain_schema            | information_schema.sql_identifier  |           |          |
 domain_name              | information_schema.sql_identifier  |           |          |
 udt_catalog              | information_schema.sql_identifier  |           |          |
 udt_schema               | information_schema.sql_identifier  |           |          |
 udt_name                 | information_schema.sql_identifier  |           |          |
 scope_catalog            | information_schema.sql_identifier  |           |          |
 scope_schema             | information_schema.sql_identifier  |           |          |
 scope_name               | information_schema.sql_identifier  |           |          |
 maximum_cardinality      | information_schema.cardinal_number |           |          |
 dtd_identifier           | information_schema.sql_identifier  |           |          |
 is_self_referencing      | information_schema.yes_or_no       |           |          |
 is_identity              | information_schema.yes_or_no       |           |          |
 identity_generation      | information_schema.character_data  |           |          |
 identity_start           | information_schema.character_data  |           |          |
 identity_increment       | information_schema.character_data  |           |          |
 identity_maximum         | information_schema.character_data  |           |          |
 identity_minimum         | information_schema.character_data  |           |          |
 identity_cycle           | information_schema.yes_or_no       |           |          |
 is_generated             | information_schema.character_data  |           |          |
 generation_expression    | information_schema.character_data  |           |          |
 is_updatable             | information_schema.yes_or_no       |           |          |

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions