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