Changeset: 923a6f507386 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=923a6f507386
Added Files:
        sql/backends/monet5/sql_rank.c
        sql/backends/monet5/sql_rank.h
        sql/test/BugTracker-2015/Tests/apply_merge_distinct.Bug-3760.sql
        sql/test/BugTracker-2015/Tests/apply_merge_distinct.Bug-3760.stable.err
        sql/test/BugTracker-2015/Tests/apply_merge_distinct.Bug-3760.stable.out
        sql/test/BugTracker-2015/Tests/cardinality.Bug-3761.sql
        sql/test/BugTracker-2015/Tests/cardinality.Bug-3761.stable.err
        sql/test/BugTracker-2015/Tests/cardinality.Bug-3761.stable.out
        sql/test/BugTracker-2015/Tests/cast_on_groupby_col_crash.Bug-3769.sql
        
sql/test/BugTracker-2015/Tests/cast_on_groupby_col_crash.Bug-3769.stable.err
        
sql/test/BugTracker-2015/Tests/cast_on_groupby_col_crash.Bug-3769.stable.out
        sql/test/BugTracker-2015/Tests/sessions_crash.Bug-3759.sql
        sql/test/BugTracker-2015/Tests/sessions_crash.Bug-3759.stable.err
        sql/test/BugTracker-2015/Tests/sessions_crash.Bug-3759.stable.out
        sql/test/BugTracker-2015/Tests/set_default_role.Bug-3364.sql
        sql/test/BugTracker-2015/Tests/set_default_role.Bug-3364.stable.err
        sql/test/BugTracker-2015/Tests/set_default_role.Bug-3364.stable.out
        sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.sql
        sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.stable.err
        sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.stable.out
        sql/test/Users/Tests/grantPrivilegesNonDefaultRole.Bug-3365.SQL.py
        sql/test/Users/Tests/grantPrivilegesNonDefaultRole.Bug-3365.stable.err
        sql/test/Users/Tests/grantPrivilegesNonDefaultRole.Bug-3365.stable.out
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/SQL-dump.stable.out
        clients/Tests/SQL-dump.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/eventparser.c
        clients/mapiclient/eventparser.h
        clients/mapiclient/tachograph.c
        clients/mapiclient/tomograph.c
        clients/odbc/driver/SQLTables.c
        debian/changelog
        gdk/gdk_atoms.c
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_logger.c
        gdk/gdk_select.c
        java/ChangeLog.Jul2015
        java/src/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java
        java/src/nl/cwi/monetdb/jdbc/MonetResultSet.java
        monetdb5/mal/mal_interpreter.c
        monetdb5/mal/mal_parser.c
        monetdb5/mal/mal_profiler.c
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/algebra.h
        monetdb5/modules/kernel/algebra.mal
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/mal_io.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_support.c
        sql/backends/monet5/Makefile.ag
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.h
        sql/backends/monet5/sql.mal
        sql/backends/monet5/sql_rank.mal
        sql/common/sql_types.c
        sql/include/sql_catalog.h
        sql/include/sql_relation.h
        sql/scripts/25_debug.sql
        sql/server/rel_exp.c
        sql/server/rel_exp.h
        sql/server/rel_optimizer.c
        sql/server/rel_schema.c
        sql/server/rel_select.c
        sql/server/sql_privileges.c
        sql/storage/bat/bat_storage.c
        sql/storage/sql_storage.h
        sql/storage/store.c
        
sql/test/BugDay_2005-11-09_2.9.3/Tests/grant_public.SF-1114580.stable.err
        sql/test/BugTracker-2009/Tests/count_bug.SF-2604583.stable.out.int128
        
sql/test/BugTracker-2009/Tests/orderby_with_row_number.SF-2895791.stable.out
        
sql/test/BugTracker-2010/Tests/crash_on_complex_join_exp.Bug-2353.stable.out
        
sql/test/BugTracker-2010/Tests/rank-over-crash.SF-2926454.stable.out.int128
        sql/test/BugTracker-2010/Tests/with_row_number_crash.Bug-2631.stable.out
        
