[MCOL-4466] UDAF shouldn't use uint64_t variables storing its output as regr_count() and distinct_count() do Created: 2020-12-22 Updated: 2021-02-01 Resolved: 2020-12-23 |
|
| Status: | Closed |
| Project: | MariaDB ColumnStore |
| Component/s: | ExeMgr, PrimProc |
| Affects Version/s: | None |
| Fix Version/s: | 6.1.1 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Roman | Assignee: | Roman |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
regr_count() uses uint64_t for a counter that is returned using boost::any. However MDB's allows to return only: INT, DECIMAL, REAL and STR from UDAF. The boost::any = uint64_t operations sets the boost::any internal policy to uint64_t in mcsv1sdk::mcsv1_UDAF::evaluate()(e.g. in RowAggregationUM::calculateUDAFColumns) so the revert operation in SetUDAFValue() can't deduce the type correctly. |