Changeset: c9345badfff8 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c9345badfff8 Modified Files: clients/Tests/exports.stable.out clients/Tests/malcheck.stable.out clients/mapiclient/dump.c common/stream/stream.c monetdb5/extras/mal_optimizer_template/opt_sql_append.c monetdb5/extras/mal_optimizer_template/opt_sql_append.h monetdb5/modules/atoms/batxml.c monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/bat5.c monetdb5/modules/kernel/batcolor.c monetdb5/modules/kernel/batmmath.c monetdb5/modules/kernel/batstr.c monetdb5/modules/kernel/microbenchmark.c monetdb5/modules/kernel/status.c monetdb5/modules/mal/bbp.c monetdb5/modules/mal/clients.c monetdb5/modules/mal/inspect.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/mdb.c monetdb5/modules/mal/pcre.c monetdb5/modules/mal/zorder.c monetdb5/optimizer/opt_aliases.h monetdb5/optimizer/opt_candidates.h monetdb5/optimizer/opt_coercion.h monetdb5/optimizer/opt_commonTerms.c monetdb5/optimizer/opt_commonTerms.h monetdb5/optimizer/opt_constants.c monetdb5/optimizer/opt_constants.h monetdb5/optimizer/opt_costModel.h monetdb5/optimizer/opt_dataflow.c monetdb5/optimizer/opt_dataflow.h monetdb5/optimizer/opt_deadcode.c monetdb5/optimizer/opt_deadcode.h monetdb5/optimizer/opt_evaluate.c monetdb5/optimizer/opt_evaluate.h monetdb5/optimizer/opt_factorize.h monetdb5/optimizer/opt_garbageCollector.c monetdb5/optimizer/opt_garbageCollector.h monetdb5/optimizer/opt_generator.h monetdb5/optimizer/opt_inline.c monetdb5/optimizer/opt_inline.h monetdb5/optimizer/opt_json.h monetdb5/optimizer/opt_macro.h monetdb5/optimizer/opt_matpack.h monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_mergetable.h monetdb5/optimizer/opt_mitosis.c monetdb5/optimizer/opt_mitosis.h monetdb5/optimizer/opt_multiplex.c monetdb5/optimizer/opt_multiplex.h monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_profiler.h monetdb5/optimizer/opt_projectionpath.c monetdb5/optimizer/opt_projectionpath.h monetdb5/optimizer/opt_pushselect.c monetdb5/optimizer/opt_pushselect.h monetdb5/optimizer/opt_querylog.h monetdb5/optimizer/opt_reduce.h monetdb5/optimizer/opt_remap.c monetdb5/optimizer/opt_remap.h monetdb5/optimizer/opt_remoteQueries.c monetdb5/optimizer/opt_remoteQueries.h monetdb5/optimizer/opt_reorder.c monetdb5/optimizer/opt_reorder.h monetdb5/optimizer/opt_support.c monetdb5/optimizer/opt_support.h monetdb5/optimizer/opt_volcano.h sql/backends/monet5/sql.c sql/backends/monet5/sql_cast_impl_down_from_int.h sql/backends/monet5/sql_cast_impl_up_to_flt.h sql/backends/monet5/sql_cast_impl_up_to_int.h sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_rank.c sql/backends/monet5/sql_scenario.c sql/backends/monet5/sql_user.c sql/server/rel_psm.c sql/server/sql_mvc.c sql/storage/bat/bat_storage.c sql/storage/store.c Branch: sfcgal Log Message:
Merge with default diffs (truncated from 3053 to 300 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -1567,7 +1567,6 @@ int OPTreduceImplementation(Client cntxt int OPTremapImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); int OPTremoteQueriesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); int OPTreorderImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); -str OPTsetDebugStr(void *ret, str *nme); int OPTvolcanoImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str OPTwrapper(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str PCREilike2(bit *ret, const str *s, const str *pat); @@ -2312,7 +2311,6 @@ str openRef; int open_block_stream(Stream *S, Stream *is); str open_block_streamwrap(Stream *S, Stream *is); str operatorName(int i); -lng optDebug; str optimizeMALBlock(Client cntxt, MalBlkPtr mb); str optimizerCheck(Client cntxt, MalBlkPtr mb, str name, int actions, lng usec); int optimizerIsApplied(MalBlkPtr mb, str name); @@ -2388,7 +2386,6 @@ str refineRef; str registerRef; str remapRef; str remoteRef; -void removeDataflow(MalBlkPtr mb); void removeInstruction(MalBlkPtr mb, InstrPtr p); void removeInstructionBlock(MalBlkPtr mb, int pc, int cnt); void renameVariable(MalBlkPtr mb, int i, str pattern, int newid); diff --git a/clients/Tests/malcheck.stable.out b/clients/Tests/malcheck.stable.out --- a/clients/Tests/malcheck.stable.out +++ b/clients/Tests/malcheck.stable.out @@ -5,6 +5,7 @@ stdout of test 'malcheck` in directory ' # 15:15:51 > "./malcheck.sh" "malcheck" # 15:15:51 > +OPTsetDebugStr: missing for MAL command mdb.traceOptimizer in monetdb5/optimizer/optimizer.mal # 15:16:26 > # 15:16:26 > "Done." diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c --- a/clients/mapiclient/dump.c +++ b/clients/mapiclient/dump.c @@ -1557,7 +1557,7 @@ dump_database(Mapi mid, stream *toConsol "t.id = tr.table_id" ") " "SELECT sname, query FROM vft ORDER BY id"; - char *sname; + char *sname = NULL; char *curschema = NULL; MapiHdl hdl; int create_hash_func = 0; @@ -2028,7 +2028,8 @@ dump_database(Mapi mid, stream *toConsol /* finally commit the whole transaction */ if (!describe) mnstr_printf(toConsole, "COMMIT;\n"); - + if (sname) + free(sname); return rc; bailout: @@ -2042,6 +2043,8 @@ dump_database(Mapi mid, stream *toConsol mapi_explain(mid, stderr); bailout2: + if (sname) + free(sname); if (curschema) free(curschema); hdl = mapi_query(mid, end); diff --git a/common/stream/stream.c b/common/stream/stream.c --- a/common/stream/stream.c +++ b/common/stream/stream.c @@ -776,6 +776,14 @@ file_close(stream *s) } static void +file_destroy(stream *s) +{ + file_close(s); + destroy(s); +} + + +static void file_clrerr(stream *s) { FILE *fp = (FILE *) s->stream_data.p; @@ -918,6 +926,7 @@ open_stream(const char *filename, const s->read = file_read; s->write = file_write; s->close = file_close; + s->destroy = file_destroy; s->clrerr = file_clrerr; s->flush = file_flush; s->fsync = file_fsync; @@ -2872,6 +2881,7 @@ file_stream(const char *name) s->read = file_read; s->write = file_write; s->close = file_close; + s->destroy = file_destroy; s->flush = file_flush; s->fsync = file_fsync; s->fgetpos = file_fgetpos; @@ -3229,12 +3239,20 @@ ic_close(stream *s) ic_flush(s); iconv_close(ic->cd); mnstr_close(ic->s); + mnstr_destroy(ic->s); free(s->stream_data.p); s->stream_data.p = NULL; } } static void +ic_destroy(stream *s) +{ + ic_close(s); + destroy(s); +} + +static void ic_update_timeout(stream *s) { struct icstream *ic = (struct icstream *) s->stream_data.p; @@ -3280,6 +3298,7 @@ ic_open(iconv_t cd, stream *ss, const ch s->read = ic_read; s->write = ic_write; s->close = ic_close; + s->destroy = ic_destroy; s->clrerr = ic_clrerr; s->flush = ic_flush; s->update_timeout = ic_update_timeout; diff --git a/monetdb5/extras/mal_optimizer_template/opt_sql_append.c b/monetdb5/extras/mal_optimizer_template/opt_sql_append.c --- a/monetdb5/extras/mal_optimizer_template/opt_sql_append.c +++ b/monetdb5/extras/mal_optimizer_template/opt_sql_append.c @@ -81,6 +81,7 @@ OPTsql_appendImplementation(Client cntxt InstrPtr *old = NULL; int i, limit, slimit, actions = 0; + (void) cntxt; (void) pci; /* Tell compilers that we know that we do not */ (void) stk; /* use these function parameters, here. */ @@ -227,9 +228,9 @@ OPTsql_appendImplementation(Client cntxt GDKfree(old); /* for statistics we return if/how many patches have been made */ - DEBUGoptimizers - mnstr_printf(cntxt->fdout,"#opt_sql_append: %d statements added\n", - actions); +#ifdef DEBUG_OPT_OPTIMIZERS + mnstr_printf(cntxt->fdout,"#opt_sql_append: %d statements added\n", actions); +#endif return actions; } @@ -258,9 +259,12 @@ str OPTsql_append(Client cntxt, MalBlkPt lng t,clk= GDKusec(); int actions = 0; + (void) cntxt; if( p ) removeInstruction(mb, p); - OPTDEBUGsql_append mnstr_printf(cntxt->fdout,"=APPLY OPTIMIZER sql_append\n"); +#ifdef DEBUG_OPT_OPTIMIZERS + mnstr_printf(cntxt->fdout,"=APPLY OPTIMIZER sql_append\n"); +#endif if( p && p->argc > 1 ){ if( getArgType(mb,p,1) != TYPE_str || getArgType(mb,p,2) != TYPE_str || @@ -293,12 +297,11 @@ str OPTsql_append(Client cntxt, MalBlkPt } actions= OPTsql_appendImplementation(cntxt, mb,stk,p); msg= optimizerCheck(cntxt, mb, "optimizer.sql_append", actions, t=(GDKusec() - clk)); - OPTDEBUGsql_append { +#ifdef DEBUG_OPT_OPTIMIZERS mnstr_printf(cntxt->fdout,"=FINISHED sql_append %d\n",actions); printFunction(cntxt->fdout,mb,0,LIST_MAL_ALL ); - } - DEBUGoptimizers mnstr_printf(cntxt->fdout,"#opt_reduce: " LLFMT " ms\n",t); +#endif QOTupdateStatistics("sql_append",actions,t); addtoMalBlkHistory(mb); return msg; diff --git a/monetdb5/extras/mal_optimizer_template/opt_sql_append.h b/monetdb5/extras/mal_optimizer_template/opt_sql_append.h --- a/monetdb5/extras/mal_optimizer_template/opt_sql_append.h +++ b/monetdb5/extras/mal_optimizer_template/opt_sql_append.h @@ -23,7 +23,4 @@ opt_sql_append_export str OPTsql_append(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); -#define DEBUG_OPT_SQL_APPEND 61 -#define OPTDEBUGsql_append if (optDebug & ((lng)1 << DEBUG_OPT_SQL_APPEND)) - #endif /* _OPT_SQL_APPEND_ */ diff --git a/monetdb5/modules/atoms/batxml.c b/monetdb5/modules/atoms/batxml.c --- a/monetdb5/modules/atoms/batxml.c +++ b/monetdb5/modules/atoms/batxml.c @@ -74,8 +74,6 @@ mal_export str AGGRsubxml(bat *retval, c #define finalizeResult(X,Y,Z) \ do { \ BATsetcount((Y), (Y)->batCount); \ - if (!((Y)->batDirty & 2)) \ - BATsetaccess((Y), BAT_READ); \ *(X) = (Y)->batCacheid; \ BBPkeepref(*(X)); \ BBPunfix((Z)->batCacheid); \ diff --git a/monetdb5/modules/kernel/algebra.c b/monetdb5/modules/kernel/algebra.c --- a/monetdb5/modules/kernel/algebra.c +++ b/monetdb5/modules/kernel/algebra.c @@ -202,7 +202,6 @@ ALGgroupby(bat *res, const bat *gids, co throw(MAL, "algebra.groupby",GDK_EXCEPTION); } if( bn){ - if (!(bn->batDirty&2)) BATsetaccess(bn, BAT_READ); *res = bn->batCacheid; BBPkeepref(bn->batCacheid); } @@ -261,7 +260,6 @@ ALGsubselect2(bat *result, const bat *bi BBPunfix(s->batCacheid); if (bn == NULL) throw(MAL, "algebra.subselect", GDK_EXCEPTION); - if (!(bn->batDirty&2)) BATsetaccess(bn, BAT_READ); *result = bn->batCacheid; BBPkeepref(bn->batCacheid); return MAL_SUCCEED; @@ -292,7 +290,6 @@ ALGthetasubselect2(bat *result, const ba BBPunfix(s->batCacheid); if (bn == NULL) throw(MAL, "algebra.subselect", GDK_EXCEPTION); - if (!(bn->batDirty&2)) BATsetaccess(bn, BAT_READ); *result = bn->batCacheid; BBPkeepref(bn->batCacheid); return MAL_SUCCEED; @@ -323,7 +320,6 @@ ALGselectNotNil(bat *result, const bat * } BBPunfix(b->batCacheid); if (bn) { - if (!(bn->batDirty&2)) BATsetaccess(bn, BAT_READ); *result = bn->batCacheid; BBPkeepref(*result); return MAL_SUCCEED; @@ -404,13 +400,9 @@ do_join(bat *r1, bat *r2, const bat *lid result2 = NULL; } *r1 = result1->batCacheid; - if (!(result1->batDirty&2)) - BATsetaccess(result1, BAT_READ); BBPkeepref(*r1); if (r2) { *r2 = result2->batCacheid; - if (!(result2->batDirty&2)) - BATsetaccess(result2, BAT_READ); BBPkeepref(*r2); } BBPunfix(left->batCacheid); @@ -593,8 +585,6 @@ ALGunary(bat *result, const bat *bid, BA BBPunfix(b->batCacheid); if (bn == NULL) throw(MAL, name, GDK_EXCEPTION); - if (!(bn->batDirty&2)) - BATsetaccess(bn, BAT_READ); *result = bn->batCacheid; BBPkeepref(*result); return MAL_SUCCEED; @@ -617,8 +607,6 @@ ALGbinary(bat *result, const bat *lid, c BBPunfix(right->batCacheid); if (bn == NULL) throw(MAL, name, GDK_EXCEPTION); - if (!(bn->batDirty&2)) - BATsetaccess(bn, BAT_READ); *result = bn->batCacheid; BBPkeepref(*result); return MAL_SUCCEED; @@ -654,8 +642,6 @@ ALGsubunique2(bat *result, const bat *bi BBPunfix(s->batCacheid); if (bn == NULL) throw(MAL, "algebra.subunique", GDK_EXCEPTION); - if (!(bn->batDirty & 2)) - BATsetaccess(bn, BAT_READ); *result = bn->batCacheid; BBPkeepref(*result); return MAL_SUCCEED; @@ -837,7 +823,6 @@ ALGtmark(bat *result, const bat *bid, co bn = BATdense(b->hseqbase, *base, BATcount(b)); if (bn != NULL) { BBPunfix(b->batCacheid); - if (!(bn->batDirty&2)) BATsetaccess(bn, BAT_READ); *result = bn->batCacheid; BBPkeepref(*result); return MAL_SUCCEED; @@ -880,7 +865,6 @@ ALGslice(bat *ret, const bat *bid, const throw(MAL, "algebra.slice", RUNTIME_OBJECT_MISSING); } if (slice(&bn, b, *start, *end) == GDK_SUCCEED) { - if (!(bn->batDirty&2)) BATsetaccess(bn, BAT_READ); *ret = bn->batCacheid; BBPkeepref(*ret); BBPunfix(b->batCacheid); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list