Snowflake cloud data platform 雪花-系统/内置存储过程

Snowflake cloud data platform 雪花-系统/内置存储过程,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,Snowflake是否提供了任何存储过程 SHOW PROCEDURES IN ACCOUNT; SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE "is_builtin" != 'N'; -- 0 rows SHOW FUNCTIONS IN ACCOUNT; SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE "is_builtin&q

Snowflake是否提供了任何存储过程

SHOW PROCEDURES IN ACCOUNT;

SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE "is_builtin" != 'N';
-- 0 rows

SHOW FUNCTIONS IN ACCOUNT;

SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE "is_builtin" != 'N';
--  571
我们有相当广泛的函数列表,但我找不到一个存储过程

一些函数(例如,
SYSTEM$CANCEL\u ALL\u querys
)包含副作用,这意味着它们可能是存储过程(它们甚至支持通过以下方式执行):


这种方法背后有什么理由吗?

雪花在过去6年中一直是一种不断发展的产品。当它第一次发布时,不支持动态SQL过程,也很少支持数据库自省,就像PostgreSQL的系统表中一样

许多“dox”或“告诉我Y”都是通过相当难看的函数调用完成的,这清楚地告诉了您从何处逃出沙坑(与PostgreSQL相比,后者的db health/state也是“tables”)。我记得我们的团队编写了支持代码,以便从SHOW命令读取结果,因为RESULT_SCAN不存在


因此,平台已经发生了很大的变化,现在只使用“功能”的思维模式,即“程序”改变思维方式,似乎事情都符合这个模式。

这更有意义。正常的UDF功能不能有副作用,SF可以这样做是的,功能一次被用来代替不存在的程序。
SELECT SYSTEM$CANCEL_ALL_QUERIES(CURRENT_SESSION()::INT);
CALL SYSTEM$CANCEL_ALL_QUERIES(CURRENT_SESSION()::INT);