Applications natives : les requêtes qui utilisent une référence supprimée du fichier manifeste d’une application échouent

Attention

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

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

Une application native Snowflake peut demander une référence pour autoriser l’accès à un objet dans un compte de consommateur. Ces références sont définies par le fournisseur de l’application dans le fichier manifeste d’une version de l’application. Si une nouvelle version de l’application supprime du fichier manifeste une définition de référence précédemment incluse, la référence d’origine n’existe plus dans la version actuelle.

Par exemple, dans la version V1 de l’application my_app, le fournisseur de l’application définit une référence REF_TO_TABLE. L’application contient une procédure stockée CREATE_VIEW_FROM_TABLE qui utilise la référence de la table REF_TO_TABLE pour créer une vue VIEW_SELECT_FROM_DEFINED_REF.

Un consommateur peut installer my_app, associer une référence à une table de son compte pour my_app, appeler la procédure CREATE_VIEW_FROM_TABLE de l’application, puis sélectionner dans la vue VIEW_SELECT_FROM_DEFINED_REF.

Dans la version V2 de l’application my_app, le fournisseur de l’application supprime la définition de la référence pour REF_TO_TABLE. Lorsque le consommateur met à niveau l’application installée my_app à la version V2, l’appel de la procédure CREATE_VIEW_FROM_TABLE doit échouer, car la procédure utilise une référence qui n’est plus définie dans le fichier manifeste de la version V2.

Les requêtes dans une application native Snowflake qui utilisent une référence qui a été supprimée du fichier manifeste se comportent comme suit :

Avant la modification

Les requêtes qui utilisent une référence qui n’est plus définie dans le fichier manifeste de la version actuelle de l’application réussissent.

Après la modification

Les requêtes qui utilisent une référence qui n’est plus définie dans le fichier manifeste de la version actuelle de l’application échouent avec l’erreur suivante :

Reference definition '<REF_DEF_NAME>' cannot be found in the current version of the application '<APP_NAME>'

Réf : 1218