NeuG currently classifies standalone CALL as a non-read operation for access-mode gating. As a result, read-only procedures (e.g. GDS algorithms, SHOW_LOADED_EXTENSIONS) cannot run with explicit access_mode=read, even though they do not mutate the graph.
We should honor Function::isReadOnly when classifying TABLE_FUNCTION_CALL execution flags so read-only CALLs can use the read path, while mutating procedures remain rejected.
NeuG currently classifies standalone CALL as a non-read operation for access-mode gating. As a result, read-only procedures (e.g. GDS algorithms, SHOW_LOADED_EXTENSIONS) cannot run with explicit access_mode=read, even though they do not mutate the graph.
We should honor Function::isReadOnly when classifying TABLE_FUNCTION_CALL execution flags so read-only CALLs can use the read path, while mutating procedures remain rejected.