Native Apps: Abfragen, die eine aus der Manifest-Datei einer App entfernte Referenz verwenden, schlagen fehl

Achtung

Diese Verhaltensänderung ist in Bundle 2023_08 enthalten.

Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.

Eine Snowflake Native App kann eine Referenz anfordern, um den Zugriff auf ein Objekt in einem Verbraucherkonto zu autorisieren. Diese Referenzen werden vom Anbieter der Anwendung in der Manifest-Datei einer Anwendungsversion definiert. Wenn eine neue Version der App eine zuvor enthaltene Referenzdefinition aus der Manifest-Datei entfernt, existiert die ursprüngliche Referenz in der aktuellen Version nicht mehr.

Beispiel: In der Version V1 der App my_app definiert der Anbieter der App eine Referenz REF_TO_TABLE. Die App enthält eine gespeicherte Prozedur CREATE_VIEW_FROM_TABLE, die die Tabellenreferenz REF_TO_TABLE verwendet, um eine Ansicht VIEW_SELECT_FROM_DEFINED_REF zu erstellen.

Ein Verbraucher kann my_app installieren, my_app eine Referenz zuordnen, die auf eine Tabelle seines Kontos verweist, dann die Prozedur CREATE_VIEW_FROM_TABLE der App aufrufen und eine SELECT-Anweisung auf der Ansicht VIEW_SELECT_FROM_DEFINED_REF ausführen.

In Version V2 der App my_app entfernt der App-Anbieter die Referenzdefinition für REF_TO_TABLE. Wenn der Verbraucher nun seine installierte Anwendung my_app auf V2 aktualisiert, wird der Aufruf der Prozedur CREATE_VIEW_FROM_TABLE fehlschlagen, da die Prozedur eine Referenz verwendet, die in der Manifest-Datei von Version V2 nicht mehr definiert ist.

Abfragen einer Snowflake Native App, bei denen eine Referenz verwendet wird, die aus der Manifest-Datei entfernt wurde, verhalten sich wie folgt:

Vor der Änderung:

Abfragen, die eine Referenz verwenden, die in der Manifest-Datei der aktuellen Version der App nicht mehr definiert ist, sind erfolgreich.

Nach der Änderung:

Abfragen, die eine Referenz verwenden, die in der Manifest-Datei der aktuellen Version der App nicht mehr definiert ist, werden fehlschlagen mit dem folgenden Fehler:

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

Ref.: 1218