Changeset: 6ba6f6dfccf5 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6ba6f6dfccf5
Removed Files:
monetdb5/tests/gdkTests/Tests/append_dense_tail.mal
monetdb5/tests/gdkTests/Tests/append_dense_tail.stable.err
monetdb5/tests/gdkTests/Tests/append_dense_tail.stable.out
Modified Files:
clients/Tests/MAL-signatures_all.stable.out.int128
clients/Tests/SQL-dump_all.stable.out.int128
clients/examples/php/sqlsample.php
clients/mapiclient/stethoscope.c
clients/mapiclient/tomograph.c
monetdb5/tests/gdkTests/Tests/All
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.mal
sql/include/sql_catalog.h
sql/jdbc/tests/Tests/Test_Dobjects_bam.stable.out
sql/scripts/75_storagemodel.sql
sql/server/rel_optimizer.c
sql/server/rel_schema.c
sql/server/rel_trans.h
sql/server/rel_updates.c
sql/server/sql_mvc.c
sql/server/sql_mvc.h
sql/server/sql_parser.h
sql/server/sql_parser.y
sql/server/sql_scan.c
sql/storage/bat/bat_logger.c
sql/storage/bat/bat_storage.c
sql/storage/sql_storage.h
sql/storage/store.c
sql/test/BugDay_2005-11-09_2.8/Tests/ORDER_BY_evaluation_error.SF-1023658.stable.out
sql/test/BugTracker-2010/Tests/offset_limited_32bit.SF-2950579.stable.out
sql/test/BugTracker-2013/Tests/alter_resets_readonly.Bug-3362.sql
sql/test/BugTracker-2013/Tests/alter_resets_readonly.Bug-3362.stable.out
sql/test/BugTracker/Tests/like_exp.SF-1613949.stable.out
sql/test/Tests/systemfunctions_bam.stable.out.int128
sql/test/bugs/Tests/select_orderby_alias-bug-sf-1024615.stable.out
sql/test/leaks/Tests/check1_bam.stable.out.int128
sql/test/leaks/Tests/check2_bam.stable.out.int128
sql/test/leaks/Tests/check3_bam.stable.out.int128
sql/test/leaks/Tests/check4_bam.stable.out.int128
sql/test/leaks/Tests/check5_bam.stable.out.int128
sql/test/mapi/Tests/php_monetdb.stable.out
sql/test/mserver5-sql-readonly/Tests/mserver5-sql-readonly-table.stable.err
Branch: mosaic
Log Message:
Merge with default
diffs (truncated from 612 to 300 lines):
diff --git a/clients/Tests/MAL-signatures_all.stable.out.int128
b/clients/Tests/MAL-signatures_all.stable.out.int128
--- a/clients/Tests/MAL-signatures_all.stable.out.int128
+++ b/clients/Tests/MAL-signatures_all.stable.out.int128
@@ -2817,13 +2817,16 @@ command algebra.groupby(gids:bat[:oid,:o
address ALGgroupby;
comment Produces a new BAT with groups identified by the head column. The
result contains tail times the head value, ie the tail contains the result
group sizes.
-function
algebra.ilikesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],nil_matches:bit,estimate:lng)
(X_7:bat[:oid,:oid],X_8:bat[:oid,:oid]);
+command
algebra.ilikesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],nil_matches:bit,estimate:lng)
(X_7:bat[:oid,:oid],X_8:bat[:oid,:oid])
+address ILIKEsubjoin1;
command
algebra.ilikesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],esc:str,sl:bat[:oid,:oid],sr:bat[:oid,:oid],nil_matches:bit,estimate:lng)
(X_8:bat[:oid,:oid],X_9:bat[:oid,:oid])
address ILIKEsubjoin;
comment Join the string bat L with the pattern bat Rwith optional candidate
lists SL and SR using pattern escape string ESCand doing a case insensitive
match.The result is two aligned bats with oids of matching rows.
-function
algebra.ilikesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,anti:bit):bat[:oid,:oid];
-function
algebra.ilikesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
+command
algebra.ilikesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,anti:bit):bat[:oid,:oid]
+address PCRElikesubselect4;
+command
algebra.ilikesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid]
+address PCRElikesubselect1;
command algebra.ilike(s:str,pat:str):bit
address PCREilike2;
command algebra.ilike(s:str,pat:str,esc:str):bit
@@ -2838,20 +2841,6 @@ command algebra.join(left:bat[:oid,:any_
address ALGjoin2;
comment Returns 2 columns with all BUNs, consisting of the head-oids from
'left' and 'right' for which there are BUNs in 'left' and 'right' with
equal tails
-command
algebra.join(l:bat[:any_1,:any_2],rl:bat[:any_3,:any_2],rh:bat[:any_3,:any_2],li:bit,hi:bit):bat[:any_1,:any_3]
-address ALGrangejoin;
-command
algebra.kunion(left:bat[:any_1,:any_2],right:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGkunion;
-comment Returns the union of two BATs; looking at head-columns only.
Results in all BUNs of 'left' that are not in 'right', plus all BUNs of
'right'. *no* double-elimination is done.
-
-command
algebra.kdifference(left:bat[:any_1,:any_2],right:bat[:any_1,:any]):bat[:any_1,:any_2]
-address ALGkdiff;
-comment Returns the difference taken over only the *head* columns of two BATs.
Results in all BUNs of 'left' that are *not* in 'right'.
It does *not* do double-elimination over the 'left' BUNs. If you
want this, use: 'kdifference(left.kunique,right.kunique)' or:
'kdifference(left,right).kunique'.
-
-command
algebra.kintersect(left:bat[:any_1,:any_2],right:bat[:any_1,:any]):bat[:any_1,:any_2]
-address ALGsemijoin;
-comment Returns the intersection taken over only the *head* columns of two
BATs. Results in all BUNs of 'left' that are also in 'right'.
Does *not* do double- elimination over the 'left' BUNs. If you want
this, use: 'kintersect(kunique(left),kunique(right))' or:
'kunique(kintersect(left,right))'.
-
pattern algebra.leftfetchjoinPath(l:bat[:any,:any]...):bat[:any,:any]
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
@@ -2860,13 +2849,16 @@ pattern algebra.leftjoinPath(l:bat[:any,
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
-function
algebra.likesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],nil_matches:bit,estimate:lng)
(X_7:bat[:oid,:oid],X_8:bat[:oid,:oid]);
+command
algebra.likesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],nil_matches:bit,estimate:lng)
(X_7:bat[:oid,:oid],X_8:bat[:oid,:oid])
+address LIKEsubjoin1;
command
algebra.likesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],esc:str,sl:bat[:oid,:oid],sr:bat[:oid,:oid],nil_matches:bit,estimate:lng)
(X_8:bat[:oid,:oid],X_9:bat[:oid,:oid])
address LIKEsubjoin;
comment Join the string bat L with the pattern bat Rwith optional candidate
lists SL and SR using pattern escape string ESCand doing a case sensitive
match.The result is two aligned bats with oids of matching rows.
-function
algebra.likesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,anti:bit):bat[:oid,:oid];
-function
algebra.likesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
+command
algebra.likesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,anti:bit):bat[:oid,:oid]
+address PCRElikesubselect5;
+command
algebra.likesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid]
+address PCRElikesubselect3;
command
algebra.likesubselect(b:bat[:oid,:str],s:bat[:oid,:oid],pat:str,esc:str,caseignore:bit,anti:bit):bat[:oid,:oid]
address PCRElikesubselect2;
comment Select all head values of the first input BAT for which the tail
value is "like" the given (SQL-style) pattern and for which the head value
occurs in the tail of the second input BAT. Input is a dense-headed BAT,
output is a dense-headed BAT with in the tail the head value of the input
BAT for which the relationship holds. The output BAT is sorted on the tail
value.
@@ -40359,14 +40351,6 @@ command bat.insert(b:bat[:oid,:any_1],sr
address BKCinsert_bat;
comment Insert all BUNs of the second BAT into the first.
-command
bat.insert(b:bat[:oid,:any_1],h:oid,t:any_1,force:bit):bat[:oid,:any_1]
-address BKCinsert_bun_force;
-comment Insert one BUN[h,t] in a BAT.
-
-command bat.insert(b:bat[:oid,:any_1],h:oid,t:any_1):bat[:oid,:any_1]
-address BKCinsert_bun;
-comment Insert one BUN[h,t] in a BAT.
-
command bat.load(name:str):bat[:oid,:any_1]
address BKCload;
comment Load a particular BAT from disk
@@ -40453,6 +40437,10 @@ command bat.reverse(b:bat[:any_1,:any_2]
address BKCreverse;
comment Returns the reverse view of a BAT (head is tail and tail is head).
BEWARE no copying is involved; input and output refer to the same
object!
+pattern bat.single(val:any_1):bat[:oid,:any_1]
+address CMDBATsingle;
+comment Create a BAT with a single elemenet
+
command bat.shrinkMap(b:bat[:oid,:any_1],del:bat[:oid,:oid]):bat[:oid,:oid]
address BKCshrinkBATmap;
comment Derive the oid mapping for shrink BAT based on list of to-be-deleted
@@ -51222,10 +51210,6 @@ command pcre.sql2pcre(pat:str,esc:str):s
address PCREsql2pcre;
comment Convert a SQL like pattern with the given escape character into a PCRE
pattern.
-pattern profiler.activate(name:str...):void
-address CMDactivateProfiler;
-comment A list of counters to be activated.
-
command profiler.cpuload(user:lng,nice:lng,sys:lng,idle:lng,iowait:lng)
(cycles:int,io:int)
address CMDcpuloadPercentage;
comment Calculate the average cpu load percentage and io waiting times
@@ -51238,14 +51222,6 @@ command profiler.cleanup():void
address CMDcleanup;
comment Remove the temporary tables for profiling
-pattern profiler.clrFilter(v:any):void
-address CMDsetFilterVariable;
-comment Stop tracing the variable
-
-pattern profiler.clrFilter(mod:str,fcn:str):void
-address CMDclrFilterProfiler;
-comment Clear the performance trace bit of the selected functions.
-
command profiler.closeStream():void
address CMDcloseProfilerStream;
comment Stop sending the event records
@@ -51254,14 +51230,6 @@ command profiler.dumpTrace():void
address CMDdumpTrace;
comment List the events collected
-pattern profiler.deactivate(name:str...):void
-address CMDdeactivateProfiler;
-comment A list of counters to be deactivated.
-
-pattern profiler.getFootprint():lng
-address CMDgetFootprint;
-comment Get the amount of memory claimed and reset the flag
-
command profiler.getSystemTime():lng
address CMDgetSystemTime;
comment Obtain the user timing information.
@@ -51278,10 +51246,6 @@ command profiler.getDiskReads():lng
address CMDgetDiskReads;
comment Obtain the number of physical reads
-pattern profiler.getEvent() (X_1:lng,X_2:lng,X_3:lng)
-address CMDgetEvent;
-comment Retrieve the performance indicators of the previous instruction
-
command profiler.getTrace(e:str):bat[:oid,:any_1]
address CMDgetTrace;
comment Get the trace details of a specific event
@@ -51306,49 +51270,29 @@ command profiler.reset():void
address CMDclearTrace;
comment Clear the profiler traces
+command profiler.setHeartbeat(b:int):void
+address CMDsetHeartbeat;
+comment Set heart beat performance tracing
+
pattern profiler.stop():void
address CMDstopProfiler;
comment Stop performance tracing
-pattern profiler.start():void
-address CMDstartProfiler;
-comment Start performance tracing
-
-pattern profiler.setEndPoint(mod:str,fcn:str):void
-address CMDendPointProfiler;
-comment End performance tracing after mod.fcn
-
-pattern profiler.setStartPoint(mod:str,fcn:str):void
-address CMDstartPointProfiler;
-comment Start performance tracing at mod.fcn
-
-pattern profiler.setFilter(v:any):void
-address CMDsetFilterVariable;
-comment Generate an event record for every instruction where v is used.
-
-pattern profiler.setFilter(mod:str,fcn:str):void
-address CMDsetFilterProfiler;
-comment Generate an event record for all function calls that satisfy the
regular expression mod.fcn. A wildcard (*) can be used as name to identify all
-
-pattern profiler.setNone():void
-address CMDsetNoneProfiler;
-comment Short cut for clrFilter(*,*).
-
-pattern profiler.setAll():void
-address CMDsetAllProfiler;
-comment Short cut for setFilter(*,*).
-
-command profiler.tomograph():void
+command profiler.stethoscope(b:int):void
+address CMDstethoscope;
+comment Start stethoscope profiling with heart beat
+
+command profiler.tomograph(b:int):void
address CMDtomograph;
-comment No-op operation, merely a signal to the tomograph package
-
-pattern
querylog.call(tick1:timestamp,tick2:timestamp,arg:str,tuples:wrd,xtime:lng,rtime:lng,cpu:int,iowait:int,space:lng):void
+comment Start tomograph profiler with heart beat
+
+pattern
querylog.call(tick1:timestamp,tick2:timestamp,arg:str,tuples:wrd,xtime:lng,rtime:lng,cpu:int,iowait:int):void
address QLOGcall;
comment Add a new query call to the query log
-pattern querylog.define(q:str,pipe:str,usr:str,tick:timestamp):oid
-address QLOGdefine;
-comment Add a new query call to the query log
+command querylog.define(q:str,pipe:str):void
+address QLOGdefineNaive;
+comment Noop operation, just marking the query
command querylog.disable():void
address QLOGdisable;
@@ -51366,6 +51310,10 @@ command querylog.enable(threshold:int):v
address QLOGenableThreshold;
comment Turn on the query logger
+pattern querylog.insert(q:str,pipe:str,usr:str,tick:timestamp):void
+address QLOGinsert;
+comment Add a new query call to the query log
+
command querylog.isset():int
address QLOGissetFcn;
comment Return status of query logger
@@ -51803,7 +51751,7 @@ command sql.dec_round(v:bte,r:bte):bte
address bte_dec_round_wrap;
comment round off the value v to nearests multiple of r
-pattern sql.dump_trace()
(event:bat[:oid,:int],clk:bat[:oid,:str],pc:bat[:oid,:str],thread:bat[:oid,:int],user:bat[:oid,:int],ticks:bat[:oid,:lng],reads:bat[:oid,:lng],writes:bat[:oid,:lng],rbytes:bat[:oid,:lng],wbytes:bat[:oid,:lng],type:bat[:oid,:str],stmt:bat[:oid,:str])
+pattern sql.dump_trace()
(event:bat[:oid,:int],clk:bat[:oid,:str],pc:bat[:oid,:str],thread:bat[:oid,:int],ticks:bat[:oid,:lng],rssMB:bat[:oid,:lng],vmMB:bat[:oid,:lng],reads:bat[:oid,:lng],writes:bat[:oid,:lng],minflt:bat[:oid,:lng],majflt:bat[:oid,:lng],nvcsw:bat[:oid,:lng],stmt:bat[:oid,:str])
address dump_trace;
comment dump the trace statistics
@@ -51967,11 +51915,11 @@ command sql.querylog_enable():void
address QLOGenable;
pattern sql.querylog_empty():void
address sql_querylog_empty;
-pattern sql.querylog_calls()
(id:bat[:oid,:oid],start:bat[:oid,:timestamp],stop:bat[:oid,:timestamp],arguments:bat[:oid,:str],tuples:bat[:oid,:wrd],exec:bat[:oid,:lng],result:bat[:oid,:lng],cpuload:bat[:oid,:int],iowait:bat[:oid,:int],space:bat[:oid,:lng])
+pattern sql.querylog_calls()
(id:bat[:oid,:oid],start:bat[:oid,:timestamp],stop:bat[:oid,:timestamp],arguments:bat[:oid,:str],tuples:bat[:oid,:wrd],exec:bat[:oid,:lng],result:bat[:oid,:lng],cpuload:bat[:oid,:int],iowait:bat[:oid,:int])
address sql_querylog_calls;
comment Obtain the query log calls
-pattern sql.querylog_catalog()
(id:bat[:oid,:oid],user:bat[:oid,:str],defined:bat[:oid,:timestamp],query:bat[:oid,:str],pipe:bat[:oid,:str],mal:bat[:oid,:int],optimize:bat[:oid,:lng])
+pattern sql.querylog_catalog()
(id:bat[:oid,:oid],user:bat[:oid,:str],defined:bat[:oid,:timestamp],query:bat[:oid,:str],pipe:bat[:oid,:str],plan:bat[:oid,:str],mal:bat[:oid,:int],optimize:bat[:oid,:lng])
address sql_querylog_catalog;
comment Obtain the query log catalog
@@ -52077,7 +52025,7 @@ pattern sql.sysmon_pause(tag:sht):void
address SYSMONpause;
pattern sql.sysmon_queue()
(qtag:bat[:oid,:lng],user:bat[:oid,:str],started:bat[:oid,:timestamp],estimate:bat[:oid,:timestamp],progress:bat[:oid,:int],status:bat[:oid,:str],tag:bat[:oid,:oid],query:bat[:oid,:str])
address SYSMONqueue;
-pattern sql.storage()
(schema:bat[:oid,:str],table:bat[:oid,:str],column:bat[:oid,:str],type:bat[:oid,:str],location:bat[:oid,:str],count:bat[:oid,:lng],atomwidth:bat[:oid,:int],columnsize:bat[:oid,:lng],heap:bat[:oid,:lng],hashes:bat[:oid,:lng],imprints:bat[:oid,:lng],sorted:bat[:oid,:bit])
+pattern sql.storage()
(schema:bat[:oid,:str],table:bat[:oid,:str],column:bat[:oid,:str],type:bat[:oid,:str],mode:bat[:oid,:str],location:bat[:oid,:str],count:bat[:oid,:lng],atomwidth:bat[:oid,:int],columnsize:bat[:oid,:lng],heap:bat[:oid,:lng],hashes:bat[:oid,:lng],imprints:bat[:oid,:lng],sorted:bat[:oid,:bit])
address sql_storage;
comment return a table with storage information
@@ -52097,7 +52045,8 @@ pattern sql.sql_variables():bat[:oid,:st
address sql_variables;
comment return the table with session variables
-function sql.single(x:any_2):bat[:oid,:any_2];
+pattern sql.single(x:any_2):bat[:oid,:any_2]
+address CMDBATsingle;
command
sql.subdelta(col:bat[:oid,:oid],cand:bat[:oid,:oid],uid:bat[:oid,:oid],uval:bat[:oid,:oid]):bat[:oid,:oid]
address DELTAsub2;
comment Return a single bat of subselected delta.
diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c
--- a/clients/mapiclient/tomograph.c
+++ b/clients/mapiclient/tomograph.c
@@ -564,10 +564,9 @@ static void resetTomograph(void){
static lng
gnuXtics(int withlabels)
{
- double scale = 1.0;
const char * scalename = "MB";
int digits;
- lng tw, w = lastclktick - starttime;
+ lng scale =1, tw, w = lastclktick - starttime;
int i;
if (w >= 10 * US_DD) {
@@ -610,12 +609,12 @@ gnuXtics(int withlabels)
fprintf(gnudata, "set xtics ( \"\" 0.0,");
for (i = 1; i * tw < w - 2 * tw / 3; i++){
if( withlabels)
- fprintf(gnudata, "\"%g\" "LLFMT".0,", (double) i * tw / scale,
i * tw);
+ fprintf(gnudata, "\"%g\" "LLFMT".0,", ((double) i) * tw /
scale, i * tw);
else
fprintf(gnudata, "\"\" "LLFMT".0,", i * tw);
}
if( withlabels)
- fprintf(gnudata, "\"%.*f %s\" "LLFMT".0", digits, (double) w /
scale, scalename, w);
+ fprintf(gnudata, "\"%.*f %s\" "LLFMT".0", digits, ((double) w)
/ scale, scalename, w);
else
fprintf(gnudata, "\"\" "LLFMT".0", w);
fprintf(gnudata, ")\n");
@@ -1763,7 +1762,9 @@ parser(char *row)
int
main(int argc, char **argv)
{
- int i, n, len;
+ int i;
+ ssize_t m;
+ size_t n, len;
char *host = NULL;
int portnr = 0;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list