Changeset: 2d6aea66e573 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2d6aea66e573
Modified Files:
sql/server/rel_dump.c
sql/server/rel_select.c
sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-query.test
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-query.test
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-3join-query.stable.out
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-3join-query.stable.out.32bit
sql/test/miscellaneous/Tests/simple_plans.test
sql/test/miscellaneous/Tests/unique_keys.test
Branch: antipush
Log Message:
Merged with default
diffs (truncated from 736 to 300 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
@@ -186,7 +186,7 @@ exp_print(mvc *sql, stream *fout, sql_ex
} else {
char *t = dump_sql_subtype(sql->ta,
atom_type(a));
if (a->isnull)
- mnstr_printf(fout, "%s \"NULL\"", t);
+ mnstr_printf(fout, "%s NULL", t);
else {
char *s = ATOMformat(a->data.vtype,
VALptr(&a->data));
if (s && *s == '"')
@@ -805,25 +805,24 @@ readInt( char *r, int *pos)
}
static char *
-readString( char *r, int *pos)
+readAtomString( char *r, int *pos)
{
char *st = NULL, *parsed;
- if (r[*pos] == '"') {
- (*pos)++;
- st = parsed = r+*pos;
- while (r[*pos] != '"') {
- if (r[*pos] == '\\' && (r[*pos + 1] == '"' || r[*pos +
1] == '\\')) {
- *parsed++ = r[*pos + 1];
- (*pos)+=2;
- } else {
- *parsed++ = r[*pos];
- (*pos)++;
- }
+ assert(r[*pos] == '"');
+ (*pos)++;
+ st = parsed = r+*pos;
+ while (r[*pos] != '"') {
+ if (r[*pos] == '\\' && (r[*pos + 1] == '"' || r[*pos + 1] ==
'\\')) {
+ *parsed++ = r[*pos + 1];
+ (*pos)+=2;
+ } else {
+ *parsed++ = r[*pos];
+ (*pos)++;
}
- *parsed = '\0';
- (*pos)++;
}
+ *parsed = '\0';
+ (*pos)++;
return st;
}
@@ -953,11 +952,11 @@ read_exp_properties(mvc *sql, sql_exp *e
static sql_exp*
parse_atom(mvc *sql, char *r, int *pos, sql_subtype *tpe)
{
- char *st = readString(r,pos);
-
- if (st && strcmp(st, "NULL") == 0) {
+ if (strncmp(r+*pos, "NULL", strlen("NULL")) == 0) {
+ (*pos)+= (int) strlen("NULL");
return exp_atom(sql->sa, atom_general(sql->sa, tpe, NULL));
} else {
+ char *st = readAtomString(r,pos);
return exp_atom(sql->sa, atom_general(sql->sa, tpe, st));
}
}
@@ -1282,16 +1281,19 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
}
break;
case '\"':
- *e = 0;
- tname = b;
- convertIdent(tname);
- if (!sql_find_subtype(&tpe, tname, 0, 0)) {
- if (!(t = mvc_bind_type(sql, tname))) /* try an
external type */
- return sql_error(sql, ERR_NOTFOUND,
SQLSTATE(42000) "SQL type %s not found\n", tname);
- sql_init_subtype(&tpe, t, 0, 0);
+ case 'N': /* for NULL values, but 'NOT NULL' and 'NULLS LAST' cannot
match here */
+ if (r[*pos] == '\"' || (strncmp(r+*pos, "NULL", strlen("NULL"))
== 0 && r[*pos+4] != 'S')) {
+ *e = 0;
+ tname = b;
+ convertIdent(tname);
+ if (!sql_find_subtype(&tpe, tname, 0, 0)) {
+ if (!(t = mvc_bind_type(sql, tname))) /* try an
external type */
+ return sql_error(sql, ERR_NOTFOUND,
SQLSTATE(42000) "SQL type %s not found\n", tname);
+ sql_init_subtype(&tpe, t, 0, 0);
+ }
+ exp = parse_atom(sql, r, pos, &tpe);
+ skipWS(r, pos);
}
- exp = parse_atom(sql, r, pos, &tpe);
- skipWS(r, pos);
break;
default:
(void)sql;
@@ -1506,9 +1508,9 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
if (!exp) {
if (cname) {
bool has_tname = tname && strcmp(tname, cname) != 0;
- return sql_error(sql, -1, SQLSTATE(42000) "Identifier
%s%s%s doesn't exist\n", has_tname ? tname : "", has_tname ? "." : "", cname);
+ return sql_error(sql, ERR_NOTFOUND, SQLSTATE(42000)
"Identifier %s%s%s doesn't exist\n", has_tname ? tname : "", has_tname ? "." :
"", cname);
} else if (var_cname) {
- return sql_error(sql, -1, SQLSTATE(42000) "Identifier
%s doesn't exist\n", var_cname);
+ return sql_error(sql, ERR_NOTFOUND, SQLSTATE(42000)
"Identifier %s doesn't exist\n", var_cname);
}
return NULL;
}
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
@@ -4026,20 +4026,9 @@ rel_cast(sql_query *query, sql_rel **rel
sql_subtype *et = exp_subtype(e);
/* truncate only if the number of digits are smaller or from
clob */
if (et && EC_VARCHAR(et->type->eclass) && (tpe->digits <
et->digits || et->digits == 0)) {
- sql_subfunc *f;
- sql_exp *ne = exp_convert_inplace(sql, tpe, e); /*
first try cheap internal (in-place) conversion */
-
- if (ne) {
- exp_label(sql->sa, ne, ++sql->label);
- return ne;
- }
- f = sql_bind_func(sql, "sys", "truncate", et,
sql_bind_localtype("int"), F_FUNC);
- assert(f);
- ne = exp_binop(sql->sa, e, exp_atom_int(sql->sa,
tpe->digits), f);
- /* set output type as the one to be casted */
- f->res->h->data = sql_create_subtype(sql->sa,
tpe->type, tpe->digits, tpe->scale);
- exp_label(sql->sa, ne, ++sql->label);
- return ne;
+ sql_subfunc *c = sql_bind_func(sql, "sys", "truncate",
et, sql_bind_localtype("int"), F_FUNC);
+ if (c)
+ e = exp_binop(sql->sa, e, exp_atom_int(sql->sa,
tpe->digits), c);
}
}
if (e)
diff --git
a/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out
b/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out
--- a/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out
+++ b/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out
@@ -1,17 +1,17 @@
% .plan # table_name
% rel # name
% clob # type
-% 210 # length
+% 206 # length
insert(
| table("sys"."cm_tmp") [ "cm_tmp"."i", "cm_tmp"."%TID%" NOT NULL ]
| union (
| | project (
-| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar "NULL", varchar "null", varchar "/file1", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar "NULL", int(9) "0", int(9) "1"),
+| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar NULL, varchar "null", varchar "/file1", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar NULL, int(9) "0", int(9) "1"),
| | | ) [ "cm_tmp"."i" ]
| | ) [ "cm_tmp"."i" ],
| | project (
-| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar "NULL", varchar "null", varchar "/file2", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar "NULL", int(9) "0", int(9) "1"),
+| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar NULL, varchar "null", varchar "/file2", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar NULL, int(9) "0", int(9) "1"),
| | | ) [ "cm_tmp"."i" ]
| | ) [ "cm_tmp"."i" ]
-| ) [ int(32) "NULL" ]
+| ) [ int(32) NULL ]
)
diff --git
a/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out.Windows
b/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out.Windows
---
a/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out.Windows
+++
b/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out.Windows
@@ -3,35 +3,35 @@
% .plan # table_name
% rel # name
% clob # type
-% 211 # length
+% 207 # length
insert(
| table("sys"."cm_tmp") [ "cm_tmp"."i", "cm_tmp"."%TID%" NOT NULL ]
| union (
| | project (
-| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar "NULL", varchar "null", varchar "\\file1", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar "NULL", int(9) "0", int(9) "1"),
+| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar NULL, varchar "null", varchar "\\file1", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar NULL, int(9) "0", int(9) "1"),
| | | ) [ "cm_tmp"."i" ]
| | ) [ "cm_tmp"."i" ],
| | project (
-| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar "NULL", varchar "null", varchar "\\file2", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar "NULL", int(9) "0", int(9) "1"),
+| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar NULL, varchar "null", varchar "\\file2", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar NULL, int(9) "0", int(9) "1"),
| | | ) [ "cm_tmp"."i" ]
| | ) [ "cm_tmp"."i" ]
-| ) [ int(32) "NULL" ]
+| ) [ int(32) NULL ]
)
#plan copy into cm_tmp from E'a:\\file1','Z:/file2';
% .plan # table_name
% rel # name
% clob # type
-% 213 # length
+% 209 # length
insert(
| table("sys"."cm_tmp") [ "cm_tmp"."i", "cm_tmp"."%TID%" NOT NULL ]
| union (
| | project (
-| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar "NULL", varchar "null", varchar "a:\\file1", bigint(18) "-1",
bigint(18) "0", int(9) "0", varchar "NULL", int(9) "0", int(9) "1"),
+| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar NULL, varchar "null", varchar "a:\\file1", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar NULL, int(9) "0", int(9) "1"),
| | | ) [ "cm_tmp"."i" ]
| | ) [ "cm_tmp"."i" ],
| | project (
-| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar "NULL", varchar "null", varchar "Z:/file2", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar "NULL", int(9) "0", int(9) "1"),
+| | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n",
varchar NULL, varchar "null", varchar "Z:/file2", bigint(18) "-1", bigint(18)
"0", int(9) "0", varchar NULL, int(9) "0", int(9) "1"),
| | | ) [ "cm_tmp"."i" ]
| | ) [ "cm_tmp"."i" ]
-| ) [ int(32) "NULL" ]
+| ) [ int(32) NULL ]
)
diff --git
a/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.test
b/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.test
--- a/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.test
+++ b/sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.test
@@ -29,7 +29,7 @@ query T nosort
project (
| top N (
| | table("sys"."oblo") [ "oblo"."a" ]
-| ) [ bigint(64) "NULL", bigint(64) "2" ]
+| ) [ bigint(64) NULL, bigint(64) "2" ]
) [ "oblo"."a" ]
query T nosort
@@ -73,7 +73,7 @@ top N (
| project (
| | table("sys"."oblo") [ "oblo"."a" ]
| ) [ "oblo"."a" ] [ "oblo"."a" ASC ]
-) [ bigint(64) "NULL", bigint(64) "2" ]
+) [ bigint(64) NULL, bigint(64) "2" ]
query T nosort
PLAN select * from oblo ORDER BY a LIMIT 2
diff --git
a/sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test
b/sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test
---
a/sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test
+++
b/sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test
@@ -185,7 +185,7 @@ top N (
| | | | ) [ ("a3"."t3pkcol" HASHCOL ) = ("table1"."t1cold113") ],
| | | | table("sys"."table12") [ "table12"."t12cola1" ]
| | | ) [ ("table12"."t12cola1") = ("table1"."t1cola1") ]
-| | ) [ ((((((((((((((("table1"."t1cold1") FILTER "sys"."like"(clob "%a%",
clob "", boolean(1) "true")) or (("table1"."t1cola1") FILTER "sys"."like"(clob
"%a%", clob "", boolean(1) "true"))) or (("table1"."t1colb1") FILTER
"sys"."like"(clob "%a%", clob "", boolean(1) "true"))) or
(("table1"."t1cola11") FILTER "sys"."like"(clob "%business%", clob "",
boolean(1) "true"))) or (("table1"."t1colc91") >= (timestamp(7) "2016-03-21
05:00:00.000000"))) or (("table1"."t1cola101") = (tinyint(1) "1"))) or
(("table1"."t1cola12") FILTER "sys"."like"(clob "%Vijay%", clob "", boolean(1)
"true"))) or (("table2"."t2cola1") ! FILTER "sys"."like"(clob "%gmail%", clob
"", boolean(1) "true"), ("table2"."t2cola1") ! FILTER "sys"."like"(clob
"%yahoo%", clob "", boolean(1) "true"))) or (("table2"."t2cola1") FILTER
"sys"."like"(clob "%efequitygroup.com%", clob "", boolean(1) "true"))) or
(("table4"."t4cola1") = (clob "Customer"))) or (("table4"."t4cola2") ! * =
(clob "NULL"))) or (("table2"."t2cola81") >= (d
ate "2009-08-31"))) or (((("table5"."t5cola1") = (clob "BAT")) or
(("table5"."t5cola2") FILTER "sys"."like"(clob "%AUSTRALIA%", clob "",
boolean(1) "true"))) or (("table5"."t5cola2") FILTER "sys"."like"(clob
"%Monet%", clob "", boolean(1) "true"), ("table5"."t5cola3") = (clob
"Facebook"), ("table5"."t5cola5") = (clob "new"), ("table5"."t5cola81") > (date
"2015-07-30")))) or (((("table10"."t10cola1") != (clob "Completed"),
("table9"."t9cola1") = (clob "Tasks"), ("table9"."t9cola91") >= (timestamp(7)
"2012-01-01 04:32:27.000000"), ("table10"."t10cola91") <= (timestamp(7)
"2013-01-01 04:32:27.000000")) or (("table9"."t9cola1") = (clob "Events"),
(timestamp(7) "2012-01-01 04:32:27.000000") <= ("table11"."t11cola91") <=
(timestamp(7) "2013-01-01 04:32:27.000000"))) or (("table9"."t9cola1") = (clob
"Calls"), (timestamp(7) "2012-01-01 04:32:27.000000") <=
("table10"."t10cola91") <= (timestamp(7) "2013-01-01 04:32:27.000000"))),
("table1"."t1cold111") in (bigint(54) "15842000014793046", big
int(54) "15842000017701488", bigint(54) "15842000000024019", bigint(54)
"15842000000074007", bigint(54) "15842000009358096", bigint(54)
"15842000010487625", bigint(54) "15842000006731919", bigint(54)
"15842000002590112", bigint(54) "15842000000019001", bigint(54)
"15842000014923682", bigint(54) "15842000027547249")) or
(("table12"."t12cola1") in (clob[bigint(54) "15842000280111951"] NOT NULL,
clob[bigint(54) "15842000280163015"] NOT NULL)) ]
+| | ) [ ((((((((((((((("table1"."t1cold1") FILTER "sys"."like"(clob "%a%",
clob "", boolean(1) "true")) or (("table1"."t1cola1") FILTER "sys"."like"(clob
"%a%", clob "", boolean(1) "true"))) or (("table1"."t1colb1") FILTER
"sys"."like"(clob "%a%", clob "", boolean(1) "true"))) or
(("table1"."t1cola11") FILTER "sys"."like"(clob "%business%", clob "",
boolean(1) "true"))) or (("table1"."t1colc91") >= (timestamp(7) "2016-03-21
05:00:00.000000"))) or (("table1"."t1cola101") = (tinyint(1) "1"))) or
(("table1"."t1cola12") FILTER "sys"."like"(clob "%Vijay%", clob "", boolean(1)
"true"))) or (("table2"."t2cola1") ! FILTER "sys"."like"(clob "%gmail%", clob
"", boolean(1) "true"), ("table2"."t2cola1") ! FILTER "sys"."like"(clob
"%yahoo%", clob "", boolean(1) "true"))) or (("table2"."t2cola1") FILTER
"sys"."like"(clob "%efequitygroup.com%", clob "", boolean(1) "true"))) or
(("table4"."t4cola1") = (clob "Customer"))) or (("table4"."t4cola2") ! * =
(clob NULL))) or (("table2"."t2cola81") >= (dat
e "2009-08-31"))) or (((("table5"."t5cola1") = (clob "BAT")) or
(("table5"."t5cola2") FILTER "sys"."like"(clob "%AUSTRALIA%", clob "",
boolean(1) "true"))) or (("table5"."t5cola2") FILTER "sys"."like"(clob
"%Monet%", clob "", boolean(1) "true"), ("table5"."t5cola3") = (clob
"Facebook"), ("table5"."t5cola5") = (clob "new"), ("table5"."t5cola81") > (date
"2015-07-30")))) or (((("table10"."t10cola1") != (clob "Completed"),
("table9"."t9cola1") = (clob "Tasks"), ("table9"."t9cola91") >= (timestamp(7)
"2012-01-01 04:32:27.000000"), ("table10"."t10cola91") <= (timestamp(7)
"2013-01-01 04:32:27.000000")) or (("table9"."t9cola1") = (clob "Events"),
(timestamp(7) "2012-01-01 04:32:27.000000") <= ("table11"."t11cola91") <=
(timestamp(7) "2013-01-01 04:32:27.000000"))) or (("table9"."t9cola1") = (clob
"Calls"), (timestamp(7) "2012-01-01 04:32:27.000000") <=
("table10"."t10cola91") <= (timestamp(7) "2013-01-01 04:32:27.000000"))),
("table1"."t1cold111") in (bigint(54) "15842000014793046", bigin
t(54) "15842000017701488", bigint(54) "15842000000024019", bigint(54)
"15842000000074007", bigint(54) "15842000009358096", bigint(54)
"15842000010487625", bigint(54) "15842000006731919", bigint(54)
"15842000002590112", bigint(54) "15842000000019001", bigint(54)
"15842000014923682", bigint(54) "15842000027547249")) or
(("table12"."t12cola1") in (clob[bigint(54) "15842000280111951"] NOT NULL,
clob[bigint(54) "15842000280163015"] NOT NULL)) ]
| ) [ "table1"."t1pkcol" NOT NULL HASHCOL , "table1"."t1cola82",
"table2"."t2cola10", "table1"."t1cola1", "table1"."t1cola91", "a1"."t3cola1" ]
[ "table2"."t2cola82" NULLS LAST ]
) [ bigint(64) "10", bigint(64) "0" ]
diff --git
a/sql/test/BugTracker-2017/Tests/sqlitelogictest-aggregation-having-avg.Bug-6428.test
b/sql/test/BugTracker-2017/Tests/sqlitelogictest-aggregation-having-avg.Bug-6428.test
---
a/sql/test/BugTracker-2017/Tests/sqlitelogictest-aggregation-having-avg.Bug-6428.test
+++
b/sql/test/BugTracker-2017/Tests/sqlitelogictest-aggregation-having-avg.Bug-6428.test
@@ -14,10 +14,10 @@ project (
| | | group by (
| | | | select (
| | | | | table("sys"."tab0") [ "tab0"."col0" as "cor0"."col0", "tab0"."col1"
as "cor0"."col1" ]
-| | | | ) [ ("cor0"."col0") * = (int(32) "NULL") ]
+| | | | ) [ ("cor0"."col0") * = (int(32) NULL) ]
| | | ) [ "cor0"."col1", "cor0"."col0" ] [ "cor0"."col1", "cor0"."col0" ]
| | ) [ "cor0"."col1", "cor0"."col0" ] [ "cor0"."col1", "cor0"."col0",
"sys"."avg" no nil ("cor0"."col0") as "%1"."%1" ]
-| ) [ ("sys"."sql_add"(double(53)["sys"."sql_neg"("cor0"."col1")], "%1"."%1"))
! * = (double(53) "NULL") ]
+| ) [ ("sys"."sql_add"(double(53)["sys"."sql_neg"("cor0"."col1")], "%1"."%1"))
! * = (double(53) NULL) ]
) [ "sys"."sql_neg"("cor0"."col0") as "col1" ]
statement ok
diff --git a/sql/test/FeatureRequests/Tests/All
b/sql/test/FeatureRequests/Tests/All
--- a/sql/test/FeatureRequests/Tests/All
+++ b/sql/test/FeatureRequests/Tests/All
@@ -5,6 +5,7 @@ foreign_key_outer_join_dead_code_elimina
foreign_key_outer_join_dead_code_elimination-plan-1join-view
foreign_key_outer_join_dead_code_elimination-plan-2join-query
foreign_key_outer_join_dead_code_elimination-plan-2join-view
+foreign_key_outer_join_dead_code_elimination-plan-3join-query
foreign_key_outer_join_dead_code_elimination-explain-0join-query
foreign_key_outer_join_dead_code_elimination-explain-0join-view
foreign_key_outer_join_dead_code_elimination-explain-1join-query
diff --git
a/sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-query.test
b/sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-query.test
---
a/sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-query.test
+++
b/sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-query.test
@@ -104,26 +104,6 @@ project (
) [ "fk"."id" HASHCOL , "pk2"."v2" ] [ "fk"."id" ASC HASHCOL ]
query T nosort
- plan select count(*) from pk1 join fk on fk.fk1 = pk1.pk1
-----
-project (
-| group by (
-| | select (
-| | | table("sys"."fk") [ "fk"."%fk_fk1_fkey" JOINIDX "sys"."fk"."fk_fk1_fkey"
]
-| | ) [ ("fk"."%fk_fk1_fkey") ! * = (oid(63) "NULL") ]
-| ) [ ] [ "sys"."count"() NOT NULL as "%1"."%1" ]
-) [ "%1"."%1" NOT NULL ]
-
-query T nosort
- plan select id from pk1 join fk on fk.fk1 = pk1.pk1 order by id
-----
-project (
-| select (
-| | table("sys"."fk") [ "fk"."id" NOT NULL UNIQUE HASHCOL ,
"fk"."%fk_fk1_fkey" JOINIDX "sys"."fk"."fk_fk1_fkey" ]
-| ) [ ("fk"."%fk_fk1_fkey") ! * = (oid(63) "NULL") ]
-) [ "fk"."id" NOT NULL HASHCOL ] [ "fk"."id" ASC NOT NULL HASHCOL ]
-
-query T nosort
plan select id , v1 from pk1 join fk on fk.fk1 = pk1.pk1 order by id
----
project (
diff --git
a/sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-query.test
b/sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-query.test
---
a/sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-query.test
+++
b/sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-query.test
@@ -112,51 +112,6 @@ project (
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list