COLUMNS view (multiple schemas): New column (Preview)

Attention

This behavior change is in the 2025_07 bundle.

For the current status of the bundle, refer to Bundle History.

When this behavior change bundle is enabled, the COLUMNS view in Account Usage, Organization Usage, and Information Schema includes the following new column:

Column name

Data type

Description

data_type_alias

VARCHAR

The data type alias or synonym specified for the column when the table was created or when the column was last altered.

For columns in tables that were created before this behavior change and not altered after the behavior change, the value in this column is NULL.

The data_type column shows the standard Snowflake data type of the column. The data_type_alias column displays the original data type name that was specified for a column when a table was created, or when the column was altered with an ALTER TABLE table ALTER COLUMN column SET DATA TYPE data_type statement.

For example, NUMBER is a standard Snowflake data type. BIGINT is synonymous with NUMBER. If you specify BIGINT as the data type for a column, the data_type column in the COLUMNS view shows NUMBER for this column, but the data_type_alias column shows BIGINT:

CREATE TABLE test_data_type_alias (b BIGINT);

SELECT data_type, data_type_alias
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_name = 'TEST_DATA_TYPE_ALIAS';
Copy
+-----------+-----------------+
| DATA_TYPE | DATA_TYPE_ALIAS |
|-----------+-----------------|
| NUMBER    | BIGINT          |
+-----------+-----------------+

When a standard, unqualified Snowflake data type is specified for a column, the values in the data_type and data_type_alias columns are the same. For example, if NUMBER is specified as the data type of a column, then data_type and data_type_alias in the COLUMNS view both show NUMBER as the data type:

CREATE TABLE test_data_type_alias_2 (n NUMBER);

SELECT data_type, data_type_alias
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_name = 'TEST_DATA_TYPE_ALIAS_2';
Copy
+-----------+-----------------+
| DATA_TYPE | DATA_TYPE_ALIAS |
|-----------+-----------------|
| NUMBER    | NUMBER          |
+-----------+-----------------+

The data_type_alias column shows the exact name that was specified for a data type. For example, the following statement creates a table with a fully-qualified NUMBER column:

CREATE TABLE test_data_type_alias_3 (n NUMBER(16, 2));

SELECT data_type, data_type_alias
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_name = 'TEST_DATA_TYPE_ALIAS_3';
Copy
+-----------+-----------------+
| DATA_TYPE | DATA_TYPE_ALIAS |
|-----------+-----------------|
| NUMBER    | NUMBER(16, 2)   |
+-----------+-----------------+

The only exceptions are data types for text strings. The standard Snowflake data type for text strings is VARCHAR, but the data_type column displays TEXT for these columns:

CREATE TABLE test_data_type_alias_4 (
  c CHAR,
  s STRING,
  t TEXT,
  v VARCHAR,
  vq VARCHAR(25));

SELECT column_name, data_type, data_type_alias
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_name = 'TEST_DATA_TYPE_ALIAS_4'
  ORDER BY column_name;
Copy
+-------------+-----------+-----------------+
| COLUMN_NAME | DATA_TYPE | DATA_TYPE_ALIAS |
|-------------+-----------+-----------------|
| C           | TEXT      | CHAR            |
| S           | TEXT      | STRING          |
| T           | TEXT      | TEXT            |
| V           | TEXT      | VARCHAR         |
| VQ          | TEXT      | VARCHAR(25)     |
+-------------+-----------+-----------------+

This behavior change affects any scripts or data loading processes that use SELECT * to query these views and depend on a fixed number of columns. To avoid any disruptions, review your scripts and applications. Update any queries on ACCOUNT_USAGE.COLUMNS, ORGANIZATION_USAGE.COLUMNS, and INFORMATION_SCHEMA.COLUMNS to specify the exact columns needed, instead of using SELECT *.

Ref: 2061

Language: English