Vue COLUMNS (plusieurs schémas) : Nouvelle colonne (en attente)

Attention

Ce changement de comportement fait partie du bundle 2025_07.

Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.

Lorsque ce bundle de changements de comportement est activé, la vue COLUMNS de Account Usage, Organization Usage et Information Schema comprend la nouvelle colonne suivante :

Nom de la colonne

Type de données

Description

data_type_alias

VARCHAR

Alias ou synonyme de type de données spécifié pour la colonne lors de sa création ou lors de la dernière modification de la colonne.

Pour les colonnes des tables qui ont été créées avant ce changement de comportement et non modifiées après le changement de comportement, la valeur de cette colonne est NULL.

La colonne data_type indique le type de données Snowflake standard de la colonne. La colonne data_type_alias affiche le nom du type de données d’origine qui a été spécifié pour une colonne lors de la création d’une table, ou lorsque la colonne a été modifiée avec un instruction ALTER TABLE table ALTER COLUMN column SET DATA TYPE data_type.

Par exemple, NUMBER est un type de données standard de Snowflake. BIGINT est synonyme de NUMBER. Si vous spécifiez BIGINT comme type de données d’une colonne, la colonne data_type dans le vue COLUMNS affiche NUMBER pour cette colonne, mais la colonne data_type_alias indique 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          |
+-----------+-----------------+

Lorsqu’un type de données Snowflake standard, non qualifié, est spécifié pour une colonne, les valeurs des colonnes data_type et data_type_alias sont les mêmes. Par exemple, si NUMBER est spécifié comme type de données d’une colonne, alors data_type et data_type_alias dans la vue COLUMNS affiche tous les deux NUMBER comme type de données :

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          |
+-----------+-----------------+

La colonne data_type_alias indique le nom exact qui a été spécifié pour un type de données. Par exemple, l’instruction suivante crée une table avec une colonne NUMBER complète :

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)   |
+-----------+-----------------+

Les seules exceptions sont les types de données des chaînes de texte. Le type de données Snowflake standard pour les chaînes de texte est VARCHAR, mais la colonne data_type affiche TEXT pour ces colonnes :

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)     |
+-------------+-----------+-----------------+

Ce changement de comportement affecte tous les scripts ou processus de chargement de données qui utilisent SELECT * pour interroger ces vues et dépendre d’un nombre fixe de colonnes. Pour éviter toute interruption, vérifiez vos scripts et vos applications. Mettez à jour toutes les requêtes sur ACCOUNT_USAGE.COLUMNS, ORGANIZATION_USAGE.COLUMNS et INFORMATION_SCHEMA.COLUMNS pour spécifier les colonnes exactes nécessaires, au lieu d’utiliser SELECT *.

Réf : 2061