sql/test/BugTracker-2012/Tests/row_number_does_not_work_in_complex_query.Bug-2805.stable.out
        
sql/test/BugTracker-2012/Tests/scalar_subquery_with_alias.Bug-3093.stable.out
        sql/test/BugTracker-2013/Tests/sort_void_crash.Bug-3341.stable.out
        sql/test/BugTracker-2015/Tests/All
        sql/test/BugTracker-2015/Tests/assertHead.Bug-3706.stable.out
        sql/test/BugTracker/Tests/with_row_number.SF-1898089.stable.out
        sql/test/Tests/rank.stable.out
        sql/test/Users/Tests/All
        sql/test/Users/Tests/dropManyUsers.Bug-3764.stable.err
        sql/test/Users/Tests/dropManyUsers.Bug-3764.stable.out
        sql/test/Users/Tests/grantAndRevokeUserLogedIN.Bug-3476.stable.err
        sql/test/Users/Tests/grantAndRevokeUserLogedIN.Bug-3476.stable.out
        sql/test/Users/Tests/grantMonetdb.SQL.py
        sql/test/Users/Tests/grantRevokeAndGrantAgain.Bug-3765.SQL.py
        sql/test/Users/Tests/grantRevokeAndGrantAgain.Bug-3765.stable.err
        sql/test/Users/Tests/grantRevokeAndGrantAgain.Bug-3765.stable.out
        sql/test/Users/Tests/test_privs2_p2.stable.err
        sql/test/bugs/Tests/crash_order_by.stable.out
        sql/test/leaks/Tests/check1.stable.out.int128
        sql/test/leaks/Tests/check2.stable.out.int128
        sql/test/leaks/Tests/check3.stable.out.int128
        sql/test/leaks/Tests/check4.stable.out.int128
        sql/test/leaks/Tests/check5.stable.out.int128
        sql/test/remote/Tests/ssbm.SQL.py
        tools/mserver/mserver5.c
Branch: HTM
Log Message:

Merge with default branch


