@@ -152,6 +152,40 @@ void testNoORWarning()
152
152
assertNoWarning (analyzeWithWarnings ("SELECT * FROM t1 JOIN t2 ON t1.a = t2.a \n " + "AND (t1.b = t2.b OR t1.b > t2.b)" ));
153
153
}
154
154
155
+ @ Test
156
+ public void testMapFilterWarnings ()
157
+ {
158
+ assertHasWarning (
159
+ analyzeWithWarnings ("SELECT map_filter(x, (k, v) -> v > 1) FROM (VALUES (map(ARRAY[1,2], ARRAY[2,3]))) AS t(x)" ),
160
+ PERFORMANCE_WARNING ,
161
+ "Using MAP_FILTER is expensive and may slow down training pipelines. Consider using map_subset or other built-ins for better performance."
162
+ );
163
+
164
+ assertHasWarning (
165
+ analyzeWithWarnings ("SELECT map_filter(x, (k, v) -> k = 2) FROM (VALUES (map(ARRAY[1,2,3], ARRAY[10,20,30]))) AS t(x)" ),
166
+ PERFORMANCE_WARNING ,
167
+ "Using MAP_FILTER is expensive and may slow down training pipelines. Consider using map_subset or other built-ins for better performance."
168
+ );
169
+
170
+ assertHasWarning (
171
+ analyzeWithWarnings ("SELECT map_filter(x, (k, v) -> k IN (1, 3)) FROM (VALUES (map(ARRAY[1,2,3], ARRAY[10,20,30]))) AS t(x)" ),
172
+ PERFORMANCE_WARNING ,
173
+ "Using MAP_FILTER is expensive and may slow down training pipelines. Consider using map_subset or other built-ins for better performance."
174
+ );
175
+
176
+ assertHasWarning (
177
+ analyzeWithWarnings ("SELECT map_filter(x, (k, v) -> v IN (20, 30)) FROM (VALUES (map(ARRAY[1,2,3], ARRAY[10,20,30]))) AS t(x)" ),
178
+ PERFORMANCE_WARNING ,
179
+ "Using MAP_FILTER is expensive and may slow down training pipelines. Consider using map_subset or other built-ins for better performance."
180
+ );
181
+
182
+ assertHasWarning (
183
+ analyzeWithWarnings ("SELECT map_filter(x, (k, v) -> k + v > 25) FROM (VALUES (map(ARRAY[1,2,3], ARRAY[10,20,30]))) AS t(x)" ),
184
+ PERFORMANCE_WARNING ,
185
+ "Using MAP_FILTER is expensive and may slow down training pipelines. Consider using map_subset or other built-ins for better performance."
186
+ );
187
+ }
188
+
155
189
@ Test
156
190
public void testIgnoreNullWarning ()
157
191
{
0 commit comments