Changeset: 1e91bd533663 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1e91bd533663
Modified Files:
clients/Tests/MAL-signatures-hge.test
clients/Tests/MAL-signatures.test
clients/odbc/driver/SQLExecute.c
geom/monetdb5/geom.c
sql/storage/bat/bat_storage.c
Branch: default
Log Message:
Merge with Sep2022 branch.
diffs (148 lines):
diff --git a/clients/Tests/MAL-signatures-hge.test
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -44832,7 +44832,7 @@ geom
Length
command geom.Length(X_0:wkb):dbl
wkbLength;
-Returns the cartesian 2D length of the geometry if it is a linestrin or
multilinestring
+Returns the cartesian 2D length of the geometry if it is a linestring or
multilinestring
geom
LineFromText
command geom.LineFromText(X_0:str):wkb
diff --git a/clients/Tests/MAL-signatures.test
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -33282,7 +33282,7 @@ geom
Length
command geom.Length(X_0:wkb):dbl
wkbLength;
-Returns the cartesian 2D length of the geometry if it is a linestrin or
multilinestring
+Returns the cartesian 2D length of the geometry if it is a linestring or
multilinestring
geom
LineFromText
command geom.LineFromText(X_0:str):wkb
diff --git a/clients/odbc/driver/SQLExecute.c b/clients/odbc/driver/SQLExecute.c
--- a/clients/odbc/driver/SQLExecute.c
+++ b/clients/odbc/driver/SQLExecute.c
@@ -492,7 +492,7 @@ MNDBExecute(ODBCStmt *stmt)
/* we're the only Stmt handle, and we're only going forward */
if (stmt->Dbc->cachelimit != 10000)
mapi_cache_limit(stmt->Dbc->mid, 10000);
- stmt->Dbc->cachelimit = 1000;
+ stmt->Dbc->cachelimit = 10000;
} else {
if (stmt->Dbc->cachelimit != 100)
mapi_cache_limit(stmt->Dbc->mid, 100);
diff --git a/clients/odbc/driver/SQLPrepare.c b/clients/odbc/driver/SQLPrepare.c
--- a/clients/odbc/driver/SQLPrepare.c
+++ b/clients/odbc/driver/SQLPrepare.c
@@ -97,6 +97,11 @@ MNDBPrepare(ODBCStmt *stmt,
ODBCResetStmt(stmt);
+ if (stmt->Dbc->cachelimit != -1) {
+ mapi_cache_limit(stmt->Dbc->mid, -1);
+ stmt->Dbc->cachelimit = -1;
+ }
+
ret = mapi_query_handle(hdl, s);
free(s);
s = NULL;
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -6566,7 +6566,7 @@ static mel_func geom_init_funcs[] = {
command("geom", "Area", wkbArea, false, "Returns the area of the surface if
it is a polygon or multi-polygon", args(1,2, arg("",dbl),arg("w",wkb))),
command("geom", "Centroid", wkbCentroid, false, "Computes the geometric
center of a geometry, or equivalently, the center of mass of the geometry as a
POINT.", args(1,2, arg("",wkb),arg("w",wkb))),
command("geom", "Distance", wkbDistance, false, "Returns the 2-dimensional
minimum cartesian distance between the two geometries in projected units
(spatial ref units.", args(1,3, arg("",dbl),arg("a",wkb),arg("b",wkb))),
- command("geom", "Length", wkbLength, false, "Returns the cartesian 2D length
of the geometry if it is a linestrin or multilinestring", args(1,2,
arg("",dbl),arg("w",wkb))),
+ command("geom", "Length", wkbLength, false, "Returns the cartesian 2D length
of the geometry if it is a linestring or multilinestring", args(1,2,
arg("",dbl),arg("w",wkb))),
command("geom", "ConvexHull", wkbConvexHull, false, "Returns a geometry that
represents the convex hull of this geometry. The convex hull of a geometry
represents the minimum convex geometry that encloses all geometries within the
set.", args(1,2, arg("",wkb),arg("w",wkb))),
command("geom", "Intersection", wkbIntersection, false, "Returns a geometry
that represents the point set intersection of the Geometries a, b", args(1,3,
arg("",wkb),arg("a",wkb),arg("b",wkb))),
command("geom", "Union", wkbUnion, false, "Returns a geometry that represents
the point set union of the Geometries a, b", args(1,3,
arg("",wkb),arg("a",wkb),arg("b",wkb))),
diff --git a/geom/sql/functions/Tests/All b/geom/sql/functions/Tests/All
--- a/geom/sql/functions/Tests/All
+++ b/geom/sql/functions/Tests/All
@@ -41,7 +41,7 @@ HAVE_GEOM?ST_Contains
#HAVE_GEOM?equals
-HAVE_GEOM?ST_Boundary
+HAVE_GEOM&GEOS_VERSION>=3.11.1?ST_Boundary
HAVE_GEOM?ST_Dimension
HAVE_GEOM?ST_CoordDim
diff --git a/geom/sql/functions/Tests/ST_Boundary.test
b/geom/sql/functions/Tests/ST_Boundary.test
--- a/geom/sql/functions/Tests/ST_Boundary.test
+++ b/geom/sql/functions/Tests/ST_Boundary.test
@@ -16,7 +16,7 @@ LINESTRING Z (1 1 1, 0 0 1, -1 1 1, 1 1
query T rowsort
SELECT ST_Boundary(ST_GeomFromText('MULTILINESTRING((1 1 1,0 0 0.5, -1 1 1),(1
1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )'))
----
-MULTIPOINT Z (-1 1 1, 1 1 0.75)
+MULTIPOINT Z (-1 1 1, 1 1 1)
query TT rowsort
SELECT geom AS "GEOMETRY", ST_Boundary(geom) AS "BOUNDARY" FROM geometries
where id<>12 and id<>13 and id<>24 and id<>25
diff --git a/geom/sql/pg_regression/Tests/All b/geom/sql/pg_regression/Tests/All
--- a/geom/sql/pg_regression/Tests/All
+++ b/geom/sql/pg_regression/Tests/All
@@ -87,7 +87,7 @@ HAVE_GEOM&GEOS_VERSION>=3.10?dump #Unkno
HAVE_GEOM?dumppoints #Uknown Types: TRIANGLE, TIN, CURVEPOLYGON (queries for
these types commented out)
-HAVE_GEOM?boundary #Uknown Types: TRIANGLE (queries for these types commented
out)
+HAVE_GEOM&GEOS_VERSION>=3.11.1?boundary #Uknown Types: TRIANGLE (queries for
these types commented out)
#HAVE_GEOM?wmsservers #Not applicable to MonetDB (?)
diff --git a/geom/sql/pg_regression/Tests/boundary.test
b/geom/sql/pg_regression/Tests/boundary.test
--- a/geom/sql/pg_regression/Tests/boundary.test
+++ b/geom/sql/pg_regression/Tests/boundary.test
@@ -16,5 +16,5 @@ SRID:0;LINESTRING Z (1 1 1, 0 0 1, -1 1
query T rowsort
SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromText('MULTILINESTRING((1 1 1,0 0 0.5,
-1 1 1),(1 1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )')))
----
-SRID:0;MULTIPOINT Z (-1 1 1, 1 1 0.75)
+SRID:0;MULTIPOINT Z (-1 1 1, 1 1 1)
diff --git a/sql/ChangeLog.Sep2022 b/sql/ChangeLog.Sep2022
--- a/sql/ChangeLog.Sep2022
+++ b/sql/ChangeLog.Sep2022
@@ -1,6 +1,10 @@
# ChangeLog file for sql
# This file is updated with Maddlog
+* Fri Dec 16 2022 Sjoerd Mullender <[email protected]>
+- Added some error checking to prevent crashes. Errors would mainly
+ occur under memory pressure.
+
* Wed Dec 14 2022 Sjoerd Mullender <[email protected]>
- Fixed cleanup after a failed allocation where the data being cleaned
up was unitialized but still used as pointers to memory that also had
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -615,8 +615,8 @@ find_tmp_idx(sql_trans *tr, sql_idx *i)
static sql_delta *
temp_col_timestamp_delta( sql_trans *tr, sql_column *c)
{
- if (isGlobal(c->t))
- c = find_tmp_column(tr, c);
+ if (isGlobal(c->t) && (c = find_tmp_column(tr, c)) == NULL)
+ return NULL;
assert (!isGlobal(c->t));
assert(isTempTable(c->t));
sql_delta *d = temp_delta(ATOMIC_PTR_GET(&c->data), tr->tid);
@@ -676,8 +676,8 @@ timestamp_storage( sql_trans *tr, storag
static storage *
temp_tab_timestamp_storage( sql_trans *tr, sql_table *t)
{
- if (isGlobal(t))
- t = find_tmp_table(tr, t);
+ if (isGlobal(t) && (t = find_tmp_table(tr, t)) == NULL)
+ return NULL;
assert(!isGlobal(t));
assert(isTempTable(t));
storage *d = temp_storage(ATOMIC_PTR_GET(&t->data), tr->tid);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]