MonetDB: malerrors - Another round of SQLSTATE errors
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
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
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...
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 ...
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().
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