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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list