Skip to content

Conversation

@arthurpassos
Copy link
Collaborator

@arthurpassos arthurpassos commented Oct 15, 2025

Changelog category (leave one):

  • Improvement

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

Allow any partition strategy to accept part export

Documentation entry for user-facing changes

For wildcard strategy, it is mandatory to include the {_export_filename} wildcard in the table definition. Example:

CREATE TABLE s3_table ... ENGINE=S3(named_collection, filename='table_root/{_partition_id}/{_export_filename}.parquet') PARTITION BY toYYYYMM(...)

CI/CD Options

Exclude tests:

  • Fast test
  • Integration Tests
  • Stateless tests
  • Stateful tests
  • Performance tests
  • All with ASAN
  • All with TSAN
  • All with MSAN
  • All with UBSAN
  • All with Coverage
  • All with Aarch64
  • All Regression
  • Disable CI Cache

Regression jobs to run:

  • Fast suites (mostly <1h)
  • Aggregate Functions (2h)
  • Alter (1.5h)
  • Benchmark (30m)
  • ClickHouse Keeper (1h)
  • Iceberg (2h)
  • LDAP (1h)
  • Parquet (1.5h)
  • RBAC (1.5h)
  • SSL Server (1h)
  • S3 (2h)
  • Tiered Storage (2h)

@github-actions
Copy link

github-actions bot commented Oct 15, 2025

Workflow [PR], commit [3f18cdc]

return stream_name;
}

Block IMergeTreeDataPart::MinMaxIndex::getBlock(const MergeTreeData & data) const
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fun fact: I copied this method from my first ClickHouse PR ever (or my second, I don't quite recall). This PR took over a year to be reviewed, and once merged, was reverted within a week :).

ClickHouse#39507


const auto column = data_type->createColumn();

const auto min_val = hyperrectangle.at(i).left;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is better to use const auto & here to avoid copying. Also, it looks like this method looses information on inclusion of left and right (Range::left_included and Range::right_included)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, it looks like this method looses information on inclusion of left and right (Range::left_included and Range::right_included)

This is an interesting problem. I could call shrinkToIncludedIfPOssible, but that only works for (U)Int64 type.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would really like to avoid reading the merge tree part just to get any value out of it..


const auto column = data_type->createColumn();

auto range = hyperrectangle.at(i);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Enmk maybe I'll undo this change then so we can rely on references since we have reached the conclusion ranges will always be included for minmax? But maybe that's not true

@Enmk Enmk merged commit 410f2f3 into antalya-25.8 Oct 16, 2025
121 of 137 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants