Changeset: fb0c9c75bdfd for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fb0c9c75bdfd Modified Files: sql/server/rel_dump.c sql/test/BugTracker-2020/Tests/table-udf-on-remote.Bug-6971.py sql/test/BugTracker-2020/Tests/table-udf-on-remote.Bug-6971.stable.out Branch: octbugs Log Message:
I forgot table udfs returning more than one parameter diffs (60 lines): diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c --- a/sql/server/rel_dump.c +++ b/sql/server/rel_dump.c @@ -1638,6 +1638,8 @@ rel_read(mvc *sql, char *r, int *pos, li e = r+*pos; *e = 0; (*pos)++; + if (r[*pos] == ',') + (*pos)++; next = exp_column(sql->sa, nrname, ncname, &a->type, CARD_MULTI, 1, 0); set_basecol(next); diff --git a/sql/test/BugTracker-2020/Tests/table-udf-on-remote.Bug-6971.py b/sql/test/BugTracker-2020/Tests/table-udf-on-remote.Bug-6971.py --- a/sql/test/BugTracker-2020/Tests/table-udf-on-remote.Bug-6971.py +++ b/sql/test/BugTracker-2020/Tests/table-udf-on-remote.Bug-6971.py @@ -33,12 +33,15 @@ with tempfile.TemporaryDirectory() as fa node1_cur = node1_conn.cursor() node1_cur.execute("create function mudf(sx float, sxx float, sxy float, sy float, syy float, n int) returns table(res float) begin return select 0.5; end") + node1_cur.execute("create function mudf2(sx float, sxx float, sxy float, sy float, syy float, n int) returns table(res float, res2 float) begin return select 0.5, 0.6; end") node1_cur.execute("create table lala(sx float, sxx float, sxy float , sy float, syy float, n int)") node1_cur.execute("insert into lala select 13,85,98,15,113,2") node1_cur.execute("select * from lala") print(node1_cur.fetchall()) node1_cur.execute("select * from mudf((select * from lala))") print(node1_cur.fetchall()) + node1_cur.execute("select * from mudf2((select * from lala))") + print(node1_cur.fetchall()) node2_port = freeport() with process.server(mapiport=node2_port, dbname='node2', @@ -49,11 +52,14 @@ with tempfile.TemporaryDirectory() as fa node2_cur = node2_conn.cursor() node2_cur.execute("create function mudf(sx float, sxx float, sxy float, sy float, syy float, n int) returns table(res float) begin return select 0.5; end") + node2_cur.execute("create function mudf2(sx float, sxx float, sxy float, sy float, syy float, n int) returns table(res float, res2 float) begin return select 0.5, 0.6; end") node2_cur.execute("create remote table fofo(sx float, sxx float, sxy float, sy float, syy float, n int) on 'mapi:monetdb://localhost:{}/node1/sys/lala'".format(node1_port)) node2_cur.execute("select * from fofo") print(node2_cur.fetchall()) node2_cur.execute("select * from mudf((select * from fofo))") print(node2_cur.fetchall()) + node2_cur.execute("select * from mudf2((select * from fofo))") + print(node2_cur.fetchall()) # cleanup: shutdown the monetdb servers and remove tempdir out, err = node1_proc.communicate() diff --git a/sql/test/BugTracker-2020/Tests/table-udf-on-remote.Bug-6971.stable.out b/sql/test/BugTracker-2020/Tests/table-udf-on-remote.Bug-6971.stable.out --- a/sql/test/BugTracker-2020/Tests/table-udf-on-remote.Bug-6971.stable.out +++ b/sql/test/BugTracker-2020/Tests/table-udf-on-remote.Bug-6971.stable.out @@ -7,8 +7,10 @@ stdout of test 'table-udf-on-remote.Bug- [(13.0, 85.0, 98.0, 15.0, 113.0, 2)] [(0.5,)] +[(0.5, 0.6)] [(13.0, 85.0, 98.0, 15.0, 113.0, 2)] [(0.5,)] +[(0.5, 0.6)] # 11:17:12 > # 11:17:12 > "Done." _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list