Changeset: 2691127e9703 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2691127e9703
Added Files:
        
sql/test/BugTracker-2025/Tests/7654_non_monetdb_user_remote_table_exec.test.in
Modified Files:
        monetdb5/mal/mal_session.c
        sql/test/BugTracker-2025/Tests/All
        sql/test/remote/Tests/different_user.SQL.py
Branch: Mar2025
Log Message:

Do not restrict query execution for 'msql' language. Add test. Fixes #7654


diffs (59 lines):

diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -321,8 +321,8 @@ MSscheduleClient(str command, str peer, 
                        cleanUpScheduleClient(c, &command, &msg);
                        return;
                }
-               if (!GDKgetenv_isyes(mal_enableflag)
-                       && strncasecmp("sql", lang, 3) != 0
+               if (strncasecmp("sql", lang, 3) != 0
+                       && strncasecmp("msql", lang, 3) != 0
                        && strcmp(user, "monetdb") != 0) {
                        mnstr_printf(fout,
                                                 "!only the 'monetdb' user can 
use non-sql languages. "
diff --git 
a/sql/test/BugTracker-2025/Tests/7654_non_monetdb_user_remote_table_exec.test.in
 
b/sql/test/BugTracker-2025/Tests/7654_non_monetdb_user_remote_table_exec.test.in
new file mode 100644
--- /dev/null
+++ 
b/sql/test/BugTracker-2025/Tests/7654_non_monetdb_user_remote_table_exec.test.in
@@ -0,0 +1,21 @@
+@connection(id=c1, username=monetdb, password=monetdb)
+statement ok
+create user u1 with password 'u1' name 'u1'
+
+@connection(id=c1, username=monetdb, password=monetdb)
+statement ok
+create user u2 with password 'u2' name 'u2'
+
+@connection(id=c2, username=u1, password=u1)
+statement ok
+create table foo as select * from generate_series(0, 1000)
+
+@connection(id=c3, username=u2, password=u2)
+statement ok
+create remote table foo(value smallint) on 
'mapi:monetdb://localhost:$MAPIPORT/$TSTDB/u1/foo' with user 'u1' password 'u1'
+
+@connection(id=c3, username=u2, password=u2)
+query I
+select count(*) from foo
+----
+1000
diff --git a/sql/test/BugTracker-2025/Tests/All 
b/sql/test/BugTracker-2025/Tests/All
--- a/sql/test/BugTracker-2025/Tests/All
+++ b/sql/test/BugTracker-2025/Tests/All
@@ -13,3 +13,4 @@ 7634_join_with_subquery_crash
 7636_antijoin_crash
 7644_antijoin_crash
 7646_leftjoin_crash
+7654_non_monetdb_user_remote_table_exec
diff --git a/sql/test/remote/Tests/different_user.SQL.py 
b/sql/test/remote/Tests/different_user.SQL.py
--- a/sql/test/remote/Tests/different_user.SQL.py
+++ b/sql/test/remote/Tests/different_user.SQL.py
@@ -46,6 +46,7 @@ def worker_load(in_filename, workerrec, 
     c.execute(cmovies)
     c.execute(screateq)
     c.execute(load_data)
+    c.execute("SELECT COUNT(*) FROM movies")
 
 # Setup and start workers
 def create_workers(TMPDIR, workers, fn_template, nworkers, cmovies, 
ratings_table_def_fk):
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to