Changeset: e5e1e0f73e4b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e5e1e0f73e4b
Added Files:
sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.stable.out
sql/test/BugTracker-2019/Tests/remote-table-non-existent-column.Bug-6750.stable.out
sql/test/Tests/fsum1.stable.out
Modified Files:
sql/server/rel_exp.c
sql/server/rel_exp.h
sql/server/rel_select.c
sql/server/rel_unnest.c
sql/test/BugTracker-2018/Tests/in-subquery-having-Bug-6651.stable.out
Branch: sq2default
Log Message:
approved output (added missing files)
fixed tuple based in queries (require rel re-label)
diffs (285 lines):
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -1831,6 +1831,17 @@ exp_rel_update_exp(sql_allocator *sa, sq
return e;
}
+sql_exp *
+exp_rel_label(mvc *sql, sql_exp *e)
+{
+ if (exp_is_rel(e)) {
+ sql_rel *r = e->l;
+
+ e->l = r = rel_label(sql, r, 1);
+ }
+ return e;
+}
+
int
exps_are_atoms( list *exps)
{
diff --git a/sql/server/rel_exp.h b/sql/server/rel_exp.h
--- a/sql/server/rel_exp.h
+++ b/sql/server/rel_exp.h
@@ -146,6 +146,7 @@ extern int exp_has_rel(sql_exp *e);
extern int exps_have_rel_exp(list *exps);
extern sql_rel *exp_rel_get_rel(sql_allocator *sa, sql_exp *e);
extern sql_exp *exp_rel_update_exp(sql_allocator *sa, sql_exp *e);
+extern sql_exp *exp_rel_label(mvc *sql, sql_exp *e);
extern int exps_are_atoms(list *exps);
extern int exp_has_func(sql_exp *e);
extern int exp_unsafe(sql_exp *e, int allow_identity);
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
@@ -2000,6 +2000,8 @@ rel_in_exp(sql_query *query, sql_rel *re
return NULL;
if (is_tuple && !exp_is_rel(re))
return NULL;
+ if (is_tuple)
+ re = exp_rel_label(sql, re);
append(vals, re);
}
}
diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -1889,6 +1889,7 @@ rewrite_anyequal(mvc *sql, sql_rel *rel,
sql_exp *re = m->data;
append(l, le);
+ re = exp_ref(sql->sa, re);
append(r, re);
}
return exp_in_func(sql,
exp_values(sql->sa, l), exp_values(sql->sa, r), is_anyequal(sf), 1);
diff --git
a/sql/test/BugTracker-2018/Tests/in-subquery-having-Bug-6651.stable.out
b/sql/test/BugTracker-2018/Tests/in-subquery-having-Bug-6651.stable.out
--- a/sql/test/BugTracker-2018/Tests/in-subquery-having-Bug-6651.stable.out
+++ b/sql/test/BugTracker-2018/Tests/in-subquery-having-Bug-6651.stable.out
@@ -114,12 +114,11 @@ stdout of test 'in-subquery-having-Bug-6
% 1, 1, 1 # length
[ 1, 2, 3 ]
[ 1, 2, 4 ]
-[ 1, 3, 6 ]
#SELECT C1, C2, C3
# FROM T1
# WHERE (C2, C1) IN
# (
-# SELECT C2, C2
+# SELECT C2, C1
# FROM T1
# GROUP BY C1, C2
# HAVING COUNT(*) > 1
@@ -130,7 +129,6 @@ stdout of test 'in-subquery-having-Bug-6
% 1, 1, 1 # length
[ 1, 2, 3 ]
[ 1, 2, 4 ]
-[ 2, 2, 5 ]
#SELECT C1, C2, C3
# FROM T1
# WHERE (C1, C2) IN
@@ -146,7 +144,6 @@ stdout of test 'in-subquery-having-Bug-6
% 1, 1, 1 # length
[ 1, 2, 3 ]
[ 1, 2, 4 ]
-[ 1, 3, 6 ]
#SELECT C1, C2, C3
# FROM T1
# WHERE (C1, C2) IN
@@ -175,6 +172,8 @@ stdout of test 'in-subquery-having-Bug-6
% c1, c2, c3 # name
% int, int, int # type
% 1, 1, 1 # length
+[ 1, 2, 3 ]
+[ 1, 2, 4 ]
#INSERT INTO T1
#VALUES (21, 22, 3),
# (21, 22, 4),
@@ -196,10 +195,8 @@ stdout of test 'in-subquery-having-Bug-6
% 2, 2, 1 # length
[ 1, 2, 3 ]
[ 1, 2, 4 ]
-[ 1, 3, 6 ]
[ 21, 22, 3 ]
[ 21, 22, 4 ]
-[ 21, 23, 6 ]
#SELECT C1, C2, C3
# FROM T1
# WHERE (C2, C1) IN
@@ -215,10 +212,8 @@ stdout of test 'in-subquery-having-Bug-6
% 2, 2, 1 # length
[ 1, 2, 3 ]
[ 1, 2, 4 ]
-[ 2, 2, 5 ]
[ 21, 22, 3 ]
[ 21, 22, 4 ]
-[ 22, 22, 5 ]
#SELECT C1, C2, C3
# FROM T1
# WHERE (C1, C2) IN
@@ -234,10 +229,8 @@ stdout of test 'in-subquery-having-Bug-6
% 2, 2, 1 # length
[ 1, 2, 3 ]
[ 1, 2, 4 ]
-[ 1, 3, 6 ]
[ 21, 22, 3 ]
[ 21, 22, 4 ]
-[ 21, 23, 6 ]
#ROLLBACK;
# 11:21:55 >
diff --git
a/sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.stable.out
b/sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.stable.out
@@ -0,0 +1,41 @@
+stdout of test 'grant-select-column.Bug-6765` in directory
'sql/test/BugTracker-2019` itself:
+
+
+# 19:45:13 >
+# 19:45:13 > "/usr/bin/python3" "grant-select-column.Bug-6765.py"
"grant-select-column.Bug-6765"
+# 19:45:13 >
+
+#CREATE schema "myschema";CREATE TABLE "myschema"."test" ("id" integer,
"name" varchar(20));INSERT INTO "myschema"."test" ("id", "name") VALUES
(1,'Tom'),(2,'Karen');CREATE USER myuser WITH UNENCRYPTED PASSWORD 'Test123'
NAME 'Hulk' SCHEMA "myschema";GRANT SELECT ON "myschema"."test" TO myuser;
+#CREATE schema "myschema";CREATE TABLE "myschema"."test" ("id" integer,
"name" varchar(20));INSERT INTO "myschema"."test" ("id", "name") VALUES
(1,'Tom'),(2,'Karen');CREATE USER myuser WITH UNENCRYPTED PASSWORD 'Test123'
NAME 'Hulk' SCHEMA "myschema";GRANT SELECT ON "myschema"."test" TO myuser;
+#CREATE schema "myschema";CREATE TABLE "myschema"."test" ("id" integer,
"name" varchar(20));INSERT INTO "myschema"."test" ("id", "name") VALUES
(1,'Tom'),(2,'Karen');CREATE USER myuser WITH UNENCRYPTED PASSWORD 'Test123'
NAME 'Hulk' SCHEMA "myschema";GRANT SELECT ON "myschema"."test" TO myuser;
+[ 2 ]
+#CREATE schema "myschema";CREATE TABLE "myschema"."test" ("id" integer,
"name" varchar(20));INSERT INTO "myschema"."test" ("id", "name") VALUES
(1,'Tom'),(2,'Karen');CREATE USER myuser WITH UNENCRYPTED PASSWORD 'Test123'
NAME 'Hulk' SCHEMA "myschema";GRANT SELECT ON "myschema"."test" TO myuser;
+#CREATE schema "myschema";CREATE TABLE "myschema"."test" ("id" integer,
"name" varchar(20));INSERT INTO "myschema"."test" ("id", "name") VALUES
(1,'Tom'),(2,'Karen');CREATE USER myuser WITH UNENCRYPTED PASSWORD 'Test123'
NAME 'Hulk' SCHEMA "myschema";GRANT SELECT ON "myschema"."test" TO myuser;
+#SELECT "id", "name" FROM "myschema"."test";
+% myschema.test, myschema.test # table_name
+% id, name # name
+% int, varchar # type
+% 1, 5 # length
+[ 1, "Tom" ]
+[ 2, "Karen" ]
+#REVOKE SELECT ON "myschema"."test" FROM myuser;GRANT SELECT ("name") ON
"myschema"."test" TO myuser;
+#REVOKE SELECT ON "myschema"."test" FROM myuser;GRANT SELECT ("name") ON
"myschema"."test" TO myuser;
+#DROP USER myuser;DROP SCHEMA "myschema" CASCADE;
+#DROP USER myuser;DROP SCHEMA "myschema" CASCADE;
+# MonetDB 5 server v11.36.0 (hg id: 1d18bd8860b4+)
+# This is an unreleased version
+# Serving database 'mTests_sql_test_BugTracker-2019', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers
+# Found 15.384 GiB available main-memory.
+# Copyright (c) 1993 - July 2008 CWI.
+# Copyright (c) August 2008 - 2019 MonetDB B.V., all rights reserved
+# Visit https://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://xps13:33829/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-3703/.s.monetdb.33829
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+
+# 19:45:13 >
+# 19:45:13 > "Done."
+# 19:45:13 >
+
diff --git
a/sql/test/BugTracker-2019/Tests/remote-table-non-existent-column.Bug-6750.stable.out
b/sql/test/BugTracker-2019/Tests/remote-table-non-existent-column.Bug-6750.stable.out
new file mode 100644
--- /dev/null
+++
b/sql/test/BugTracker-2019/Tests/remote-table-non-existent-column.Bug-6750.stable.out
@@ -0,0 +1,12 @@
+stdout of test 'remote-table-non-existent-column.Bug-6750` in directory
'sql/test/BugTracker-2019` itself:
+
+
+# 19:45:09 >
+# 19:45:09 > "/usr/bin/python3"
"remote-table-non-existent-column.Bug-6750.py"
"remote-table-non-existent-column.Bug-6750"
+# 19:45:09 >
+
+
+# 19:45:09 >
+# 19:45:09 > "Done."
+# 19:45:09 >
+
diff --git a/sql/test/Tests/fsum1.stable.out b/sql/test/Tests/fsum1.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/Tests/fsum1.stable.out
@@ -0,0 +1,87 @@
+stdout of test 'fsum1` in directory 'sql/test` itself:
+
+
+# 13:04:28 >
+# 13:04:28 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=1" "--set"
"mapi_open=true" "--set" "mapi_port=37938" "--set"
"mapi_usock=/var/tmp/mtest-953/.s.monetdb.37938" "--forcemito"
"--dbpath=/home/niels/scratch/monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test"
"--set" "embedded_c=true"
+# 13:04:28 >
+
+# MonetDB 5 server v11.36.0 (hg id: 8f43ee7f9545+)
+# This is an unreleased version
+# Serving database 'mTests_sql_test', using 1 thread
+# Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers
+# Found 15.384 GiB available main-memory.
+# Copyright (c) 1993 - July 2008 CWI.
+# Copyright (c) August 2008 - 2019 MonetDB B.V., all rights reserved
+# Visit https://www.monetdb.org/ for further information
+# Listening for connection requests on
mapi:monetdb://localhost.localdomain:37938/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-953/.s.monetdb.37938
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+
+# 13:04:29 >
+# 13:04:29 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-953" "--port=37938"
+# 13:04:29 >
+
+#create table t (val double, gid int);
+#copy 3131 records into t from stdin using delimiters ' ',E'\n' null as 'nan';
+#-1.7976931348623157E+308 23
+#9007199254740992.0 9
+#-5e-324 38
+#-8.98846567431158e+307 35
+#8.988465674311579e+307 12
+#8.98846567431158e+307 26
+#8.98846567431158e+307 40
+#8.98846567431158e+307 7
+#9.076030935533344e+279 39
+#-8.98846567431158e+307 37
+#1.7976931348623157E+308 22
+#8.98846567431158e+307 28
+#-8.98846567431158e+307 36
+#0.7 17
+#8.98846567431158e+307 26
+#1e+308 5
+#-1e+308 5
+#0.0 1
+#9007199254741002.0 10
+#8.98846567431158e+307 29
+#1.0 15
+#8.988465674311579e+307 25
+[ 3131 ]
+#select gid, sum(val) from t where gid in (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 15, 16, 17, 18, 19, 22, 23, 31, 33, 35, 37, 39, 40, 41) group by
gid order by gid;
+% sys.t, sys.%1 # table_name
+% gid, %1 # name
+% int, double # type
+% 2, 24 # length
+[ 1, 0 ]
+[ 2, 1e-100 ]
+[ 3, 1e+308 ]
+[ 4, 1e+308 ]
+[ 5, 1e+308 ]
+[ 6, 1.797693028e+308 ]
+[ 7, 8.988465674e+307 ]
+[ 8, 9.007199255e+15 ]
+[ 9, 9.007199255e+15 ]
+[ 10, 9.007199255e+15 ]
+[ 11, 9.007199255e+15 ]
+[ 12, 1.797693135e+308 ]
+[ 13, 1.797693135e+308 ]
+[ 15, 7.485470861 ]
+[ 16, -0.6926474306 ]
+[ 17, -1 ]
+[ 18, 0 ]
+[ 19, 0 ]
+[ 22, 0 ]
+[ 23, -1.59538627e+308 ]
+[ 31, 1.797693135e+308 ]
+[ 33, 1.797693135e+308 ]
+[ 35, -1.797693135e+308 ]
+[ 37, -1.797693135e+308 ]
+[ 39, 1.797693135e+308 ]
+[ 40, 1.697693135e+308 ]
+[ 41, 1e+16 ]
+#drop table t;
+
+# 13:04:29 >
+# 13:04:29 > "Done."
+# 13:04:29 >
+
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list