Closed jd-zhang closed 2 years ago
Replying to [#777 vito]:
sql code: CREATE TABLE t1 (a int, b text); GRANT ALL ON t1 TO public; CREATE OR REPLACE FUNCTION f_leak(text) RETURNS bool COST 0.0000001 LANGUAGE plpgsql AS 'BEGIN RAISE NOTICE f_leak => %, $1; RETURN true; END'; GRANT EXECUTE ON FUNCTION f_leak(text) TO public;
DELETE FROM only t1 WHERE f_leak(b); EXPLAIN (COSTS OFF) DELETE FROM t1 WHERE f_leak(b);
ERROR: Kunlun-db: Exression cannot be serialized: ({FUNCEXPR :funcid 16665 :funcresulttype 16 :funcretset false :funcvariadic false :funcformat 0 :funccollid 0 :inputcollid 100 :args ({VAR :varno 65003 :varattno 2 :vartype 25 :vartypmod -1 :varcollid 100 :varlevelsup 0 :varnoold 1 :varoattno 2 :location 48}) :location 41})
目前的实现中,delete/update不支持用户自定义函数,或者mysql不支持的函数。对于这些用例,暂时可以跳过
rowsecurity.sql和updatable_views.sql中相关的语句暂时做了跳过 那么进行关闭
Issue migrated from trac ticket # 777
component: computing nodes | priority: major | resolution: fixed
2022-05-31 12:01:09: vito@zettadb.com created the issue