diffs (truncated from 21095 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
@@ -2364,14 +2364,6 @@ command algebra.leftjoin(left:bat[:oid,:
 address ALGleftjoinestimate;
 command 
algebra.leftjoin(left:bat[:oid,:any_2],right:bat[:any_2,:any_3]):bat[:oid,:any_3]
 
 address ALGleftjoin;
-command 
algebra.mark_grp(b:bat[:any_1,:oid],g:bat[:oid,:any_2],s:oid):bat[:any_1,:oid] 
-address ALGmark_grp_2;
-comment "grouped mark": Produces a new BAT with per group a locally unique 
dense ascending sequense of OIDs in the tail. The tail of the first BAT (b) 
identifies the group that each BUN of b belongs to. The second BAT (g) 
represents the group extent, i.e., the head is the unique list of group IDs 
from b's tail. The third argument (s) gives the base value for the new OID 
sequence of each group.
-
-command algebra.mark_grp(b:bat[:any_1,:oid],g:bat[:oid,:oid]):bat[:any_1,:oid] 
-address ALGmark_grp_1;
-comment "grouped mark": Produces a new BAT with per group a locally unique 
dense ascending sequence of OIDs in the tail. The tail of the first BAT (b) 
identifies the group that each BUN of b belongs to. The second BAT (g) 
represents the group extent, i.e., the head is the unique list of group IDs 
from b's tail. The tail of g gives for each group the base value for the new 
OID sequence.
-
 command 
algebra.mark(b:bat[:any_1,:any_2],nr_parts:int,part_nr:int):bat[:any_1,:oid] 
 address ALGtmarkp;
 comment Produces a BAT with fresh unique dense sequense of OIDs in     the 
tail that starts at base (i.e. [base,..base+b.count()-1] ). The base is 
uniquely defined by the part_nr (ie we set the highest      bits based on the 
part_nr/nr_parts) 
@@ -2675,6 +2667,18 @@ command batsql.alpha(dec:bat[:oid,:dbl],
 address SQLbat_alpha_cst;
 comment BAT implementation of astronomy alpha function
 
+pattern 
batsql.dense_rank{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int]
 
+address SQLdense_rank;
+comment return the densely ranked groups
+
+pattern 
batsql.diff{orderdependend}(p:bat[:oid,:bit],b:bat[:oid,:any_1]):bat[:oid,:bit] 
+address SQLdiff;
+comment return true if cur != prev row
+
+pattern batsql.diff{orderdependend}(b:bat[:oid,:any_1]):bat[:oid,:bit] 
+address SQLdiff;
+comment return true if cur != prev row
+
 command batsql.dec_round(v:bat[:oid,:dbl],r:dbl):bat[:oid,:dbl] 
 address dbl_bat_dec_round_wrap;
 comment round off the value v to nearests multiple of r
@@ -2707,6 +2711,14 @@ pattern batsql.next_value(sname:bat[:oid
 address mvc_bat_next_value;
 comment return the next value of the sequence
 
+pattern 
batsql.rank{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int] 
+address SQLrank;
+comment return the ranked groups
+
+pattern 
batsql.row_number{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int]
 
+address SQLrow_number;
+comment return the row_numer-ed groups
+
 command batsql.round(v:bat[:oid,:dbl],r:bte):bat[:oid,:dbl] 
 address dbl_bat_round_wrap;
 comment round off the floating point v to r digits behind the dot (if r < 0, 
before the dot)
@@ -22841,9 +22853,6 @@ pattern batcalc.cmp(b1:bat[:oid,:bit],b2
 address CMDbatCMP;
 comment Return -1/0/1 if B1 </==/> B2
 
-function batcalc.dense_rank_grp{inline}(b:bat[:oid,:any_1]):bat[:oid,:int];
-function 
batcalc.dense_rank_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],orig:bat[:oid,:any_2]):bat[:oid,:int];
-function 
batcalc.dense_rank_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],grp:bat[:oid,:oid],ext:bat[:oid,:oid]):bat[:oid,:int];
 command batcalc.dbl(s1:int,v:bat[:oid,:lng],d2:int,s2:int):bat[:oid,:dbl] 
 address batlng_dec2dec_dbl;
 comment cast decimal(lng) to decimal(dbl) and check for overflow
@@ -25712,9 +25721,6 @@ pattern batcalc.lsh_noerror(b1:bat[:oid,
 address CMDbatLSH;
 comment Return B1 << B2, out of range second operand causes NIL value
 
-function batcalc.mark_grp{inline}(b:bat[:oid,:any_1]):bat[:oid,:int];
-function 
batcalc.mark_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],orig:bat[:oid,:any_2]):bat[:oid,:int];
-function 
batcalc.mark_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],grp:bat[:oid,:oid],ext:bat[:oid,:oid]):bat[:oid,:int];
 pattern 
batcalc.mod_noerror(v:dbl,b:bat[:oid,:dbl],s:bat[:oid,:oid]):bat[:oid,:dbl] 
 address CMDbatMOD;
 comment Return V % B with candidates list, divide by zero causes NIL value
@@ -28451,9 +28457,6 @@ pattern batcalc.or(b1:bat[:oid,:bit],b2:
 address CMDbatOR;
 comment Return B1 OR B2
 
-function batcalc.rank_grp{inline}(b:bat[:oid,:any_1]):bat[:oid,:int];
-function 
batcalc.rank_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],orig:bat[:oid,:any_2]):bat[:oid,:int];
-function 
batcalc.rank_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],grp:bat[:oid,:oid],ext:bat[:oid,:oid]):bat[:oid,:int];
 command 
batcalc.rotate_xor_hash(h:bat[:oid,:wrd],nbits:int,b:bat[:oid,:any_1]):bat[:oid,:int]
 
 address MKEYbulk_rotate_xor_hash;
 pattern 
batcalc.rsh_noerror(v:lng,b:bat[:oid,:lng],s:bat[:oid,:oid]):bat[:oid,:lng] 
@@ -40579,14 +40582,18 @@ pattern sql.commit():void
 address SQLcommit;
 comment Trigger the commit operation for a MAL block
 
