MonetDB: malerrors - Another round of SQLSTATE errors

2017-06-13 Thread Martin Kersten
Changeset: 29567970a214 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=29567970a214
Modified Files:
geom/monetdb5/geom.c
geom/monetdb5/geomBulk.c
monetdb5/modules/atoms/mtime.c
sql/backends/monet5/LSST/lsst.c
sql/backends/monet5/UDF/cudf/udf.c
sql/backends/monet5/UDF/pyapi/convert_loops.h
sql/backends/monet5/generator/generator.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_bat2time.c
sql/backends/monet5/sql_cast.c
sql/backends/monet5/sql_cast_impl_down_from_flt.h
sql/backends/monet5/sql_cast_impl_int.h
sql/backends/monet5/sql_cast_impl_up_to_flt.h
sql/backends/monet5/sql_fround_impl.h
sql/backends/monet5/sql_rank.c
sql/backends/monet5/sql_round_impl.h
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/vaults/bam/bam_export.c
sql/backends/monet5/vaults/bam/bam_lib.c
sql/backends/monet5/vaults/shp/shp.c
sql/backends/monet5/wlr.c
Branch: malerrors
Log Message:

Another round of SQLSTATE errors


diffs (truncated from 3277 to 300 lines):

diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -258,7 +258,7 @@ transformPolygon(GEOSGeometry **transfor
if (transformedInteriorRingGeometries == NULL) {
*transformedGeometry = NULL;
GEOSGeom_destroy(transformedExteriorRingGeometry);
-   throw(MAL, "geom.Transform", "SQLSTATE - !"MAL_MALLOC_FAIL);
+   throw(MAL, "geom.Transform", "SQLSTATE HY001 !"MAL_MALLOC_FAIL);
}
for (i = 0; i < numInteriorRings; i++) {
ret = 
transformLinearRing(&transformedInteriorRingGeometries[i], 
GEOSGetInteriorRingN(geosGeometry, i), proj4_src, proj4_dst);
@@ -298,7 +298,7 @@ transformMultiGeometry(GEOSGeometry **tr
throw(MAL, "geom.Transform", "SQLSTATE - 
!""GEOSGetNumGeometries failed");
transformedMultiGeometries = GDKmalloc(geometriesNum * 
sizeof(GEOSGeometry *));
if (transformedMultiGeometries == NULL)
-   throw(MAL, "geom.Transform", "SQLSTATE - !"MAL_MALLOC_FAIL);
+   throw(MAL, "geom.Transform", "SQLSTATE HY001 !"MAL_MALLOC_FAIL);
 
for (i = 0; i < geometriesNum; i++) {
if ((multiGeometry = GEOSGetGeometryN(geosGeometry, i)) == NULL)
@@ -418,7 +418,7 @@ wkbTransform(wkb **transformedWKB, wkb *
strcmp(*proj4_src_str, str_nil) == 0 ||
strcmp(*proj4_dst_str, str_nil) == 0) {
if ((*transformedWKB = wkbNULLcopy()) == NULL)
-   throw(MAL, "geom.Transform", "SQLSTATE - 
!"MAL_MALLOC_FAIL);
+   throw(MAL, "geom.Transform", "SQLSTATE HY001 
!"MAL_MALLOC_FAIL);
return MAL_SUCCEED;
}
 
@@ -676,7 +676,7 @@ forceDimPolygon(GEOSGeometry **outGeomet
if (transformedInteriorRingGeometries == NULL) {
*outGeometry = NULL;
GEOSGeom_destroy(transformedExteriorRingGeometry);
-   throw(MAL, "geom.ForceDim", "SQLSTATE - !"MAL_MALLOC_FAIL);
+   throw(MAL, "geom.ForceDim", "SQLSTATE HY001 !"MAL_MALLOC_FAIL);
}
for (i = 0; i < numInteriorRings; i++) {
if ((ret = 
forceDimLinearRing(&transformedInteriorRingGeometries[i], 
GEOSGetInteriorRingN(geosGeometry, i), dim)) != MAL_SUCCEED) {
@@ -712,7 +712,7 @@ forceDimMultiGeometry(GEOSGeometry **out
geometriesNum = GEOSGetNumGeometries(geosGeometry);
transformedMultiGeometries = GDKmalloc(geometriesNum * 
sizeof(GEOSGeometry *));
if (transformedMultiGeometries == NULL)
-   throw(MAL, "geom.ForceDim", "SQLSTATE - !"MAL_MALLOC_FAIL);
+   throw(MAL, "geom.ForceDim", "SQLSTATE HY001 !"MAL_MALLOC_FAIL);
 
//In order to have the geometries in the output in the same order as in 
the input
//we should read them and put them in the area in reverse order
@@ -772,7 +772,7 @@ wkbForceDim(wkb **outWKB, wkb **geomWKB,
 
if (wkb_isnil(*geomWKB) || *dim == int_nil) {
if ((*outWKB = wkbNULLcopy()) == NULL)
-   throw(MAL, "geom.ForceDim", "SQLSTATE - 
!"MAL_MALLOC_FAIL);
+   throw(MAL, "geom.ForceDim", "SQLSTATE HY001 
!"MAL_MALLOC_FAIL);
return MAL_SUCCEED;
}
 
@@ -854,18 +854,18 @@ segmentizeLineString(GEOSGeometry **outG
//store the points so that I do not have to read them multiple times 
using geos
if ((xCoords_org = GDKmalloc(pointsNum * sizeof(double))) == NULL) {
*outGeometry = NULL;
-   throw(MAL, "geom.Segmentize", "SQLSTATE - !"MAL_MALLOC_FAIL 
" for %d double values", pointsNum);
+   throw(MAL, "geom.Segmentize", "SQLSTATE HY001 !"MAL_MALLOC_FAIL 
" for %d double values", pointsNum);
}
if ((yCoo

MonetDB: malerrors - SQLSTATE MAL_MALLOC_FAILs

2017-06-13 Thread Martin Kersten
Changeset: edb420672548 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=edb420672548
Modified Files:
sql/backends/monet5/UDF/pyapi/conversion.c
sql/backends/monet5/UDF/pyapi/convert_loops.h
sql/backends/monet5/UDF/pyapi/formatinput.c
sql/backends/monet5/UDF/pyapi/pyapi.c
sql/backends/monet5/UDF/pyapi/pyloader.c
sql/backends/monet5/UDF/pyapi/type_conversion.c
sql/backends/monet5/vaults/bam/bam_export.c
sql/backends/monet5/vaults/bam/bam_lib.c
sql/backends/monet5/vaults/bam/bam_loader.c
sql/backends/monet5/vaults/bam/bam_wrapper.c
sql/backends/monet5/vaults/fits/fits.c
sql/backends/monet5/vaults/lidar/lidar.c
sql/backends/monet5/vaults/netcdf/netcdf.c
sql/backends/monet5/vaults/shp/shp.c
Branch: malerrors
Log Message:

SQLSTATE MAL_MALLOC_FAILs


diffs (truncated from 951 to 300 lines):

diff --git a/sql/backends/monet5/UDF/pyapi/conversion.c 
b/sql/backends/monet5/UDF/pyapi/conversion.c
--- a/sql/backends/monet5/UDF/pyapi/conversion.c
+++ b/sql/backends/monet5/UDF/pyapi/conversion.c
@@ -156,7 +156,7 @@ PyObject *PyArrayObject_FromBAT(PyInput 
 
if (!b) {
// No BAT was found, we can't do anything in this case
-   msg = createException(MAL, "pyapi.eval", "SQLSTATE - 
!"MAL_MALLOC_FAIL " bat.");
+   msg = createException(MAL, "pyapi.eval", "SQLSTATE HY001 
!"MAL_MALLOC_FAIL " bat missing");
goto wrapup;
}
 
@@ -253,7 +253,7 @@ PyObject *PyArrayObject_FromBAT(PyInput 

GDKzalloc(b->tvheap->free * sizeof(PyObject *));
if (!pyptrs) {
msg = 
createException(MAL, "pyapi.eval",
-   
  "SQLSTATE - !"MAL_MALLOC_FAIL
+   
  "SQLSTATE HY001 !"MAL_MALLOC_FAIL

  " PyObject strings.");
goto wrapup;
}
@@ -318,8 +318,8 @@ PyObject *PyArrayObject_FromBAT(PyInput 

GDKzalloc(b->tvheap->free * sizeof(PyObject *));
if (!pyptrs) {
msg = 
createException(MAL, "pyapi.eval",
-   
  MAL_MALLOC_FAIL
-   
  "SQLSTATE - !"" PyObject strings.");
+   
  "SQLSTATE HY001 !"MAL_MALLOC_FAIL
+   
  " PyObject strings.");
goto wrapup;
}
BATloop(b, p, q)
@@ -951,7 +951,7 @@ BAT *PyObject_ConvertToBAT(PyReturn *ret
return b;
 bunins_failed:
BBPunfix(b->batCacheid);
-   msg = createException(MAL, "pyapi.eval", "SQLSTATE - 
!"MAL_MALLOC_FAIL);
+   msg = createException(MAL, "pyapi.eval", "SQLSTATE HY001 
!"MAL_MALLOC_FAIL);
 wrapup:
*return_message = msg;
return NULL;
@@ -1011,7 +1011,7 @@ str ConvertFromSQLType(BAT *b, sql_subty
*ret_type = conv_type;
if (!(*ret_bat)) {
return createException(MAL, "pyapi.eval",
-  "SQLSTATE 
- !"MAL_MALLOC_FAIL " string conversion BAT.");
+  "SQLSTATE 
HY001 !"MAL_MALLOC_FAIL " string conversion BAT.");
}
BATloop(b, p, q)
{
@@ -1022,7 +1022,7 @@ str ConvertFromSQLType(BAT *b, sql_subty
}
if (BUNappend(*ret_bat, result, FALSE) != GDK_SUCCEED) {
BBPunfix((*ret_bat)->batCacheid);
-   throw(MAL, "pyapi.eval", "SQLSTATE - 
!"MAL_MALLOC_FAIL);
+   throw(MAL, "pyapi.eval", "SQLSTATE HY001 
!"MAL_MALLOC_FAIL);
}
}
if (result) {
diff --git a/sql/backends/monet5/UDF/pyapi/convert_loops.h 
b/sql/backen

MonetDB: exanest - Update exanest branch to Dec2016_SP5_release

2017-06-13 Thread Panagiotis Koutsourakis
Changeset: 55caa098d791 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=55caa098d791
Added Files:
clients/Tests/mclient-uri.SQL.bat
clients/Tests/mclient-uri.SQL.sh
clients/Tests/mclient-uri.stable.err
clients/Tests/mclient-uri.stable.out
clients/Tests/mclient-uri.stable.out.Windows
sql/test/BugTracker-2016/Tests/storagemodel.stable.out.Darwin
sql/test/BugTracker-2016/Tests/storagemodel.stable.out.FreeBSD
sql/test/BugTracker-2017/Tests/all_minus_count_star.Bug-6297.sql
sql/test/BugTracker-2017/Tests/all_minus_count_star.Bug-6297.stable.err
sql/test/BugTracker-2017/Tests/all_minus_count_star.Bug-6297.stable.out

sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_not_in_select.Bug-6290.sql

sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_not_in_select.Bug-6290.stable.err

sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_not_in_select.Bug-6290.stable.out

sql/test/BugTracker-2017/Tests/crash_function_returning_sample.Bug-6291.sql

sql/test/BugTracker-2017/Tests/crash_function_returning_sample.Bug-6291.stable.err

sql/test/BugTracker-2017/Tests/crash_function_returning_sample.Bug-6291.stable.out

sql/test/BugTracker-2017/Tests/distinct_minus_count_distinct.Bug-6296.sql

sql/test/BugTracker-2017/Tests/distinct_minus_count_distinct.Bug-6296.stable.err

sql/test/BugTracker-2017/Tests/distinct_minus_count_distinct.Bug-6296.stable.out
sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.err
sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.out
sql/test/BugTracker-2017/Tests/not_plus.Bug-6294.sql
sql/test/BugTracker-2017/Tests/not_plus.Bug-6294.stable.err
sql/test/BugTracker-2017/Tests/not_plus.Bug-6294.stable.out
sql/test/Tests/copy-into-fwf.sql.in
sql/test/Tests/copy-into-fwf.stable.err
sql/test/Tests/copy-into-fwf.stable.out
sql/test/Tests/mtcars
Modified Files:
MonetDB.spec
NT/installer32/MonetDB-ODBC-Installer.vdproj
NT/installer32/MonetDB5-Geom-Module.vdproj
NT/installer32/MonetDB5-SQL-Installer.vdproj
NT/installer64/MonetDB-ODBC-Installer.vdproj
NT/installer64/MonetDB5-Geom-Module.vdproj
NT/installer64/MonetDB5-SQL-Installer.vdproj
NT/monetdb_config.h.in
NT/rules.msc
bootstrap
clients/Tests/All
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/mapilib/mapi.c
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/samples/arraytest.c
clients/odbc/samples/odbcsample1.c
clients/odbc/samples/testgetinfo.c
clients/odbc/winsetup/setup.rc
common/utils/msabaoth.c
configure.ag
debian/changelog
gdk/gdk_atoms.c
gdk/gdk_group.c
gdk/gdk_search.c
gdk/gdk_storage.c
gdk/libbat.rc
libversions
monetdb5/mal/mal_function.c
monetdb5/mal/mal_parser.c
monetdb5/mal/mal_profiler.c
monetdb5/modules/atoms/inet.c
monetdb5/modules/atoms/str.c
monetdb5/modules/mal/manifold.c
monetdb5/tools/libmonetdb5.rc
sql/backends/monet5/UDF/pyapi/unicode.c
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_rank.mal
sql/backends/monet5/sql_statistics.c
sql/common/sql_types.c
sql/jdbc/tests/Tests/BugExecuteUpdate_Bug_3350.stable.out
sql/server/rel_exp.c
sql/server/rel_optimizer.c
sql/server/rel_planner.c
sql/server/rel_rel.c
sql/server/rel_select.c
sql/test/BugTracker-2016/Tests/storagemodel.sql
sql/test/BugTracker-2016/Tests/storagemodel.stable.out
sql/test/BugTracker-2016/Tests/storagemodel.stable.out.Windows
sql/test/BugTracker-2017/Tests/All
sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.sql
sql/test/Tests/All
sql/test/Tests/systemfunctions.stable.out
sql/test/Tests/systemfunctions.stable.out.int128
sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/check.stable.out
sql/test/emptydb-upgrade-chain/Tests/check.stable.out.32bit
sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128
sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128
sql/test/emptydb-upgrade/Tests/check.stable.out
sql/test/emptydb-upgrade/Tests/check.stable.out.32bit
sql/test/emptydb-upgrade/Tests/check.stable.out.int128
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stabl

MonetDB: Dec2016 - Fix for joining a BAT with candidate list wit...

2017-06-13 Thread Sjoerd Mullender
Changeset: 3bfb4dcb6269 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3bfb4dcb6269
Modified Files:
gdk/gdk_join.c
Branch: Dec2016
Log Message:

Fix for joining a BAT with candidate list with a dense bat.


diffs (13 lines):

diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -832,8 +832,7 @@ mergejoin_void(BAT *r1, BAT *r2, BAT *l,
lcand += i;
cnt -= i;
o = l->hseqbase + BATcount(l);
-   i = binsearch_oid(NULL, 0, lcand, 0, cnt - 1, o, 1, 0);
-   cnt -= i;
+   cnt = binsearch_oid(NULL, 0, lcand, 0, cnt - 1, o, 1, 
0);
 
if (BATextend(r1, cnt) != GDK_SUCCEED)
goto bailout;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: jitudf - Properly handle changing parameter names with ...

2017-06-13 Thread Mark Raasveldt
Changeset: 32a3577c9a37 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=32a3577c9a37
Modified Files:
sql/backends/monet5/UDF/capi/Tests/capi04.sql
sql/backends/monet5/UDF/capi/Tests/capi08.sql
sql/backends/monet5/UDF/capi/Tests/capi08.stable.out
sql/backends/monet5/UDF/capi/capi.c
Branch: jitudf
Log Message:

Properly handle changing parameter names with function caching as well.


diffs (152 lines):

diff --git a/sql/backends/monet5/UDF/capi/Tests/capi04.sql 
b/sql/backends/monet5/UDF/capi/Tests/capi04.sql
--- a/sql/backends/monet5/UDF/capi/Tests/capi04.sql
+++ b/sql/backends/monet5/UDF/capi/Tests/capi04.sql
@@ -45,8 +45,6 @@ CREATE FUNCTION capi04(inp STRING) RETUR
if (inp.is_null(inp.data[i])) {
result->data[i] = result->null_value;
} else {
-   result->data[i] = malloc(strlen(inp.data[i]) + 2);
-   strcpy(result->data[i] + 1, inp.data[i]);
result->data[i] = "hello";
}
}
diff --git a/sql/backends/monet5/UDF/capi/Tests/capi08.sql 
b/sql/backends/monet5/UDF/capi/Tests/capi08.sql
--- a/sql/backends/monet5/UDF/capi/Tests/capi08.sql
+++ b/sql/backends/monet5/UDF/capi/Tests/capi08.sql
@@ -31,4 +31,28 @@ SELECT capi08(i) FROM integers;
 SELECT capi08(i) FROM integers;
 
 
+DROP FUNCTION capi08;
+CREATE FUNCTION capi08(inp1 INTEGER, inp2 INTEGER) RETURNS INTEGER LANGUAGE C {
+result->initialize(result, inp1.count);
+for(size_t i = 0; i < inp1.count; i++) {
+result->data[i] = inp1.data[i] / inp2.data[i];
+}
+};
+
+SELECT capi08(i * 2, i) FROM integers;
+
+DROP FUNCTION capi08;
+CREATE FUNCTION capi08(inp2 INTEGER, inp1 INTEGER) RETURNS INTEGER LANGUAGE C {
+result->initialize(result, inp1.count);
+for(size_t i = 0; i < inp1.count; i++) {
+result->data[i] = inp1.data[i] / inp2.data[i];
+}
+};
+
+# same function body and parameter types, but switched parameter names
+# should still give the same result
+SELECT capi08(i, i * 2) FROM integers;
+
+
+
 ROLLBACK;
diff --git a/sql/backends/monet5/UDF/capi/Tests/capi08.stable.out 
b/sql/backends/monet5/UDF/capi/Tests/capi08.stable.out
--- a/sql/backends/monet5/UDF/capi/Tests/capi08.stable.out
+++ b/sql/backends/monet5/UDF/capi/Tests/capi08.stable.out
@@ -116,6 +116,40 @@ Ready.
 [ 6]
 [ 8]
 [ 10   ]
+#DROP FUNCTION capi08;
+#CREATE FUNCTION capi08(inp1 INTEGER, inp2 INTEGER) RETURNS INTEGER LANGUAGE C 
{
+#result->initialize(result, inp1.count);
+#for(size_t i = 0; i < inp1.count; i++) {
+#result->data[i] = inp1.data[i] / inp2.data[i];
+#}
+#};
+#SELECT capi08(i * 2, i) FROM integers;
+% sys.L2 # table_name
+% L2 # name
+% int # type
+% 1 # length
+[ 2]
+[ 2]
+[ 2]
+[ 2]
+[ 2]
+#DROP FUNCTION capi08;
+#CREATE FUNCTION capi08(inp2 INTEGER, inp1 INTEGER) RETURNS INTEGER LANGUAGE C 
{
+#result->initialize(result, inp1.count);
+#for(size_t i = 0; i < inp1.count; i++) {
+#result->data[i] = inp1.data[i] / inp2.data[i];
+#}
+#};
+#SELECT capi08(i, i * 2) FROM integers;
+% sys.L2 # table_name
+% L2 # name
+% int # type
+% 1 # length
+[ 2]
+[ 2]
+[ 2]
+[ 2]
+[ 2]
 #ROLLBACK;
 
 # 16:28:18 >  
diff --git a/sql/backends/monet5/UDF/capi/capi.c 
b/sql/backends/monet5/UDF/capi/capi.c
--- a/sql/backends/monet5/UDF/capi/capi.c
+++ b/sql/backends/monet5/UDF/capi/capi.c
@@ -151,8 +151,10 @@ static char *mprotect_region(void *addr,
size_t actual_len = len;
if (len == 0)
return NULL;
-   // check if the region is page-aligned
 
+   // we must mprotect an entire page
+   // thus here we check if the region is page-aligned
+   // and if it is not, we page-align it
pagesize = getpagesize();
page_begin = (void *)((size_t)addr - (size_t)addr % pagesize);
if (page_begin != addr) {
@@ -420,8 +422,7 @@ static str CUDFeval(Client cntxt, MalBlk
funcname = sqlfun ? sqlfun->base.name : "yet_another_c_function";
 
args = (str *)GDKzalloc(sizeof(str) * pci->argc);
-   output_names =
-   pci->retc > 0 ? (str *)GDKzalloc(sizeof(str) * pci->retc) : 
NULL;
+   output_names = (str *)GDKzalloc(sizeof(str) * pci->argc);
if (!args || !output_names) {
throw(MAL, "cudf.eval", MAL_MALLOC_FAIL);
}
@@ -496,7 +497,17 @@ static str CUDFeval(Client cntxt, MalBlk
GDK_STRHASH(exprStr, expression_hash);
GDK_STRHASH(funcname, funcname_hash);
funcname_hash = funcname_hash % FUNCTION_CACHE_SIZE;
-   function_parameters = GDKzalloc((input_count + output_count + 1) * 
sizeof(char));
+   j = 0;
+   for (i = 0; i < (size_t)pci->argc; i++) {
+   if (args[i]) {
+   j += strlen(args[i]);
+   }
+   if (output_names[i]) {
+   j += strlen(output_names[i]);
+   

MonetDB: Jul2017 - Print dirty information in BBPdump().

2017-06-13 Thread Sjoerd Mullender
Changeset: 6ba0692c5dfe for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6ba0692c5dfe
Modified Files:
gdk/gdk_bbp.c
Branch: Jul2017
Log Message:

Print dirty information in BBPdump().


diffs (40 lines):

diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1819,15 +1819,20 @@ BBPdump(void)
BBP_lrefs(i),
BBP_status(i),
b->batCount);
-   if (b->batSharecnt >0)
+   if (b->batSharecnt > 0)
fprintf(stderr, " shares=%d", b->batSharecnt);
+   if (b->batDirty)
+   fprintf(stderr, " Dirty");
+   if (b->batDirtydesc)
+   fprintf(stderr, " DirtyDesc");
if (b->theap.parentid) {
fprintf(stderr, " Theap -> %d", b->theap.parentid);
} else {
fprintf(stderr,
-   " Theap=[" SZFMT "," SZFMT "]",
+   " Theap=[" SZFMT "," SZFMT "]%s",
HEAPmemsize(&b->theap),
-   HEAPvmsize(&b->theap));
+   HEAPvmsize(&b->theap),
+   b->theap.dirty ? "(Dirty)" : "");
if (BBP_logical(i) && BBP_logical(i)[0] == '.') {
cmem += HEAPmemsize(&b->theap);
cvm += HEAPvmsize(&b->theap);
@@ -1845,9 +1850,10 @@ BBPdump(void)
b->tvheap->parentid);
} else {
fprintf(stderr,
-   " Tvheap=[" SZFMT "," SZFMT "]",
+   " Tvheap=[" SZFMT "," SZFMT "]%s",
HEAPmemsize(b->tvheap),
-   HEAPvmsize(b->tvheap));
+   HEAPvmsize(b->tvheap),
+   b->tvheap->dirty ? "(Dirty)" : "");
if (BBP_logical(i) && BBP_logical(i)[0] == '.') 
{
cmem += HEAPmemsize(b->tvheap);
cvm += HEAPvmsize(b->tvheap);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list