Changeset: 920d9aff18a1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/920d9aff18a1
Modified Files:
geom/sql/pg_regression/Tests/regress_ogc_cover.test
sql/server/sql_semantic.c
sql/test/BugTracker-2025/Tests/7730-generate-series-month-int.test
Branch: Dec2025
Log Message:
Reduce the number of automatic casts from string to non-string.
When looking for an implementation function, allow one argument to be
automatically cast to an appropriate type but not two.
Fixes #7811.
diffs (158 lines):
diff --git a/geom/sql/pg_regression/Tests/regress_ogc_cover.test
b/geom/sql/pg_regression/Tests/regress_ogc_cover.test
--- a/geom/sql/pg_regression/Tests/regress_ogc_cover.test
+++ b/geom/sql/pg_regression/Tests/regress_ogc_cover.test
@@ -1,107 +1,107 @@
query TI rowsort
-SELECT 'covers100', ST_Covers('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))',
'LINESTRING(1 10, 9 10, 9 8)')
+SELECT 'covers100', ST_Covers(GEOMETRY 'POLYGON((0 0, 0 10, 10 10, 10 0, 0
0))', GEOMETRY 'LINESTRING(1 10, 9 10, 9 8)')
----
covers100
1
query TI rowsort
-SELECT 'covers101', ST_Covers('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))',
'LINESTRING(1 10, 10 10, 10 8)')
+SELECT 'covers101', ST_Covers(GEOMETRY 'POLYGON((0 0, 0 10, 10 10, 10 0, 0
0))', GEOMETRY 'LINESTRING(1 10, 10 10, 10 8)')
----
covers101
1
query TI rowsort
-SELECT 'covers102', ST_Covers('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))',
'POINT(5 5)')
+SELECT 'covers102', ST_Covers(GEOMETRY 'POLYGON((0 0, 0 10, 10 10, 10 0, 0
0))', GEOMETRY 'POINT(5 5)')
----
covers102
1
query TI rowsort
-SELECT 'covers103', ST_Covers('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))',
'POINT(0 0)')
+SELECT 'covers103', ST_Covers(GEOMETRY 'POLYGON((0 0, 0 10, 10 10, 10 0, 0
0))', GEOMETRY 'POINT(0 0)')
----
covers103
1
query TI rowsort
-SELECT 'covers104', ST_Covers('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))',
'POINT(-1 0)')
+SELECT 'covers104', ST_Covers(GEOMETRY 'POLYGON((0 0, 0 10, 10 10, 10 0, 0
0))', GEOMETRY 'POINT(-1 0)')
----
covers104
0
query TI rowsort
-SELECT 'covers105', ST_Covers('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))',
'POINT(0 5)')
+SELECT 'covers105', ST_Covers(GEOMETRY 'POLYGON((0 0, 0 10, 10 10, 10 0, 0
0))', GEOMETRY 'POINT(0 5)')
----
covers105
1
query TI rowsort
-SELECT 'covers106', ST_Covers('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))',
'POINT(0 12)')
+SELECT 'covers106', ST_Covers(GEOMETRY 'POLYGON((0 0, 0 10, 10 10, 10 0, 0
0))', GEOMETRY 'POINT(0 12)')
----
covers106
0
query TI rowsort
-SELECT 'covers107', ST_Covers(ST_GeomFromText('POLYGON((521526 5377783, 521481
5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631),
ST_GeomFromText('POINT(521513 5377804)', 32631))
+SELECT 'covers107', ST_Covers(ST_GeomFromText(GEOMETRY 'POLYGON((521526
5377783, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))',
32631), ST_GeomFromText(GEOMETRY 'POINT(521513 5377804)', 32631))
----
covers107
1
query TI rowsort
-SELECT 'covers108', ST_Covers(ST_GeomFromText('POLYGON((521526 5377783, 521482
5377811, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))',
32631), ST_GeomFromText('POINT(521513 5377804)', 32631))
+SELECT 'covers108', ST_Covers(ST_GeomFromText(GEOMETRY 'POLYGON((521526
5377783, 521482 5377811, 521481 5377811, 521494 5377832, 521539 5377804, 521526
5377783))', 32631), ST_GeomFromText(GEOMETRY 'POINT(521513 5377804)', 32631))
----
covers108
1
query TI rowsort
-SELECT 'coveredby100', ST_CoveredBy('LINESTRING(1 10, 9 10, 9 8)', 'POLYGON((0
0, 0 10, 10 10, 10 0, 0 0))')
+SELECT 'coveredby100', ST_CoveredBy(GEOMETRY 'LINESTRING(1 10, 9 10, 9 8)',
GEOMETRY 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))')
----
coveredby100
1
query TI rowsort
-SELECT 'coveredby101', ST_CoveredBy('LINESTRING(1 10, 10 10, 10 8)',
'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))')
+SELECT 'coveredby101', ST_CoveredBy(GEOMETRY 'LINESTRING(1 10, 10 10, 10 8)',
GEOMETRY 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))')
----
coveredby101
1
query TI rowsort
-SELECT 'coveredby102', ST_CoveredBy('POINT(5 5)', 'POLYGON((0 0, 0 10, 10 10,
10 0, 0 0))')
+SELECT 'coveredby102', ST_CoveredBy(GEOMETRY 'POINT(5 5)', GEOMETRY
'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))')
----
coveredby102
1
query TI rowsort
-SELECT 'coveredby103', ST_CoveredBy('POINT(0 0)', 'POLYGON((0 0, 0 10, 10 10,
10 0, 0 0))')
+SELECT 'coveredby103', ST_CoveredBy(GEOMETRY 'POINT(0 0)', GEOMETRY
'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))')
----
coveredby103
1
query TI rowsort
-SELECT 'coveredby104', ST_CoveredBy('POINT(-1 0)', 'POLYGON((0 0, 0 10, 10 10,
10 0, 0 0))')
+SELECT 'coveredby104', ST_CoveredBy(GEOMETRY 'POINT(-1 0)', GEOMETRY
'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))')
----
coveredby104
0
query TI rowsort
-SELECT 'coveredby105', ST_CoveredBy('POINT(0 5)', 'POLYGON((0 0, 0 10, 10 10,
10 0, 0 0))')
+SELECT 'coveredby105', ST_CoveredBy(GEOMETRY 'POINT(0 5)', GEOMETRY
'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))')
----
coveredby105
1
query TI rowsort
-SELECT 'coveredby106', ST_CoveredBy('POINT(0 12)', 'POLYGON((0 0, 0 10, 10 10,
10 0, 0 0))')
+SELECT 'coveredby106', ST_CoveredBy(GEOMETRY 'POINT(0 12)', GEOMETRY
'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))')
----
coveredby106
0
query TI rowsort
-SELECT 'coveredby107', ST_CoveredBy(ST_GeomFromText('POINT(521513 5377804)',
32631), ST_GeomFromText('POLYGON((521526 5377783, 521481 5377811, 521494
5377832, 521539 5377804, 521526 5377783))', 32631))
+SELECT 'coveredby107', ST_CoveredBy(ST_GeomFromText(GEOMETRY 'POINT(521513
5377804)', 32631), ST_GeomFromText(GEOMETRY 'POLYGON((521526 5377783, 521481
5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631))
----
coveredby107
1
query TI rowsort
-SELECT 'coveredby108', ST_CoveredBy(ST_GeomFromText('POINT(521513 5377804)',
32631), ST_GeomFromText('POLYGON((521526 5377783, 521482 5377811, 521481
5377811, 521494 5377832, 521539 5377804, 521526 5377783))', 32631))
+SELECT 'coveredby108', ST_CoveredBy(ST_GeomFromText(GEOMETRY 'POINT(521513
5377804)', 32631), ST_GeomFromText(GEOMETRY 'POLYGON((521526 5377783, 521482
5377811, 521481 5377811, 521494 5377832, 521539 5377804, 521526 5377783))',
32631))
----
coveredby108
1
diff --git a/sql/server/sql_semantic.c b/sql/server/sql_semantic.c
--- a/sql/server/sql_semantic.c
+++ b/sql/server/sql_semantic.c
@@ -534,7 +534,7 @@ score_func( sql_func *f, list *tl, bool
nscore = -nscore;
}
score += nscore;
- if (EC_VARCHAR(t->type->eclass) &&
EC_NUMBER(a->type.type->eclass))
+ if (EC_VARCHAR(t->type->eclass) &&
!EC_VARCHAR(a->type.type->eclass) && a->type.type->eclass != EC_ANY)
nr_strconverts++;
if (nr_strconverts > 1)
return 0;
diff --git a/sql/test/BugTracker-2025/Tests/7730-generate-series-month-int.test
b/sql/test/BugTracker-2025/Tests/7730-generate-series-month-int.test
--- a/sql/test/BugTracker-2025/Tests/7730-generate-series-month-int.test
+++ b/sql/test/BugTracker-2025/Tests/7730-generate-series-month-int.test
@@ -1,11 +1,11 @@
query T nosort
-SELECT * FROM generate_series( '2025-03-01', '2025-04-25', INTERVAL '1' MONTH)
+SELECT * FROM generate_series( DATE '2025-03-01', DATE '2025-04-25', INTERVAL
'1' MONTH)
----
2025-03-01
2025-04-01
query T nosort
-SELECT * FROM generate_series( '2025-03-01', '2025-04-26', INTERVAL '1' MONTH)
+SELECT * FROM generate_series( DATE '2025-03-01', DATE '2025-04-26', INTERVAL
'1' MONTH)
----
2025-03-01
2025-04-01
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]