Changeset: 91df2dab1294 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=91df2dab1294 Added Files: sql/Changelog.Feb2013 Modified Files: clients/Tests/exports.stable.out clients/mapiclient/Tests/tomograph--help.stable.err clients/mapiclient/tomograph.c clients/php/doc/generate_doc.sh clients/php/examples/query.php clients/ruby/lib/MonetDBExceptions.rb debian/rules gdk/gdk_bbp.c monetdb5/optimizer/opt_pushselect.c sql/backends/monet5/sql.mx sql/backends/monet5/sql_gencode.c sql/storage/bat/bat_storage.c sql/storage/bat/bat_utils.c sql/test/BugDay_2005-10-06_2.9.3/Tests/last_line_without_newline.SF-922390_s02.sql sql/test/BugTracker-2009/Tests/union_leak.SF-2540169.3.sql sql/test/BugTracker-2011/Tests/perl-table_info.Bug-2885.pl sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out sql/test/BugTracker-2013/Tests/php-size-limit-bug.php sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/bugs/union_all_where_1=1-bug-sf-936386.sql sql/test/mserver5-sql-readonly/Tests/mserver5-sql-readonly-table.stable.err sql/test/pg_regress/sql/update.sql sql/test/ssqq/Tests/All sql/test/ssqq/Tests/insert_query.sql.src sql/test/ssqq/Tests/insert_queue.sql.src sql/test/ssqq/Tests/insert_quser.sql.src sql/test/ssqq/Tests/ssqq.sql.src Branch: mutation Log Message:
old mal files deleted diffs (truncated from 860 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 @@ -1258,6 +1258,7 @@ str CMDbbptoStr(Client cntxt, MalBlkPtr str CMDbbptruncate(int *ret, int *bid, str *fnme); str CMDcalcavg(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDcallBAT(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str CMDcallFunction(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDcallString(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDcleanup(int *ret); str CMDclearEvent(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); @@ -1298,7 +1299,6 @@ str CMDgetDiskReads(lng *ret); str CMDgetDiskWrites(lng *ret); str CMDgetEvent(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDgetFootprint(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CMDgetMemory(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDgetPageSize(int *ret); str CMDgetSystemTime(lng *ret); str CMDgetTrace(int *res, str *ev); @@ -1320,14 +1320,9 @@ str CMDsetAllProfiler(Client cntxt, MalB str CMDsetFilterProfiler(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDsetFilterVariable(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pc); str CMDsetFootprintFlag(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CMDsetIOTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CMDsetMemoryFlag(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CMDsetMemoryTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDsetNoneProfiler(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDsetProfilerFile(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDsetProfilerStream(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CMDsetThreadTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CMDsetTimerTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDsetoid(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDstartPointProfiler(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDstartProfiler(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); @@ -1603,16 +1598,9 @@ str MDBlist3(Client cntxt, MalBlkPtr mb, str MDBlist3Detail(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str MDBlistDetail(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str MDBlistMapi(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); -str MDBsetBigfoot(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str MDBsetCatch(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); -str MDBsetCount(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str MDBsetDebug(int *ret, int *flg); str MDBsetDebugStr(int *ret, str *nme); -str MDBsetFlow(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str MDBsetIO(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str MDBsetMemory(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str MDBsetThread(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str MDBsetTimer(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str MDBsetTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str MDBsetVarTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str MDBshowFlowGraph(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); @@ -2012,16 +2000,16 @@ sht PropertyIndex(str name); str PropertyName(sht idx); prop_op_t PropertyOperator(str s); str PropertyOperatorString(prop_op_t op); -str QLOGcall(int *ret, oid *idx, lng *tick1, lng *tick2, str *arg, wrd *tuples, lng *xtime, lng *rtime, int *cpu, int *iowait, lng *space); +str QLOGcall(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); void QLOGcalls(BAT **r); void QLOGcatalog(BAT **r); -str QLOGdefine(oid *ret, oid *idx, str *q, str *pipe, lng *optimize, str *usr, lng *tick, int *mal); -str QLOGdone(int *ret); -str QLOGinit(int *ret); -str QLOGinitThreshold(int *ret, int *threshold); +str QLOGdefine(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str QLOGdisable(int *ret); +str QLOGempty(int *ret); +str QLOGenable(int *ret); +str QLOGenableThreshold(int *ret, int *threshold); int QLOGisset(void); str QLOGissetFcn(int *ret); -str QLOGreset(int *ret); str QOTclrdebugOptimizers(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str QOTdebugOptimizers(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str QOTgetStatistics(int *ret, str *nme); @@ -2030,6 +2018,7 @@ str QOTshowFlowGraph(Client cntxt, MalBl str QOTshowPlan(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); void QOTstatisticsExit(void); void QOTupdateStatistics(str nme, int prop, lng val); +QueryQueue QRYqueue; str RECYCLEdumpQPatWrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str RECYCLEdumpWrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); int RECYCLEentry(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); @@ -2251,6 +2240,10 @@ str STRsubstring(str *ret, str *s, int * str STRsubstringTail(str *ret, str *s, int *start); str STRsuffix(str *ret, str *s, int *l); str STRtostr(str *res, str *src); +str SYSMONpause(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str SYSMONqueue(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str SYSMONresume(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str SYSMONstop(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str SYScpuStatistics(int *ret, int *ret2); str SYSgdkEnv(int *ret, int *ret2); str SYSgdkThread(int *ret, int *ret2); @@ -2999,6 +2992,7 @@ str replicatorRef; void resetMalBlk(MalBlkPtr mb, int stop); void resetScenario(Client c); void resetVarName(MalBlkPtr mb, int i); +void resizeMalBlk(MalBlkPtr mb, int maxstmt, int maxvar); int resolveType(int dsttype, int srctype); str resultSetRef; int reusePolicy; @@ -3019,7 +3013,8 @@ str runScenario(Client c); int runonceProp; void runtimeProfileBegin(Client cntxt, MalBlkPtr mb, MalStkPtr stk, int stkpc, RuntimeProfile prof, int start); void runtimeProfileExit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, RuntimeProfile prof); -void runtimeProfileInit(MalBlkPtr mb, RuntimeProfile prof, int initmemory); +void runtimeProfileFinish(Client cntxt, MalBlkPtr mb); +void runtimeProfileInit(Client cntxt, MalBlkPtr mb, MalStkPtr stk); str safeguardStack(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); int safetyBarrier(InstrPtr p, InstrPtr q); int saveBox(Box box, int flag); diff --git a/clients/mapiclient/Tests/tomograph--help.stable.err b/clients/mapiclient/Tests/tomograph--help.stable.err --- a/clients/mapiclient/Tests/tomograph--help.stable.err +++ b/clients/mapiclient/Tests/tomograph--help.stable.err @@ -20,6 +20,7 @@ tomograph [options] -s | --sql=<single sql expression> -t | --trace=<tomograph trace filename> -r | --range=<starttime>-<endtime>[ms,s] + -i | --input=<profiler event file > -o | --output=<file prefix > (default 'tomograph' -b | --beat=<delay> in milliseconds (default 50) -B | --batch=<number> of combined queries diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c --- a/clients/mapiclient/tomograph.c +++ b/clients/mapiclient/tomograph.c @@ -1565,7 +1565,12 @@ static void createTomogram(void) * that the tomograph start can appear while the * system is already processing. This leads to * receiving 'done' events without matching 'start' + * + * A secondary issue is to properly count the functions + * being monitored. */ +char *currentfunction= 0; + static void update(int state, int thread, lng clkticks, lng ticks, lng memory, lng footprint, lng reads, lng writes, char *fcn, char *stmt) { int idx; @@ -1581,14 +1586,25 @@ static void update(int state, int thread return; assert(clkticks >= 0); starttime = clkticks; + } + + /* monitor top level function brackets */ + if (state == START && fcn && strncmp(fcn, "function", 8) == 0 ){ + if ( currentfunction == 0) { + currentfunction = strdup(fcn+9); + if (debug) + fprintf(stderr, "Enter function %s batch %d\n", currentfunction, batch); + } return; } - - if (state == DONE && fcn && (strncmp(fcn, "function", 8) == 0 || strncmp(fcn, "profiler.tomograph", 18) == 0)) { - if (debug) - fprintf(stderr, "Batch %d\n", batch); - if ( (strncmp(fcn, "function", 8) == 0 && batch-- > 1) || inputfile ) - return; + if (state == DONE && fcn && strncmp(fcn, "function", 8) == 0 ){ + if ( currentfunction && strcmp(currentfunction, fcn+9) == 0){ + if (debug) + fprintf(stderr, "Leave function %s batch %d\n", currentfunction, batch); + free(currentfunction); + currentfunction = 0; + } else return; + if ( batch -- > 1) return; deactivateBeat(); createTomogram(); totalclkticks = 0; /* number of clock ticks reported */ @@ -1598,6 +1614,16 @@ static void update(int state, int thread return; } + if (state == DONE && strncmp(fcn, "profiler.tomograph", 18) == 0) { + if (debug) + fprintf(stderr, "Profiler.tomograph ends %d\n", batch); + deactivateBeat(); + createTomogram(); + totalclkticks = 0; /* number of clock ticks reported */ + totalexecticks = 0; /* number of ticks reported for processing */ + return; + } + assert(clkticks >= 0); clkticks -= starttime; if (clkticks < 0) { @@ -2103,7 +2129,7 @@ main(int argc, char **argv) { int a = 1; int k = 0; - char *host = NULL; + char *host = "localhost"; int portnr = 0; char *dbname = NULL; char *uri = NULL; diff --git a/clients/php/doc/generate_doc.sh b/clients/php/doc/generate_doc.sh --- a/clients/php/doc/generate_doc.sh +++ b/clients/php/doc/generate_doc.sh @@ -17,4 +17,4 @@ doc_dir=$current_dir/$2 title="MonetDB5 PHP API" -phpdoc -ti $title -o "HTML:frames:phpedit" -f $source_code -t $doc_dir \ No newline at end of file +phpdoc -ti $title -o "HTML:frames:phpedit" -f $source_code -t $doc_dir diff --git a/clients/php/examples/query.php b/clients/php/examples/query.php --- a/clients/php/examples/query.php +++ b/clients/php/examples/query.php @@ -33,4 +33,4 @@ if (monetdb_connected($db)) { monetdb_disconnect($db); } -?> \ No newline at end of file +?> diff --git a/clients/ruby/lib/MonetDBExceptions.rb b/clients/ruby/lib/MonetDBExceptions.rb --- a/clients/ruby/lib/MonetDBExceptions.rb +++ b/clients/ruby/lib/MonetDBExceptions.rb @@ -51,5 +51,5 @@ end class MonetDBProtocolError < StandardError def initialize(e) $stderr.puts e - end -end \ No newline at end of file + end +end diff --git a/debian/rules b/debian/rules --- a/debian/rules +++ b/debian/rules @@ -48,13 +48,13 @@ override_dh_auto_configure: # currently the test suite fails override_dh_auto_test: -override_dh_auto_install: - dh_auto_install - cd clients/python2 && python setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb - cd clients/python3 && python3 setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb - override_dh_clean: dh_clean cd clients/python2 && python setup.py clean cd clients/python3 && python3 setup.py clean +override_dh_python2: + dh_python2 clients/python2 + +override_dh_python3: + dh_python3 clients/python3 diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -2167,17 +2167,18 @@ decref(bat i, int logical, int releaseSh if (lock) MT_lock_unset(&GDKswapLock(i), "BBPdecref"); - if (swap) { - int destroy = BBP_lrefs(i) == 0 && (BBP_status(i) & BBPDELETED) == 0; - - if (b && destroy) { - BBPdestroy(b); /* free memory (if loaded) and delete from disk (if transient but saved) */ - } else if (b) { + if (swap && b != NULL) { + if (BBP_lrefs(i) == 0 && (BBP_status(i) & BBPDELETED) == 0) { + /* free memory (if loaded) and delete from + * disk (if transient but saved) */ + BBPdestroy(b); + } else { BATDEBUG { mnstr_printf(GDKstdout, "#BBPdecref unload and free bat %d\n", i); } BBP_unload_inc(i, "BBPdecref"); - if (BBPfree(b, "BBPdecref")) /* free memory of transient */ + /* free memory of transient */ + if (BBPfree(b, "BBPdecref")) return -1; /* indicate failure */ } } diff --git a/monetdb5/optimizer/opt_pushselect.c b/monetdb5/optimizer/opt_pushselect.c --- a/monetdb5/optimizer/opt_pushselect.c +++ b/monetdb5/optimizer/opt_pushselect.c @@ -111,7 +111,7 @@ OPTpushselectImplementation(Client cntxt return 0; OPTDEBUGpushselect - mnstr_printf(cntxt->fdout,"#Range select optimizer started\n"); + mnstr_printf(cntxt->fdout,"#Push select optimizer started\n"); (void) stk; (void) pci; vars= (int*) GDKmalloc(sizeof(int)* mb->vtop); @@ -370,9 +370,10 @@ OPTpushselectImplementation(Client cntxt setFunctionId(u, subdeltaRef); getArg(u, 0) = getArg(p,0); getArg(u, 1) = getArg(r,0); - getArg(u, 2) = getArg(q,2); /* update ids */ - getArg(u, 3) = getArg(s,0); - getArg(u, 4) = getArg(t,0); + getArg(u, 2) = getArg(p,2); /* pre-cands */ + getArg(u, 3) = getArg(q,2); /* update ids */ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list