Metadata views: User-defined types now surfaced in INFORMATION_ SCHEMA, ACCOUNT_ USAGE, and ORGANIZATION_ USAGE (Pending)¶
Attention
This behavior change is in the 2026_06 bundle.
For the current status of the bundle, refer to Bundle history.
When this behavior change bundle is enabled, objects that reference a
user-defined type are represented by their type
name (and as first-class TYPE grantables) across the INFORMATION_SCHEMA, ACCOUNT_USAGE, and
ORGANIZATION_USAGE metadata views. The following views are affected:
- COLUMNS: INFORMATION_SCHEMA, ACCOUNT_USAGE, and ORGANIZATION_USAGE
- FUNCTIONS: INFORMATION_SCHEMA, ACCOUNT_USAGE, and ORGANIZATION_USAGE
- PROCEDURES: INFORMATION_SCHEMA
- OBJECT_PRIVILEGES: INFORMATION_SCHEMA
- GRANTS_TO_ROLES: ACCOUNT_USAGE and ORGANIZATION_USAGE
- Before the change:
- In the COLUMNS views, a column typed as a user-defined type reports its underlying base
type (or a generic
USER_DEFINED_TYPEor internal encoded name) inDATA_TYPE, not the type’s name. - In the FUNCTIONS and PROCEDURES views,
ARGUMENT_SIGNATUREandDATA_TYPE(the return type) show the base type instead of the user-defined type name. - The INFORMATION_SCHEMA.OBJECT_PRIVILEGES view doesn’t return any rows for user-defined
types (no rows with
OBJECT_TYPE = 'TYPE'). - The GRANTS_TO_ROLES views don’t return grant rows for user-defined types.
- In the COLUMNS views, a column typed as a user-defined type reports its underlying base
type (or a generic
- After the change:
- In the COLUMNS views,
DATA_TYPEdisplays the user-defined type name for columns of that type. - In the FUNCTIONS and PROCEDURES views,
ARGUMENT_SIGNATUREandDATA_TYPEdisplay user-defined type names. - The INFORMATION_SCHEMA.OBJECT_PRIVILEGES view returns rows with
OBJECT_TYPE = 'TYPE'for privileges granted on user-defined types. - The GRANTS_TO_ROLES views return rows with
TYPE = 'TYPE'for user-defined type grants.
- In the COLUMNS views,
Example¶
Create a user-defined type and a table that uses it, then query the COLUMNS view:
Before the change, DATA_TYPE reports the underlying base type:
After the change, DATA_TYPE reports the user-defined type name:
This change is mostly additive, but you can observe it. Tooling that parses DATA_TYPE or
ARGUMENT_SIGNATURE now sees user-defined type names where it previously saw base types,
and automation that counts or compares rows in these views sees new rows for user-defined
type columns, privileges (OBJECT_TYPE = 'TYPE'), and grants (TYPE = 'TYPE'). If you have
downstream pipelines with hard-coded type strings or row-count expectations, update them before the
bundle is enabled.
Ref: 2380