-command sql.dense_rank(b:bat[:oid,:any_1]):bat[:oid,:int] 
-address sql_dense_rank;
-comment return the densely ranked bat
-
-command 
sql.dense_rank_grp(b:bat[:oid,:any_1],gp:bat[:oid,:oid],gpe:bat[:oid,:oid]):bat[:oid,:int]
 
-address sql_dense_rank_grp;
+pattern sql.dense_rank(b:any_1,p:bit,o:bit):int 
+address SQLdense_rank;
 comment return the densely ranked groups
 
+pattern sql.diff(p:bit,b:any_1):bit 
+address SQLdiff;
+comment return true if cur != prev row
+
+pattern sql.diff(b:any_1):bit 
+address SQLdiff;
+comment return true if cur != prev row
+
 pattern sql.drop_hash(sch:str,tbl:str):void 
 address SQLdrop_hash;
 comment Drop hash indices for the given table
@@ -40707,6 +40714,10 @@ pattern sql.eval(cmd:str):void
 address SQLstatement;
 comment Compile and execute a single sql statement
 
+command sql.flush_log():void 
+address SQLflush_log;
+comment flush the log now
+
 command sql.getVersion(clientid:int):lng 
 address mvc_getVersion;
 comment Return the database version identifier for a client
@@ -40795,14 +40806,14 @@ pattern sql.querylog_catalog() (id:bat[:
 address sql_querylog_catalog;
 comment Obtain the query log catalog
 
-command sql.rank(b:bat[:oid,:any_1]):bat[:oid,:int] 
-address sql_rank;
-comment return the rank bat
-
-command 
sql.rank_grp(b:bat[:oid,:any_1],gp:bat[:oid,:oid],gpe:bat[:oid,:oid]):bat[:oid,:int]
 
-address sql_rank_grp;
+pattern sql.rank(b:any_1,p:bit,o:bit):int 
+address SQLrank;
 comment return the ranked groups
 
+pattern sql.row_number(b:any_1,p:bit,o:bit):int 
+address SQLrow_number;
+comment return the row_numer-ed groups
+
 pattern sql.reuse(sch:str,tbl:str):void 
 address SQLreuse;
 comment Consolidate the deletion table over all columns reusing deleted slots
@@ -40852,7 +40863,6 @@ address mvc_restart_seq;
 comment restart the sequence with value start
 
 function sql.sql_environment() (name:bat[:oid,:str],value:bat[:oid,:str]);
-function 
sql.subzero_or_one{inline}(b:bat[:oid,:any_1],gp:bat[:oid,:oid],gpe:bat[:oid,:oid],no_nil:bit):bat[:oid,:any_1];
 pattern sql.shrink(sch:str,tbl:str):void 
 address SQLshrink;
 comment Consolidate the deletion table over all columns using shrinking
@@ -40897,6 +40907,7 @@ pattern sql.sql_variables():bat[:oid,:st
 address sql_variables;
 comment return the table with session variables
 
+function 
sql.subzero_or_one{inline}(b:bat[:oid,:any_1],gp:bat[:oid,:oid],gpe:bat[:oid,:oid],no_nil:bit):bat[:oid,:any_1];
 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]
 
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
@@ -2875,14 +2875,6 @@ command algebra.leftjoin(left:bat[:oid,:
 address ALGleftjoinestimate;
 command 
algebra.leftjoin(left:bat[:oid,:any_2],right:bat[:any_2,:any_3]):bat[:oid,:any_3]
 
 address ALGleftjoin;
-command 
algebra.mark_grp(b:bat[:any_1,:oid],g:bat[:oid,:any_2],s:oid):bat[:any_1,:oid] 
-address ALGmark_grp_2;
-comment "grouped mark": Produces a new BAT with per group a locally unique 
dense ascending sequense of OIDs in the tail. The tail of the first BAT (b) 
identifies the group that each BUN of b belongs to. The second BAT (g) 
represents the group extent, i.e., the head is the unique list of group IDs 
from b's tail. The third argument (s) gives the base value for the new OID 
sequence of each group.
-
-command algebra.mark_grp(b:bat[:any_1,:oid],g:bat[:oid,:oid]):bat[:any_1,:oid] 
-address ALGmark_grp_1;
-comment "grouped mark": Produces a new BAT with per group a locally unique 
dense ascending sequence of OIDs in the tail. The tail of the first BAT (b) 
identifies the group that each BUN of b belongs to. The second BAT (g) 
represents the group extent, i.e., the head is the unique list of group IDs 
from b's tail. The tail of g gives for each group the base value for the new 
OID sequence.
-
 command 
algebra.mark(b:bat[:any_1,:any_2],nr_parts:int,part_nr:int):bat[:any_1,:oid] 
 address ALGtmarkp;
 comment Produces a BAT with fresh unique dense sequense of OIDs in     the 
tail that starts at base (i.e. [base,..base+b.count()-1] ). The base is 
uniquely defined by the part_nr (ie we set the highest      bits based on the 
part_nr/nr_parts) 
@@ -3194,6 +3186,18 @@ command batsql.dec_round(v:bat[:oid,:hge
 address hge_bat_dec_round_wrap;
 comment round off the value v to nearests multiple of r
 
+pattern 
batsql.dense_rank{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int]
 
+address SQLdense_rank;
+comment return the densely ranked groups
+
+pattern 
batsql.diff{orderdependend}(p:bat[:oid,:bit],b:bat[:oid,:any_1]):bat[:oid,:bit] 
+address SQLdiff;
+comment return true if cur != prev row
+
+pattern batsql.diff{orderdependend}(b:bat[:oid,:any_1]):bat[:oid,:bit] 
+address SQLdiff;
+comment return true if cur != prev row
+
 command batsql.dec_round(v:bat[:oid,:dbl],r:dbl):bat[:oid,:dbl] 
 address dbl_bat_dec_round_wrap;
 comment round off the value v to nearests multiple of r
@@ -3230,6 +3234,14 @@ command batsql.round(v:bat[:oid,:hge],d:
 address hge_bat_round_wrap;
 comment round off the decimal v(d,s) to r digits behind the dot (if r < 0, 
before the dot)
 
+pattern 
batsql.rank{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int] 
+address SQLrank;
+comment return the ranked groups
+
+pattern 
batsql.row_number{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int]
 
+address SQLrow_number;
+comment return the row_numer-ed groups
+
 command batsql.round(v:bat[:oid,:dbl],r:bte):bat[:oid,:dbl] 
 address dbl_bat_round_wrap;
 comment round off the floating point v to r digits behind the dot (if r < 0, 
before the dot)
@@ -29380,9 +29392,6 @@ command batcalc.dbl(v:bat[:oid,:hge],dig
 address bathge_num2dec_dbl;
 comment cast number to decimal(dbl) and check for overflow
 
-function batcalc.dense_rank_grp{inline}(b:bat[:oid,:any_1]):bat[:oid,:int];
-function 
batcalc.dense_rank_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],orig:bat[:oid,:any_2]):bat[:oid,:int];
-function 
batcalc.dense_rank_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],grp:bat[:oid,:oid],ext:bat[:oid,:oid]):bat[:oid,:int];
 command batcalc.dbl(s1:int,v:bat[:oid,:lng],d2:int,s2:int):bat[:oid,:dbl] 
 address batlng_dec2dec_dbl;
 comment cast decimal(lng) to decimal(dbl) and check for overflow
@@ -33257,9 +33266,6 @@ pattern batcalc.lsh_noerror(b1:bat[:oid,
 address CMDbatLSH;
 comment Return B1 << B2, out of range second operand causes NIL value
 
-function batcalc.mark_grp{inline}(b:bat[:oid,:any_1]):bat[:oid,:int];
-function 
batcalc.mark_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],orig:bat[:oid,:any_2]):bat[:oid,:int];
-function 
batcalc.mark_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],grp:bat[:oid,:oid],ext:bat[:oid,:oid]):bat[:oid,:int];
 pattern 
batcalc.mod_noerror(v:dbl,b:bat[:oid,:dbl],s:bat[:oid,:oid]):bat[:oid,:dbl] 
 address CMDbatMOD;
 comment Return V % B with candidates list, divide by zero causes NIL value
@@ -36764,9 +36770,6 @@ pattern batcalc.or(b1:bat[:oid,:hge],b2:
 address CMDbatOR;
 comment Return B1 OR B2
 
-function batcalc.rank_grp{inline}(b:bat[:oid,:any_1]):bat[:oid,:int];
-function 
batcalc.rank_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],orig:bat[:oid,:any_2]):bat[:oid,:int];
-function 
batcalc.rank_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],grp:bat[:oid,:oid],ext:bat[:oid,:oid]):bat[:oid,:int];
 command 
