Changeset: f3a79dc97500 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f3a79dc97500 Modified Files: sql/src/backends/monet5/sql.mx Branch: default Log Message:
Accept the changes from others diffs (194 lines): diff -r c50b84ac5a7c -r f3a79dc97500 MonetDB5/src/optimizer/opt_mapreduce.mx --- a/MonetDB5/src/optimizer/opt_mapreduce.mx Thu May 20 21:17:57 2010 +0200 +++ b/MonetDB5/src/optimizer/opt_mapreduce.mx Thu May 20 21:19:05 2010 +0200 @@ -129,8 +129,6 @@ #include "mal_interpreter.h" #include "remote.h" -/* #define _DEBUG_OPT_MAPREDUCE*/ - @- The work distribution assumes that we know at compile time the number of nodes participating in the cloud setting. @@ -328,7 +326,7 @@ getArg(p, 0) = lcol->val1; } -#ifdef _DEBUG_OPT_MAPREDUCE +#if defined(_DEBUG_OPT_MAPREDUCE) && _DEBUG_OPT_MAPREDUCE == 0 chkProgram(cntxt->nspace, mb); printFunction(cntxt->fdout, mb, 0, LIST_MAL_STMT); #endif @@ -350,9 +348,10 @@ if (stk->stack == NULL) { stk->len = 10; stk->cur = 0; - stk->stack = malloc(sizeof(int) * stk->len); + stk->stack = GDKmalloc(sizeof(int) * stk->len); } else if (stk->cur == stk->len) { - stk->stack = realloc(stk->stack, sizeof(int) * stk->len * 2); + stk->len *= 2; + stk->stack = GDKrealloc(stk->stack, sizeof(int) * stk->len); } assert(stk->stack); @@ -385,7 +384,7 @@ trackstack_destroy(struct stack *stk) { if (!trackstack_isempty(stk)) { - free(stk->stack); + GDKfree(stk->stack); stk->stack = NULL; } } @@ -407,11 +406,12 @@ Symbol new; mapcol *col, *lastcol; struct stack tracker = { NULL, 0, 0 }; + char hadBinds = 0; (void)stk; /* useless, is NULL */ (void)pc; -#ifdef _DEBUG_OPT_MAPREDUCE +#if defined(_DEBUG_OPT_MAPREDUCE) && _DEBUG_OPT_MAPREDUCE == 0 printFunction(cntxt->fdout, mb, 0, LIST_MAL_ALL); #endif @@ -471,28 +471,18 @@ if (*(int *)VALget(&getVar(mc, getArg(p, 5))->value) == 0) { str schema = VALget(&getVar(mc, getArg(p, 2))->value); /* check if this is a column from a mapreduce schema (mr_*) */ - if (strncmp(schema, "mr_", 3) != 0) { - freeSymbol(new); - GDKfree(mb->stmt); - mb->stmt = orig; - mb->stop = limit; - GDKfree(old); - return 0; - } + if (strncmp(schema, "mr_", 3) != 0) + break; + /* and that we don't mix 'n' match mapreduce schemas */ if (mrcluster[0] == '\0') { snprintf(mrcluster, sizeof(mrcluster), "%s", schema + 3); - } else { - if (strcmp(mrcluster, schema + 3) != 0) { - freeSymbol(new); - GDKfree(mb->stmt); - mb->stmt = orig; - mb->stop = limit; - GDKfree(old); - return 0; - } + } else if (strcmp(mrcluster, schema + 3) != 0) { + break; } + + hadBinds = 1; } /* start of sql.bind, kdiff, kunion, etc. sequence */ @@ -576,8 +566,7 @@ case SINGLE: copy = LEAVE; pushInstruction(mc, p); - freeInstruction(orig[i]); - orig[i] = NULL; + orig[i]->token = NOOPsymbol; break; case STICK: case DUP: @@ -588,11 +577,18 @@ } trackstack_destroy(&tracker); + if (hadBinds == 0) { + /* FIXME: how to free "new"? */ + GDKfree(mb->stmt); + mb->stmt = orig; + mb->stop = limit; + GDKfree(old); + return 0; + } + copy = STICK; for (i = 0; i < limit; i++) { /* phase 2 */ p = orig[i]; - if (p == NULL) - continue; if (p == (InstrPtr)1) { newComment(mb, "{ map"); @@ -603,6 +599,13 @@ sig = pushReturn(mc, sig, lastcol->val1); MRdistributework(cntxt, mb, col, sig, mrcluster); newComment(mb, "} map"); + /* bogus instruction to be able to set to NOOP */ + orig[i] = newInstruction(mb, ASSIGNsymbol); + setModuleId(orig[i], ioRef); + setFunctionId(orig[i], printRef); + orig[i] = pushReturn(mb, orig[i], 0); + orig[i] = pushArgument(mb, orig[i], 0); + orig[i]->token = NOOPsymbol; continue; } @@ -744,6 +747,7 @@ } \ } FINDANDFIXBATNEW(p, 2); + setArgType(mb, p, 0, lastcol->val3type); q = getArg(p, 1); } } @@ -801,7 +805,6 @@ } } - #if defined(_DEBUG_OPT_MAPREDUCE) && _DEBUG_OPT_MAPREDUCE == 10 stream_printf(cntxt->fdout, "MAP program\n"); chkProgram(cntxt->nspace, mc); diff -r c50b84ac5a7c -r f3a79dc97500 buildtools/conf/MonetDB.m4 --- a/buildtools/conf/MonetDB.m4 Thu May 20 21:17:57 2010 +0200 +++ b/buildtools/conf/MonetDB.m4 Thu May 20 21:19:05 2010 +0200 @@ -811,7 +811,7 @@ dnl generates "X_CFLAGS =" in the generated Makefile. NO_X_CFLAGS='X_CFLAGS' ;; - *-solaris*|*-darwin*|*-aix*) + *-solaris*|*-aix*) dnl In some cases, there is a (possibly) uninitialized dnl variable in bison.simple ... |-( X_CFLAGS="$X_CFLAGS -Wno-uninitialized" diff -r c50b84ac5a7c -r f3a79dc97500 pathfinder/compiler/algebra-m5sql/msaprint.c --- a/pathfinder/compiler/algebra-m5sql/msaprint.c Thu May 20 21:17:57 2010 +0200 +++ b/pathfinder/compiler/algebra-m5sql/msaprint.c Thu May 20 21:19:05 2010 +0200 @@ -155,10 +155,10 @@ switch (atom.type) { case aat_nat: - sprintf(ret, "%i", atom.val.nat_); + sprintf(ret, "%u", atom.val.nat_); break; case aat_int: - sprintf(ret, "%lli", atom.val.int_); + sprintf(ret, LLFMT, atom.val.int_); break; case aat_str: if (strlen(atom.val.str) >= 10) { diff -r c50b84ac5a7c -r f3a79dc97500 pathfinder/compiler/include/msa.h --- a/pathfinder/compiler/include/msa.h Thu May 20 21:17:57 2010 +0200 +++ b/pathfinder/compiler/include/msa.h Thu May 20 21:19:05 2010 +0200 @@ -308,7 +308,7 @@ /* --------------- Constructor stubs for operators --------------- */ /* Constructor for nil node operator */ -PFmsa_op_t * PFmsa_op_nil_node (); +PFmsa_op_t * PFmsa_op_nil_node (void); /* Contructor for serialize operator */ PFmsa_op_t * PFmsa_op_serialize_rel (PFmsa_op_t *DAG, PFmsa_op_t *side_effects, _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list