Native Apps:使用从应用程序清单文件中删除的引用的查询会失败¶
Snowflake 本地应用程序可请求 引用,以授权访问使用者账户中的对象。这些引用由应用程序提供商在应用程序版本的 清单文件 中定义。如果应用程序的新版本删除了清单文件中先前包含的引用定义,则当前版本中将不再存在原始引用。
例如,在应用程序 my_app
的 V1
版本中,应用程序程序定义了一个引用 REF_TO_TABLE。该应用程序包含一个存储过程 CREATE_VIEW_FROM_TABLE,该存储过程使用表引用 REF_TO_TABLE 创建视图 VIEW_SELECT_FROM_DEFINED_REF。
使用者可以安装 my_app
, 将其账户中一个表的引用与 :code:`my_app 关联 <https://other-docs.snowflake.cn/en/native-apps/consumer-granting-privs#associating-the-reference-to-the-application>`_ ,调用应用程序的 CREATE_VIEW_FROM_TABLE 存储过程,然后从视图 VIEW_SELECT_FROM_DEFINED_REF 中进行选择。
在应用程序 my_app
的 V2
版本中,应用程序提供商删除了 REF_TO_TABLE 的引用定义。当使用者将已安装的应用程序 my_app
升级到 V2
时,调用 CREATE_VIEW_FROM_TABLE 存储过程将失败,因为该存储过程使用的引用在 V2
版本的清单文件中已不再定义。
在 Snowflake 本地应用程序中使用已从清单文件中删除的引用的查询行为如下:
- 变更前:
使用当前版本的应用程序清单文件中不再定义的引用的查询会 成功。
- 变更后:
使用当前版本应用程序的清单文件中不再定义的引用的查询会 失败,并显示以下错误:
Reference definition '<REF_DEF_NAME>' cannot be found in the current version of the application '<APP_NAME>'
参考:1218