Conversation
88fd21e to
eda3955
Compare
|
|
|
server.log: I have seen this error also in other PRs. |
| extern const int CORRUPTED_DATA; | ||
| } | ||
|
|
||
| SummingSortedAlgorithm::ColumnsDefinition::ColumnsDefinition() = default; |
There was a problem hiding this comment.
ColumnsDefinition contains a std::vector<AggregateDescription> member. The vector destructor std::~vector() (called in ColumnsDefinition::~ColumnsDefinition()) does some bookkeeping which requires to know the full definition of AggregateDescription. To make this work, the three defaulted functions are here moved behind the definition of `AggregateDescription'. So I think the change makes sense in general.
The question remains why it used to work before. I see that they made a lot of methods of std::vector in libcxx15 constexpr, including the vector destructor. However, that would only be an explanation if ColumnsDefinition is used in a compile-time/constexpr context but this is not done here. Besides that and nothing else changed in std::vector, I don't really have a good explanation :-/
|
I think this PR is ready-to-merge. Does anyone like to approve? Thanks! |
Changelog category (leave one):
This is a prerequisite for #42245
Multiple things happen in this PR: