Changeset: a7477a152716 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a7477a152716
Modified Files:
        sql/scripts/81_tracer.sql
        sql/server/rel_select.c
Branch: Jan2022
Log Message:

I am going to revert the change at 0118d1b927c7 I have no clear idea how to fix 
the crashing query


diffs (44 lines):

diff --git a/sql/scripts/81_tracer.sql b/sql/scripts/81_tracer.sql
--- a/sql/scripts/81_tracer.sql
+++ b/sql/scripts/81_tracer.sql
@@ -56,3 +56,7 @@ GRANT EXECUTE ON FUNCTION logging.compin
 
 CREATE view logging.compinfo AS SELECT * FROM logging.compinfo();
 GRANT SELECT ON logging.compinfo TO public;
+
+create or replace procedure sys.dict_compress(sname string, tname string, 
cname string) external name "dict"."compress";
+create or replace procedure sys.dict_compress(sname string, tname string, 
cname string, ordered_values bool) external name "dict"."compress";
+create or replace procedure sys.for_compress(sname string, tname string, cname 
string) external name "for"."compress";
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
@@ -1908,7 +1908,7 @@ rel_in_value_exp(sql_query *query, sql_r
        dnode *n = dl->h->next, *dn = NULL;
        sql_exp *le = NULL, *re, *e = NULL;
        list *ll = sa_list(sql->sa);
-       int is_tuple = 0;
+       int is_tuple = 0, add_select = 0;
 
        /* complex case */
        if (dl->h->type == type_list) { /* (a,b..) in (.. ) */
@@ -1958,6 +1958,7 @@ rel_in_value_exp(sql_query *query, sql_r
                                re = exp_rel_label(sql, re);
                        } else if (exp_is_rel(re)) {
                                sql_rel *r = exp_rel_get_rel(sql->sa, re);
+                               add_select = 1;
                                if (is_project(r->op) && is_project_true(r->l) 
&& list_length(r->exps) == 1)
                                        re = r->exps->h->data;
                        }
@@ -2023,8 +2024,11 @@ rel_in_value_exp(sql_query *query, sql_r
                                        return NULL;
                        }
                }
-               if (!e)
+               if (!e) {
+                       if (add_select && rel && *rel && 
!is_project((*rel)->op) && !is_select((*rel)->op))
+                               *rel = rel_select(sql->sa, *rel, NULL);
                        e = exp_in_func(sql, le, values, (sc->token == SQL_IN), 
is_tuple);
+               }
        }
        return e;
 }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to