Changeset: 2a2f8910191d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2a2f8910191d
Modified Files:
        sql/server/rel_select.c
Branch: literal_features
Log Message:

if union operator in plan, invalidate pk_uk_alignment


diffs (30 lines):

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
@@ -1219,6 +1219,13 @@ set_dependent_( sql_rel *r)
                set_dependent(r);
 }
 
+static
+sql_rel* find_union(visitor *v, sql_rel *rel) {
+       if (rel->op == op_union)
+               v->data = rel;
+       return rel;
+}
+
 static sql_exp *
 rel_column_ref(sql_query *query, sql_rel **rel, symbol *column_r, int f)
 {
@@ -1448,6 +1455,12 @@ rel_column_ref(sql_query *query, sql_rel
                                                                
check_pk_with_uk = true;
                                                }
                                        }
+                                       if (check_pk_with_uk) {
+                                               visitor v = {.sql=sql};
+                                               rel_visitor_topdown(&v, inner, 
&find_union);
+                                               if (v.data)
+                                                       check_pk_with_uk = 
false;
+                                       }
                                }
 
                                if (check_pk_with_uk) {
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to