Changeset: 131b3f521e04 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/131b3f521e04
Modified Files:
        sql/server/rel_select.c
        sql/test/Users/Tests/function_privs.SQL.py
Branch: Jul2021
Log Message:

Remove node from the right list


diffs (54 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -565,7 +565,7 @@ find_table_function(mvc *sql, char *snam
                                node *nn = n->next;
 
                                if (!execute_priv(sql, sf->func))
-                                       list_remove_node(funcs, NULL, n);
+                                       list_remove_node(ff, NULL, n);
                                n = nn;
                        }
                }
@@ -1758,7 +1758,7 @@ static sql_exp*
                                node *nn = n->next;
 
                                if (!execute_priv(sql, sf->func))
-                                       list_remove_node(funcs, NULL, n);
+                                       list_remove_node(ff, NULL, n);
                                n = nn;
                        }
                }
diff --git a/sql/test/Users/Tests/function_privs.SQL.py 
b/sql/test/Users/Tests/function_privs.SQL.py
--- a/sql/test/Users/Tests/function_privs.SQL.py
+++ b/sql/test/Users/Tests/function_privs.SQL.py
@@ -18,6 +18,15 @@ with SQLTestCase() as mdb:
     mdb.execute("CREATE SCHEMA my_schema AUTHORIZATION 
my_role;").assertSucceeded()
     mdb.execute("CREATE USER my_user WITH PASSWORD 'p1' NAME 'my_user' SCHEMA 
sys;").assertSucceeded()
     mdb.execute("CREATE USER my_user2 WITH PASSWORD 'p2' NAME 'my_user2' 
SCHEMA sys;").assertSucceeded()
+
+    mdb.execute("""
+        create procedure dontcallme(a int, b int, c int)
+        begin
+          create table x(x int, y int, z int);
+          insert into x values (a,b,c);
+        end;
+    """).assertSucceeded()
+
     mdb.execute("SET SCHEMA my_schema;").assertSucceeded()
     mdb.execute("CREATE TABLE version (name VARCHAR(10), i 
INT);").assertSucceeded()
     mdb.execute("INSERT INTO version VALUES ('test1', 1);").assertRowCount(1)
@@ -151,6 +160,7 @@ with SQLTestCase() as mdb:
 
         # my_user2 can only indirectly SEL/INS/UPD/DEL the table through the 
functions
         tc.connect(username="my_user2", password="p2")
+        tc.execute("CALL dontcallme(1,2,3);").assertFailed(err_code="42000", 
err_message="SELECT: insufficient privileges for operator 'dontcallme'(tinyint, 
tinyint, tinyint)")
         tc.execute("SET SCHEMA my_schema;").assertSucceeded()
         tc.execute("INSERT INTO version (name, i) VALUES ('test2', 
2);").assertFailed(err_code="42000", err_message="INSERT INTO: insufficient 
privileges for user 'my_user2' to insert into table 'version'")
         tc.execute("UPDATE version SET name = 'test22' WHERE i = 
2;").assertFailed(err_code="42000", err_message="UPDATE: insufficient 
privileges for user 'my_user2' to update table 'version'")
@@ -214,4 +224,5 @@ with SQLTestCase() as mdb:
         mdb.execute("DROP ROLE my_role;").assertSucceeded()
         mdb.execute("DROP SCHEMA my_schema;").assertSucceeded()
         mdb.execute("DROP SCHEMA your_schema;").assertSucceeded()
+        mdb.execute("DROP PROCEDURE dontcallme;").assertSucceeded()
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to