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 :
Les vues Account Usage suivantes :
Les fonctions de table Information Schema suivantes :
La sortie de ces vues et fonctions comprend les nouvelles colonnes suivantes :
Nom de la colonne |
Type de données |
Description |
---|---|---|
|
TEXT |
Valeur de hachage calculée sur la base du texte canonisé de l’instruction SQL. |
|
NUMBER |
Version du hachage dans la colonne |
|
TEXT |
Valeur de hachage du texte de la requête après paramétrage des littéraux |
|
NUMBER |
Version du hachage dans la colonne |
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;
- 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;
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