Details
-
Task
-
Status: In Progress (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
2026-11, 2026-12
Description
GROUP_CONCAT has quadratic complexity judging from source code. We obtain string accumulator from Row of data, which involves copying, append current element at end, and then put new accumulator into Row, which also involves copying.
This is so because our StringStore class (utils/rowgroup/rowgroup.h and .cpp source code) has in-line string data storage. Not in std::string or our common::NullString, but data gets allocated in our own storage manager. Because of this, we cannot use existing std::string functionality that will make complexity much more tolerable.