Changeset: 07d638d6680a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=07d638d6680a
Modified Files:
        sql/server/rel_optimizer.c
Branch: Jul2015
Log Message:

Avoid crash.

CREATE TABLE foo (startdate DATE, enddate DATE);
CREATE TABLE bar (id INTEGER);

SELECT COUNT(*)
FROM foo AS A
INNER JOIN foo AS B
ON (
   (B.startdate = B.enddate
      AND (B.startdate = A.startdate OR B.startdate = A.enddate)
   ) OR (
      A.startdate < B.enddate AND A.enddate > B.startdate
   )
)
WHERE EXISTS (
   SELECT TRUE
   FROM bar
   WHERE A.startdate > '2010-10-01'
)
AND A.startdate >= B.startdate;


diffs (12 lines):

diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -3511,7 +3511,7 @@ rel_push_select_down(int *changes, mvc *
                                ne = exp_push_down_prj(sql, e, r, pl);
 
                                /* can we move it down */
-                               if (ne && ne != e) {
+                               if (ne && ne != e && pl->exps) {
                                        rel_select_add_exp(sql->sa, pl, ne);
                                        (*changes)++;
                                } else {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to