batcalc.rotate_xor_hash(h:bat[:oid,:wrd],nbits:int,b:bat[:oid,:any_1]):bat[:oid,:int]
 
 address MKEYbulk_rotate_xor_hash;
 pattern 
batcalc.rsh_noerror(v:lng,b:bat[:oid,:lng],s:bat[:oid,:oid]):bat[:oid,:lng] 
@@ -51518,14 +51521,18 @@ command sql.dec_round(v:hge,r:hge):hge
 address hge_dec_round_wrap;
 comment round off the value v to nearests multiple of r
 
-command sql.dense_rank(b:bat[:oid,:any_1]):bat[:oid,:int] 
-address sql_dense_rank;
-comment return the densely ranked bat
-
-command 
sql.dense_rank_grp(b:bat[:oid,:any_1],gp:bat[:oid,:oid],gpe:bat[:oid,:oid]):bat[:oid,:int]
 
-address sql_dense_rank_grp;
+pattern sql.dense_rank(b:any_1,p:bit,o:bit):int 
+address SQLdense_rank;
 comment return the densely ranked groups
 
+pattern sql.diff(p:bit,b:any_1):bit 
+address SQLdiff;
+comment return true if cur != prev row
+
+pattern sql.diff(b:any_1):bit 
+address SQLdiff;
+comment return true if cur != prev row
+
 pattern sql.drop_hash(sch:str,tbl:str):void 
 address SQLdrop_hash;
 comment Drop hash indices for the given table
