@@ -152,6 +152,35 @@ 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
+ assertHasWarning (
164
+ analyzeWithWarnings ("SELECT map_filter(x, (k, v) -> k = 2) FROM (VALUES (map(ARRAY[1,2,3], ARRAY[10,20,30]))) AS t(x)" ),
165
+ PERFORMANCE_WARNING ,
166
+ "Using MAP_FILTER is expensive and may slow down training pipelines. Consider using map_subset or other built-ins for better performance." );
167
+
168
+ assertHasWarning (
169
+ 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)" ),
170
+ PERFORMANCE_WARNING ,
171
+ "Using MAP_FILTER is expensive and may slow down training pipelines. Consider using map_subset or other built-ins for better performance." );
172
+
173
+ assertHasWarning (
174
+ 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)" ),
175
+ PERFORMANCE_WARNING ,
176
+ "Using MAP_FILTER is expensive and may slow down training pipelines. Consider using map_subset or other built-ins for better performance." );
177
+
178
+ assertHasWarning (
179
+ analyzeWithWarnings ("SELECT map_filter(x, (k, v) -> k + v > 25) FROM (VALUES (map(ARRAY[1,2,3], ARRAY[10,20,30]))) AS t(x)" ),
180
+ PERFORMANCE_WARNING ,
181
+ "Using MAP_FILTER is expensive and may slow down training pipelines. Consider using map_subset or other built-ins for better performance." );
182
+ }
183
+
155
184
@ Test
156
185
public void testIgnoreNullWarning ()
157
186
{
0 commit comments