Changeset: 51b66111017b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=51b66111017b
Added Files:
sql/test/BugTracker-2014/Tests/ifthenelse.Bug-3546.stable.out.int128
sql/test/BugTracker-2014/Tests/round.Bug-3542.stable.err.int128
sql/test/BugTracker-2014/Tests/round.Bug-3542.stable.out.int128
Modified Files:
clients/Tests/MAL-signatures_all.stable.out
clients/Tests/MAL-signatures_all.stable.out.int128
clients/Tests/MAL-signatures_fits_geom.stable.out
clients/Tests/MAL-signatures_fits_geom.stable.out.int128
clients/Tests/MAL-signatures_geom.stable.out
clients/Tests/MAL-signatures_geom.stable.out.int128
clients/Tests/MAL-signatures_none.stable.out
clients/Tests/MAL-signatures_none.stable.out.int128
clients/Tests/SQL-dump_all.stable.out.oid32.int128
clients/Tests/SQL-dump_geom.stable.out.int128
clients/Tests/SQL-dump_geom.stable.out.oid32.int128
clients/Tests/SQL-dump_none.stable.out.int128
clients/Tests/exports.stable.out
common/stream/stream.c
common/stream/stream.h
gdk/gdk.h
gdk/gdk_batop.c
gdk/gdk_private.h
gdk/gdk_select.c
gdk/gdk_setop.c
gdk/gdk_unique.c
monetdb5/ChangeLog.Oct2014
monetdb5/mal/mal_import.c
monetdb5/modules/atoms/00_json_hge.mal
monetdb5/modules/atoms/json.c
monetdb5/modules/atoms/json.h
monetdb5/modules/kernel/algebra.c
monetdb5/modules/kernel/algebra.h
monetdb5/modules/kernel/algebra.mal
monetdb5/modules/mal/tokenizer.c
monetdb5/optimizer/opt_costModel.c
monetdb5/optimizer/opt_emptySet.c
monetdb5/optimizer/opt_mergetable.c
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
monetdb5/tests/BugTracker/Tests/kunion-and-nil.Bug-1667.mal
monetdb5/tests/BugTracker/Tests/kunion-and-nil.Bug-1667.stable.out
monetdb5/tests/gdkTests/Tests/subgroup.mal
monetdb5/tests/gdkTests/Tests/subgroup.stable.out
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_statement.c
sql/backends/monet5/sql_statement.h
sql/backends/monet5/sql_statistics.c
sql/test/pg_regress/Tests/vacuum.stable.out
testing/Mtest.py.in
Branch: transaction-replication
Log Message:
Merge with default branch.
diffs (truncated from 4568 to 300 lines):
diff --git a/clients/Tests/MAL-signatures_all.stable.out
b/clients/Tests/MAL-signatures_all.stable.out
--- a/clients/Tests/MAL-signatures_all.stable.out
+++ b/clients/Tests/MAL-signatures_all.stable.out
@@ -2374,10 +2374,6 @@ command algebra.kintersect(left:bat[:any
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))'.
-command algebra.kunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGkunique;
-comment Select unique tuples from the input BAT. Double elimination is
done only looking at the head column. The result is a BAT with
property hkeyed() == true.
-
pattern algebra.leftfetchjoinPath(l:bat[:any,:any]...):bat[:any,:any]
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
@@ -2659,10 +2655,6 @@ command algebra.tinter(left:bat[:oid,:oi
address ALGtinter;
command
algebra.tintersect(left:bat[:any_1,:any_2],right:bat[:any_1,:any]):bat[:any_1,:any_2]
address ALGtintersect;
-command algebra.tunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGtunique;
-comment Select unique tuples from the input BAT. Double elimination is
done over the BUNs tail. The result is a BAT with property
tkeyd()== true
-
command
algebra.thetasubselect(b:bat[:oid,:any_1],s:bat[:oid,:oid],val:any_1,op:str):bat[:oid,:oid]
address ALGthetasubselect2;
comment Select all head values of the first input BAT for which the tail value
obeys the relation value OP VAL 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.
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
@@ -2891,10 +2891,6 @@ command algebra.kintersect(left:bat[:any
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))'.
-command algebra.kunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGkunique;
-comment Select unique tuples from the input BAT. Double elimination is
done only looking at the head column. The result is a BAT with
property hkeyed() == true.
-
pattern algebra.leftfetchjoinPath(l:bat[:any,:any]...):bat[:any,:any]
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
@@ -3176,10 +3172,6 @@ command algebra.tinter(left:bat[:oid,:oi
address ALGtinter;
command
algebra.tintersect(left:bat[:any_1,:any_2],right:bat[:any_1,:any]):bat[:any_1,:any_2]
address ALGtintersect;
-command algebra.tunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGtunique;
-comment Select unique tuples from the input BAT. Double elimination is
done over the BUNs tail. The result is a BAT with property
tkeyd()== true
-
command
algebra.thetasubselect(b:bat[:oid,:any_1],s:bat[:oid,:oid],val:any_1,op:str):bat[:oid,:oid]
address ALGthetasubselect2;
comment Select all head values of the first input BAT for which the tail value
obeys the relation value OP VAL 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.
@@ -50234,9 +50226,9 @@ address IOttable;
comment Print an n-ary table. Like print, but does not print oid column
command iterator.filter(name:json,idx:hge,other:str):json
-address JSONfilterArrayDefault;
+address JSONfilterArrayDefault_hge;
command iterator.filter(name:json,idx:hge):json
-address JSONfilterArray;
+address JSONfilterArray_hge;
command iterator.next(step:hge,last:hge):hge
address ITRnext_hge;
command iterator.next(step:dbl,last:dbl):dbl
diff --git a/clients/Tests/MAL-signatures_fits_geom.stable.out
b/clients/Tests/MAL-signatures_fits_geom.stable.out
--- a/clients/Tests/MAL-signatures_fits_geom.stable.out
+++ b/clients/Tests/MAL-signatures_fits_geom.stable.out
@@ -2375,10 +2375,6 @@ command algebra.kintersect(left:bat[:any
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))'.
-command algebra.kunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGkunique;
-comment Select unique tuples from the input BAT. Double elimination is
done only looking at the head column. The result is a BAT with
property hkeyed() == true.
-
pattern algebra.leftfetchjoinPath(l:bat[:any,:any]...):bat[:any,:any]
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
@@ -2660,10 +2656,6 @@ command algebra.tinter(left:bat[:oid,:oi
address ALGtinter;
command
algebra.tintersect(left:bat[:any_1,:any_2],right:bat[:any_1,:any]):bat[:any_1,:any_2]
address ALGtintersect;
-command algebra.tunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGtunique;
-comment Select unique tuples from the input BAT. Double elimination is
done over the BUNs tail. The result is a BAT with property
tkeyd()== true
-
command
algebra.thetasubselect(b:bat[:oid,:any_1],s:bat[:oid,:oid],val:any_1,op:str):bat[:oid,:oid]
address ALGthetasubselect2;
comment Select all head values of the first input BAT for which the tail value
obeys the relation value OP VAL 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.
diff --git a/clients/Tests/MAL-signatures_fits_geom.stable.out.int128
b/clients/Tests/MAL-signatures_fits_geom.stable.out.int128
--- a/clients/Tests/MAL-signatures_fits_geom.stable.out.int128
+++ b/clients/Tests/MAL-signatures_fits_geom.stable.out.int128
@@ -2807,27 +2807,27 @@ command algebra.exist(b:bat[:oid,:any_1]
address ALGexist;
comment Returns whether 'val' occurs in b.
-pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],g:bat[:oid,:oid],n:wrd,asc:bit)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
+pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],g:bat[:oid,:oid],n:wrd,asc:bit,distinct:bit)
(X_7:bat[:oid,:oid],X_8:bat[:oid,:oid])
address ALGfirstn;
comment Calculate first N values of B with candidate list S
-pattern algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],n:wrd,asc:bit)
(X_5:bat[:oid,:oid],X_6:bat[:oid,:oid])
+pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],n:wrd,asc:bit,distinct:bit)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
address ALGfirstn;
comment Calculate first N values of B with candidate list S
-pattern algebra.firstn(b:bat[:oid,:any],n:wrd,asc:bit)
(X_4:bat[:oid,:oid],X_5:bat[:oid,:oid])
+pattern algebra.firstn(b:bat[:oid,:any],n:wrd,asc:bit,distinct:bit)
(X_5:bat[:oid,:oid],X_6:bat[:oid,:oid])
address ALGfirstn;
comment Calculate first N values of B
-pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],g:bat[:oid,:oid],n:wrd,asc:bit):bat[:oid,:oid]
+pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],g:bat[:oid,:oid],n:wrd,asc:bit,distinct:bit):bat[:oid,:oid]
address ALGfirstn;
comment Calculate first N values of B with candidate list S
-pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],n:wrd,asc:bit):bat[:oid,:oid]
+pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],n:wrd,asc:bit,distinct:bit):bat[:oid,:oid]
address ALGfirstn;
comment Calculate first N values of B with candidate list S
-pattern algebra.firstn(b:bat[:oid,:any],n:wrd,asc:bit):bat[:oid,:oid]
+pattern
algebra.firstn(b:bat[:oid,:any],n:wrd,asc:bit,distinct:bit):bat[:oid,:oid]
address ALGfirstn;
comment Calculate first N values of B
@@ -2891,10 +2891,6 @@ command algebra.kintersect(left:bat[:any
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))'.
-command algebra.kunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGkunique;
-comment Select unique tuples from the input BAT. Double elimination is
done only looking at the head column. The result is a BAT with
property hkeyed() == true.
-
pattern algebra.leftfetchjoinPath(l:bat[:any,:any]...):bat[:any,:any]
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
@@ -3176,10 +3172,6 @@ command algebra.tinter(left:bat[:oid,:oi
address ALGtinter;
command
algebra.tintersect(left:bat[:any_1,:any_2],right:bat[:any_1,:any]):bat[:any_1,:any_2]
address ALGtintersect;
-command algebra.tunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGtunique;
-comment Select unique tuples from the input BAT. Double elimination is
done over the BUNs tail. The result is a BAT with property
tkeyd()== true
-
command
algebra.thetasubselect(b:bat[:oid,:any_1],s:bat[:oid,:oid],val:any_1,op:str):bat[:oid,:oid]
address ALGthetasubselect2;
comment Select all head values of the first input BAT for which the tail value
obeys the relation value OP VAL 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.
@@ -50150,9 +50142,9 @@ address IOttable;
comment Print an n-ary table. Like print, but does not print oid column
command iterator.filter(name:json,idx:hge,other:str):json
-address JSONfilterArrayDefault;
+address JSONfilterArrayDefault_hge;
command iterator.filter(name:json,idx:hge):json
-address JSONfilterArray;
+address JSONfilterArray_hge;
command iterator.next(step:hge,last:hge):hge
address ITRnext_hge;
command iterator.next(step:dbl,last:dbl):dbl
@@ -50187,7 +50179,7 @@ comment Create an iterator with fixed gr
command json.dump(j:json):void
address JSONdump;
-pattern json.fold(k:bat[:oid,:any]):json
+pattern json.fold(v:bat[:oid,:any]):json
address JSONfold;
comment Combine the value list into a single json array object.
@@ -51778,10 +51770,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.
-command pcre.select(pat:str,strs:bat[:oid,:str]):bat[:oid,:str]
-address PCREselectDef;
-comment Select tuples based on the pattern
-
pattern profiler.activate(name:str...):void
address CMDactivateProfiler;
comment A list of counters to be activated.
@@ -52240,6 +52228,10 @@ pattern sql.copy_from(sname:str,tname:st
address mvc_import_table_wrap;
comment Import a table from bstream s with the given tuple and
seperators (sep/rsep)
+pattern sql.create_func_upgrade_oct2014(f:str):int
+address UPGcreate_func;
+comment Create the function described by f, needed for the Oct2014 upgrade
+
pattern sql.clear_table{unsafe}(sname:str,tname:str):wrd
address mvc_clear_table_wrap;
comment Clear table
@@ -52344,6 +52336,10 @@ pattern sql.db_users():bat[:oid,:str]
address db_users_wrap;
comment return table of users with sql scenario
+pattern sql.drop_func_upgrade_oct2014(id:int):int
+address UPGdrop_func;
+comment Drop the function identified by id, needed for the Oct2014 upgrade
+
pattern sql.dropDeclaredTables{unsafe}(nr:int):void
address mvc_drop_declared_tables_wrap;
comment drop top n declared tables
diff --git a/clients/Tests/MAL-signatures_geom.stable.out
b/clients/Tests/MAL-signatures_geom.stable.out
--- a/clients/Tests/MAL-signatures_geom.stable.out
+++ b/clients/Tests/MAL-signatures_geom.stable.out
@@ -2375,10 +2375,6 @@ command algebra.kintersect(left:bat[:any
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))'.
-command algebra.kunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGkunique;
-comment Select unique tuples from the input BAT. Double elimination is
done only looking at the head column. The result is a BAT with
property hkeyed() == true.
-
pattern algebra.leftfetchjoinPath(l:bat[:any,:any]...):bat[:any,:any]
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
@@ -2660,10 +2656,6 @@ command algebra.tinter(left:bat[:oid,:oi
address ALGtinter;
command
algebra.tintersect(left:bat[:any_1,:any_2],right:bat[:any_1,:any]):bat[:any_1,:any_2]
address ALGtintersect;
-command algebra.tunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGtunique;
-comment Select unique tuples from the input BAT. Double elimination is
done over the BUNs tail. The result is a BAT with property
tkeyd()== true
-
command
algebra.thetasubselect(b:bat[:oid,:any_1],s:bat[:oid,:oid],val:any_1,op:str):bat[:oid,:oid]
address ALGthetasubselect2;
comment Select all head values of the first input BAT for which the tail value
obeys the relation value OP VAL 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.
diff --git a/clients/Tests/MAL-signatures_geom.stable.out.int128
b/clients/Tests/MAL-signatures_geom.stable.out.int128
--- a/clients/Tests/MAL-signatures_geom.stable.out.int128
+++ b/clients/Tests/MAL-signatures_geom.stable.out.int128
@@ -2807,27 +2807,27 @@ command algebra.exist(b:bat[:oid,:any_1]
address ALGexist;
comment Returns whether 'val' occurs in b.
-pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],g:bat[:oid,:oid],n:wrd,asc:bit)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
+pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],g:bat[:oid,:oid],n:wrd,asc:bit,distinct:bit)
(X_7:bat[:oid,:oid],X_8:bat[:oid,:oid])
address ALGfirstn;
comment Calculate first N values of B with candidate list S
-pattern algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],n:wrd,asc:bit)
(X_5:bat[:oid,:oid],X_6:bat[:oid,:oid])
+pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],n:wrd,asc:bit,distinct:bit)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
address ALGfirstn;
comment Calculate first N values of B with candidate list S
-pattern algebra.firstn(b:bat[:oid,:any],n:wrd,asc:bit)
(X_4:bat[:oid,:oid],X_5:bat[:oid,:oid])
+pattern algebra.firstn(b:bat[:oid,:any],n:wrd,asc:bit,distinct:bit)
(X_5:bat[:oid,:oid],X_6:bat[:oid,:oid])
address ALGfirstn;
comment Calculate first N values of B
-pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],g:bat[:oid,:oid],n:wrd,asc:bit):bat[:oid,:oid]
+pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],g:bat[:oid,:oid],n:wrd,asc:bit,distinct:bit):bat[:oid,:oid]
address ALGfirstn;
comment Calculate first N values of B with candidate list S
-pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],n:wrd,asc:bit):bat[:oid,:oid]
+pattern
algebra.firstn(b:bat[:oid,:any],s:bat[:oid,:oid],n:wrd,asc:bit,distinct:bit):bat[:oid,:oid]
address ALGfirstn;
comment Calculate first N values of B with candidate list S
-pattern algebra.firstn(b:bat[:oid,:any],n:wrd,asc:bit):bat[:oid,:oid]
+pattern
algebra.firstn(b:bat[:oid,:any],n:wrd,asc:bit,distinct:bit):bat[:oid,:oid]
address ALGfirstn;
comment Calculate first N values of B
@@ -2891,10 +2891,6 @@ command algebra.kintersect(left:bat[:any
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))'.
-command algebra.kunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGkunique;
-comment Select unique tuples from the input BAT. Double elimination is
done only looking at the head column. The result is a BAT with
property hkeyed() == true.
-
pattern algebra.leftfetchjoinPath(l:bat[:any,:any]...):bat[:any,:any]
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
@@ -3176,10 +3172,6 @@ command algebra.tinter(left:bat[:oid,:oi
address ALGtinter;
command
algebra.tintersect(left:bat[:any_1,:any_2],right:bat[:any_1,:any]):bat[:any_1,:any_2]
address ALGtintersect;
-command algebra.tunique(b:bat[:any_1,:any_2]):bat[:any_1,:any_2]
-address ALGtunique;
-comment Select unique tuples from the input BAT. Double elimination is
done over the BUNs tail. The result is a BAT with property
tkeyd()== true
-
command
algebra.thetasubselect(b:bat[:oid,:any_1],s:bat[:oid,:oid],val:any_1,op:str):bat[:oid,:oid]
address ALGthetasubselect2;
comment Select all head values of the first input BAT for which the tail value
obeys the relation value OP VAL 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.
@@ -50126,9 +50118,9 @@ address IOttable;
comment Print an n-ary table. Like print, but does not print oid column
command iterator.filter(name:json,idx:hge,other:str):json
-address JSONfilterArrayDefault;
+address JSONfilterArrayDefault_hge;
command iterator.filter(name:json,idx:hge):json
-address JSONfilterArray;
+address JSONfilterArray_hge;
command iterator.next(step:hge,last:hge):hge
address ITRnext_hge;
command iterator.next(step:dbl,last:dbl):dbl
@@ -50163,7 +50155,7 @@ comment Create an iterator with fixed gr
command json.dump(j:json):void
address JSONdump;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list