Changeset: c326d82643e6 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c326d82643e6 Modified Files: geom/monetdb5/geom.c geom/monetdb5/geomBulk.c monetdb5/extras/rapi/rapi.c monetdb5/mal/mal_atom.c monetdb5/mal/mal_authorize.c monetdb5/mal/mal_dataflow.c monetdb5/mal/mal_exception.c monetdb5/mal/mal_factory.c monetdb5/mal/mal_import.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_namespace.c monetdb5/mal/mal_parser.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_session.c monetdb5/modules/atoms/batxml.c monetdb5/modules/atoms/blob.c monetdb5/modules/atoms/inet.c monetdb5/modules/atoms/json.c monetdb5/modules/atoms/mtime.c monetdb5/modules/atoms/str.c monetdb5/modules/atoms/streams.c monetdb5/modules/atoms/url.c monetdb5/modules/atoms/uuid.c monetdb5/modules/atoms/xml.c monetdb5/modules/kernel/alarm.c monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/bat5.c monetdb5/modules/kernel/batcolor.c monetdb5/modules/kernel/batmmath.c monetdb5/modules/kernel/batstr.c monetdb5/modules/kernel/status.c monetdb5/modules/mal/batExtensions.c monetdb5/modules/mal/bbp.c monetdb5/modules/mal/calc.c monetdb5/modules/mal/clients.c monetdb5/modules/mal/groupby.c monetdb5/modules/mal/inspect.c monetdb5/modules/mal/iterator.c monetdb5/modules/mal/json_util.c monetdb5/modules/mal/language.c monetdb5/modules/mal/mal_io.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/manifold.c monetdb5/modules/mal/manual.c monetdb5/modules/mal/mat.c monetdb5/modules/mal/mdb.c monetdb5/modules/mal/mkey.c monetdb5/modules/mal/oltp.c monetdb5/modules/mal/orderidx.c monetdb5/modules/mal/pcre.c monetdb5/modules/mal/projectionpath.c monetdb5/modules/mal/querylog.c monetdb5/modules/mal/remote.c monetdb5/modules/mal/sysmon.c monetdb5/modules/mal/tablet.c monetdb5/modules/mal/tokenizer.c monetdb5/modules/mal/txtsim.c monetdb5/modules/mal/wlc.c monetdb5/optimizer/opt_aliases.c monetdb5/optimizer/opt_coercion.c monetdb5/optimizer/opt_commonTerms.c monetdb5/optimizer/opt_constants.c monetdb5/optimizer/opt_dataflow.c monetdb5/optimizer/opt_deadcode.c monetdb5/optimizer/opt_emptybind.c monetdb5/optimizer/opt_evaluate.c monetdb5/optimizer/opt_garbageCollector.c monetdb5/optimizer/opt_generator.c monetdb5/optimizer/opt_jit.c monetdb5/optimizer/opt_json.c monetdb5/optimizer/opt_macro.c monetdb5/optimizer/opt_matpack.c monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_mitosis.c monetdb5/optimizer/opt_multiplex.c monetdb5/optimizer/opt_oltp.c monetdb5/optimizer/opt_pipes.c monetdb5/optimizer/opt_postfix.c monetdb5/optimizer/opt_projectionpath.c monetdb5/optimizer/opt_pushselect.c monetdb5/optimizer/opt_querylog.c monetdb5/optimizer/opt_remap.c monetdb5/optimizer/opt_remoteQueries.c monetdb5/optimizer/opt_reorder.c monetdb5/optimizer/opt_volcano.c monetdb5/optimizer/opt_wlc.c monetdb5/optimizer/opt_wrapper.c monetdb5/scheduler/run_adder.c monetdb5/scheduler/run_memo.c sql/backends/monet5/UDF/capi/capi.c sql/backends/monet5/UDF/pyapi/connection.c 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/UDF/udf/udf.c sql/backends/monet5/generator/generator.c sql/backends/monet5/rel_bin.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_cat.c sql/backends/monet5/sql_datetrunc.c sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_fround_impl.h sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_rank.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_round_impl.h sql/backends/monet5/sql_scenario.c sql/backends/monet5/sql_statistics.c sql/backends/monet5/sql_subquery.c sql/backends/monet5/sql_transaction.c sql/backends/monet5/sql_upgrades.c sql/backends/monet5/sql_user.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 sql/backends/monet5/wlr.c sql/server/rel_propagate.c sql/server/rel_psm.c sql/server/rel_schema.c sql/server/rel_select.c sql/server/rel_semantic.c sql/server/rel_sequence.c sql/server/rel_updates.c sql/server/sql_mvc.c sql/server/sql_parser.y sql/server/sql_partition.c Branch: Nov2019 Log Message:
Use SQL state HY013 for server side memory allocation failures. HY001 is for client side memory allocation failures. diffs (truncated from 11232 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(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Transform", SQLSTATE(HY013) 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(38000) "Geos operation GEOSGetNumGeometries failed"); transformedMultiGeometries = GDKmalloc(geometriesNum * sizeof(GEOSGeometry *)); if (transformedMultiGeometries == NULL) - throw(MAL, "geom.Transform", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Transform", SQLSTATE(HY013) 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(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Transform", SQLSTATE(HY013) 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(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.ForceDim", SQLSTATE(HY013) 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(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.ForceDim", SQLSTATE(HY013) 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 (is_wkb_nil(*geomWKB) || is_int_nil(*dim)) { if ((*outWKB = wkbNULLcopy()) == NULL) - throw(MAL, "geom.ForceDim", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.ForceDim", SQLSTATE(HY013) 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(HY001) MAL_MALLOC_FAIL " for %u double values", pointsNum); + throw(MAL, "geom.Segmentize", SQLSTATE(HY013) MAL_MALLOC_FAIL " for %u double values", pointsNum); } if ((yCoords_org = GDKmalloc(pointsNum * sizeof(double))) == NULL) { GDKfree(xCoords_org); *outGeometry = NULL; - throw(MAL, "geom.Segmentize", SQLSTATE(HY001) MAL_MALLOC_FAIL " for %u double values", pointsNum); + throw(MAL, "geom.Segmentize", SQLSTATE(HY013) MAL_MALLOC_FAIL " for %u double values", pointsNum); } if ((zCoords_org = GDKmalloc(pointsNum * sizeof(double))) == NULL) { GDKfree(xCoords_org); GDKfree(yCoords_org); *outGeometry = NULL; - throw(MAL, "geom.Segmentize", SQLSTATE(HY001) MAL_MALLOC_FAIL " for %u double values", pointsNum); + throw(MAL, "geom.Segmentize", SQLSTATE(HY013) MAL_MALLOC_FAIL " for %u double values", pointsNum); } if (!GEOSCoordSeq_getX(gcs_old, 0, &xCoords_org[0])) { @@ -1052,7 +1052,7 @@ segmentizePolygon(GEOSGeometry **outGeom if (transformedInteriorRingGeometries == NULL) { *outGeometry = NULL; GEOSGeom_destroy(transformedExteriorRingGeometry); - throw(MAL, "geom.Segmentize", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Segmentize", SQLSTATE(HY013) MAL_MALLOC_FAIL); } for (i = 0; i < numInteriorRings; i++) { if ((err = segmentizeLineString(&transformedInteriorRingGeometries[i], GEOSGetInteriorRingN(geosGeometry, i), sz, 1)) != MAL_SUCCEED) { @@ -1088,7 +1088,7 @@ segmentizeMultiGeometry(GEOSGeometry **o geometriesNum = GEOSGetNumGeometries(geosGeometry); transformedMultiGeometries = GDKmalloc(geometriesNum * sizeof(GEOSGeometry *)); if (transformedMultiGeometries == NULL) - throw(MAL, "geom.Segmentize", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Segmentize", SQLSTATE(HY013) 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 @@ -1148,7 +1148,7 @@ wkbSegmentize(wkb **outWKB, wkb **geomWK if (is_wkb_nil(*geomWKB) || is_dbl_nil(*sz)) { if ((*outWKB = wkbNULLcopy()) == NULL) - throw(MAL, "geom.Segmentize", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Segmentize", SQLSTATE(HY013) MAL_MALLOC_FAIL); return MAL_SUCCEED; } @@ -1370,7 +1370,7 @@ translatePolygon(GEOSGeometry **outGeome if (transformedInteriorRingGeometries == NULL) { *outGeometry = NULL; GEOSGeom_destroy(transformedExteriorRingGeometry); - throw(MAL, "geom.Translate", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Translate", SQLSTATE(HY013) MAL_MALLOC_FAIL); } for (i = 0; i < numInteriorRings; i++) { if ((err = translateLinearRing(&transformedInteriorRingGeometries[i], GEOSGetInteriorRingN(geosGeometry, i), dx, dy, dz)) != MAL_SUCCEED) { @@ -1406,7 +1406,7 @@ translateMultiGeometry(GEOSGeometry **ou geometriesNum = GEOSGetNumGeometries(geosGeometry); transformedMultiGeometries = GDKmalloc(geometriesNum * sizeof(GEOSGeometry *)); if (transformedMultiGeometries == NULL) - throw(MAL, "geom.Translate", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Translate", SQLSTATE(HY013) 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 @@ -1466,7 +1466,7 @@ wkbTranslate(wkb **outWKB, wkb **geomWKB if (is_wkb_nil(*geomWKB) || is_dbl_nil(*dx) || is_dbl_nil(*dy) || is_dbl_nil(*dz)) { if ((*outWKB = wkbNULLcopy()) == NULL) - throw(MAL, "geom.Translate", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Translate", SQLSTATE(HY013) MAL_MALLOC_FAIL); return MAL_SUCCEED; } @@ -1506,7 +1506,7 @@ wkbDelaunayTriangles(wkb **outWKB, wkb * if (is_wkb_nil(*geomWKB) || is_dbl_nil(*tolerance) || is_int_nil(*flag)) { if ((*outWKB = wkbNULLcopy()) == NULL) - throw(MAL, "geom.DelaunayTriangles", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.DelaunayTriangles", SQLSTATE(HY013) MAL_MALLOC_FAIL); return MAL_SUCCEED; } @@ -1534,7 +1534,7 @@ wkbPointOnSurface(wkb **resWKB, wkb **ge if (is_wkb_nil(*geomWKB)) { if ((*resWKB = wkbNULLcopy()) == NULL) - throw(MAL, "geom.PointOnSurface", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.PointOnSurface", SQLSTATE(HY013) MAL_MALLOC_FAIL); return MAL_SUCCEED; } @@ -1584,7 +1584,7 @@ dumpGeometriesSingle(BAT *idBAT, BAT *ge newPath = GDKmalloc(lvlDigitsNum + 1); if (newPath == NULL) { GDKfree(singleWKB); - throw(MAL, "geom.Dump", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Dump", SQLSTATE(HY013) MAL_MALLOC_FAIL); } snprintf(newPath, lvlDigitsNum + 1, "%u", *lvl); } else { @@ -1593,7 +1593,7 @@ dumpGeometriesSingle(BAT *idBAT, BAT *ge newPath = GDKmalloc(pathLength + 1); if (newPath == NULL) { GDKfree(singleWKB); - throw(MAL, "geom.Dump", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Dump", SQLSTATE(HY013) MAL_MALLOC_FAIL); } strncpy(newPath, path, pathLength); newPath[pathLength] = '\0'; @@ -1624,7 +1624,7 @@ dumpGeometriesMulti(BAT *idBAT, BAT *geo pathLength += 10 + 1 + 1; /* 10 for lvl, 1 for ",", 1 for NULL byte */ newPath = GDKmalloc(pathLength); if (newPath == NULL) - throw(MAL, "geom.Dump", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Dump", SQLSTATE(HY013) MAL_MALLOC_FAIL); for (i = 0; i < geometriesNum; i++) { multiGeometry = GEOSGetGeometryN(geosGeometry, i); @@ -1691,13 +1691,13 @@ wkbDump(bat *idBAT_id, bat *geomBAT_id, //create new empty BAT for the output if ((idBAT = COLnew(0, TYPE_str, 0, TRANSIENT)) == NULL) { *idBAT_id = bat_nil; - throw(MAL, "geom.DumpPoints", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.DumpPoints", SQLSTATE(HY013) MAL_MALLOC_FAIL); } if ((geomBAT = COLnew(0, ATOMindex("wkb"), 0, TRANSIENT)) == NULL) { BBPunfix(idBAT->batCacheid); *geomBAT_id = bat_nil; - throw(MAL, "geom.DumpPoints", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.DumpPoints", SQLSTATE(HY013) MAL_MALLOC_FAIL); } BBPkeepref(*idBAT_id = idBAT->batCacheid); @@ -1714,13 +1714,13 @@ wkbDump(bat *idBAT_id, bat *geomBAT_id, if ((idBAT = COLnew(0, TYPE_str, geometriesNum, TRANSIENT)) == NULL) { GEOSGeom_destroy(geosGeometry); - throw(MAL, "geom.Dump", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Dump", SQLSTATE(HY013) MAL_MALLOC_FAIL); } if ((geomBAT = COLnew(0, ATOMindex("wkb"), geometriesNum, TRANSIENT)) == NULL) { BBPunfix(idBAT->batCacheid); GEOSGeom_destroy(geosGeometry); - throw(MAL, "geom.Dump", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Dump", SQLSTATE(HY013) MAL_MALLOC_FAIL); } err = dumpGeometriesGeometry(idBAT, geomBAT, geosGeometry, ""); @@ -1746,13 +1746,13 @@ dumpPointsPoint(BAT *idBAT, BAT *geomBAT str err = MAL_SUCCEED; if (pointWKB == NULL) - throw(MAL, "geom.Dump", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Dump", SQLSTATE(HY013) MAL_MALLOC_FAIL); (*lvl)++; newPath = GDKmalloc(pathLength + lvlDigitsNum + 1); if (newPath == NULL) { GDKfree(pointWKB); - throw(MAL, "geom.Dump", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Dump", SQLSTATE(HY013) MAL_MALLOC_FAIL); } sprintf(newPath, "%s%u", path, *lvl); @@ -1814,7 +1814,7 @@ dumpPointsPolygon(BAT *idBAT, BAT *geomB (*lvl)++; newPath = GDKmalloc(pathLength + lvlDigitsNum + extraLength + 1); if (newPath == NULL) - throw(MAL, "geom.DumpPoints", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.DumpPoints", SQLSTATE(HY013) MAL_MALLOC_FAIL); sprintf(newPath, "%s%u%s", path, *lvl, extraStr); //get the points in the exterior ring @@ -1835,7 +1835,7 @@ dumpPointsPolygon(BAT *idBAT, BAT *geomB newPath = GDKmalloc(pathLength + lvlDigitsNum + extraLength + 1); if (newPath == NULL) - throw(MAL, "geom.DumpPoints", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.DumpPoints", SQLSTATE(HY013) MAL_MALLOC_FAIL); sprintf(newPath, "%s%u%s", path, *lvl, extraStr); err = dumpPointsLineString(idBAT, geomBAT, GEOSGetInteriorRingN(geosGeometry, i), newPath); @@ -1870,7 +1870,7 @@ dumpPointsMultiGeometry(BAT *idBAT, BAT newPath = GDKmalloc(pathLength + lvlDigitsNum + extraLength + 1); if (newPath == NULL) - throw(MAL, "geom.DumpPoints", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.DumpPoints", SQLSTATE(HY013) MAL_MALLOC_FAIL); sprintf(newPath, "%s%u%s", path, lvl, extraStr); //*secondLevel = 0; @@ -1922,13 +1922,13 @@ wkbDumpPoints(bat *idBAT_id, bat *geomBA //create new empty BAT for the output if ((idBAT = COLnew(0, TYPE_str, 0, TRANSIENT)) == NULL) { *idBAT_id = int_nil; - throw(MAL, "geom.DumpPoints", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.DumpPoints", SQLSTATE(HY013) MAL_MALLOC_FAIL); } if ((geomBAT = COLnew(0, ATOMindex("wkb"), 0, TRANSIENT)) == NULL) { BBPunfix(idBAT->batCacheid); *geomBAT_id = int_nil; - throw(MAL, "geom.DumpPoints", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.DumpPoints", SQLSTATE(HY013) MAL_MALLOC_FAIL); } BBPkeepref(*idBAT_id = idBAT->batCacheid); @@ -1947,13 +1947,13 @@ wkbDumpPoints(bat *idBAT_id, bat *geomBA if ((idBAT = COLnew(0, TYPE_str, pointsNum, TRANSIENT)) == NULL) { GEOSGeom_destroy(geosGeometry); - throw(MAL, "geom.Dump", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Dump", SQLSTATE(HY013) MAL_MALLOC_FAIL); } if ((geomBAT = COLnew(0, ATOMindex("wkb"), pointsNum, TRANSIENT)) == NULL) { BBPunfix(idBAT->batCacheid); GEOSGeom_destroy(geosGeometry); - throw(MAL, "geom.Dump", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.Dump", SQLSTATE(HY013) MAL_MALLOC_FAIL); } err = dumpPointsGeometry(idBAT, geomBAT, geosGeometry, ""); @@ -1981,7 +1981,7 @@ geom_2_geom(wkb **resWKB, wkb **valueWKB if (is_wkb_nil(*valueWKB) || is_int_nil(*columnType) || is_int_nil(*columnSRID)) { *resWKB = wkbNULLcopy(); if (*resWKB == NULL) - throw(MAL, "calc.wkb", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "calc.wkb", SQLSTATE(HY013) MAL_MALLOC_FAIL); return MAL_SUCCEED; } @@ -2049,11 +2049,11 @@ geoGetType(char **res, int *info, int *f { if (is_int_nil(*info) || is_int_nil(*flag)) { if ((*res = GDKstrdup(str_nil)) == NULL) - throw(MAL, "geom.getType", SQLSTATE(HY001) MAL_MALLOC_FAIL); + throw(MAL, "geom.getType", SQLSTATE(HY013) MAL_MALLOC_FAIL); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list