The minimum transport version of all clusters involved in the execution of a query is available to the coordinator's analyzer, optimizers and mapper. However, it is not available to the data node at all.
Let's send the minimum transport version to the data node and make it available to the optimizer contexts and the local mapper.
This is important for changes to aggregations that affect what data we send to the coordinator: All data nodes need to agree on the columns sent. If we change which data the nodes send and the coordinator receives, this still has to work during CCS or rolling upgrades where some clusters/nodes may be too old to know about the new format.
Similarly to our existing optimizer tests, the fact that the local optimizers and planning will become version-aware needs a small update to our tests as well: we should generally assume a random version unless the test is specifically for a new way of optimizing/planning something, in which case we should assume a random version not lower than the new transport version required for this planning change.
The minimum transport version of all clusters involved in the execution of a query is available to the coordinator's analyzer, optimizers and mapper. However, it is not available to the data node at all.
Let's send the minimum transport version to the data node and make it available to the optimizer contexts and the local mapper.
This is important for changes to aggregations that affect what data we send to the coordinator: All data nodes need to agree on the columns sent. If we change which data the nodes send and the coordinator receives, this still has to work during CCS or rolling upgrades where some clusters/nodes may be too old to know about the new format.
Similarly to our existing optimizer tests, the fact that the local optimizers and planning will become version-aware needs a small update to our tests as well: we should generally assume a random version unless the test is specifically for a new way of optimizing/planning something, in which case we should assume a random version not lower than the new transport version required for this planning change.