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

pmv: handle corner case, if ranges have no value within.


diffs (38 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
@@ -1124,6 +1124,10 @@ sel_predicate** convert_all_into_in_clau
                                                sps[i]->column = sp->column;
                                                sps[i]->cmp_type = 8; /* cmp_in 
*/
                                                
+                                               
+                                               if(sps[i]->num_values < 1)
+                                                       break;
+                                               
                                                *next = *tl;
                                                for(j = 0; j < 
sps[i]->num_values; j++)
                                                {
@@ -1168,6 +1172,9 @@ sel_predicate** convert_all_into_in_clau
                                                sps[i]->column = sp->column;
                                                sps[i]->cmp_type = 8; /* cmp_in 
*/
                                                
+                                               if(sps[i]->num_values < 1)
+                                                       break;
+                                               
                                                current = il;
                                                for(j = 0; j < 
sps[i]->num_values; j++)
                                                {
@@ -7313,6 +7320,13 @@ void prepare_pmv(mvc* sql, sql_rel* ret)
        /* convert all PERPAD into IN clauses except if they are equality.*/
        sps = convert_all_into_in_clause_except_cmp_equal(list_PERPAD);
        
+       /* if ranges or in clauses have no value within */
+       for(i = 0; i < num_PERPAD; i++)
+       {
+               if(sps[i]->num_values < 1)
+                       return;
+       }
+       
        /* enumerate the pkey space into a temp table */
        is_pkey_to_be_enumerated = enumerate_and_insert_into_temp_table(sql, 
sps, num_PERPAD);
        
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to