Conversation
…next commit) --- Original cherry-pick message follows: Merge pull request #2184 from Altinity/feature/antalya-26.6/auto-grp-pr-1808 Antalya 26.6: S3 tables Iceberg support + catalog profile events # Conflicts: # src/Common/ProfileEvents.cpp # src/Core/SettingsEnums.cpp # src/Core/SettingsEnums.h # src/Databases/DataLake/AWSV4Signer.cpp # src/Databases/DataLake/DatabaseDataLake.cpp # src/Databases/DataLake/GlueCatalog.cpp # src/Databases/DataLake/ICatalog.cpp # src/Databases/DataLake/RestCatalog.cpp # src/Databases/DataLake/RestCatalog.h # src/Databases/DataLake/S3TablesCatalog.cpp # src/Databases/DataLake/S3TablesCatalog.h # src/Databases/DataLake/tests/gtest_azure_abfss_parsing.cpp # src/IO/S3/URI.cpp # src/IO/S3/URI.h
antalya-26.8 already carries an independent, newer implementation of the S3 Tables Iceberg REST catalog (S3TablesCatalog, AWSV4Signer, DatabaseDataLakeCatalogType::S3_TABLES, S3 endpoint resolution as DB::S3::expandRegionToAmazonPath), so the S3-Tables-specific halves of the conflicts were resolved in favour of the base branch, and the catalog profile events (PR #1868) were translated onto the base branch shapes: - ProfileEvents.cpp: appended only the rows the source PR adds (the ObjectStorageCluster rows carried by 'theirs' are not in the PR diff). - RestCatalog.cpp/.h: kept the base CatalogState-based createReadBuffer / sendRequest / getAuthHeaders signatures and added the event increments and timers around them. - GlueCatalog.cpp: events added around the base call sites; existsTable now delegates to tryGetTableMetadata on the base branch, where the GetTable event is already counted. - ICatalog.cpp / S3TablesCatalog.* / AWSV4Signer.cpp / SettingsEnums.*: base branch already implements the same behaviour. - ICatalog.h: kept hasDataLakeSpecificProperties() declared, because antalya-26.8 defines TableMetadata::hasDataLakeSpecificProperties(). - gtest_s3_uri.cpp: renamed the source PR's resolveS3Endpoint() calls to the base branch name expandRegionToAmazonPath() (same implementation). Source-PR: #2184 (#2184)
…next commit) --- Original cherry-pick message follows: Merge pull request #2222 from Altinity/feature/antalya-26.6/datalake-catalog-auth-token-profile-events Antalya-26.6: Datalake catalog auth token profile events # Conflicts: # src/Databases/DataLake/RestCatalog.cpp # src/Databases/DataLake/RestCatalog.h # src/Databases/DataLake/S3TablesCatalog.cpp # src/Databases/DataLake/S3TablesCatalog.h # tests/integration/test_database_iceberg_lakekeeper_catalog/test.py
Threaded the new `used_cached_oauth_token` out-parameter through antalya-26.8's `getAuthHeaders(const CatalogState &, bool)` shape instead of the source PR's `(bool, method, url, extra_headers, body)` shape, and kept antalya-26.8's S3TablesCatalog network-primitive overrides (it has no `getAuthHeaders` override to re-sign). Adapted: getAuthHeaders signature - antalya-26.8 re-signatured the virtual to take a CatalogState snapshot and dropped the method/url/extra_headers/body parameters Adapted: OneLakeCatalog::getAuthHeaders override - antalya-26.8-only override had to grow the new parameter to keep overriding Adapted: S3TablesCatalog - antalya-26.8 overrides createReadBuffer/sendRequest instead of getAuthHeaders, so the source PR's signature change there is a no-op Adapted: RestCatalog::sendRequest - kept antalya-26.8's X-Iceberg-Access-Delegation header and withOutCallbackFixedContentLength while adopting the PR's create_buffer/retry restructuring Adapted: added the IntegerType pyiceberg import the source PR's new test needs (present on the source branch via tests not on antalya-26.8) Source-PR: #2222 (#2222) Adapted: test_auth_token_profile_events - the source PR's helper read ProfileEvents names ('...AuthTokenRefreshed', '...AuthTokenCacheHits') that the PR's own ProfileEvents.cpp does not define; switched to the events the ported code emits ('...AuthTokenRetrieve', '...AuthTokenCachedValid') Adapted: test_auth_token_profile_events - DatabaseDataLake on antalya-26.8 builds the catalog eagerly on CREATE DATABASE (only ATTACH is lazy), so the first token fetch is attributed to the CREATE query; the assertions now check the retrieve on the CREATE query and cache hits on the following SHOW TABLES queries Adapted: dropped the body-less test_vended_credentials_cache stub - upstream it is shadowed by the full test of the vended-credentials cache, which is not part of this PR and is not on antalya-26.8, so here it would have been a no-op test Adapted: gtest_s3_uri.cpp IOTestS3URI.ResolveS3Endpoint - antalya-26.8's expandRegionToAmazonPath() resolves the endpoint through the AWS SDK endpoint provider, which aborts (aws-c-common: "allocator && aws_byte_cursor_is_valid") unless the SDK has been initialized; the test now initializes it via S3::ClientFactory::instance() (as gtest_aws_s3_client.cpp does) so it passes when run on its own instead of only after some other test happened to init the SDK.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Add initial experimental support for S3 Tables through the Iceberg serverless REST catalog with SigV4 authentication, enabled by the allow_experimental_database_s3_tables setting. Add profile events that track requests to Iceberg REST, Glue, and Unity catalogs, including REST catalog authentication token requests.
Add initial experimental support for S3 Tables through the Iceberg serverless REST catalog with SigV4 authentication, enabled by the allow_experimental_database_s3_tables setting. Add profile events that track requests to Iceberg REST, Glue, and Unity catalogs, including REST catalog authentication token requests (#2184 by @zvonand, #2222 by @ianton-ru).
CI/CD Options
Exclude tests:
Regression jobs to run:
Combined port of 2 PR(s) (group
auto-grp-pr-2184). Cherry-picked from #2184, #2222.