From 8f615ad397e9986e1098586f2418f03ae2871322 Mon Sep 17 00:00:00 2001 From: Esteban Zimanyi Date: Mon, 12 Oct 2026 23:18:01 +0200 Subject: [PATCH] Ask the per-type names of a catalog whose array accessors back no set MobilityDB master (96d1c56c98) gives getValues and valueSet, which return a set, to temporal_valueset, and leaves the typed accessors returning an array of the values and its count (tint_values, tfloat_values and their siblings) without a tag. test_per_type_functions_carry_their_own_name asks tfloat_values for the sqlfn valueSet, so every run of the suite over MobilityDB master raises KeyError: 'sqlfn'. The test asks tfloat_value_bins for valueBins, the per-type function MobilityDB master tags with the SQL name of its own family, and test_an_array_accessor_backs_no_set_valued_function states the rule the catalog follows: temporal_valueset backs getValues, and the array accessors back no SQL function. Witness: tests/test_sqlfn_deployed.py over the catalog of MobilityDB master 57fac5e427, and over the catalog of 7cc7a5415b, before 96d1c56c98, where tfloat_values carries valueSet and the new test fails. Measured: the file passes 9 of 9 over the catalog of 57fac5e427, where it failed 1 of 8; the suite over the same source-tree catalog reads 522 passed and the 3 failures it reads at master, which the installed-header catalog of CI passes. Why: a test of the catalog asks what the catalog states for the MobilityDB it is derived from. --- tests/test_sqlfn_deployed.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/test_sqlfn_deployed.py b/tests/test_sqlfn_deployed.py index 1f3bc9b..15c397f 100644 --- a/tests/test_sqlfn_deployed.py +++ b/tests/test_sqlfn_deployed.py @@ -86,10 +86,18 @@ def setUp(self): def test_per_type_functions_carry_their_own_name(self): for name, sqlfn in (("floatset_in", "floatset_in"), ("tfloat_in", "tfloat_in"), - ("tfloatinst_make", "tfloat"), ("tfloat_values", "valueSet"), + ("tfloatinst_make", "tfloat"), ("tfloat_value_bins", "valueBins"), ("contains_cbuffer_cbuffer", "cbufferContains")): self.assertEqual(self.fns[name]["sqlfn"], sqlfn, name) + def test_an_array_accessor_backs_no_set_valued_function(self): + """getValues and valueSet return a set, which temporal_valueset answers; the typed + accessors returning an array of the values and its count back neither. The negative + twin of #test_per_type_functions_carry_their_own_name.""" + self.assertEqual(self.fns["temporal_valueset"]["sqlfn"], "getValues") + for name in ("tint_values", "tfloat_values", "ttext_values"): + self.assertNotIn("sqlfn", self.fns[name], name) + def test_an_operator_function_carries_its_class_prefixed_name(self): f = self.fns["adjacent_tbox_tnumber"] self.assertEqual(f["sqlfn"], "tboxAdjacent")