Changeset: ba777b82abf0 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ba777b82abf0 Added Files: sql/test/BugTracker-2015/Tests/concurrent-queries.Bug-3848.SQL.py sql/test/BugTracker-2015/Tests/concurrent-queries.Bug-3848.stable.err sql/test/BugTracker-2015/Tests/concurrent-queries.Bug-3848.stable.out sql/test/BugTracker-2015/Tests/concurrent-queries.Bug-3848.timeout sql/test/BugTracker-2015/Tests/concurrent-schema.Bug-3826.SQL.py sql/test/BugTracker-2015/Tests/concurrent-schema.Bug-3826.stable.err sql/test/BugTracker-2015/Tests/concurrent-schema.Bug-3826.stable.out sql/test/BugTracker-2015/Tests/schema-trigger.Bug-3710.sql Removed Files: sql/storage/restrict/Makefile.ag Modified Files: NT/monetdb_config.h.in clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/mapiclient/tachograph.c clients/mapiclient/tomograph.c clients/mapilib/mapi.c clients/python2/monetdb/control.py clients/python3/monetdb/control.py gdk/ChangeLog gdk/gdk.h gdk/gdk_align.c gdk/gdk_atomic.h gdk/gdk_atoms.c gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c gdk/gdk_imprints.c gdk/gdk_join.c gdk/gdk_search.c gdk/gdk_system.c gdk/gdk_system.h gdk/gdk_tm.c gdk/gdk_utils.c monetdb5/ChangeLog monetdb5/extras/rapi/Tests/rapi08.malC monetdb5/extras/rapi/rapi.c monetdb5/mal/Tests/tst033.mal monetdb5/mal/Tests/tst033.stable.out monetdb5/mal/Tests/tst034.mal monetdb5/mal/Tests/tst034.stable.out monetdb5/mal/Tests/tst220.mal monetdb5/mal/Tests/tst220.stable.out monetdb5/mal/mal_client.c monetdb5/mal/mal_dataflow.c monetdb5/mal/mal_debugger.c monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_linker.c monetdb5/mal/mal_namespace.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_recycle.c monetdb5/mal/mal_resource.c monetdb5/mal/mal_runtime.c monetdb5/mal/mal_scenario.c monetdb5/mal/mal_session.c monetdb5/modules/atoms/Tests/xml10.mal monetdb5/modules/atoms/Tests/xml10.stable.out monetdb5/modules/kernel/alarm.c monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/algebra.h monetdb5/modules/kernel/algebra.mal monetdb5/modules/mal/Tests/inspect05.mal monetdb5/modules/mal/Tests/inspect05.stable.out monetdb5/modules/mal/Tests/inspect05.stable.out.int128 monetdb5/modules/mal/Tests/mapi01.mal monetdb5/modules/mal/Tests/mapi01.stable.out monetdb5/modules/mal/Tests/orderidx00.mal monetdb5/modules/mal/Tests/orderidx00.stable.out monetdb5/modules/mal/clients.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/querylog.c monetdb5/modules/mal/remote.c monetdb5/modules/mal/sysmon.c monetdb5/modules/mal/tablet.c monetdb5/modules/mal/tokenizer.c monetdb5/optimizer/Tests/CMexample.mal monetdb5/optimizer/Tests/CMexample.stable.out monetdb5/optimizer/Tests/JPexample.mal monetdb5/optimizer/Tests/JPexample.stable.out monetdb5/optimizer/Tests/joinchain.mal monetdb5/optimizer/Tests/joinchain.stable.out monetdb5/optimizer/Tests/joinpath.mal monetdb5/optimizer/Tests/joinpath.stable.out monetdb5/optimizer/Tests/tst4030.mal monetdb5/optimizer/Tests/tst4030.stable.out monetdb5/optimizer/opt_costModel.c monetdb5/optimizer/opt_generator.c monetdb5/optimizer/opt_joinpath.c monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_pipes.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_pushselect.c monetdb5/optimizer/opt_statistics.c monetdb5/optimizer/opt_support.c monetdb5/optimizer/optimizer.mal monetdb5/scheduler/Tests/memo01.mal monetdb5/scheduler/Tests/memo01.stable.out monetdb5/scheduler/Tests/memo02.mal monetdb5/scheduler/Tests/memo02.stable.out monetdb5/tests/gdkTests/Tests/firstn.mal monetdb5/tests/gdkTests/Tests/firstn.stable.out monetdb5/tests/gdkTests/Tests/scanselect.mal monetdb5/tests/gdkTests/Tests/scanselect.stable.out monetdb5/tests/gdkTests/Tests/selecttst.mal monetdb5/tests/gdkTests/Tests/selecttst.stable.out sql/backends/monet5/UDF/Tests/udf-fuse.stable.out sql/backends/monet5/UDF/Tests/udf-reverse.stable.out sql/backends/monet5/generator/generator.c sql/backends/monet5/generator/generator.h sql/backends/monet5/generator/generator.mal sql/backends/monet5/generator/generator_hge.mal 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/vaults/bam/bam_loader.c sql/backends/monet5/vaults/bam/bam_wrapper.c sql/backends/monet5/vaults/lidar/lidar.c sql/benchmarks/ssbm/Tests/01-explain.stable.out sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/02-explain.stable.out sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/03-explain.stable.out sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/04-explain.stable.out sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/05-explain.stable.out sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/06-explain.stable.out sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/07-explain.stable.out sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/08-explain.stable.out sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/09-explain.stable.out sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/10-explain.stable.out sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/11-explain.stable.out 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 sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128 sql/benchmarks/tpch/Tests/01-explain.stable.out sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit sql/benchmarks/tpch/Tests/01-explain.stable.out.int128 sql/benchmarks/tpch/Tests/02-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out.int128 sql/benchmarks/tpch/Tests/04-explain.stable.out sql/benchmarks/tpch/Tests/04-explain.stable.out.32bit sql/benchmarks/tpch/Tests/05-explain.stable.out sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit 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 sql/benchmarks/tpch/Tests/08-explain.stable.out.int128 sql/benchmarks/tpch/Tests/09-explain.stable.out sql/benchmarks/tpch/Tests/09-explain.stable.out.int128 sql/benchmarks/tpch/Tests/10-explain.stable.out sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 sql/benchmarks/tpch/Tests/11-explain.stable.out sql/benchmarks/tpch/Tests/11-explain.stable.out.int128 sql/benchmarks/tpch/Tests/12-explain.stable.out sql/benchmarks/tpch/Tests/12-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/14-explain.stable.out sql/benchmarks/tpch/Tests/14-explain.stable.out.int128 sql/benchmarks/tpch/Tests/15-explain.stable.out sql/benchmarks/tpch/Tests/15-explain.stable.out.int128 sql/benchmarks/tpch/Tests/16-explain.stable.out sql/benchmarks/tpch/Tests/16-explain.stable.out.32bit sql/benchmarks/tpch/Tests/17-explain.stable.out sql/benchmarks/tpch/Tests/17-explain.stable.out.int128 sql/benchmarks/tpch/Tests/18-explain.stable.out 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 sql/benchmarks/tpch/Tests/20-explain.stable.out.32bit 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/common/sql_list.c sql/common/sql_types.c sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_planner.c sql/server/rel_select.c sql/server/rel_updates.c sql/storage/sql_catalog.c sql/storage/store.c sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128 sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128 sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128.single sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.single sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out.single sql/test/BugTracker-2015/Tests/All sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.err sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.out sql/test/BugTracker-2015/Tests/date_comparison_incorrect_results.Bug-3834.stable.out sql/test/BugTracker-2015/Tests/update_with_without_parenthesis.Bug-3838.stable.out sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out.32bit sql/test/SQLite_regress/sqllogictest/Tests/select2.test.sql sql/test/SQLite_regress/sqllogictest/Tests/select2.test.stable.out sql/test/SQLite_regress/sqllogictest/Tests/select2.test.stable.out.int128 sql/test/SQLite_regress/sqllogictest/Tests/select5.test.timeout sql/test/Tests/trace.stable.out.int128 sql/test/mergetables/Tests/singlekeyconstraint.sql sql/test/mergetables/Tests/singlekeyconstraint.stable.err sql/test/mergetables/Tests/singlekeyconstraint.stable.out sql/test/remote/Tests/partition_elim.stable.out testing/Mtest.py.in Branch: leftmart Log Message:
Merge with default diffs (truncated from 93548 to 300 lines): diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in --- a/NT/monetdb_config.h.in +++ b/NT/monetdb_config.h.in @@ -57,6 +57,8 @@ #include <assert.h> +#define __func__ __FUNCTION__ + /* indicate to sqltypes.h that windows.h has already been included and that it doesn't have to define Windows constants */ #define ALREADY_HAVE_WINDOWS_TYPE 1 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 @@ -2328,10 +2328,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 -pattern algebra.leftfetchjoinPath(l:bat[:oid,:any]...):bat[:oid,:any] -address ALGjoinPath; -comment Routine to handle join paths. The type analysis is rather tricky. - 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]) @@ -2350,10 +2346,6 @@ command algebra.like(s:str,pat:str):bit address PCRElike2; command algebra.like(s:str,pat:str,esc:str):bit address PCRElike3; -command algebra.leftfetchjoin(left:bat[:oid,:oid],right:bat[:oid,:any_3]):bat[:oid,:any_3] -address ALGleftfetchjoin; -comment Hook directly into the left fetch join implementation. - command algebra.not_ilike(s:str,pat:str):bit address PCREnotilike2; command algebra.not_ilike(s:str,pat:str,esc:str):bit @@ -2363,6 +2355,14 @@ address PCREnotlike2; command algebra.not_like(s:str,pat:str,esc:str):bit address PCREnotlike3; function algebra.orderidx(bv:bat[:oid,:any_1],reverse:bit,stable:bit):bat[:oid,:oid]; +pattern algebra.projectionPath(l:bat[:oid,:any]...):bat[:oid,:any] +address ALGjoinPath; +comment Routine to handle join paths. The type analysis is rather tricky. + +command algebra.projection(left:bat[:oid,:oid],right:bat[:oid,:any_3]):bat[:oid,:any_3] +address ALGprojection; +comment Hook directly into the left fetch join implementation. + pattern algebra.project(b:bat[:oid,:any_1],v:any_3):bat[:oid,:any_3] address ALGprojecttail; comment Fill the tail with a constant 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 @@ -2839,10 +2839,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 -pattern algebra.leftfetchjoinPath(l:bat[:oid,:any]...):bat[:oid,:any] -address ALGjoinPath; -comment Routine to handle join paths. The type analysis is rather tricky. - 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]) @@ -2861,10 +2857,6 @@ command algebra.like(s:str,pat:str):bit address PCRElike2; command algebra.like(s:str,pat:str,esc:str):bit address PCRElike3; -command algebra.leftfetchjoin(left:bat[:oid,:oid],right:bat[:oid,:any_3]):bat[:oid,:any_3] -address ALGleftfetchjoin; -comment Hook directly into the left fetch join implementation. - command algebra.not_ilike(s:str,pat:str):bit address PCREnotilike2; command algebra.not_ilike(s:str,pat:str,esc:str):bit @@ -2874,6 +2866,14 @@ address PCREnotlike2; command algebra.not_like(s:str,pat:str,esc:str):bit address PCREnotlike3; function algebra.orderidx(bv:bat[:oid,:any_1],reverse:bit,stable:bit):bat[:oid,:oid]; +pattern algebra.projectionPath(l:bat[:oid,:any]...):bat[:oid,:any] +address ALGjoinPath; +comment Routine to handle join paths. The type analysis is rather tricky. + +command algebra.projection(left:bat[:oid,:oid],right:bat[:oid,:any_3]):bat[:oid,:any_3] +address ALGprojection; +comment Hook directly into the left fetch join implementation. + pattern algebra.project(b:bat[:oid,:any_1],v:any_3):bat[:oid,:any_3] address ALGprojecttail; comment Fill the tail with a constant @@ -48895,32 +48895,32 @@ pattern generator.join(b:bat[:oid,:sht], address VLTgenerator_join; pattern generator.join(b:bat[:oid,:bte],gen:bat[:oid,:bte]) (l:bat[:oid,:oid],r:bat[:oid,:oid]) address VLTgenerator_join; -pattern generator.leftfetchjoin(b:bat[:oid,:oid],cand:bat[:oid,:hge]):bat[:oid,:hge] -address VLTgenerator_leftfetchjoin; -comment Overloaded leftfetchjoin operation - -pattern generator.leftfetchjoin(b:bat[:oid,:oid],cand:bat[:oid,:timestamp]):bat[:oid,:timestamp] -address VLTgenerator_leftfetchjoin; -comment Overloaded leftfetchjoin operation - -pattern generator.leftfetchjoin(b:bat[:oid,:oid],cand:bat[:oid,:dbl]):bat[:oid,:dbl] -address VLTgenerator_leftfetchjoin; -pattern generator.leftfetchjoin(b:bat[:oid,:oid],cand:bat[:oid,:flt]):bat[:oid,:flt] -address VLTgenerator_leftfetchjoin; -pattern generator.leftfetchjoin(b:bat[:oid,:oid],cand:bat[:oid,:lng]):bat[:oid,:lng] -address VLTgenerator_leftfetchjoin; -pattern generator.leftfetchjoin(b:bat[:oid,:oid],cand:bat[:oid,:int]):bat[:oid,:int] -address VLTgenerator_leftfetchjoin; -pattern generator.leftfetchjoin(b:bat[:oid,:oid],cand:bat[:oid,:sht]):bat[:oid,:sht] -address VLTgenerator_leftfetchjoin; -pattern generator.leftfetchjoin(b:bat[:oid,:oid],cand:bat[:oid,:bte]):bat[:oid,:bte] -address VLTgenerator_leftfetchjoin; +pattern generator.projection(b:bat[:oid,:oid],cand:bat[:oid,:hge]):bat[:oid,:hge] +address VLTgenerator_projection; +comment Overloaded projection operation + pattern generator.parameters(first:hge,last:hge):bat[:oid,:hge] address VLTgenerator_noop; pattern generator.parameters(first:hge,last:hge,step:hge):bat[:oid,:hge] address VLTgenerator_noop; comment Retain the table definition, but don't materialize +pattern generator.projection(b:bat[:oid,:oid],cand:bat[:oid,:timestamp]):bat[:oid,:timestamp] +address VLTgenerator_projection; +comment Overloaded projection operation + +pattern generator.projection(b:bat[:oid,:oid],cand:bat[:oid,:dbl]):bat[:oid,:dbl] +address VLTgenerator_projection; +pattern generator.projection(b:bat[:oid,:oid],cand:bat[:oid,:flt]):bat[:oid,:flt] +address VLTgenerator_projection; +pattern generator.projection(b:bat[:oid,:oid],cand:bat[:oid,:lng]):bat[:oid,:lng] +address VLTgenerator_projection; +pattern generator.projection(b:bat[:oid,:oid],cand:bat[:oid,:int]):bat[:oid,:int] +address VLTgenerator_projection; +pattern generator.projection(b:bat[:oid,:oid],cand:bat[:oid,:sht]):bat[:oid,:sht] +address VLTgenerator_projection; +pattern generator.projection(b:bat[:oid,:oid],cand:bat[:oid,:bte]):bat[:oid,:bte] +address VLTgenerator_projection; pattern generator.parameters(first:dbl,last:dbl):bat[:oid,:dbl] address VLTgenerator_noop; pattern generator.parameters(first:flt,last:flt):bat[:oid,:flt] 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 @@ -171,9 +171,9 @@ gdk_return BATsubbandjoin(BAT **r1p, BAT gdk_return BATsubcross(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr); BAT *BATsubdiff(BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); gdk_return BATsubjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); -gdk_return BATsubleftfetchjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); gdk_return BATsubleftjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); gdk_return BATsubouterjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); +gdk_return BATsubprojection(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); gdk_return BATsubrangejoin(BAT **r1p, BAT **r2p, BAT *l, BAT *rl, BAT *rh, BAT *sl, BAT *sr, int li, int hi, BUN estimate); BAT *BATsubselect(BAT *b, BAT *s, const void *tl, const void *th, int li, int hi, int anti); gdk_return BATsubsemijoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate); @@ -713,9 +713,9 @@ str ALGfirstn(Client cntxt, MalBlkPtr mb str ALGgroupby(bat *res, const bat *gids, const bat *cnts); str ALGjoin2(bat *l, bat *r, const bat *lid, const bat *rid); str ALGjoinPath(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str ALGleftfetchjoin(bat *result, const bat *lid, const bat *rid); str ALGmaxany(ptr result, const bat *bid); str ALGminany(ptr result, const bat *bid); +str ALGprojection(bat *result, const bat *lid, const bat *rid); str ALGprojecttail(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str ALGrangejoin2(bat *l, bat *r, const bat *lid, const bat *rlid, const bat *rhid, const bit *li, const bit *hi); str ALGreuse(bat *ret, const bat *bid); @@ -2244,8 +2244,6 @@ str joinPathRef; str joinRef; str jsonRef; str languageRef; -str leftfetchjoinPathRef; -str leftfetchjoinRef; str levenshtein_impl(int *result, str *s, str *t, int *insdel_cost, int *replace_cost, int *transpose_cost); str levenshteinbasic2_impl(int *result, str *s, str *t); str levenshteinbasic_impl(int *result, str *s, str *t); @@ -2404,6 +2402,8 @@ void profilerHeartbeatEvent(char *msg); str profilerRef; str projectRef; str projectdeltaRef; +str projectionPathRef; +str projectionRef; void promptInstruction(stream *fd, MalBlkPtr mb, MalStkPtr stk, InstrPtr p, int flg); InstrPtr pushArgument(MalBlkPtr mb, InstrPtr p, int varid); InstrPtr pushArgumentId(MalBlkPtr mb, InstrPtr p, str name); diff --git a/clients/mapiclient/tachograph.c b/clients/mapiclient/tachograph.c --- a/clients/mapiclient/tachograph.c +++ b/clients/mapiclient/tachograph.c @@ -291,9 +291,9 @@ static struct{ int newl; int mode; }mapping[]={ - {"algebra.leftfetchjoinPath", 25, "join",4, 0}, + {"algebra.projectionPath", 25, "join",4, 0}, {"algebra.thetasubselect", 22, "select",6, 0}, - {"algebra.leftfetchjoin", 21, "join",4, 0}, + {"algebra.projection", 21, "join",4, 0}, {"dataflow.language", 17, "parallel", 8, 0}, {"algebra.subselect", 17, "select",6, 0}, {"sql.projectdelta", 16, "project",7, 0}, @@ -675,7 +675,7 @@ update(EventRecord *ev) if ( strstr(ev->stmt,"sql.projectdelta") && *ev->stmt != '(' ){ addSourcePair(malvariables[0], malvariables[1]); } else - if ( strstr(ev->stmt,"algebra.leftfetchjoin") && *ev->stmt != '(' ){ + if ( strstr(ev->stmt,"algebra.projection") && *ev->stmt != '(' ){ addSourcePair(malvariables[0], malvariables[malvartop - 1]); } else if ( strstr(ev->stmt,"algebra.subjoin") && *ev->stmt != '(' ){ diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c --- a/clients/mapiclient/tomograph.c +++ b/clients/mapiclient/tomograph.c @@ -274,7 +274,7 @@ base_colors[NUM_COLORS] = { /* reserve (base_)colors[0] for generic "*.*" */ /* 99999 { 0, 0, "*", "*", 0 },*/ /* arbitrarily ordered by descending frequency in TPCH SF-100 with 32 threads */ -/* 11054 */ { 0, 0, "algebra", "leftfetchjoin", 0 }, +/* 11054 */ { 0, 0, "algebra", "projection", 0 }, /* 10355 */ { 0, 0, "language", "pass", 0 }, /* 5941 */ { 0, 0, "sql", "bind", 0 }, /* 5664 */ { 0, 0, "mat", "packIncrement", 0 }, @@ -284,7 +284,7 @@ base_colors[NUM_COLORS] = { /* 2664 */ { 0, 0, "sql", "projectdelta", 0 }, /* 2112 */ { 0, 0, "batcalc", "!=", 0 }, /* 1886 */ { 0, 0, "sql", "bind_idxbat", 0 }, -/* 1881 */ { 0, 0, "algebra", "leftfetchjoinPath", 0 }, +/* 1881 */ { 0, 0, "algebra", "projectionPath", 0 }, /* */ { 0, 0, "algebra", "tinter", 0 }, /* */ { 0, 0, "algebra", "tdiff", 0 }, /* 1013 */ { 0, 0, "sql", "tid", 0 }, diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c --- a/clients/mapilib/mapi.c +++ b/clients/mapilib/mapi.c @@ -1006,18 +1006,13 @@ struct MapiStatement { mapi_clrError((X)->mid); \ } while (0) -static Mapi mapi_new(void); static int mapi_extend_bindings(MapiHdl hdl, int minbindings); static int mapi_extend_params(MapiHdl hdl, int minparams); -static MapiMsg mapi_setError(Mapi mid, const char *msg, const char *action, MapiMsg error); static void close_connection(Mapi mid); static MapiMsg read_into_cache(MapiHdl hdl, int lookahead); static int unquote(const char *msg, char **start, const char **next, int endchar, size_t *lenp); static int mapi_slice_row(struct MapiResultSet *result, int cr); static void mapi_store_bind(struct MapiResultSet *result, int cr); -static void parse_uri_query(Mapi mid, char *uri); -static void set_uri(Mapi mid); -static MapiMsg connect_to_server(Mapi mid); static int mapi_initialized = 0; @@ -1872,9 +1867,9 @@ mapi_new(void) mid->index = index++; /* for distinctions in log records */ mid->auto_commit = 1; mid->error = MOK; - mid->hostname = strdup("localhost"); + mid->hostname = NULL; mid->server = NULL; - mid->language = strdup("sql"); + mid->language = NULL; mid->languageId = LANG_SQL; mid->noexplain = NULL; @@ -1901,376 +1896,9 @@ mapi_new(void) mid->first = NULL; - if (mid->hostname == NULL || mid->language == NULL) { - /* strdup failed, give up */ - mapi_destroy(mid); - return NULL; - } - return mid; } -Mapi -mapi_mapiuri(const char *url, const char *user, const char *pass, const char *lang) -{ - char *uri; - char *host; - int port; - char *dbname; - char *p; - Mapi mid; - - if (!mapi_initialized) { - mapi_initialized = 1; - if (mnstr_init() < 0) - return NULL; - } - - mid = mapi_new(); - if (mid == NULL) - return NULL; - _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list