Changeset: a6c482ef248c for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a6c482ef248c Modified Files: sql/backends/monet5/sql_gencode.c Branch: arrays Log Message:
fixing input of subselction in non-dimensions in more places + returing two outputs when having subselect on non-dimensional column diffs (58 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 @@ -1315,6 +1315,7 @@ static int char nme[SMALLBUFSIZ]; int uval = -1; + int outputsNum = 1; //I will use this when having an array if ((l = _dumpstmt(sql, mb, s->op1)) < 0) return -1; @@ -1464,6 +1465,8 @@ static int q = pushReturn(mb, q, newTmpVariable(mb, newBatType(TYPE_oid, TYPE_oid))); q = pushArgument(mb, q, l); */ + //two outputs + outputsNum = 2; } else q = pushArgument(mb, q, l); @@ -1486,11 +1489,11 @@ static int case cmp_gt: case cmp_gte: { q = newStmt2(mb, algebraRef, cmd); - if(s->op1->type == st_dimension) { //selection over a dimension, two outputs - snprintf(nme, SMALLBUFSIZ, "Y_%d", l); - uval = findVariable(mb, nme); - - assert(uval >=0); +//NOT NEEDED if(s->op1->type == st_dimension) { //selection over a dimension, two outputs + snprintf(nme, SMALLBUFSIZ, "Y_%d", l); + uval = findVariable(mb, nme); + + if(uval >=0) { setVarType(mb, getArg(q, 0), TYPE_ptr); setVarUDFtype(mb, getArg(q, 0)); @@ -1502,7 +1505,9 @@ static int setVarUDFtype(mb, getArg(q, 0)); q = pushReturn(mb, q, newTmpVariable(mb, newBatType(TYPE_oid, TYPE_oid))); q = pushArgument(mb, q, l); -*/ } else +*/ //two outputs + outputsNum = 2; + } else q = pushArgument(mb, q, l); if(sub > 0) { //candidates @@ -1547,7 +1552,8 @@ static int } if (q) { s->nr = getDestVar(q); - if(s->op1->type == st_dimension /*NOT NEEDED || (s->op1->type == st_join && s->op1->op2->type == st_bat && isArray(s->op1->op2->op4.cval->t))*/) { + // if(s->op1->type == st_dimension /*NOT NEEDED || (s->op1->type == st_join && s->op1->op2->type == st_bat && isArray(s->op1->op2->op4.cval->t))*/) { + if(outputsNum == 2) { /* rename second result */ renameVariable(mb, getArg(q, 1), "Y_%d", s->nr); } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list