我试图在join上使用UDTF,由于某种原因,我收到了一个错误,它说UDTF没有识别语句中的第一个表:
SHOW TRANSACTIONS IN ACCOUNT;
CREATE OR REPLACE TEMPORARY TABLE UTIL_DB.PUBLIC.TRANSACTIONS AS
SELECT * from table(result_scan(last_query_id()));
SELECT *
FROM UTIL_DB.PUBLIC.TRANSACTIONS AS T
JOIN table(information_schema.QUERY_HISTORY_BY_SESSION(T."id")) Q
WHERE Q.EXECUTION_STATUS = 'RUNNING'
AND T."id" != CURRENT_SESSION();错误:
SQL编译错误:位置55处的错误行3
无效标识符T.“id”
此查询的动机是获取活动事务的sql文本。
有人能告诉我怎么解决这个问题吗?
谢谢
发布于 2021-06-17 07:02:11
问题似乎是当试图将标识符而不是“常量”传递到information_schema.query_history_by_session()时。
作为另一种选择,可以使用information_schema.query_history():
SELECT *
FROM tab AS T
join table(information_schema.query_history()) Q
ON T."id" = Q.session_id -- here the join instead of correlation
WHERE Q.EXECUTION_STATUS = 'RUNNING'
AND T."id" != CURRENT_SESSION();https://stackoverflow.com/questions/68014243
复制相似问题