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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list