26.3 Antalya port - fixes for s3Cluster distributed calls#1646
26.3 Antalya port - fixes for s3Cluster distributed calls#1646ianton-ru wants to merge 7 commits intoantalya-26.3from
Conversation
…ote_calls 26.1 Antalya port - fixes for s3Cluster distributed calls
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 83ae6b17bf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (info.has_join) | ||
| { | ||
| auto join_node = query_node.getJoinTree(); | ||
| query_tree_distributed = join_node->as<JoinNode>()->getLeftTableExpression()->clone(); |
There was a problem hiding this comment.
Rewrite query from the active table, not the join's left side
updateQueryWithJoinToSendIfNeeded always takes join_node->getLeftTableExpression() when building query_to_send, which is incorrect when this IStorageCluster::read call is for a table function on the right side of a JOIN (e.g. LEFT JOIN ... s3Cluster(...)). In that case the rewritten remote query is built from the other table, so the shard executes the wrong source (often a local table name that does not exist remotely), causing query failure or incorrect data flow for object_storage_cluster_join_mode='local'.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Methoc called when xxCluster is on the left side of join.
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Frontports for Antalya 26.3
CI/CD Options
Exclude tests:
Regression jobs to run: