Changeset: 14de023fcd87 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=14de023fcd87 Added Files: monetdb5/modules/mal/Tests/pqueue2.stable.err monetdb5/modules/mal/Tests/pqueue2.stable.out monetdb5/modules/mal/Tests/pqueue3.stable.err monetdb5/modules/mal/Tests/pqueue3.stable.out sql/test/pg_regress/Tests/aggregates.stable.err sql/test/pg_regress/Tests/aggregates.stable.out sql/test/pg_regress/Tests/alter_table.stable.err sql/test/pg_regress/Tests/alter_table.stable.out sql/test/pg_regress/Tests/arrays.stable.err sql/test/pg_regress/Tests/arrays.stable.out sql/test/pg_regress/Tests/bit.stable.err sql/test/pg_regress/Tests/bit.stable.out sql/test/pg_regress/Tests/boolean.stable.err sql/test/pg_regress/Tests/boolean.stable.out sql/test/pg_regress/Tests/box.stable.err sql/test/pg_regress/Tests/box.stable.out sql/test/pg_regress/Tests/btree_index.stable.err sql/test/pg_regress/Tests/btree_index.stable.out sql/test/pg_regress/Tests/case.stable.err sql/test/pg_regress/Tests/case.stable.out sql/test/pg_regress/Tests/circle.stable.err sql/test/pg_regress/Tests/circle.stable.out sql/test/pg_regress/Tests/cluster.stable.err sql/test/pg_regress/Tests/cluster.stable.out sql/test/pg_regress/Tests/comments.stable.err sql/test/pg_regress/Tests/comments.stable.out sql/test/pg_regress/Tests/conversion.stable.err sql/test/pg_regress/Tests/conversion.stable.out sql/test/pg_regress/Tests/copy2.stable.err sql/test/pg_regress/Tests/copy2.stable.out sql/test/pg_regress/Tests/create_aggregate.stable.err sql/test/pg_regress/Tests/create_aggregate.stable.out sql/test/pg_regress/Tests/create_index.stable.err sql/test/pg_regress/Tests/create_index.stable.out sql/test/pg_regress/Tests/create_misc.stable.err sql/test/pg_regress/Tests/create_misc.stable.out sql/test/pg_regress/Tests/create_operator.stable.err sql/test/pg_regress/Tests/create_operator.stable.out sql/test/pg_regress/Tests/create_table.stable.err sql/test/pg_regress/Tests/create_table.stable.out sql/test/pg_regress/Tests/create_type.stable.err sql/test/pg_regress/Tests/create_type.stable.out sql/test/pg_regress/Tests/create_view.stable.err sql/test/pg_regress/Tests/create_view.stable.out sql/test/pg_regress/Tests/date.stable.err sql/test/pg_regress/Tests/date.stable.out sql/test/pg_regress/Tests/domain.stable.err sql/test/pg_regress/Tests/domain.stable.out sql/test/pg_regress/Tests/drop.stable.err sql/test/pg_regress/Tests/drop.stable.out sql/test/pg_regress/Tests/errors.stable.err sql/test/pg_regress/Tests/errors.stable.out sql/test/pg_regress/Tests/float4.stable.err sql/test/pg_regress/Tests/float4.stable.out sql/test/pg_regress/Tests/float8.stable.err sql/test/pg_regress/Tests/float8.stable.out sql/test/pg_regress/Tests/foreign_key.stable.err sql/test/pg_regress/Tests/foreign_key.stable.out sql/test/pg_regress/Tests/geometry.stable.err sql/test/pg_regress/Tests/geometry.stable.out sql/test/pg_regress/Tests/hash_index.stable.err sql/test/pg_regress/Tests/hash_index.stable.out sql/test/pg_regress/Tests/horology.stable.err sql/test/pg_regress/Tests/horology.stable.out sql/test/pg_regress/Tests/inet.stable.err sql/test/pg_regress/Tests/inet.stable.out sql/test/pg_regress/Tests/inherit.stable.err sql/test/pg_regress/Tests/inherit.stable.out sql/test/pg_regress/Tests/insert.stable.err sql/test/pg_regress/Tests/insert.stable.out sql/test/pg_regress/Tests/int2.stable.err sql/test/pg_regress/Tests/int2.stable.out sql/test/pg_regress/Tests/int4.stable.err sql/test/pg_regress/Tests/int4.stable.out sql/test/pg_regress/Tests/int8.stable.err sql/test/pg_regress/Tests/int8.stable.out sql/test/pg_regress/Tests/interval.stable.err sql/test/pg_regress/Tests/interval.stable.out sql/test/pg_regress/Tests/join.stable.err sql/test/pg_regress/Tests/join.stable.out sql/test/pg_regress/Tests/limit.stable.err sql/test/pg_regress/Tests/limit.stable.out sql/test/pg_regress/Tests/lseg.stable.err sql/test/pg_regress/Tests/lseg.stable.out sql/test/pg_regress/Tests/mule_internal.stable.err sql/test/pg_regress/Tests/mule_internal.stable.out sql/test/pg_regress/Tests/name.stable.err sql/test/pg_regress/Tests/name.stable.out sql/test/pg_regress/Tests/namespace.stable.err sql/test/pg_regress/Tests/namespace.stable.out sql/test/pg_regress/Tests/numeric.stable.err sql/test/pg_regress/Tests/numeric.stable.out sql/test/pg_regress/Tests/numeric_big.stable.err sql/test/pg_regress/Tests/numeric_big.stable.out sql/test/pg_regress/Tests/numerology.stable.err sql/test/pg_regress/Tests/numerology.stable.out sql/test/pg_regress/Tests/oid.stable.err sql/test/pg_regress/Tests/oid.stable.out sql/test/pg_regress/Tests/oidjoins.stable.err sql/test/pg_regress/Tests/oidjoins.stable.out sql/test/pg_regress/Tests/opr_sanity.stable.err sql/test/pg_regress/Tests/opr_sanity.stable.out sql/test/pg_regress/Tests/path.stable.err sql/test/pg_regress/Tests/path.stable.out sql/test/pg_regress/Tests/plpgsql.stable.err sql/test/pg_regress/Tests/plpgsql.stable.out sql/test/pg_regress/Tests/point.stable.err sql/test/pg_regress/Tests/point.stable.out sql/test/pg_regress/Tests/polygon.stable.err sql/test/pg_regress/Tests/polygon.stable.out sql/test/pg_regress/Tests/polymorphism.stable.err sql/test/pg_regress/Tests/polymorphism.stable.out sql/test/pg_regress/Tests/portals.stable.err sql/test/pg_regress/Tests/portals.stable.out sql/test/pg_regress/Tests/portals_p2.stable.err sql/test/pg_regress/Tests/portals_p2.stable.out sql/test/pg_regress/Tests/prepare.stable.err sql/test/pg_regress/Tests/prepare.stable.out sql/test/pg_regress/Tests/privileges.stable.err sql/test/pg_regress/Tests/privileges.stable.out sql/test/pg_regress/Tests/random.stable.err sql/test/pg_regress/Tests/random.stable.out sql/test/pg_regress/Tests/rangefuncs.stable.err sql/test/pg_regress/Tests/rangefuncs.stable.out sql/test/pg_regress/Tests/reltime.stable.err sql/test/pg_regress/Tests/reltime.stable.out sql/test/pg_regress/Tests/rowtypes.stable.err sql/test/pg_regress/Tests/rowtypes.stable.out sql/test/pg_regress/Tests/rules.stable.err sql/test/pg_regress/Tests/rules.stable.out sql/test/pg_regress/Tests/sanity_check.stable.err sql/test/pg_regress/Tests/sanity_check.stable.out sql/test/pg_regress/Tests/select.stable.err sql/test/pg_regress/Tests/select.stable.out sql/test/pg_regress/Tests/select_distinct.stable.err sql/test/pg_regress/Tests/select_distinct.stable.out sql/test/pg_regress/Tests/select_distinct_on.stable.err sql/test/pg_regress/Tests/select_distinct_on.stable.out sql/test/pg_regress/Tests/select_having.stable.err sql/test/pg_regress/Tests/select_having.stable.out sql/test/pg_regress/Tests/select_implicit.stable.err sql/test/pg_regress/Tests/select_implicit.stable.out sql/test/pg_regress/Tests/select_into.stable.err sql/test/pg_regress/Tests/select_into.stable.out sql/test/pg_regress/Tests/select_views.stable.err sql/test/pg_regress/Tests/select_views.stable.out sql/test/pg_regress/Tests/sequence.stable.err sql/test/pg_regress/Tests/sequence.stable.out sql/test/pg_regress/Tests/sql_ascii.stable.err sql/test/pg_regress/Tests/sql_ascii.stable.out sql/test/pg_regress/Tests/stats.stable.err sql/test/pg_regress/Tests/stats.stable.out sql/test/pg_regress/Tests/strings.stable.err sql/test/pg_regress/Tests/strings.stable.out sql/test/pg_regress/Tests/subselect.stable.err sql/test/pg_regress/Tests/subselect.stable.out sql/test/pg_regress/Tests/temp.stable.err sql/test/pg_regress/Tests/temp.stable.out sql/test/pg_regress/Tests/time.stable.err sql/test/pg_regress/Tests/time.stable.out sql/test/pg_regress/Tests/timestamp.stable.err sql/test/pg_regress/Tests/timestamp.stable.out sql/test/pg_regress/Tests/timestamptz.stable.err sql/test/pg_regress/Tests/timestamptz.stable.out sql/test/pg_regress/Tests/timetz.stable.err sql/test/pg_regress/Tests/timetz.stable.out sql/test/pg_regress/Tests/tinterval.stable.err sql/test/pg_regress/Tests/tinterval.stable.out sql/test/pg_regress/Tests/transactions.stable.err sql/test/pg_regress/Tests/transactions.stable.out sql/test/pg_regress/Tests/triggers.stable.err sql/test/pg_regress/Tests/triggers.stable.out sql/test/pg_regress/Tests/truncate.stable.err sql/test/pg_regress/Tests/truncate.stable.out sql/test/pg_regress/Tests/type_sanity.stable.err sql/test/pg_regress/Tests/type_sanity.stable.out sql/test/pg_regress/Tests/union.stable.err sql/test/pg_regress/Tests/union.stable.out sql/test/pg_regress/Tests/update.stable.err sql/test/pg_regress/Tests/update.stable.out sql/test/pg_regress/Tests/vacuum.stable.err sql/test/pg_regress/Tests/vacuum.stable.out sql/test/pg_regress/Tests/without_oid.stable.err sql/test/pg_regress/Tests/without_oid.stable.out Removed Files: sql/test/pg_regress/Tests/char.SQL.bat sql/test/pg_regress/Tests/char.SQL.sh sql/test/pg_regress/Tests/strings_cast.SQL.bat sql/test/pg_regress/Tests/strings_cast.SQL.sh sql/test/pg_regress/Tests/strings_concat.SQL.bat sql/test/pg_regress/Tests/strings_concat.SQL.sh sql/test/pg_regress/Tests/strings_like.SQL.bat sql/test/pg_regress/Tests/strings_like.SQL.sh sql/test/pg_regress/Tests/text.SQL.bat sql/test/pg_regress/Tests/text.SQL.sh sql/test/pg_regress/Tests/varchar.SQL.bat sql/test/pg_regress/Tests/varchar.SQL.sh Modified Files: clients/R/MonetDB.R/src/mapi.c clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures_gsl.stable.out clients/Tests/MAL-signatures_nocfitsio.stable.out clients/Tests/MAL-signatures_sphinxclient.stable.out clients/Tests/SQL-dump.stable.out clients/Tests/SQL-dump.stable.out.64bit.oid32 clients/Tests/SQL-dump_gsl.stable.out clients/Tests/SQL-dump_gsl.stable.out.oid32 clients/Tests/SQL-dump_nogeom.stable.out clients/Tests/exports.stable.out configure.ag gdk/gdk.h gdk/gdk_atoms.c gdk/gdk_bat.c gdk/gdk_join.c monetdb5/modules/kernel/bat5.c monetdb5/modules/kernel/bat5.mal monetdb5/modules/mal/tablet.c monetdb5/modules/mal/tokenizer.c monetdb5/optimizer/Tests/inline08.stable.out monetdb5/optimizer/opt_dataflow.c monetdb5/optimizer/opt_evaluate.c monetdb5/optimizer/opt_octopus.c monetdb5/optimizer/opt_qep.c monetdb5/optimizer/opt_remoteQueries.c monetdb5/optimizer/opt_reorder.c monetdb5/optimizer/opt_strengthReduction.c monetdb5/optimizer/opt_wrapper.c monetdb5/scheduler/run_octopus.c sql/backends/monet5/rel_bin.c sql/jdbc/tests/Tests/Test_PSmetadata.stable.out sql/server/rel_dump.c sql/server/rel_select.c sql/server/rel_select.h sql/server/rel_updates.c sql/test/ADT2006/Tests/bram.stable.out sql/test/BugTracker-2012/Tests/create_function.Bug-3172.stable.err sql/test/BugTracker-2012/Tests/table_function_with_column_subselects.Bug-3172.stable.err sql/test/BugTracker-2013/Tests/pivot.Bug-3339.stable.err sql/test/Tests/systemfunctions.stable.out sql/test/Tests/systemfunctions_gsl.stable.out sql/test/Tests/systemfunctions_nogeom.stable.out sql/test/leaks/Tests/check1.stable.out sql/test/leaks/Tests/check2.stable.out sql/test/leaks/Tests/check3.stable.out sql/test/leaks/Tests/check4.stable.out sql/test/leaks/Tests/check5.stable.out sql/test/pg_regress/Tests/All sql/test/pg_regress/Tests/char.stable.err sql/test/pg_regress/Tests/char.stable.out sql/test/pg_regress/Tests/load.SQL.bat sql/test/pg_regress/Tests/load.SQL.sh sql/test/pg_regress/Tests/strings_cast.stable.err sql/test/pg_regress/Tests/strings_cast.stable.out sql/test/pg_regress/Tests/strings_concat.stable.err sql/test/pg_regress/Tests/strings_concat.stable.out sql/test/pg_regress/Tests/strings_like.stable.err sql/test/pg_regress/Tests/strings_like.stable.out sql/test/pg_regress/Tests/text.stable.err sql/test/pg_regress/Tests/text.stable.out sql/test/pg_regress/Tests/varchar.stable.err sql/test/pg_regress/Tests/varchar.stable.out Branch: multifarm Log Message:
Merge with default branch. diffs (truncated from 42721 to 300 lines): diff --git a/clients/R/MonetDB.R/src/mapi.c b/clients/R/MonetDB.R/src/mapi.c --- a/clients/R/MonetDB.R/src/mapi.c +++ b/clients/R/MonetDB.R/src/mapi.c @@ -257,8 +257,8 @@ SEXP mapiRead(SEXP conn) { while (response_buf_offset + block_length > response_buf_len) { response_buf_len += ALLOCSIZE; if (DEBUG) { - printf("II: Reallocating memory, new size %lu\n", - (unsigned long) response_buf_len); + printf("II: Reallocating memory, new size "SZFMT"\n", + response_buf_len); } response_buf = realloc(response_buf, response_buf_len); if (response_buf == NULL) { 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 @@ -2691,31 +2691,19 @@ command algebra.slice(b:bat[:any_1,:any_ address ALGslice_oid; comment Return the slice based on head oid x till y (exclusive). -command algebra.select(b:bat[:any_2,:void],low:any_2,high:any_2,li:bit,hi:bit):bat[:any_2,:void] -address ALGselectInclusiveHead; -command algebra.select(b:bat[:any_2,:void],low:any_2,high:any_2):bat[:any_2,:void] -address ALGselectHead; -command algebra.select(b:bat[:any_2,:void],low:any_2):bat[:any_2,:void] -address ALGselect1Head; -command algebra.selectH(b:bat[:any_1,:any_2],value:any_1):bat[:any_1,:any_2] -address ALGselect1Head; -command algebra.selectH(b:bat[:any_1,:any_2],low:any_1,high:any_1,li:bit,hi:bit):bat[:any_1,:any_2] -address ALGselectInclusiveHead; -command algebra.selectH(b:bat[:any_1,:any_2],low:any_1,high:any_1):bat[:any_1,:any_2] -address ALGselectHead; -command algebra.selectNotNil(b:bat[:any_1,:any_2]):bat[:any_1,:any_2] +command algebra.selectNotNil(b:bat[:oid,:any_2]):bat[:oid,:any_2] address ALGselectNotNil; comment Select all not-nil values -command algebra.select(b:bat[:any_1,:any_2],value:any_2):bat[:any_1,:any_2] +command algebra.select(b:bat[:oid,:any_2],value:any_2):bat[:oid,:any_2] address ALGselect1; comment Select all BUNs of a BAT with a certain tail value. Selection on NIL is also possible (it should be properly casted, e.g.:int(nil)). -command algebra.select(b:bat[:any_1,:any_2],low:any_2,high:any_2,li:bit,hi:bit):bat[:any_1,:any_2] +command algebra.select(b:bat[:oid,:any_2],low:any_2,high:any_2,li:bit,hi:bit):bat[:oid,:any_2] address ALGselectInclusive; comment Select all BUNs that have tail values: {v| low <{=} v <{=} high}. Boundary inclusion is indicated separately. NIL boundary values have a special meaning. + low == nil means: no lower bound + high == nil means: no upper bound. -command algebra.select(b:bat[:any_1,:any_2],low:any_2,high:any_2):bat[:any_1,:any_2] +command algebra.select(b:bat[:oid,:any_2],low:any_2,high:any_2):bat[:oid,:any_2] address ALGselect; comment Select all BUNs that have tail values: {v| low <= v <= high}. NIL boundary values have a special meaning. + low == nil means: no lower bound + high == nil means: no upper bound. NOTE 1: you should cast the nil to the appropriate type, e.g. int(nil) in order to circumvent type clashes. NOTE 2: as the 'nil' element has no clear place in the ordered domain of values, tuples with 'nil' values are NEVER returned by the range select. @@ -2759,10 +2747,6 @@ command algebra.topN(b:bat[:any_1,:any_2 address ALGtopN; comment Trim all but the top N tuples. -command algebra.thetaselect(b:bat[:any_1,:any_2],val:any_2,op:str):bat[:any_1,:any_2] -address ALGthetaselect; -comment The theta (<=,<,=,>,>=) select() - 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. @@ -32068,14 +32052,6 @@ command bat.setHash(b:bat[:oid,:any_2],p address BKCsetHash; comment Create a hash structure on the column -command bat.setMemoryAdvise(b:bat[:oid,:any_2],mode:int):bit -address BKCmadvise2; -comment alias for madvise(b, mode, mode, mode, mode) - -command bat.setMemoryAdvise(b:bat[:oid,:any_2],head_mode:int,tail_mode:int,hheap_mode:int,theap_mode:int):bit -address BKCmadvise; -comment Modern Operating Systems allow users to influence the buffer management policy of virtual memory. This is a crucial feature for database systems, and eliminates the need to reimplement the OS in a database buffer manager. The supported flags are BUF_NORMAL (the normal adaptive kernel algorithm), BUF_RANDOM (no page prefetching), BUF_SEQUENTIAL (prefetch and swapout), BUF_WILLNEED (load everything with prefetch), BUF_DONTNEED (swapout). These buffer management modes are not persistent. Returns the BAT operated upon. - command bat.setMemoryMap(b:bat[:oid,:any_2],mode:int):bit address BKCmmap2; comment Alias for mmap(b, mode, mode, mode, mode) @@ -39444,6 +39420,10 @@ command iterator.new(b:bat[:oid,:any_2], address ITRnewChunk; comment Create an iterator with fixed granule size. The result is a view. +command json.aggr(val:bat[:oid,:dbl]):str +address JSONgroupStr; +comment Aggregate the double values to array. + command json.aggr(val:bat[:oid,:str]):str address JSONgroupStr; comment Aggregate the string values to array. @@ -39550,10 +39530,18 @@ pattern json.renderarray(val:any...):jso address JSONrenderarray; pattern json.renderobject(val:any...):json address JSONrenderobject; +command json.subaggr(val:bat[:oid,:dbl],g:bat[:oid,:oid],e:bat[:oid,:any_1],s:bat[:oid,:oid],skip_nils:bit):bat[:oid,:str] +address JSONsubjsoncand; +comment Grouped aggregation of values with candidates list. + command json.subaggr(val:bat[:oid,:str],g:bat[:oid,:oid],e:bat[:oid,:any_1],s:bat[:oid,:oid],skip_nils:bit):bat[:oid,:str] address JSONsubjsoncand; comment Grouped aggregation of values with candidates list. +command json.subaggr(val:bat[:oid,:dbl],g:bat[:oid,:oid],e:bat[:oid,:any_1],skip_nils:bit):bat[:oid,:str] +address JSONsubjson; +comment Grouped aggregation of values. + command json.subaggr(val:bat[:oid,:str],g:bat[:oid,:oid],e:bat[:oid,:any_1],skip_nils:bit):bat[:oid,:str] address JSONsubjson; comment Grouped aggregation of values. diff --git a/clients/Tests/MAL-signatures_gsl.stable.out b/clients/Tests/MAL-signatures_gsl.stable.out --- a/clients/Tests/MAL-signatures_gsl.stable.out +++ b/clients/Tests/MAL-signatures_gsl.stable.out @@ -2691,31 +2691,19 @@ command algebra.slice(b:bat[:any_1,:any_ address ALGslice_oid; comment Return the slice based on head oid x till y (exclusive). -command algebra.select(b:bat[:any_2,:void],low:any_2,high:any_2,li:bit,hi:bit):bat[:any_2,:void] -address ALGselectInclusiveHead; -command algebra.select(b:bat[:any_2,:void],low:any_2,high:any_2):bat[:any_2,:void] -address ALGselectHead; -command algebra.select(b:bat[:any_2,:void],low:any_2):bat[:any_2,:void] -address ALGselect1Head; -command algebra.selectH(b:bat[:any_1,:any_2],value:any_1):bat[:any_1,:any_2] -address ALGselect1Head; -command algebra.selectH(b:bat[:any_1,:any_2],low:any_1,high:any_1,li:bit,hi:bit):bat[:any_1,:any_2] -address ALGselectInclusiveHead; -command algebra.selectH(b:bat[:any_1,:any_2],low:any_1,high:any_1):bat[:any_1,:any_2] -address ALGselectHead; -command algebra.selectNotNil(b:bat[:any_1,:any_2]):bat[:any_1,:any_2] +command algebra.selectNotNil(b:bat[:oid,:any_2]):bat[:oid,:any_2] address ALGselectNotNil; comment Select all not-nil values -command algebra.select(b:bat[:any_1,:any_2],value:any_2):bat[:any_1,:any_2] +command algebra.select(b:bat[:oid,:any_2],value:any_2):bat[:oid,:any_2] address ALGselect1; comment Select all BUNs of a BAT with a certain tail value. Selection on NIL is also possible (it should be properly casted, e.g.:int(nil)). -command algebra.select(b:bat[:any_1,:any_2],low:any_2,high:any_2,li:bit,hi:bit):bat[:any_1,:any_2] +command algebra.select(b:bat[:oid,:any_2],low:any_2,high:any_2,li:bit,hi:bit):bat[:oid,:any_2] address ALGselectInclusive; comment Select all BUNs that have tail values: {v| low <{=} v <{=} high}. Boundary inclusion is indicated separately. NIL boundary values have a special meaning. + low == nil means: no lower bound + high == nil means: no upper bound. -command algebra.select(b:bat[:any_1,:any_2],low:any_2,high:any_2):bat[:any_1,:any_2] +command algebra.select(b:bat[:oid,:any_2],low:any_2,high:any_2):bat[:oid,:any_2] address ALGselect; comment Select all BUNs that have tail values: {v| low <= v <= high}. NIL boundary values have a special meaning. + low == nil means: no lower bound + high == nil means: no upper bound. NOTE 1: you should cast the nil to the appropriate type, e.g. int(nil) in order to circumvent type clashes. NOTE 2: as the 'nil' element has no clear place in the ordered domain of values, tuples with 'nil' values are NEVER returned by the range select. @@ -2759,10 +2747,6 @@ command algebra.topN(b:bat[:any_1,:any_2 address ALGtopN; comment Trim all but the top N tuples. -command algebra.thetaselect(b:bat[:any_1,:any_2],val:any_2,op:str):bat[:any_1,:any_2] -address ALGthetaselect; -comment The theta (<=,<,=,>,>=) select() - 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. @@ -32080,14 +32064,6 @@ command bat.setHash(b:bat[:oid,:any_2],p address BKCsetHash; comment Create a hash structure on the column -command bat.setMemoryAdvise(b:bat[:oid,:any_2],mode:int):bit -address BKCmadvise2; -comment alias for madvise(b, mode, mode, mode, mode) - -command bat.setMemoryAdvise(b:bat[:oid,:any_2],head_mode:int,tail_mode:int,hheap_mode:int,theap_mode:int):bit -address BKCmadvise; -comment Modern Operating Systems allow users to influence the buffer management policy of virtual memory. This is a crucial feature for database systems, and eliminates the need to reimplement the OS in a database buffer manager. The supported flags are BUF_NORMAL (the normal adaptive kernel algorithm), BUF_RANDOM (no page prefetching), BUF_SEQUENTIAL (prefetch and swapout), BUF_WILLNEED (load everything with prefetch), BUF_DONTNEED (swapout). These buffer management modes are not persistent. Returns the BAT operated upon. - command bat.setMemoryMap(b:bat[:oid,:any_2],mode:int):bit address BKCmmap2; comment Alias for mmap(b, mode, mode, mode, mode) @@ -39460,6 +39436,10 @@ command iterator.new(b:bat[:oid,:any_2], address ITRnewChunk; comment Create an iterator with fixed granule size. The result is a view. +command json.aggr(val:bat[:oid,:dbl]):str +address JSONgroupStr; +comment Aggregate the double values to array. + command json.aggr(val:bat[:oid,:str]):str address JSONgroupStr; comment Aggregate the string values to array. @@ -39566,10 +39546,18 @@ pattern json.renderarray(val:any...):jso address JSONrenderarray; pattern json.renderobject(val:any...):json address JSONrenderobject; +command json.subaggr(val:bat[:oid,:dbl],g:bat[:oid,:oid],e:bat[:oid,:any_1],s:bat[:oid,:oid],skip_nils:bit):bat[:oid,:str] +address JSONsubjsoncand; +comment Grouped aggregation of values with candidates list. + command json.subaggr(val:bat[:oid,:str],g:bat[:oid,:oid],e:bat[:oid,:any_1],s:bat[:oid,:oid],skip_nils:bit):bat[:oid,:str] address JSONsubjsoncand; comment Grouped aggregation of values with candidates list. +command json.subaggr(val:bat[:oid,:dbl],g:bat[:oid,:oid],e:bat[:oid,:any_1],skip_nils:bit):bat[:oid,:str] +address JSONsubjson; +comment Grouped aggregation of values. + command json.subaggr(val:bat[:oid,:str],g:bat[:oid,:oid],e:bat[:oid,:any_1],skip_nils:bit):bat[:oid,:str] address JSONsubjson; comment Grouped aggregation of values. diff --git a/clients/Tests/MAL-signatures_nocfitsio.stable.out b/clients/Tests/MAL-signatures_nocfitsio.stable.out --- a/clients/Tests/MAL-signatures_nocfitsio.stable.out +++ b/clients/Tests/MAL-signatures_nocfitsio.stable.out @@ -2691,31 +2691,19 @@ command algebra.slice(b:bat[:any_1,:any_ address ALGslice_oid; comment Return the slice based on head oid x till y (exclusive). -command algebra.select(b:bat[:any_2,:void],low:any_2,high:any_2,li:bit,hi:bit):bat[:any_2,:void] -address ALGselectInclusiveHead; -command algebra.select(b:bat[:any_2,:void],low:any_2,high:any_2):bat[:any_2,:void] -address ALGselectHead; -command algebra.select(b:bat[:any_2,:void],low:any_2):bat[:any_2,:void] -address ALGselect1Head; -command algebra.selectH(b:bat[:any_1,:any_2],value:any_1):bat[:any_1,:any_2] -address ALGselect1Head; -command algebra.selectH(b:bat[:any_1,:any_2],low:any_1,high:any_1,li:bit,hi:bit):bat[:any_1,:any_2] -address ALGselectInclusiveHead; -command algebra.selectH(b:bat[:any_1,:any_2],low:any_1,high:any_1):bat[:any_1,:any_2] -address ALGselectHead; -command algebra.selectNotNil(b:bat[:any_1,:any_2]):bat[:any_1,:any_2] +command algebra.selectNotNil(b:bat[:oid,:any_2]):bat[:oid,:any_2] address ALGselectNotNil; comment Select all not-nil values -command algebra.select(b:bat[:any_1,:any_2],value:any_2):bat[:any_1,:any_2] +command algebra.select(b:bat[:oid,:any_2],value:any_2):bat[:oid,:any_2] address ALGselect1; comment Select all BUNs of a BAT with a certain tail value. Selection on NIL is also possible (it should be properly casted, e.g.:int(nil)). -command algebra.select(b:bat[:any_1,:any_2],low:any_2,high:any_2,li:bit,hi:bit):bat[:any_1,:any_2] +command algebra.select(b:bat[:oid,:any_2],low:any_2,high:any_2,li:bit,hi:bit):bat[:oid,:any_2] address ALGselectInclusive; comment Select all BUNs that have tail values: {v| low <{=} v <{=} high}. Boundary inclusion is indicated separately. NIL boundary values have a special meaning. + low == nil means: no lower bound + high == nil means: no upper bound. -command algebra.select(b:bat[:any_1,:any_2],low:any_2,high:any_2):bat[:any_1,:any_2] +command algebra.select(b:bat[:oid,:any_2],low:any_2,high:any_2):bat[:oid,:any_2] address ALGselect; comment Select all BUNs that have tail values: {v| low <= v <= high}. NIL boundary values have a special meaning. + low == nil means: no lower bound + high == nil means: no upper bound. NOTE 1: you should cast the nil to the appropriate type, e.g. int(nil) in order to circumvent type clashes. NOTE 2: as the 'nil' element has no clear place in the ordered domain of values, tuples with 'nil' values are NEVER returned by the range select. @@ -2759,10 +2747,6 @@ command algebra.topN(b:bat[:any_1,:any_2 address ALGtopN; comment Trim all but the top N tuples. -command algebra.thetaselect(b:bat[:any_1,:any_2],val:any_2,op:str):bat[:any_1,:any_2] -address ALGthetaselect; -comment The theta (<=,<,=,>,>=) select() - 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. @@ -32068,14 +32052,6 @@ command bat.setHash(b:bat[:oid,:any_2],p address BKCsetHash; comment Create a hash structure on the column -command bat.setMemoryAdvise(b:bat[:oid,:any_2],mode:int):bit -address BKCmadvise2; -comment alias for madvise(b, mode, mode, mode, mode) - -command bat.setMemoryAdvise(b:bat[:oid,:any_2],head_mode:int,tail_mode:int,hheap_mode:int,theap_mode:int):bit -address BKCmadvise; -comment Modern Operating Systems allow users to influence the buffer management policy of virtual memory. This is a crucial feature for database systems, and eliminates the need to reimplement the OS in a database buffer manager. The supported flags are BUF_NORMAL (the normal adaptive kernel algorithm), BUF_RANDOM (no page prefetching), BUF_SEQUENTIAL (prefetch and swapout), BUF_WILLNEED (load everything with prefetch), BUF_DONTNEED (swapout). These buffer management modes are not persistent. Returns the BAT operated upon. - command bat.setMemoryMap(b:bat[:oid,:any_2],mode:int):bit address BKCmmap2; comment Alias for mmap(b, mode, mode, mode, mode) @@ -39420,6 +39396,10 @@ command iterator.new(b:bat[:oid,:any_2], address ITRnewChunk; comment Create an iterator with fixed granule size. The result is a view. +command json.aggr(val:bat[:oid,:dbl]):str +address JSONgroupStr; +comment Aggregate the double values to array. + command json.aggr(val:bat[:oid,:str]):str address JSONgroupStr; comment Aggregate the string values to array. @@ -39526,10 +39506,18 @@ pattern json.renderarray(val:any...):jso address JSONrenderarray; pattern json.renderobject(val:any...):json address JSONrenderobject; +command json.subaggr(val:bat[:oid,:dbl],g:bat[:oid,:oid],e:bat[:oid,:any_1],s:bat[:oid,:oid],skip_nils:bit):bat[:oid,:str] +address JSONsubjsoncand; +comment Grouped aggregation of values with candidates list. + command json.subaggr(val:bat[:oid,:str],g:bat[:oid,:oid],e:bat[:oid,:any_1],s:bat[:oid,:oid],skip_nils:bit):bat[:oid,:str] address JSONsubjsoncand; comment Grouped aggregation of values with candidates list. +command json.subaggr(val:bat[:oid,:dbl],g:bat[:oid,:oid],e:bat[:oid,:any_1],skip_nils:bit):bat[:oid,:str] +address JSONsubjson; +comment Grouped aggregation of values. + command json.subaggr(val:bat[:oid,:str],g:bat[:oid,:oid],e:bat[:oid,:any_1],skip_nils:bit):bat[:oid,:str] address JSONsubjson; comment Grouped aggregation of values. diff --git a/clients/Tests/MAL-signatures_sphinxclient.stable.out b/clients/Tests/MAL-signatures_sphinxclient.stable.out _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list