Changeset: 9d358b84f3c6 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9d358b84f3c6 Added Files: sql/test/BugTracker-2017/Tests/All sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.sql sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.stable.err sql/test/BugTracker-2017/Tests/avggroupbysq.Bug-6178.stable.out sql/test/BugTracker-2017/Tests/shutdown.Bug-6182.sql sql/test/BugTracker-2017/Tests/shutdown.Bug-6182.stable.err sql/test/BugTracker-2017/Tests/shutdown.Bug-6182.stable.out Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out gdk/ChangeLog gdk/gdk.h gdk/gdk_aggr.c gdk/gdk_atoms.c gdk/gdk_bat.c gdk/gdk_bbp.c gdk/gdk_bbp.h gdk/gdk_interprocess.c gdk/gdk_interprocess.h gdk/gdk_logger.c gdk/gdk_tm.c gdk/gdk_value.c monetdb5/mal/mal.h monetdb5/mal/mal_client.c monetdb5/mal/mal_debugger.c monetdb5/mal/mal_factory.c monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_linker.c monetdb5/mal/mal_linker.h monetdb5/mal/mal_parser.c monetdb5/mal/mal_resolve.c monetdb5/modules/kernel/aggr.c monetdb5/modules/mal/clients.c monetdb5/modules/mal/groupby.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/orderidx.c monetdb5/modules/mal/tablet.c monetdb5/modules/mal/tokenizer.c monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_statistics.c monetdb5/scheduler/run_memo.c sql/backends/monet5/UDF/pyapi/connection.c sql/backends/monet5/UDF/pyapi/conversion.c sql/backends/monet5/UDF/pyapi/conversion.h sql/backends/monet5/UDF/pyapi/emit.c sql/backends/monet5/UDF/pyapi/formatinput.c sql/backends/monet5/UDF/pyapi/pyapi.c sql/backends/monet5/UDF/pyapi/pyapi.h sql/backends/monet5/UDF/pyapi/pyheader.h sql/backends/monet5/UDF/pyapi/pyloader.c sql/backends/monet5/UDF/pyapi/pytypes.c sql/backends/monet5/UDF/pyapi/type_conversion.c sql/backends/monet5/UDF/pyapi/unicode.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_statement.c sql/backends/monet5/vaults/lidar/lidar.c sql/backends/monet5/vaults/netcdf/netcdf.c sql/backends/monet5/vaults/shp/shp.c sql/common/sql_mem.c sql/include/sql_mem.h sql/server/rel_optimizer.c sql/server/rel_psm.c sql/server/sql_mvc.c sql/server/sql_parser.y sql/storage/bat/bat_utils.c sql/storage/bat/res_table.c sql/test/BugTracker/Tests/groupby_orderby_nonselected.SF-1723863.stable.err sql/test/BugTracker/Tests/subquery_orderby.SF-1688915.stable.err sql/test/BugTracker/Tests/subquery_orderby.SF-1688915.stable.out testing/Mtest.py.in tools/mserver/shutdowntest.c Branch: wlcr Log Message:
merge with default diffs (truncated from 2622 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 @@ -8309,7 +8309,7 @@ Ready. [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str):void ", "sql_analyze;", "" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str, tbl:str):void ", "sql_analyze;", "" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str, tbl:str, col:str):void ", "sql_analyze;", "Update the database statistics table" ] -[ "sql", "append", "pattern sql.append(mvc:int, sname:str, tname:str, cname:str, ins:any):int ", "mvc_append_wrap;", "Append b to the column tname.cname (possibly optimized to replace the insert bat of tname.cname (returns sequence number for order dependence)" ] +[ "sql", "append", "pattern sql.append(mvc:int, sname:str, tname:str, cname:str, ins:any):int ", "mvc_append_wrap;", "Append to the column tname.cname (possibly optimized to replace the insert bat of tname.cname. Returns sequence number for order dependence." ] [ "sql", "argRecord", "pattern sql.argRecord():str ", "SQLargRecord;", "Glue together the calling sequence" ] [ "sql", "argRecord", "pattern sql.argRecord(a:any...):str ", "SQLargRecord;", "Glue together the calling sequence" ] [ "sql", "assert", "pattern sql.assert(b:bit, msg:str):void ", "SQLassert;", "Generate an exception when b==true" ] @@ -8323,7 +8323,7 @@ Ready. [ "sql", "bind_idxbat", "pattern sql.bind_idxbat(mvc:int, schema:str, table:str, index:str, access:int):bat[:any_1] ", "mvc_bind_idxbat_wrap;", "Bind the 'schema.table.index' BAT with access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates" ] [ "sql", "bind_idxbat", "pattern sql.bind_idxbat(mvc:int, schema:str, table:str, index:str, access:int, part_nr:int, nr_parts:int) (uid:bat[:oid], uval:bat[:any_1]) ", "mvc_bind_idxbat_wrap;", "Bind the 'schema.table.index' BAT with access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates" ] [ "sql", "bind_idxbat", "pattern sql.bind_idxbat(mvc:int, schema:str, table:str, index:str, access:int, part_nr:int, nr_parts:int):bat[:any_1] ", "mvc_bind_idxbat_wrap;", "Bind the 'schema.table.index' BAT with access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates" ] -[ "sql", "clear_table", "pattern sql.clear_table(sname:str, tname:str):lng ", "mvc_clear_table_wrap;", "Clear table" ] +[ "sql", "clear_table", "pattern sql.clear_table(sname:str, tname:str):lng ", "mvc_clear_table_wrap;", "Clear the table sname.tname." ] [ "sql", "commit", "pattern sql.commit():void ", "SQLcommit;", "Trigger the commit operation for a MAL block" ] [ "sql", "copy_from", "pattern sql.copy_from(t:ptr, sep:str, rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, best:int):bat[:any]... ", "mvc_import_table_wrap;", "Import a table from bstream s with the \n\tgiven tuple and seperators (sep/rsep)" ] [ "sql", "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng], fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", "" ] @@ -8341,7 +8341,7 @@ Ready. [ "sql", "dec_round", "command sql.dec_round(v:lng, r:lng):lng ", "lng_dec_round_wrap;", "round off the value v to nearests multiple of r" ] [ "sql", "dec_round", "command sql.dec_round(v:sht, r:sht):sht ", "sht_dec_round_wrap;", "round off the value v to nearests multiple of r" ] [ "sql", "declaredTable", "pattern sql.declaredTable(name:str):int ", "mvc_declared_table_wrap;", "Prepare a declared table" ] -[ "sql", "delete", "pattern sql.delete(mvc:int, sname:str, tname:str, b:any):int ", "mvc_delete_wrap;", "delete from table" ] +[ "sql", "delete", "pattern sql.delete(mvc:int, sname:str, tname:str, b:any):int ", "mvc_delete_wrap;", "Delete a row from a table. Returns sequence number for order dependece." ] [ "sql", "delta", "command sql.delta(col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ", "DELTAbat2;", "Return column bat with delta's applied." ] [ "sql", "delta", "command sql.delta(col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3] ", "DELTAbat;", "Return column bat with delta's applied." ] [ "sql", "dense_rank", "pattern sql.dense_rank(b:any_1, p:bit, o:bit):int ", "SQLdense_rank;", "return the densely ranked groups" ] @@ -8377,7 +8377,7 @@ Ready. [ "sql", "export_table", "pattern sql.export_table(fname:str, fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:bat[:any]...):int ", "mvc_export_table_wrap;", "Prepare a table result set for the COPY INTO stream" ] [ "sql", "flush_log", "command sql.flush_log():void ", "SQLflush_log;", "flush the log now" ] [ "sql", "getVariable", "pattern sql.getVariable(mvc:int, varname:str):any_1 ", "getVariable;", "Get the value of a session variable" ] -[ "sql", "getVersion", "command sql.getVersion(clientid:int):lng ", "mvc_getVersion;", "Return the database version identifier for a client" ] +[ "sql", "getVersion", "command sql.getVersion(clientid:int):lng ", "mvc_getVersion;", "Return the database version identifier for a client." ] [ "sql", "get_value", "pattern sql.get_value(sname:str, sequence:str):lng ", "mvc_get_value;", "return the current value of the sequence" ] [ "sql", "importTable", "pattern sql.importTable(sname:str, tname:str, fname:str...):bat[:any]... ", "mvc_bin_import_table_wrap;", "Import a table from the files (fname)" ] [ "sql", "include", "pattern sql.include(fname:str):void ", "SQLinclude;", "Compile and execute a sql statements on the file" ] @@ -8404,8 +8404,8 @@ Ready. [ "sql", "rank", "pattern sql.rank(b:any_1, p:bit, o:bit):int ", "SQLrank;", "return the ranked groups" ] [ "sql", "register", "pattern sql.register(mod:str, fname:str, rel_stmt:str, sig:str):int ", "RAstatement2;", "Compile the relational statement (rel_smt) and register it as mal function, mod.fname(signature)" ] [ "sql", "restart", "pattern sql.restart(sname:str, sequence:str, start:lng):lng ", "mvc_restart_seq;", "restart the sequence with value start" ] -[ "sql", "resultSet", "pattern sql.resultSet(tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:any...):int ", "mvc_row_result_wrap;", "Prepare a table result set" ] -[ "sql", "resultSet", "pattern sql.resultSet(tbl:str, attr:str, tpe:str, len:int, scale:int, eclass:int, val:any):int ", "mvc_scalar_value_wrap;", "Prepare a table result set" ] +[ "sql", "resultSet", "pattern sql.resultSet(tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:any...):int ", "mvc_row_result_wrap;", "Prepare a table result set for the client front-end" ] +[ "sql", "resultSet", "pattern sql.resultSet(tbl:str, attr:str, tpe:str, len:int, scale:int, eclass:int, val:any):int ", "mvc_scalar_value_wrap;", "Prepare a table result set for the client front-end." ] [ "sql", "resultSet", "pattern sql.resultSet(tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:bat[:any]...):int ", "mvc_table_result_wrap;", "Prepare a table result set for the client in default CSV format" ] [ "sql", "reuse", "pattern sql.reuse(sch:str, tbl:str):void ", "SQLreuse;", "Consolidate the deletion table over all columns reusing deleted slots" ] [ "sql", "round", "command sql.round(v:bte, d:int, s:int, r:bte):bte ", "bte_round_wrap;", "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)" ] @@ -8446,7 +8446,7 @@ Ready. [ "sql", "sysmon_stop", "pattern sql.sysmon_stop(tag:int):void ", "SYSMONstop;", "" ] [ "sql", "sysmon_stop", "pattern sql.sysmon_stop(tag:lng):void ", "SYSMONstop;", "" ] [ "sql", "sysmon_stop", "pattern sql.sysmon_stop(tag:sht):void ", "SYSMONstop;", "" ] -[ "sql", "tid", "pattern sql.tid(mvc:int, sname:str, tname:str):bat[:oid] ", "SQLtid;", "Return the tables tid column." ] +[ "sql", "tid", "pattern sql.tid(mvc:int, sname:str, tname:str):bat[:oid] ", "SQLtid;", "Return a column with the valid tuple identifiers associated with the table sname.tname." ] [ "sql", "tid", "pattern sql.tid(mvc:int, sname:str, tname:str, part_nr:int, nr_parts:int):bat[:oid] ", "SQLtid;", "Return the tables tid column." ] [ "sql", "transaction", "pattern sql.transaction():void ", "SQLtransaction2;", "Start an autocommit transaction" ] [ "sql", "transaction", "pattern sql.transaction():void ", "SQLtransaction2;", "Start an autocommit transaction" ] @@ -8454,7 +8454,7 @@ Ready. [ "sql", "transaction_commit", "pattern sql.transaction_commit(chain:int, name:str):void ", "SQLtransaction_commit;", "A transaction statement (type can be commit,release,rollback or start)" ] [ "sql", "transaction_release", "pattern sql.transaction_release(chain:int, name:str):void ", "SQLtransaction_release;", "A transaction statement (type can be commit,release,rollback or start)" ] [ "sql", "transaction_rollback", "pattern sql.transaction_rollback(chain:int, name:str):void ", "SQLtransaction_rollback;", "A transaction statement (type can be commit,release,rollback or start)" ] -[ "sql", "update", "pattern sql.update(mvc:int, sname:str, tname:str, cname:str, rids:any, upd:any):int ", "mvc_update_wrap;", "Update the values of the column tname.cname" ] +[ "sql", "update", "pattern sql.update(mvc:int, sname:str, tname:str, cname:str, rids:any, upd:any):int ", "mvc_update_wrap;", "Update the values of the column tname.cname. Returns sequence number for order dependence)" ] [ "sql", "vacuum", "pattern sql.vacuum(sch:str, tbl:str):void ", "SQLvacuum;", "Choose an approach to consolidate the deletions" ] [ "sql", "zero_or_one", "command sql.zero_or_one(col:bat[:any_1]):any_1 ", "zero_or_one;", "if col contains exactly one value return this. Incase of more raise an exception else return nil" ] [ "sqlblob", "#fromstr", "command sqlblob.#fromstr():void ", "SQLBLOBfromstr;", "" ] 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 @@ -10671,7 +10671,7 @@ Ready. [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str):void ", "sql_analyze;", "" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str, tbl:str):void ", "sql_analyze;", "" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str, tbl:str, col:str):void ", "sql_analyze;", "Update the database statistics table" ] -[ "sql", "append", "pattern sql.append(mvc:int, sname:str, tname:str, cname:str, ins:any):int ", "mvc_append_wrap;", "Append b to the column tname.cname (possibly optimized to replace the insert bat of tname.cname (returns sequence number for order dependence)" ] +[ "sql", "append", "pattern sql.append(mvc:int, sname:str, tname:str, cname:str, ins:any):int ", "mvc_append_wrap;", "Append to the column tname.cname (possibly optimized to replace the insert bat of tname.cname. Returns sequence number for order dependence." ] [ "sql", "argRecord", "pattern sql.argRecord():str ", "SQLargRecord;", "Glue together the calling sequence" ] [ "sql", "argRecord", "pattern sql.argRecord(a:any...):str ", "SQLargRecord;", "Glue together the calling sequence" ] [ "sql", "assert", "pattern sql.assert(b:bit, msg:str):void ", "SQLassert;", "Generate an exception when b==true" ] @@ -10685,7 +10685,7 @@ Ready. [ "sql", "bind_idxbat", "pattern sql.bind_idxbat(mvc:int, schema:str, table:str, index:str, access:int):bat[:any_1] ", "mvc_bind_idxbat_wrap;", "Bind the 'schema.table.index' BAT with access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates" ] [ "sql", "bind_idxbat", "pattern sql.bind_idxbat(mvc:int, schema:str, table:str, index:str, access:int, part_nr:int, nr_parts:int) (uid:bat[:oid], uval:bat[:any_1]) ", "mvc_bind_idxbat_wrap;", "Bind the 'schema.table.index' BAT with access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates" ] [ "sql", "bind_idxbat", "pattern sql.bind_idxbat(mvc:int, schema:str, table:str, index:str, access:int, part_nr:int, nr_parts:int):bat[:any_1] ", "mvc_bind_idxbat_wrap;", "Bind the 'schema.table.index' BAT with access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates" ] -[ "sql", "clear_table", "pattern sql.clear_table(sname:str, tname:str):lng ", "mvc_clear_table_wrap;", "Clear table" ] +[ "sql", "clear_table", "pattern sql.clear_table(sname:str, tname:str):lng ", "mvc_clear_table_wrap;", "Clear the table sname.tname." ] [ "sql", "commit", "pattern sql.commit():void ", "SQLcommit;", "Trigger the commit operation for a MAL block" ] [ "sql", "copy_from", "pattern sql.copy_from(t:ptr, sep:str, rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, best:int):bat[:any]... ", "mvc_import_table_wrap;", "Import a table from bstream s with the \n\tgiven tuple and seperators (sep/rsep)" ] [ "sql", "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng], fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", "" ] @@ -10704,7 +10704,7 @@ Ready. [ "sql", "dec_round", "command sql.dec_round(v:lng, r:lng):lng ", "lng_dec_round_wrap;", "round off the value v to nearests multiple of r" ] [ "sql", "dec_round", "command sql.dec_round(v:sht, r:sht):sht ", "sht_dec_round_wrap;", "round off the value v to nearests multiple of r" ] [ "sql", "declaredTable", "pattern sql.declaredTable(name:str):int ", "mvc_declared_table_wrap;", "Prepare a declared table" ] -[ "sql", "delete", "pattern sql.delete(mvc:int, sname:str, tname:str, b:any):int ", "mvc_delete_wrap;", "delete from table" ] +[ "sql", "delete", "pattern sql.delete(mvc:int, sname:str, tname:str, b:any):int ", "mvc_delete_wrap;", "Delete a row from a table. Returns sequence number for order dependece." ] [ "sql", "delta", "command sql.delta(col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ", "DELTAbat2;", "Return column bat with delta's applied." ] [ "sql", "delta", "command sql.delta(col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3] ", "DELTAbat;", "Return column bat with delta's applied." ] [ "sql", "dense_rank", "pattern sql.dense_rank(b:any_1, p:bit, o:bit):int ", "SQLdense_rank;", "return the densely ranked groups" ] @@ -10740,7 +10740,7 @@ Ready. [ "sql", "export_table", "pattern sql.export_table(fname:str, fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:bat[:any]...):int ", "mvc_export_table_wrap;", "Prepare a table result set for the COPY INTO stream" ] [ "sql", "flush_log", "command sql.flush_log():void ", "SQLflush_log;", "flush the log now" ] [ "sql", "getVariable", "pattern sql.getVariable(mvc:int, varname:str):any_1 ", "getVariable;", "Get the value of a session variable" ] -[ "sql", "getVersion", "command sql.getVersion(clientid:int):lng ", "mvc_getVersion;", "Return the database version identifier for a client" ] +[ "sql", "getVersion", "command sql.getVersion(clientid:int):lng ", "mvc_getVersion;", "Return the database version identifier for a client." ] [ "sql", "get_value", "pattern sql.get_value(sname:str, sequence:str):lng ", "mvc_get_value;", "return the current value of the sequence" ] [ "sql", "importTable", "pattern sql.importTable(sname:str, tname:str, fname:str...):bat[:any]... ", "mvc_bin_import_table_wrap;", "Import a table from the files (fname)" ] [ "sql", "include", "pattern sql.include(fname:str):void ", "SQLinclude;", "Compile and execute a sql statements on the file" ] @@ -10767,8 +10767,8 @@ Ready. [ "sql", "rank", "pattern sql.rank(b:any_1, p:bit, o:bit):int ", "SQLrank;", "return the ranked groups" ] [ "sql", "register", "pattern sql.register(mod:str, fname:str, rel_stmt:str, sig:str):int ", "RAstatement2;", "Compile the relational statement (rel_smt) and register it as mal function, mod.fname(signature)" ] [ "sql", "restart", "pattern sql.restart(sname:str, sequence:str, start:lng):lng ", "mvc_restart_seq;", "restart the sequence with value start" ] -[ "sql", "resultSet", "pattern sql.resultSet(tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:any...):int ", "mvc_row_result_wrap;", "Prepare a table result set" ] -[ "sql", "resultSet", "pattern sql.resultSet(tbl:str, attr:str, tpe:str, len:int, scale:int, eclass:int, val:any):int ", "mvc_scalar_value_wrap;", "Prepare a table result set" ] +[ "sql", "resultSet", "pattern sql.resultSet(tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:any...):int ", "mvc_row_result_wrap;", "Prepare a table result set for the client front-end" ] +[ "sql", "resultSet", "pattern sql.resultSet(tbl:str, attr:str, tpe:str, len:int, scale:int, eclass:int, val:any):int ", "mvc_scalar_value_wrap;", "Prepare a table result set for the client front-end." ] [ "sql", "resultSet", "pattern sql.resultSet(tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:bat[:any]...):int ", "mvc_table_result_wrap;", "Prepare a table result set for the client in default CSV format" ] [ "sql", "reuse", "pattern sql.reuse(sch:str, tbl:str):void ", "SQLreuse;", "Consolidate the deletion table over all columns reusing deleted slots" ] [ "sql", "round", "command sql.round(v:bte, d:int, s:int, r:bte):bte ", "bte_round_wrap;", "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)" ] @@ -10810,7 +10810,7 @@ Ready. [ "sql", "sysmon_stop", "pattern sql.sysmon_stop(tag:int):void ", "SYSMONstop;", "" ] [ "sql", "sysmon_stop", "pattern sql.sysmon_stop(tag:lng):void ", "SYSMONstop;", "" ] [ "sql", "sysmon_stop", "pattern sql.sysmon_stop(tag:sht):void ", "SYSMONstop;", "" ] -[ "sql", "tid", "pattern sql.tid(mvc:int, sname:str, tname:str):bat[:oid] ", "SQLtid;", "Return the tables tid column." ] +[ "sql", "tid", "pattern sql.tid(mvc:int, sname:str, tname:str):bat[:oid] ", "SQLtid;", "Return a column with the valid tuple identifiers associated with the table sname.tname." ] [ "sql", "tid", "pattern sql.tid(mvc:int, sname:str, tname:str, part_nr:int, nr_parts:int):bat[:oid] ", "SQLtid;", "Return the tables tid column." ] [ "sql", "transaction", "pattern sql.transaction():void ", "SQLtransaction2;", "Start an autocommit transaction" ] [ "sql", "transaction", "pattern sql.transaction():void ", "SQLtransaction2;", "Start an autocommit transaction" ] @@ -10818,7 +10818,7 @@ Ready. [ "sql", "transaction_commit", "pattern sql.transaction_commit(chain:int, name:str):void ", "SQLtransaction_commit;", "A transaction statement (type can be commit,release,rollback or start)" ] [ "sql", "transaction_release", "pattern sql.transaction_release(chain:int, name:str):void ", "SQLtransaction_release;", "A transaction statement (type can be commit,release,rollback or start)" ] [ "sql", "transaction_rollback", "pattern sql.transaction_rollback(chain:int, name:str):void ", "SQLtransaction_rollback;", "A transaction statement (type can be commit,release,rollback or start)" ] -[ "sql", "update", "pattern sql.update(mvc:int, sname:str, tname:str, cname:str, rids:any, upd:any):int ", "mvc_update_wrap;", "Update the values of the column tname.cname" ] +[ "sql", "update", "pattern sql.update(mvc:int, sname:str, tname:str, cname:str, rids:any, upd:any):int ", "mvc_update_wrap;", "Update the values of the column tname.cname. Returns sequence number for order dependence)" ] [ "sql", "vacuum", "pattern sql.vacuum(sch:str, tbl:str):void ", "SQLvacuum;", "Choose an approach to consolidate the deletions" ] [ "sql", "zero_or_one", "command sql.zero_or_one(col:bat[:any_1]):any_1 ", "zero_or_one;", "if col contains exactly one value return this. Incase of more raise an exception else return nil" ] [ "sqlblob", "#fromstr", "command sqlblob.#fromstr():void ", "SQLBLOBfromstr;", "" ] 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 @@ -186,10 +186,9 @@ BAT *BATunique(BAT *b, BAT *s); BBPrec *BBP[N_BBPINIT]; void BBPaddfarm(const char *dirname, int rolemask); void BBPclear(bat bid); -int BBPdecref(bat b, int logical); BAT *BBPdescriptor(bat b); +int BBPfix(bat b); int BBPin; -int BBPincref(bat b, int logical); bat BBPindex(const char *nme); void BBPkeepref(bat i); bat BBPlimit; @@ -199,11 +198,14 @@ int BBPout; str BBPphysical(bat b, str buf); BAT *BBPquickdesc(bat b, int delaccess); int BBPreclaim(BAT *b); +int BBPrelease(bat b); int BBPrename(bat bid, const char *nme); void BBPresetfarms(void); +int BBPretain(bat b); gdk_return BBPsave(BAT *b); void BBPshare(bat b); gdk_return BBPsync(int cnt, bat *subcommit); +int BBPunfix(bat b); void BBPunlock(void); gdk_return BUNappend(BAT *b, const void *right, bit force); gdk_return BUNdelete(BAT *b, oid o); @@ -2247,6 +2249,8 @@ str mal2str(MalBlkPtr mb, int first, int int malAtomSize(int size, int align, char *name); int malBootstrap(void); str malCommandCall(MalStkPtr stk, InstrPtr pci); +int malLibraryEnabled(str name); +char *malLibraryHowToEnable(str name); int malProfileMode; str malRef; MT_Lock mal_beatLock; diff --git a/gdk/ChangeLog b/gdk/ChangeLog --- a/gdk/ChangeLog +++ b/gdk/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog file for MonetDB # This file is updated with Maddlog +* Tue Jan 3 2017 Sjoerd Mullender <sjo...@acm.org> +- Replaced BBPincref/BBPdecref with BBPfix/BBPunfix for physical reference + count and BBPretain/BBPrelease for logical reference count maintenance. + * Fri Dec 16 2016 Sjoerd Mullender <sjo...@acm.org> - Removed automatic conversion of 32-bit OIDs to 64 bits on 64-bit architectures. diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -1617,9 +1617,9 @@ gdk_export void GDKqsort_rev(void *h, vo * @item int * @tab BBPunfix (bat bi) * @item int - * @tab BBPincref (bat bi, int logical) + * @tab BBPretain (bat bi) * @item int - * @tab BBPdecref (bat bi, int logical) + * @tab BBPrelease (bat bi) * @item str * @tab BBPname (bat bi) * @item bat @@ -1708,8 +1708,6 @@ gdk_export BBPrec *BBP[N_BBPINIT]; "") #define BBPvalid(i) (BBP_logical(i) != NULL && *BBP_logical(i) != '.') #define BATgetId(b) BBPname((b)->batCacheid) -#define BBPfix(i) BBPincref((i), FALSE) -#define BBPunfix(i) BBPdecref((i), FALSE) #define BBPRENAME_ALREADY (-1) #define BBPRENAME_ILLEGAL (-2) diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c --- a/gdk/gdk_aggr.c +++ b/gdk/gdk_aggr.c @@ -1386,7 +1386,8 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT return GDK_SUCCEED; } - if ((e == NULL || + if ((!skip_nils || cntsp == NULL || b->tnonil) && + (e == NULL || (BATcount(e) == BATcount(b) && e->hseqbase == b->hseqbase)) && (BATtdense(g) || (g->tkey && g->tnonil))) { /* trivial: singleton groups, so all results are equal diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c --- a/gdk/gdk_atoms.c +++ b/gdk/gdk_atoms.c @@ -114,16 +114,16 @@ hgeHash(const hge *v) /* * @+ Standard Atoms */ -static inline int +static int batFix(const bat *b) { - return BBPincref(*b, TRUE); + return BBPretain(*b); } -static inline int +static int batUnfix(const bat *b) { - return BBPdecref(*b, TRUE); + return BBPrelease(*b); } /* diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -1934,9 +1934,9 @@ BATmode(BAT *b, int mode) } /* persistent BATs get a logical reference */ if (mode == PERSISTENT) { - BBPincref(bid, TRUE); + BBPretain(bid); } else if (b->batPersistence == PERSISTENT) { - BBPdecref(bid, TRUE); + BBPrelease(bid); } MT_lock_set(&GDKswapLock(bid)); if (mode == PERSISTENT) { diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -59,9 +59,8 @@ * * @item reference counting * Bats use have two kinds of references: logical and physical - * (pointer) ones. Both are administered with the BBPincref/BBPdecref - * routines. For backward compatibility, we maintain BBPfix/BBPunfix - * as shorthands for the adjusting the pointer references. + * (pointer) ones. The logical references are administered by + * BBPretain/BBPrelease, the physical ones by BBPfix/BBPunfix. * * @item share counting * Views use the heaps of there parent bats. To save guard this, the @@ -2044,7 +2043,7 @@ incref(bat i, int logical, int lock) return 0; } - if (!BBPcheck(i, "BBPincref")) + if (!BBPcheck(i, logical ? "BBPretain" : "BBPfix")) return 0; if (lock) { @@ -2084,7 +2083,7 @@ incref(bat i, int logical, int lock) * lock. Set the BBPLOADING flag so that * other threads will wait until we're * done. */ - BBP_status_on(i, BBPLOADING, "BBPincref"); + BBP_status_on(i, BBPLOADING, "BBPfix"); load = 1; } } @@ -2112,17 +2111,25 @@ incref(bat i, int logical, int lock) (void) getBBPdescriptor(tvp, lock); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list