Changeset: 7cdb7f885f02 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7cdb7f885f02
Modified Files:
        sql/backends/monet5/sql_gencode.c
Branch: default
Log Message:

fix problem with like joins


diffs (45 lines):

diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -826,6 +826,11 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st
                                char *op = "=";
                                int k;
                                int j,hml,tmr,mhj,mtj;
+                               int op3 = 0;
+
+
+                               if (s->op3)
+                                       op3 = _dumpstmt(sql, mb, s->op3);
 
                                switch (s->flag) {
                                case cmp_equal:
@@ -846,6 +851,20 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st
                                case cmp_gte:
                                        op = ">=";
                                        break;
+                               case cmp_filter: {
+                                       sql_subfunc *f;
+                                       char *fname = 
s->op4.funcval->func->base.name;
+                                       
+                                       op = sql_func_imp(s->op4.funcval->func);
+                                       mod  = 
sql_func_mod(s->op4.funcval->func);
+                       
+                                       if ((!s->op3 && (f = sql_bind_func 
(sql->mvc->sa, mvc_bind_schema(sql->mvc,"sys"), fname, tail_type(s->op1), 
tail_type(s->op2), F_FUNC)) != NULL) ||
+                                            (s->op3 && (f = 
sql_bind_func3(sql->mvc->sa, mvc_bind_schema(sql->mvc,"sys"), fname, 
tail_type(s->op1), tail_type(s->op2), tail_type(s->op3), F_FUNC)) != NULL)) {
+                                               op = sql_func_imp(f->func);
+                                               mod  = sql_func_mod(f->func);
+                                       }
+                               }
+                                       break;
                                default:
                                        showException(SQL,"sql","Unknown 
operator");
                                }
@@ -889,6 +908,8 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st
                                r = getDestVar(q);
 
                                q = 
multiplex2(mb,mod,convertOperator(op),l,r,TYPE_bit);
+                               if (s->op3) 
+                                       q = pushArgument(mb, q, op3);
                                k = getDestVar(q);
 
                                q = newStmt2(mb, algebraRef, uselectRef);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to