Vues et fonctions de l’historique des requêtes et des tâches : nouvelles colonnes

Attention

Ce changement de comportement est présent dans le bundle 2023_06.

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

Dans la version actuelle de Snowflake, la sortie des vues et fonctions de l’historique des requêtes et des tâches comprend de nouvelles colonnes. Les vues et fonctions concernées sont notamment :

La sortie de ces vues et fonctions comprend les nouvelles colonnes suivantes :

Nom de la colonne

Type de données

Description

query_hash

TEXT

Valeur de hachage calculée sur la base du texte canonisé de l’instruction SQL.

query_hash_version

NUMBER

Version du hachage dans la colonne query_hash.

query_parameterized_hash

TEXT

Valeur de hachage du texte de la requête après paramétrage des littéraux

query_parameterized_hash_version

NUMBER

Version du hachage dans la colonne query_parameterized_hash.

Si vous avez précédemment défini une vue qui sélectionne toutes les colonnes (SELECT *) de n’importe laquelle de ces vues, la requête de la vue renvoie une erreur. Vous devez recréer votre vue en utilisant la commande CREATE OR REPLACE VIEW.

Par exemple, supposons que vous ayez défini une vue qui sélectionne toutes les colonnes de la vue TASK_HISTORY :

CREATE OR REPLACE VIEW my_task_history
  AS SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TASK_HISTORY;
Copy
Précédemment

Une requête sur votre vue (my_task_history dans cet exemple) renvoie les résultats de la vue.

Actuellement

La requête de votre vue (my_task_history dans cet exemple) renvoie une erreur concernant le nombre de colonnes dans la vue :

View definition for MY_DB.MY_SCHEMA.MY_TASK_HISTORY' declared 22 column(s),
but view query produces 27 column(s).

Comme indiqué dans les notes sur l’utilisation de CREATE VIEW, si une vue sélectionne toutes les colonnes d’une table ou d’une vue sous-jacente, la vue n’est pas mise à jour automatiquement lorsqu’une nouvelle colonne est ajoutée à la table ou à la vue sous-jacente. La requête de la vue renvoie une erreur liée à la colonne.

Pour éviter cette erreur, vous devez recréer la vue. Par exemple, pour recréer la vue de l’exemple ci-dessus en sélectionnant des colonnes spécifiques (afin d’éviter des problèmes à l’avenir en raison de l’ajout de colonnes) :

CREATE OR REPLACE VIEW my_task_history
  AS SELECT query_text, completed_time FROM SNOWFLAKE.ACCOUNT_USAGE.TASK_HISTORY;
Copy

En outre, si vous avez créé une table dont les colonnes sont les mêmes que l’une de ces vues (par exemple, en utilisant CREATE TABLE… LIKE SNOWFLAKE.ACCOUNT_USAGE.TASK_HISTORY) et que vous copiez des lignes de cette vue dans la table, vous devez ajouter les nouvelles colonnes à votre table. Utilisez la commande ALTER TABLE… ADD COLUMN pour ajouter à votre tableau les mêmes colonnes que celles qui ont été ajoutées à la vue.

Réf : 1147