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

Reply via email to