Execute a HAVING clause filter For now, use the same logic as regular filter but with better error handling
(
&self,
condition: &Expression,
input_rows: Vec<Row>,
context: &mut ExecutionContext,
)
| 4029 | /// Execute a HAVING clause filter |
| 4030 | /// For now, use the same logic as regular filter but with better error handling |
| 4031 | fn execute_having( |
| 4032 | &self, |
| 4033 | condition: &Expression, |
| 4034 | input_rows: Vec<Row>, |
| 4035 | context: &mut ExecutionContext, |
| 4036 | ) -> Result<Vec<Row>, ExecutionError> { |
| 4037 | // The key insight: HAVING should work on aggregated results |
| 4038 | // The issue is that count(*) tries to find a "*" variable, but in HAVING context |
| 4039 | // we should return 1 for count(*) since we're dealing with single aggregated rows |
| 4040 | |
| 4041 | self.execute_filter_with_having_support(condition, input_rows, context) |
| 4042 | } |
| 4043 | |
| 4044 | /// Execute filter with special HAVING support for aggregate functions |
| 4045 | fn execute_filter_with_having_support( |
no test coverage detected