# HG changeset patch # User Masood Mortazavi # Date 1364926631 25200 # Branch Feb2013 # Node ID 0be440d7bf941c9d89ad9555670d94f5451c6c87 # Parent fc0c9b319d2275215c283a7ece1d389e55b43217 Fang Cao's fix to MAL code-gen which helps create and consume usable MAL select on union views, and more diff -r fc0c9b319d22 -r 0be440d7bf94 sql/backends/monet5/sql_gencode.c --- a/sql/backends/monet5/sql_gencode.c Wed Feb 27 15:26:55 2013 +0100 +++ b/sql/backends/monet5/sql_gencode.c Tue Apr 02 11:17:11 2013 -0700 @@ -805,12 +805,15 @@ int ht = TYPE_oid; int tt = s->op4.cval->type.type->localtype; sql_table *t = s->op4.cval->t; + int i; q = newStmt2(mb, sqlRef, bindRef); if (s->flag == RD_UPD) { q = pushReturn(mb, q, newTmpVariable(mb, newBatType(ht, tt))); } else setVarType(mb, getArg(q, 0), newBatType(ht, tt)); + for (i = 0; i < q->retc; i++) + setVarUDFtype(mb,getArg(q,i)); q = pushArgument(mb, q, sql->mvc_var); q = pushSchema(mb, q, t); q = pushStr(mb, q, t->base.name); @@ -829,9 +832,12 @@ case st_dbat:{ int ht = TYPE_oid; sql_table *t = s->op4.tval; + int i; q = newStmt2(mb, sqlRef, binddbatRef); setVarType(mb, getArg(q,0), newBatType(ht,TYPE_oid)); + for (i = 0; i < q->retc; i++) + setVarUDFtype(mb,getArg(q,i)); q = pushArgument(mb, q, sql->mvc_var); q = pushSchema(mb, q, t); q = pushStr(mb, q, t->base.name); @@ -843,12 +849,15 @@ int ht = TYPE_oid; int tt = tail_type(s)->type->localtype; sql_table *t = s->op4.idxval->t; + int i; q = newStmt2(mb, sqlRef, bindidxRef); if (s->flag == RD_UPD) { q = pushReturn(mb, q, newTmpVariable(mb, newBatType(ht, tt))); } else setVarType(mb, getArg(q, 0), newBatType(ht, tt)); + for (i = 0; i < q->retc; i++) + setVarUDFtype(mb,getArg(q,i)); q = pushArgument(mb, q, sql->mvc_var); q = pushSchema(mb, q, t); q = pushStr(mb, q, t->base.name);