Changeset: 0757d72aac7f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0757d72aac7f
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/mal/Tests/tst002.stable.err
        monetdb5/mal/Tests/tst054.stable.err
        monetdb5/mal/Tests/tst058.stable.err
        monetdb5/mal/mal_parser.c
        monetdb5/optimizer/opt_postfix.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.mal
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/sql_user.c
        sql/common/sql_types.c
        sql/server/rel_updates.c
        sql/server/sql_privileges.c
        sql/server/sql_privileges.h
        sql/storage/sql_storage.h
        sql/storage/store.c
        
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/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: mosaic
Log Message:

Merge with default.


diffs (truncated from 2117 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
@@ -11746,7 +11746,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",       "count",        "pattern sql.count(b:any_1, ignils:bit, s:lng, 
e:lng):lng ",    "SQLcount;",    "return count 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
@@ -16151,7 +16151,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",       "count",        "pattern sql.count(b:any_1, ignils:bit, s:lng, 
e:lng):lng ",    "SQLcount;",    "return count 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

Reply via email to