@@ -51646,6 +51653,10 @@ pattern sql.eval(cmd:str):void
 address SQLstatement;
 comment Compile and execute a single sql statement
 
+command sql.flush_log():void 
+address SQLflush_log;
+comment flush the log now
+
 command sql.getVersion(clientid:int):lng 
 address mvc_getVersion;
 comment Return the database version identifier for a client
@@ -51738,14 +51749,14 @@ command sql.round(v:hge,d:int,s:int,r:bt
 address hge_round_wrap;
 comment round off the decimal v(d,s) to r digits behind the dot (if r < 0, 
before the dot)
 
-command sql.rank(b:bat[:oid,:any_1]):bat[:oid,:int] 
-address sql_rank;
-comment return the rank bat
-
-command 
sql.rank_grp(b:bat[:oid,:any_1],gp:bat[:oid,:oid],gpe:bat[:oid,:oid]):bat[:oid,:int]
 
-address sql_rank_grp;
+pattern sql.rank(b:any_1,p:bit,o:bit):int 
+address SQLrank;
 comment return the ranked groups
 
+pattern sql.row_number(b:any_1,p:bit,o:bit):int 
+address SQLrow_number;
+comment return the row_numer-ed groups
+
 pattern sql.reuse(sch:str,tbl:str):void 
 address SQLreuse;
 comment Consolidate the deletion table over all columns reusing deleted slots
@@ -51795,7 +51806,6 @@ address mvc_restart_seq;
 comment restart the sequence with value start
 
 function sql.sql_environment() (name:bat[:oid,:str],value:bat[:oid,:str]);
-function 
sql.subzero_or_one{inline}(b:bat[:oid,:any_1],gp:bat[:oid,:oid],gpe:bat[:oid,:oid],no_nil:bit):bat[:oid,:any_1];
 pattern sql.shrink(sch:str,tbl:str):void 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to