Changeset: 1f7d8058d35e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1f7d8058d35e
Modified Files:
sql/server/rel_select.c
Branch: default
Log Message:
Merge with Oct2020 branch.
diffs (197 lines):
diff --git a/gdk/gdk_project.c b/gdk/gdk_project.c
--- a/gdk/gdk_project.c
+++ b/gdk/gdk_project.c
@@ -346,7 +346,8 @@ project_str(BAT *restrict l, struct cand
oid o = canditer_next(ci);
if (o < r1seq || o >= r2end) {
GDKerror("does not match always\n");
- return GDK_FAIL;
+ BBPreclaim(bn);
+ return NULL;
}
if (o < r1end) {
r = r1;
@@ -392,7 +393,8 @@ project_str(BAT *restrict l, struct cand
oid o = l->tseqbase + lo;
if (o < r1seq || o >= r2end) {
GDKerror("does not match always\n");
- return GDK_FAIL;
+ BBPreclaim(bn);
+ return NULL;
}
if (o < r1end) {
r = r1;
@@ -439,7 +441,8 @@ project_str(BAT *restrict l, struct cand
oid o = ot[lo];
if (o < r1seq || o >= r2end) {
GDKerror("does not match always\n");
- return GDK_FAIL;
+ BBPreclaim(bn);
+ return NULL;
}
if (o < r1end) {
r = r1;
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
@@ -5199,9 +5199,12 @@ rel_table_exp(sql_query *query, sql_rel
}
if (project->op == op_project && project->l && project == *rel
&& !tname && !rel_is_ref(project) && !need_distinct(project) && single_exp) {
- rel_remove_internal_exp(*rel);
- exps = project->exps;
- *rel = project->l;
+ sql_rel *l = project->l;
+ if (!l || !is_project(l->op) ||
list_length(project->exps) == list_length(l->exps)) {
+ rel_remove_internal_exp(*rel);
+ exps = project->exps;
+ *rel = project->l;
+ }
}
if ((exps || (exps = rel_table_projections(sql, project, tname,
0)) != NULL) && !list_empty(exps)) {
if (groupby) {
diff --git a/sql/test/BugTracker-2015/Tests/schema-trigger.Bug-3710.sql
b/sql/test/BugTracker-2015/Tests/schema-trigger.Bug-3710.sql
--- a/sql/test/BugTracker-2015/Tests/schema-trigger.Bug-3710.sql
+++ b/sql/test/BugTracker-2015/Tests/schema-trigger.Bug-3710.sql
@@ -2,7 +2,7 @@ create schema marketdata;
create table marketdata.quotes (i integer);
-CREATE TRIGGER marketdata.calc_sdate BEFORE INSERT ON marketdata.quotes
+CREATE TRIGGER calc_sdate BEFORE INSERT ON marketdata.quotes
FOR EACH ROW
BEGIN ATOMIC
-- select * from marketdata.quotes limit 1;
diff --git a/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.stable.out
b/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.stable.out
--- a/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.stable.out
+++ b/sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.stable.out
@@ -59,26 +59,28 @@ stdout of test 'merge_project.Bug-3955`
% .plan # table_name
% rel # name
% clob # type
-% 105 # length
+% 107 # length
project (
-| crossproduct (
-| | table(sys.v) [ "v"."a1", "v"."a2" ] COUNT ,
-| | project (
-| | | crossproduct (
-| | | | project (
-| | | | | select (
-| | | | | | table(sys.input_double) [ "input_double"."a1", "input_double"."a2"
] COUNT
-| | | | | ) [ "input_double"."a1" = clob "latitude" ]
-| | | | ) [ "input_double"."a2" as "tmp_2"."a2" ],
-| | | | project (
-| | | | | select (
-| | | | | | table(sys.input_double) [ "input_double"."a1", "input_double"."a2"
] COUNT
-| | | | | ) [ "input_double"."a1" = clob "longitude" ]
-| | | | ) [ "input_double"."a2" as "tmp_3"."a2" ]
-| | | ) [ ]
-| | ) [ sys.st_point("tmp_2"."a2" as "tmp"."a1", "tmp_3"."a2" as "tmp"."a2")
as "p"."a1" ]
-| ) [ ]
-) [ "v"."a1" as "r"."a1", sys.st_distance("v"."a2" as "tmp"."a2", "p"."a1" as
"tmp"."a3") as "r"."prob" ]
+| project (
+| | crossproduct (
+| | | table(sys.v) [ "v"."a1", "v"."a2" ] COUNT ,
+| | | project (
+| | | | crossproduct (
+| | | | | project (
+| | | | | | select (
+| | | | | | | table(sys.input_double) [ "input_double"."a1",
"input_double"."a2" ] COUNT
+| | | | | | ) [ "input_double"."a1" = clob "latitude" ]
+| | | | | ) [ "input_double"."a2" as "tmp_2"."a2" ],
+| | | | | project (
+| | | | | | select (
+| | | | | | | table(sys.input_double) [ "input_double"."a1",
"input_double"."a2" ] COUNT
+| | | | | | ) [ "input_double"."a1" = clob "longitude" ]
+| | | | | ) [ "input_double"."a2" as "tmp_3"."a2" ]
+| | | | ) [ ]
+| | | ) [ sys.st_point("tmp_2"."a2" as "tmp"."a1", "tmp_3"."a2" as "tmp"."a2")
as "p"."a1" ]
+| | ) [ ]
+| ) [ "v"."a1" as "r"."a1", sys.st_distance("v"."a2" as "tmp"."a2", "p"."a1"
as "tmp"."a3") as "r"."prob" ]
+) [ "r"."a1", "r"."prob" ]
# 14:00:10 >
# 14:00:10 > "Done."
diff --git
a/sql/test/BugTracker-2020/Tests/view_with_aggr_column.Bug-7023.stable.err
b/sql/test/BugTracker-2020/Tests/view_with_aggr_column.Bug-7023.stable.err
--- a/sql/test/BugTracker-2020/Tests/view_with_aggr_column.Bug-7023.stable.err
+++ b/sql/test/BugTracker-2020/Tests/view_with_aggr_column.Bug-7023.stable.err
@@ -5,12 +5,8 @@ stderr of test 'view_with_aggr_column.Bu
# 15:22:56 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-177928" "--port=37553"
# 15:22:56 >
-MAPI = (monetdb) /var/tmp/mtest-177928/.s.monetdb.37553
-QUERY = select * from v1;
-
-CODE = 42000
-# 15:22:56 >
-# 15:22:56 > "Done."
-# 15:22:56 >
+# 16:13:27 >
+# 16:13:27 > "Done."
+# 16:13:27 >
diff --git
a/sql/test/BugTracker-2020/Tests/view_with_aggr_column.Bug-7023.stable.out
b/sql/test/BugTracker-2020/Tests/view_with_aggr_column.Bug-7023.stable.out
--- a/sql/test/BugTracker-2020/Tests/view_with_aggr_column.Bug-7023.stable.out
+++ b/sql/test/BugTracker-2020/Tests/view_with_aggr_column.Bug-7023.stable.out
@@ -14,7 +14,7 @@ stdout of test 'view_with_aggr_column.Bu
% 1 # length
#create view v1 as select max(k) from tst group by name;
#select * from v1;
-% sys.%1 # table_name
+% sys.v1 # table_name
% %1 # name
% int # type
% 1 # length
diff --git a/sql/test/UserDump/Tests/create.SQL.py
b/sql/test/UserDump/Tests/create.SQL.py
--- a/sql/test/UserDump/Tests/create.SQL.py
+++ b/sql/test/UserDump/Tests/create.SQL.py
@@ -48,8 +48,8 @@ create table a (
id int
);
create trigger a after insert on foo insert into a values (1);
-create trigger test.x after insert on foo insert into a values (1);
-create trigger "test"."z" after insert on "foo" insert into a values (1);
+create trigger x after insert on foo insert into a values (1);
+create trigger "z" after insert on "foo" insert into a values (1);
''')
client('sqldump')
client('sqldump', user = 'voc', passwd = 'voc')
diff --git a/sql/test/UserDump/Tests/create.stable.out
b/sql/test/UserDump/Tests/create.stable.out
--- a/sql/test/UserDump/Tests/create.stable.out
+++ b/sql/test/UserDump/Tests/create.stable.out
@@ -54,8 +54,8 @@ CREATE TABLE "test"."a" (
"id" INTEGER
);
create trigger a after insert on foo insert into a values (1);
-create trigger test.x after insert on foo insert into a values (1);
-create trigger "test"."z" after insert on "foo" insert into a values (1);
+create trigger x after insert on foo insert into a values (1);
+create trigger "z" after insert on "foo" insert into a values (1);
SET SCHEMA "sys";
COMMIT;
START TRANSACTION;
@@ -85,8 +85,8 @@ CREATE TABLE "test"."a" (
"id" INTEGER
);
create trigger a after insert on foo insert into a values (1);
-create trigger test.x after insert on foo insert into a values (1);
-create trigger "test"."z" after insert on "foo" insert into a values (1);
+create trigger x after insert on foo insert into a values (1);
+create trigger "z" after insert on "foo" insert into a values (1);
COMMIT;
# 13:57:13 >
diff --git a/sql/test/rename/Tests/rename08.sql
b/sql/test/rename/Tests/rename08.sql
--- a/sql/test/rename/Tests/rename08.sql
+++ b/sql/test/rename/Tests/rename08.sql
@@ -14,7 +14,7 @@ select "ii"."type" from "sys"."idxs" "ii
insert into "newtables"."t1" values (4, default);
select "a", "b" from "newtables"."t1";
-create trigger "newtables"."tr1" after insert on "newtables"."t1" insert into
"newtables"."t1" values (5, default);
+create trigger "tr1" after insert on "newtables"."t1" insert into
"newtables"."t1" values (5, default);
alter table "newtables"."t1" set schema "oldtables"; --error, dependency on
trigger
drop schema "oldtables" cascade;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list