Changeset: 71ee3f01429d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=71ee3f01429d Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 geom/lib/libgeom.c geom/lib/libgeom.h geom/monetdb5/geom.c monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.sql monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows monetdb5/optimizer/opt_postfix.c sql/backends/monet5/sql.c sql/backends/monet5/sql.mal sql/common/sql_types.c sql/server/rel_dump.c sql/server/rel_psm.c sql/server/rel_updates.c sql/storage/bat/bat_storage.c sql/storage/store.c sql/test/BugDay_2005-10-06_2.9.3/Tests/huge_expression_and_column_name.SF-921173.sql sql/test/BugDay_2005-10-06_2.9.3/Tests/huge_expression_and_column_name.SF-921173.stable.out sql/test/BugTracker-2010/Tests/huge_nr_of_columns.Bug-2609.sql sql/test/BugTracker-2012/Tests/huge_table_update.Bug-2803.sql sql/test/BugTracker-2012/Tests/huge_table_update.Bug-2803.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-view.stable.out sql/test/Triggers/Tests/All sql/test/Triggers/Tests/trigger_action.stable.err sql/test/Triggers/Tests/trigger_action.stable.out sql/test/emptydb/Tests/check.stable.out sql/test/emptydb/Tests/check.stable.out.32bit sql/test/emptydb/Tests/check.stable.out.int128 sql/test/sys-schema/Tests/systemfunctions.stable.out sql/test/sys-schema/Tests/systemfunctions.stable.out.int128 Branch: statistics-analytics Log Message:
Merge with default diffs (truncated from 21453 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 @@ -11804,7 +11804,7 @@ stdout of test 'MAL-signatures` in direc [ "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", "unsafe 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", "unsafe pattern sql.copy_from(sname:str, tname:str, sep:str, rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, best:int, fwf:str, onclient:int):bat[:any]... ", "mvc_import_table_wrap;", "Import a table from bstream s with the \n\tgiven tuple and seperators (sep/rsep)" ] +[ "sql", "copy_from", "unsafe pattern sql.copy_from(t:ptr, sep:str, rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, best:int, fwf:str, onclient: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;", "" ] [ "sql", "copy_rejects_clear", "pattern sql.copy_rejects_clear():void ", "COPYrejects_clear;", "" ] [ "sql", "corr", "pattern sql.corr(b:bte, c:bte, s:lng, e:lng):dbl ", "SQLcorr;", "return the correlation value of groups" ] 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 @@ -16227,7 +16227,7 @@ stdout of test 'MAL-signatures` in direc [ "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", "unsafe 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", "unsafe pattern sql.copy_from(sname:str, tname:str, sep:str, rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, best:int, fwf:str, onclient:int):bat[:any]... ", "mvc_import_table_wrap;", "Import a table from bstream s with the \n\tgiven tuple and seperators (sep/rsep)" ] +[ "sql", "copy_from", "unsafe pattern sql.copy_from(t:ptr, sep:str, rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, best:int, fwf:str, onclient: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;", "" ] [ "sql", "copy_rejects_clear", "pattern sql.copy_rejects_clear():void ", "COPYrejects_clear;", "" ] [ "sql", "corr", "pattern sql.corr(b:bte, c:bte, s:lng, e:lng):dbl ", "SQLcorr;", "return the correlation value of groups" ] diff --git a/geom/lib/libgeom.c b/geom/lib/libgeom.c --- a/geom/lib/libgeom.c +++ b/geom/lib/libgeom.c @@ -106,24 +106,17 @@ getMbrGeos(mbr *res, const GEOSGeom geos */ GEOSGeom -wkb2geos(GEOSContextHandle_t handle, const wkb *geomWKB) +wkb2geos(const wkb *geomWKB) { GEOSGeom geosGeometry; if (is_wkb_nil(geomWKB)) return NULL; - if (handle) - geosGeometry = GEOSGeomFromWKB_buf_r(handle, (unsigned char *) geomWKB->data, geomWKB->len); - else - geosGeometry = GEOSGeomFromWKB_buf((unsigned char *) geomWKB->data, geomWKB->len); + geosGeometry = GEOSGeomFromWKB_buf((unsigned char *) geomWKB->data, geomWKB->len); - if (geosGeometry != NULL) { - if (handle) - GEOSSetSRID_r(handle, geosGeometry, geomWKB->srid); - else - GEOSSetSRID(geosGeometry, geomWKB->srid); - } + if (geosGeometry != NULL) + GEOSSetSRID(geosGeometry, geomWKB->srid); return geosGeometry; } diff --git a/geom/lib/libgeom.h b/geom/lib/libgeom.h --- a/geom/lib/libgeom.h +++ b/geom/lib/libgeom.h @@ -139,7 +139,7 @@ libgeom_export void libgeom_exit(void); libgeom_export bool is_wkb_nil(const wkb *wkbp); libgeom_export int getMbrGeos(mbr *mbr, const GEOSGeom geosGeometry); libgeom_export int getMbrGeom(mbr *res, wkb *geom); -libgeom_export GEOSGeom wkb2geos(GEOSContextHandle_t handle, const wkb *geomWKB); +libgeom_export GEOSGeom wkb2geos(const wkb *geomWKB); //libgeom_export str geomerty_2_geometry(wkb *res, wkb **geom, int* columnType, int* columnSRID, int* valueSRID); diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c --- a/geom/monetdb5/geom.c +++ b/geom/monetdb5/geom.c @@ -16,7 +16,7 @@ int TYPE_mbr; -static wkb *geos2wkb(GEOSContextHandle_t handle, const GEOSGeometry *geosGeometry); +static wkb *geos2wkb(const GEOSGeometry *geosGeometry); static inline int geometryHasZ(int info) @@ -438,7 +438,7 @@ wkbTransform(wkb **transformedWKB, wkb * } /* get the geosGeometry from the wkb */ - geosGeometry = wkb2geos(NULL, (*geomWKB)); + geosGeometry = wkb2geos(*geomWKB); /* get the type of the geometry */ geometryType = GEOSGeomTypeId(geosGeometry) + 1; @@ -469,7 +469,7 @@ wkbTransform(wkb **transformedWKB, wkb * /* set the new srid */ GEOSSetSRID(transformedGeosGeometry, *srid_dst); /* get the wkb */ - if ((*transformedWKB = geos2wkb(NULL, transformedGeosGeometry)) == NULL) + if ((*transformedWKB = geos2wkb(transformedGeosGeometry)) == NULL) ret = createException(MAL, "geom.Transform", SQLSTATE(38000) "Geos operation geos2wkb failed"); /* destroy the geos geometries */ GEOSGeom_destroy(transformedGeosGeometry); @@ -776,7 +776,7 @@ wkbForceDim(wkb **outWKB, wkb **geomWKB, return MAL_SUCCEED; } - geosGeometry = wkb2geos(NULL, (*geomWKB)); + geosGeometry = wkb2geos(*geomWKB); if (geosGeometry == NULL) { *outWKB = NULL; throw(MAL, "geom.ForceDim", SQLSTATE(38000) "Geos operation wkb2geos failed"); @@ -790,7 +790,7 @@ wkbForceDim(wkb **outWKB, wkb **geomWKB, GEOSSetSRID(outGeometry, GEOSGetSRID(geosGeometry)); - *outWKB = geos2wkb(NULL, outGeometry); + *outWKB = geos2wkb(outGeometry); GEOSGeom_destroy(geosGeometry); GEOSGeom_destroy(outGeometry); @@ -1156,7 +1156,7 @@ wkbSegmentize(wkb **outWKB, wkb **geomWK return MAL_SUCCEED; } - geosGeometry = wkb2geos(NULL, (*geomWKB)); + geosGeometry = wkb2geos(*geomWKB); if (geosGeometry == NULL) { *outWKB = NULL; throw(MAL, "geom.Segmentize", SQLSTATE(38000) "Geos operation wkb2geos failed"); @@ -1170,7 +1170,7 @@ wkbSegmentize(wkb **outWKB, wkb **geomWK GEOSSetSRID(outGeometry, GEOSGetSRID(geosGeometry)); - *outWKB = geos2wkb(NULL, outGeometry); + *outWKB = geos2wkb(outGeometry); GEOSGeom_destroy(geosGeometry); GEOSGeom_destroy(outGeometry); @@ -1474,7 +1474,7 @@ wkbTranslate(wkb **outWKB, wkb **geomWKB return MAL_SUCCEED; } - geosGeometry = wkb2geos(NULL, (*geomWKB)); + geosGeometry = wkb2geos(*geomWKB); if (geosGeometry == NULL) { *outWKB = NULL; throw(MAL, "geom.Translate", SQLSTATE(38000) "Geos operation wkb2geos failed"); @@ -1488,7 +1488,7 @@ wkbTranslate(wkb **outWKB, wkb **geomWKB GEOSSetSRID(outGeometry, GEOSGetSRID(geosGeometry)); - *outWKB = geos2wkb(NULL, outGeometry); + *outWKB = geos2wkb(outGeometry); GEOSGeom_destroy(geosGeometry); GEOSGeom_destroy(outGeometry); @@ -1514,7 +1514,7 @@ wkbDelaunayTriangles(wkb **outWKB, wkb * return MAL_SUCCEED; } - geosGeometry = wkb2geos(NULL, (*geomWKB)); + geosGeometry = wkb2geos(*geomWKB); outGeometry = GEOSDelaunayTriangulation(geosGeometry, *tolerance, *flag); GEOSGeom_destroy(geosGeometry); if (outGeometry == NULL) { @@ -1522,7 +1522,7 @@ wkbDelaunayTriangles(wkb **outWKB, wkb * throw(MAL, "geom.DelaunayTriangles", SQLSTATE(38000) "Geos operation GEOSDelaunayTriangulation failed"); } - *outWKB = geos2wkb(NULL, outGeometry); + *outWKB = geos2wkb(outGeometry); GEOSGeom_destroy(outGeometry); if (*outWKB == NULL) @@ -1542,7 +1542,7 @@ wkbPointOnSurface(wkb **resWKB, wkb **ge return MAL_SUCCEED; } - geosGeometry = wkb2geos(NULL, (*geomWKB)); + geosGeometry = wkb2geos(*geomWKB); if (geosGeometry == NULL) { *resWKB = NULL; throw(MAL, "geom.PointOnSurface", SQLSTATE(38000) "Geos operation wkb2geos failed"); @@ -1557,7 +1557,7 @@ wkbPointOnSurface(wkb **resWKB, wkb **ge //set the srid of the point the same as the srid of the input geometry GEOSSetSRID(resGeosGeometry, GEOSGetSRID(geosGeometry)); - *resWKB = geos2wkb(NULL, resGeosGeometry); + *resWKB = geos2wkb(resGeosGeometry); GEOSGeom_destroy(geosGeometry); GEOSGeom_destroy(resGeosGeometry); @@ -1573,7 +1573,7 @@ dumpGeometriesSingle(BAT *idBAT, BAT *ge { char *newPath = NULL; size_t pathLength = strlen(path); - wkb *singleWKB = geos2wkb(NULL, geosGeometry); + wkb *singleWKB = geos2wkb(geosGeometry); str err = MAL_SUCCEED; if (singleWKB == NULL) @@ -1709,7 +1709,7 @@ wkbDump(bat *idBAT_id, bat *geomBAT_id, return MAL_SUCCEED; } - geosGeometry = wkb2geos(NULL, (*geomWKB)); + geosGeometry = wkb2geos(*geomWKB); //count the number of geometries geometriesNum = GEOSGetNumGeometries(geosGeometry); @@ -1743,7 +1743,7 @@ dumpPointsPoint(BAT *idBAT, BAT *geomBAT { char *newPath = NULL; size_t pathLength = strlen(path); - wkb *pointWKB = geos2wkb(NULL, geosGeometry); + wkb *pointWKB = geos2wkb(geosGeometry); int lvlDigitsNum = 10; //MAX_UNIT = 4,294,967,295 str err = MAL_SUCCEED; @@ -1776,7 +1776,7 @@ dumpPointsLineString(BAT *idBAT, BAT *ge int i = 0; int check = 0; unsigned int lvl = 0; - wkb *geomWKB = geos2wkb(NULL, geosGeometry); + wkb *geomWKB = geos2wkb(geosGeometry); err = wkbNumPoints(&pointsNum, &geomWKB, &check); GDKfree(geomWKB); @@ -1940,7 +1940,7 @@ wkbDumpPoints(bat *idBAT_id, bat *geomBA return MAL_SUCCEED; } - geosGeometry = wkb2geos(NULL, (*geomWKB)); + geosGeometry = wkb2geos(*geomWKB); if ((err = wkbNumPoints(&pointsNum, geomWKB, &check)) != MAL_SUCCEED) { GEOSGeom_destroy(geosGeometry); @@ -1988,7 +1988,7 @@ geom_2_geom(wkb **resWKB, wkb **valueWKB } /* get the geosGeometry from the wkb */ - geosGeometry = wkb2geos(NULL, (*valueWKB)); + geosGeometry = wkb2geos(*valueWKB); if (geosGeometry == NULL) throw(MAL, "calc.wkb", SQLSTATE(38000) "Geos operation wkb2geos failed"); @@ -2008,7 +2008,7 @@ geom_2_geom(wkb **resWKB, wkb **valueWKB } /* get the wkb from the geosGeometry */ - *resWKB = geos2wkb(NULL, geosGeometry); + *resWKB = geos2wkb(geosGeometry); GEOSGeom_destroy(geosGeometry); if (*resWKB == NULL) @@ -2131,7 +2131,6 @@ wkbFROMSTR_withSRID(const char *geomWKT, const char *multiPolygon = "MULTIPOLYGON"; char *geomWKT_new = NULL; size_t parsedCharacters = 0; - GEOSContextHandle_t handle = NULL; *nread = 0; @@ -2172,46 +2171,36 @@ wkbFROMSTR_withSRID(const char *geomWKT, } ////////////////////////// UP TO HERE /////////////////////////// - if (!(handle = initGEOS_r((GEOSMessageHandler) GDKerror, (GEOSMessageHandler) GDKerror))) { - if (geomWKT_new) - GDKfree(geomWKT_new); - throw(MAL, "wkb.FromText", SQLSTATE(38000) "Geos operation initGEOS_r failed"); - } - - WKT_reader = GEOSWKTReader_create_r(handle); + WKT_reader = GEOSWKTReader_create(); if (WKT_reader == NULL) { if (geomWKT_new) GDKfree(geomWKT_new); - GEOS_finish_r(handle); throw(MAL, "wkb.FromText", SQLSTATE(38000) "Geos operation GEOSWKTReader_create failed"); } - geosGeometry = GEOSWKTReader_read_r(handle, WKT_reader, geomWKT); - GEOSWKTReader_destroy_r(handle, WKT_reader); + geosGeometry = GEOSWKTReader_read(WKT_reader, geomWKT); + GEOSWKTReader_destroy(WKT_reader); if (geosGeometry == NULL) { if (geomWKT_new) GDKfree(geomWKT_new); - GEOS_finish_r(handle); throw(MAL, "wkb.FromText", SQLSTATE(38000) "Geos operation GEOSWKTReader_read failed"); } - if (GEOSGeomTypeId_r(handle, geosGeometry) == -1) { + if (GEOSGeomTypeId(geosGeometry) == -1) { if (geomWKT_new) GDKfree(geomWKT_new); - GEOSGeom_destroy_r(handle, geosGeometry); - GEOS_finish_r(handle); + GEOSGeom_destroy(geosGeometry); throw(MAL, "wkb.FromText", SQLSTATE(38000) "Geos operation GEOSGeomTypeId failed"); } - GEOSSetSRID_r(handle, geosGeometry, srid); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list