Changeset: ed670fd4dda9 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ed670fd4dda9 Added Files: gdk/gdk_project.c monetdb5/modules/mal/projectionpath.c monetdb5/modules/mal/projectionpath.h monetdb5/optimizer/Tests/projectionchain.malC monetdb5/optimizer/Tests/projectionchain.stable.err monetdb5/optimizer/Tests/projectionchain.stable.out monetdb5/optimizer/opt_projectionpath.c monetdb5/optimizer/opt_projectionpath.h monetdb5/optimizer/opt_volcano.c monetdb5/optimizer/opt_volcano.h sql/test/rdf/Tests/q8_v_small.reqtests sql/test/rdf/Tests/q8_v_small.sql sql/test/rdf/Tests/q8_v_small.stable.err sql/test/rdf/Tests/q8_v_small.stable.out Removed Files: monetdb5/modules/mal/joinpath.c monetdb5/modules/mal/joinpath.h monetdb5/optimizer/Tests/joinchain.malC monetdb5/optimizer/Tests/joinchain.stable.err monetdb5/optimizer/Tests/joinchain.stable.out monetdb5/optimizer/opt_joinpath.c monetdb5/optimizer/opt_joinpath.h Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.err clients/Tests/exports.stable.out clients/Tests/malcheck.stable.err common/stream/stream.c gdk/Makefile.ag gdk/gdk.h gdk/gdk_bbp.c gdk/gdk_imprints.c gdk/gdk_join.c gdk/gdk_search.c gdk/gdk_search.h geom/monetdb5/30_geom.mal monetdb5/extras/mal_optimizer_template/91_opt_sql_append.mal monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single monetdb5/extras/rapi/50_rapi.mal monetdb5/extras/sphinx/30_sphinx.mal monetdb5/mal/Tests/All monetdb5/mal/Tests/dataflow01.malC monetdb5/mal/mal_dataflow.c monetdb5/mal/mal_dataflow.h monetdb5/mal/mal_linker.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_profiler.h monetdb5/mal/mal_resource.c monetdb5/mal/mal_resource.h monetdb5/mal/mal_runtime.c monetdb5/mal/mal_runtime.h monetdb5/modules/kernel/00_aggr_hge.mal monetdb5/modules/kernel/00_aggr_hge.mal.sh monetdb5/modules/kernel/aggr.mal monetdb5/modules/kernel/aggr.mal.sh monetdb5/modules/mal/01_batcalc.mal monetdb5/modules/mal/01_batcalc.mal.sh monetdb5/modules/mal/01_calc.mal monetdb5/modules/mal/Makefile.ag monetdb5/modules/mal/Tests/manifold.malC monetdb5/modules/mal/language.mal monetdb5/modules/mal/profiler.c monetdb5/modules/mal/profiler.h monetdb5/modules/mal/profiler.mal monetdb5/optimizer/Makefile.ag monetdb5/optimizer/Tests/All monetdb5/optimizer/Tests/JPexample.malC monetdb5/optimizer/Tests/JPexample.stable.out monetdb5/optimizer/Tests/dataflow.malC monetdb5/optimizer/Tests/dataflow.stable.out monetdb5/optimizer/Tests/dataflow3.malC monetdb5/optimizer/Tests/joinpath.malC monetdb5/optimizer/Tests/leftjoinpath.malC monetdb5/optimizer/Tests/tst4005.malC monetdb5/optimizer/Tests/tst4630.malC monetdb5/optimizer/opt_costModel.c monetdb5/optimizer/opt_pipes.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_profiler.c monetdb5/optimizer/opt_support.c monetdb5/optimizer/opt_support.h monetdb5/optimizer/opt_wrapper.c monetdb5/optimizer/optimizer.mal monetdb5/scheduler/Tests/All sql/backends/monet5/40_sql.mal sql/backends/monet5/Tests/optimizers.sql sql/backends/monet5/Tests/optimizers.stable.err sql/backends/monet5/UDF/80_udf.mal sql/backends/monet5/generator/90_generator.mal sql/backends/monet5/gsl/73_gsl.mal sql/backends/monet5/sql.c sql/backends/monet5/sql_decimal.mal.sh sql/backends/monet5/sql_decimal_hge.mal.sh sql/backends/monet5/sql_optimizer.c sql/backends/monet5/sql_scenario.c sql/backends/monet5/vaults/70_vault.mal sql/backends/monet5/vaults/bam/85_bam.mal sql/backends/monet5/vaults/bam/85_bam.sql sql/backends/monet5/vaults/bam/bam.mal sql/backends/monet5/vaults/lidar/75_lidar.mal sql/backends/monet5/vaults/lidar/lidar.c sql/backends/monet5/vaults/lidar/lidar.h sql/backends/monet5/vaults/lidar/lidar.mal sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/11-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/12-explain.stable.out sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128 sql/benchmarks/tpch/Tests/02-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out.int128 sql/benchmarks/tpch/Tests/04-explain.stable.out sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 sql/benchmarks/tpch/Tests/07-explain.stable.out sql/benchmarks/tpch/Tests/07-explain.stable.out.int128 sql/benchmarks/tpch/Tests/08-explain.stable.out.int128 sql/benchmarks/tpch/Tests/08-plan.stable.out sql/benchmarks/tpch/Tests/08-plan.stable.out.int128 sql/benchmarks/tpch/Tests/09-explain.stable.out.int128 sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 sql/benchmarks/tpch/Tests/11-explain.stable.out.int128 sql/benchmarks/tpch/Tests/13-explain.stable.out sql/benchmarks/tpch/Tests/13-explain.stable.out.32bit sql/benchmarks/tpch/Tests/15-explain.stable.out.int128 sql/benchmarks/tpch/Tests/16-explain.stable.out sql/benchmarks/tpch/Tests/17-explain.stable.out.int128 sql/benchmarks/tpch/Tests/18-explain.stable.out.int128 sql/benchmarks/tpch/Tests/19-explain.stable.out sql/benchmarks/tpch/Tests/19-explain.stable.out.int128 sql/benchmarks/tpch/Tests/20-explain.stable.out.int128 sql/benchmarks/tpch/Tests/21-explain.stable.out sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit sql/benchmarks/tpch/Tests/22-explain.stable.out sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit sql/benchmarks/tpch/Tests/22-explain.stable.out.int128 sql/benchmarks/wisconsin/Tests/All sql/jdbc/tests/Tests/Test_Dobjects.stable.out sql/jdbc/tests/Tests/Test_PSmetadata.stable.out sql/jdbc/tests/Tests/Test_Rmetadata.stable.out sql/jdbc/tests/Tests/Test_Rsqldata.stable.out sql/server/rel_optimizer.c sql/server/sql_parser.y sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.py sql/test/BugTracker-2009/Tests/reorder.SF-2770608.sql sql/test/BugTracker-2009/Tests/table-leftovers.SF-2779462.sql sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.out sql/test/BugTracker/Tests/caching.SF-1651599.stable.out sql/test/Tests/setoptimizer.stable.err sql/test/Tests/setoptimizer.stable.out sql/test/Tests/setoptimizer.stable.out.Windows sql/test/rdf/Tests/All testing/Makefile.ag tools/merovingian/daemon/Makefile.ag tools/mserver/Makefile.ag Branch: mosaic Log Message:
Merge with default diffs (truncated from 11673 to 300 lines): diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -1989,8 +1989,8 @@ command algebra.not_like(s:str,pat:str): address PCREnotlike2; command algebra.not_like(s:str,pat:str,esc:str):bit address PCREnotlike3; -pattern algebra.projectionPath(l:bat[:any]...):bat[:any] -address ALGjoinPath; +pattern algebra.projectionpath(l:bat[:any]...):bat[:any] +address ALGprojectionpath; comment Routine to handle join paths. The type analysis is rather tricky. command algebra.projection(left:bat[:oid],right:bat[:any_3]):bat[:any_3] @@ -2005,10 +2005,6 @@ command algebra.reuse(b:bat[:any_1]):bat address ALGreuse; comment Reuse a temporary BAT if you can. Otherwise, allocate enough storage to accept result of an operation (not involving the heap) -pattern algebra.semijoinPath(l:bat[:any]...):bat[:any] -address ALGjoinPath; -comment Routine to handle join paths. The type analysis is rather tricky. - command algebra.subslice(b:bat[:any_1],x:wrd,y:wrd):bat[:oid] address ALGsubslice_wrd; comment Return the oids of the slice with the BUNs at position x till y. @@ -3964,15 +3960,15 @@ pattern batcalc.!=(b1:bat[:bte],b2:bat[: address CMDbatNE; comment Return B1 != B2 -pattern batcalc.!=(vb:bat[:oid],s:bat[:oid]):bat[:bit] -address CMDbatNE; -comment Return V != B with candidates list - -pattern batcalc.!=(vb:bat[:oid]):bat[:bit] -address CMDbatNE; -comment Return V != B - -pattern batcalc.!=(b:bat[:oid],vs:bat[:oid]):bat[:bit] +pattern batcalc.!=(v:oid,b:bat[:oid],s:bat[:oid]):bat[:bit] +address CMDbatNE; +comment Return V != B with candidates list + +pattern batcalc.!=(v:oid,b:bat[:oid]):bat[:bit] +address CMDbatNE; +comment Return V != B + +pattern batcalc.!=(b:bat[:oid],v:oid,s:bat[:oid]):bat[:bit] address CMDbatNE; comment Return B != V with candidates list @@ -12660,15 +12656,15 @@ pattern batcalc.<=(b1:bat[:bte],b2:bat[: address CMDbatLE; comment Return B1 <= B2 -pattern batcalc.<=(vb:bat[:oid],s:bat[:oid]):bat[:bit] -address CMDbatLE; -comment Return V <= B with candidates list - -pattern batcalc.<=(vb:bat[:oid]):bat[:bit] -address CMDbatLE; -comment Return V <= B - -pattern batcalc.<=(b:bat[:oid],vs:bat[:oid]):bat[:bit] +pattern batcalc.<=(v:oid,b:bat[:oid],s:bat[:oid]):bat[:bit] +address CMDbatLE; +comment Return V <= B with candidates list + +pattern batcalc.<=(v:oid,b:bat[:oid]):bat[:bit] +address CMDbatLE; +comment Return V <= B + +pattern batcalc.<=(b:bat[:oid],v:oid,s:bat[:oid]):bat[:bit] address CMDbatLE; comment Return B <= V with candidates list @@ -13908,15 +13904,15 @@ pattern batcalc.<(b1:bat[:bte],b2:bat[:b address CMDbatLT; comment Return B1 < B2 -pattern batcalc.<(vb:bat[:oid],s:bat[:oid]):bat[:bit] -address CMDbatLT; -comment Return V < B with candidates list - -pattern batcalc.<(vb:bat[:oid]):bat[:bit] -address CMDbatLT; -comment Return V < B - -pattern batcalc.<(b:bat[:oid],vs:bat[:oid]):bat[:bit] +pattern batcalc.<(v:oid,b:bat[:oid],s:bat[:oid]):bat[:bit] +address CMDbatLT; +comment Return V < B with candidates list + +pattern batcalc.<(v:oid,b:bat[:oid]):bat[:bit] +address CMDbatLT; +comment Return V < B + +pattern batcalc.<(b:bat[:oid],v:oid,s:bat[:oid]):bat[:bit] address CMDbatLT; comment Return B < V with candidates list @@ -15916,15 +15912,15 @@ pattern batcalc.==(b1:bat[:bte],b2:bat[: address CMDbatEQ; comment Return B1 == B2 -pattern batcalc.==(vb:bat[:oid],s:bat[:oid]):bat[:bit] -address CMDbatEQ; -comment Return V == B with candidates list - -pattern batcalc.==(vb:bat[:oid]):bat[:bit] -address CMDbatEQ; -comment Return V == B - -pattern batcalc.==(b:bat[:oid],vs:bat[:oid]):bat[:bit] +pattern batcalc.==(v:oid,b:bat[:oid],s:bat[:oid]):bat[:bit] +address CMDbatEQ; +comment Return V == B with candidates list + +pattern batcalc.==(v:oid,b:bat[:oid]):bat[:bit] +address CMDbatEQ; +comment Return V == B + +pattern batcalc.==(b:bat[:oid],v:oid,s:bat[:oid]):bat[:bit] address CMDbatEQ; comment Return B == V with candidates list @@ -17244,15 +17240,15 @@ pattern batcalc.>=(b1:bat[:bte],b2:bat[: address CMDbatGE; comment Return B1 >= B2 -pattern batcalc.>=(vb:bat[:oid],s:bat[:oid]):bat[:bit] -address CMDbatGE; -comment Return V >= B with candidates list - -pattern batcalc.>=(vb:bat[:oid]):bat[:bit] -address CMDbatGE; -comment Return V >= B - -pattern batcalc.>=(b:bat[:oid],vs:bat[:oid]):bat[:bit] +pattern batcalc.>=(v:oid,b:bat[:oid],s:bat[:oid]):bat[:bit] +address CMDbatGE; +comment Return V >= B with candidates list + +pattern batcalc.>=(v:oid,b:bat[:oid]):bat[:bit] +address CMDbatGE; +comment Return V >= B + +pattern batcalc.>=(b:bat[:oid],v:oid,s:bat[:oid]):bat[:bit] address CMDbatGE; comment Return B >= V with candidates list @@ -18492,15 +18488,15 @@ pattern batcalc.>(b1:bat[:bte],b2:bat[:b address CMDbatGT; comment Return B1 > B2 -pattern batcalc.>(vb:bat[:oid],s:bat[:oid]):bat[:bit] -address CMDbatGT; -comment Return V > B with candidates list - -pattern batcalc.>(vb:bat[:oid]):bat[:bit] -address CMDbatGT; -comment Return V > B - -pattern batcalc.>(b:bat[:oid],vs:bat[:oid]):bat[:bit] +pattern batcalc.>(v:oid,b:bat[:oid],s:bat[:oid]):bat[:bit] +address CMDbatGT; +comment Return V > B with candidates list + +pattern batcalc.>(v:oid,b:bat[:oid]):bat[:bit] +address CMDbatGT; +comment Return V > B + +pattern batcalc.>(b:bat[:oid],v:oid,s:bat[:oid]):bat[:bit] address CMDbatGT; comment Return B > V with candidates list @@ -22456,15 +22452,15 @@ pattern batcalc.cmp(b1:bat[:bte],b2:bat[ address CMDbatCMP; comment Return -1/0/1 if B1 </==/> B2 -pattern batcalc.cmp(vb:bat[:oid],s:bat[:oid]):bat[:bte] -address CMDbatCMP; -comment Return -1/0/1 if V </==/> B with candidates list - -pattern batcalc.cmp(b:bat[:oid],vs:bat[:oid]):bat[:bte] -address CMDbatCMP; -comment Return -1/0/1 if B </==/> V with candidates list - -pattern batcalc.cmp(vb:bat[:oid]):bat[:bte] +pattern batcalc.cmp(v:oid,b:bat[:oid],s:bat[:oid]):bat[:bte] +address CMDbatCMP; +comment Return -1/0/1 if V </==/> B with candidates list + +pattern batcalc.cmp(b:bat[:oid],v:oid,s:bat[:oid]):bat[:bte] +address CMDbatCMP; +comment Return -1/0/1 if B </==/> V with candidates list + +pattern batcalc.cmp(v:oid,b:bat[:oid]):bat[:bte] address CMDbatCMP; comment Return -1/0/1 if V </==/> B @@ -24320,18 +24316,6 @@ pattern batcalc.ifthenelse(b:bat[:bit],v address CMDifthen; comment If-then-else operation to assemble a conditional result -pattern batcalc.ifthenelse(v:bit,b1:bat[:any_1],v2:any_1):bat[:any_1] -address CMDifthen; -comment If-then-else operation to assemble a conditional result - -pattern batcalc.ifthenelse(v:bit,v1:any_1,b2:bat[:any_1]):bat[:any_1] -address CMDifthen; -comment If-then-else operation to assemble a conditional result - -pattern batcalc.ifthenelse(v:bit,b1:bat[:any_1],b2:bat[:any_1]):bat[:any_1] -address CMDifthen; -comment If-then-else operation to assemble a conditional result - pattern batcalc.int_noerror(b:bat[:str],s:bat[:oid]):bat[:int] address CMDconvert_int; comment cast from str to int with candidates list @@ -38354,6 +38338,10 @@ command language.assert(v:sht,term:str): address MALassertSht; command language.assert(v:bit,term:str):void address MALassertBit; +pattern language.block(v:int,w:any...):int +address deblockdataflow; +comment Block on availability of all variables w, and then pass on v + pattern language.call(s:bat[:str]):void address CMDcallBAT; comment Evaluate a program stored in a BAT. @@ -39744,12 +39732,6 @@ comment Replace select with join select pattern optimizer.joinselect():str address OPTwrapper; -pattern optimizer.joinPath(mod:str,fcn:str):str -address OPTwrapper; -comment Join path constructor - -pattern optimizer.joinPath():str -address OPTwrapper; pattern optimizer.matpack(mod:str,fcn:str):str address OPTwrapper; comment Unroll the mat.pack operation @@ -39826,6 +39808,12 @@ comment Experiment with partitioned data pattern optimizer.partitions():str address OPTwrapper; +pattern optimizer.projectionpath(mod:str,fcn:str):str +address OPTwrapper; +comment Join path constructor + +pattern optimizer.projectionpath():str +address OPTwrapper; pattern optimizer.prelude():void address optimizer_prelude; comment Initialize the optimizer @@ -39904,6 +39892,12 @@ comment Collect trace of a specific oper pattern optimizer.trace():str address OPTwrapper; +pattern optimizer.volcano(mod:str,fcn:str):str +address OPTwrapper; +comment Simulate volcano style execution + +pattern optimizer.volcano():str +address OPTwrapper; command pcre.imatch(s:str,pat:str):bit address PCREimatch; comment Caseless Perl Compatible Regular Expression pattern matching against a string @@ -39986,6 +39980,14 @@ command profiler.setheartbeat(b:int):voi address CMDsetHeartbeat; comment Set heart beat performance tracing +command profiler.stoptrace():void +address CMDstopTrace; +comment Stop collecting trace information + +command profiler.starttrace():void +address CMDstartTrace; +comment Start collecting trace information + pattern profiler.stop():void address CMDstopProfiler; comment Stop offline performance profiling diff --git a/clients/Tests/MAL-signatures.stable.out.int128 b/clients/Tests/MAL-signatures.stable.out.int128 --- a/clients/Tests/MAL-signatures.stable.out.int128 +++ b/clients/Tests/MAL-signatures.stable.out.int128 @@ -2428,8 +2428,8 @@ command algebra.not_like(s:str,pat:str): address PCREnotlike2; command algebra.not_like(s:str,pat:str,esc:str):bit address PCREnotlike3; -pattern algebra.projectionPath(l:bat[:any]...):bat[:any] -address ALGjoinPath; +pattern algebra.projectionpath(l:bat[:any]...):bat[:any] +address ALGprojectionpath; comment Routine to handle join paths. The type analysis is rather tricky. command algebra.projection(left:bat[:oid],right:bat[:any_3]):bat[:any_3] @@ -2444,10 +2444,6 @@ command algebra.reuse(b:bat[:any_1]):bat address ALGreuse; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list