Conversation
Add typed view and neutral HTS repository access, entity-aware mapping, and table-name collision isolation with the approved foundation coverage from linkedin#728. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
6 of 18 tasks
This branch has not been deployed
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.
Summary
Adds typed VIEW and type-neutral HTS access while keeping table consumers isolated from non-TABLE entities. This is the HTS/entity-isolation foundation for Views M1; #728 remains the dependent metadata-engine follow-up and is not superseded.
Changes
Client-facing API Changes
Internal API Changes
Bug Fixes
New Features
Performance Improvements
Code Style
Refactoring
Documentation
Tests
Carry
HouseTable.entityTypethrough mapping, stamp TABLE/VIEW writes explicitly, and keep the namespace-stripping helper private so MapStruct cannot apply it to arbitrary string fields.Add neutral occupancy lookup and typed view lookup/list/save/delete repository methods, preserving typed-read validation, pagination, retry boundaries, and single-attempt mutation error/timeout contracts.
Expose
OpenHouseInternalCatalog.findEntityByIdand reject non-TABLE name collisions in the table repository before allocation.Preserve coverage in both H2 repository implementations and their tests for filtering, legacy hydration, pagination, errors, and table/view collisions.
No public view service/API or metadata engine is included. The foundation contains exactly 18 files, with 2,470 additions and 48 deletions.
Testing Done
The approved foundation tests run unchanged on the rebased branch. One combined Gradle invocation completed successfully under JDK 11.0.21: 219 tests, zero failures, zero errors, zero skipped.
iceberg:openhouse:internalcatalogOpenHouseInternalCatalogTest,HouseTableMapperTest,HouseTableRepositoryImplTest,HouseTableViewRepositoryImplTestservices:tablesRepositoryTest,RepositoryTestWithSettableComponents,TablesControllerTest,OpenHouseInternalRepositoryImplTesttables-test-fixtures:tables-test-fixtures_2.12HouseTablesH2ViewAccessorTesttables-test-fixtures:tables-test-fixtures-iceberg-1.5_2.12HouseTablesH2ViewAccessorTestFull-repository
spotlessCheckandcheckstyleMain/checkstyleTestfor all four modules passed. Checkstyle reported 99 warning-level diagnostics and zero errors. OnlyCopyGitHooksTaskwas excluded because it assumes.gitis a directory; the equivalent formatting gate ran on the final branch.Validation command
Additional Information
Split plan: this PR supplies typed HTS access and entity isolation; #728 remains the dependent view commit engine and metadata behavior follow-up. Engine classes, the engine-specific
MockApplicationstorage mock, andIcebergViewBeanBoundaryTestare excluded.Based on upstream
mainatefa659bdb0031f951e1af03ddcfde35acc2dff80, preserving thePostCommitOperationRunnerwiring from #729. The foundation patch is unchanged by the conflict-free rebase: the original and final diffs have the same stable patch ID, and no engine types are imported by this slice.🤖 Generated with GitHub Copilot CLI