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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list