From 541c3373078c90658d6000ab8fed28b5a28ee9f6 Mon Sep 17 00:00:00 2001 From: Esteban Zimanyi Date: Wed, 2 Sep 2026 15:57:10 +0200 Subject: [PATCH] State the trgeometry scope the parameter types do not name meta/type-scope.json declares the SQL type scope of a MEOS function whose scope MEOS itself does not state, and a public claimant of a shared PG wrapper receives only the signatures its scope covers. Ten rgeo functions serve trgeometry alone and are declared here, beside the eight restrict siblings the file already carries. Each takes its operand as a generic `const Temporal *`, which names no type, so the only parameter naming one is the second: the pose for atValue and minusValue, the timestamp for atTime and minusTime, the geometry for atGeometry and minusGeometry, the box and its border flag for atStbox and minusStbox, and the digit count for asText and asEWKT. A scope read from the parameter types therefore names the argument rather than the temporal type restricted. Four of the ten hold a wrapper whose overloads that scope did not separate. atTime and minusTime carried all twenty signatures their wrapper declares over eight claimants, atValue and minusValue both of theirs over thirteen; each now carries the one it serves, and the catalog moves in those four functions and nowhere else. --- meta/type-scope.json | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/meta/type-scope.json b/meta/type-scope.json index cb96862..71ee757 100644 --- a/meta/type-scope.json +++ b/meta/type-scope.json @@ -91,6 +91,46 @@ "types": ["trgeometry"], "note": "Serves trgeometry alone; states no validity check." }, + "trgeometry_at_value": { + "types": ["trgeometry"], + "note": "Serves trgeometry alone. Its operand is a Temporal *, and the only parameter naming a type is the pose restricted to, so the parameter types name the value rather than the temporal type." + }, + "trgeometry_minus_value": { + "types": ["trgeometry"], + "note": "Serves trgeometry alone; its parameter types name the pose, not the temporal type." + }, + "trgeometry_at_timestamptz": { + "types": ["trgeometry"], + "note": "Serves trgeometry alone; its parameter types name the timestamp, not the temporal type." + }, + "trgeometry_minus_timestamptz": { + "types": ["trgeometry"], + "note": "Serves trgeometry alone; its parameter types name the timestamp, not the temporal type." + }, + "trgeometry_at_geom": { + "types": ["trgeometry"], + "note": "Serves trgeometry alone; its parameter types name the geometry restricted to, not the temporal type." + }, + "trgeometry_minus_geom": { + "types": ["trgeometry"], + "note": "Serves trgeometry alone; its parameter types name the geometry, not the temporal type." + }, + "trgeometry_at_stbox": { + "types": ["trgeometry"], + "note": "Serves trgeometry alone; its parameter types name the box and the border flag, not the temporal type." + }, + "trgeometry_minus_stbox": { + "types": ["trgeometry"], + "note": "Serves trgeometry alone; its parameter types name the box and the border flag, not the temporal type." + }, + "trgeometry_as_text": { + "types": ["trgeometry"], + "note": "Serves trgeometry alone; its only remaining parameter is the digit count, whose type names nothing it serves." + }, + "trgeometry_as_ewkt": { + "types": ["trgeometry"], + "note": "Serves trgeometry alone; its only remaining parameter is the digit count, whose type names nothing it serves." + }, "tintbox_shift_scale": { "types": ["tbox"],