feat: add pagination and filtering for column grid response in column#27279
feat: add pagination and filtering for column grid response in column#27279kartikangiras wants to merge 1 commit intoopen-metadata:mainfrom
Conversation
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
There was a problem hiding this comment.
Pull request overview
Fixes incorrect filtering and unstable pagination in the Column Bulk Operations “column grid” endpoint by moving certain filters to a post-aggregation phase and introducing regression tests.
Changes:
- Added post-aggregation filtering for
metadataStatus,hasConflicts, andhasMissingMetadata, with offset-based pagination for filtered results. - Implemented a filtered-cursor encoding/decoding mechanism for stable pagination across filtered pages.
- Added regression tests covering exact status filtering and stable pagination/totals.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ColumnRepository.java | Adds two-phase (scan + post-filter) logic and offset-based cursor pagination for filtered grid results. |
| openmetadata-service/src/test/java/org/openmetadata/service/jdbi3/ColumnRepositoryTest.java | Adds unit tests validating exact filtering behavior and stable pagination/totals under filtering. |
|
@kartikangiras provide a screen recording how this functionality looks in the UI |
|
yeah sure
|
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Code Review 🚫 Blocked 1 resolved / 4 findingsPagination and filtering added for column grid responses, though the implementation performs an inefficient full aggregator scan on every request. Manual field copying in createScanRequest also requires refactoring, and the cursor type mismatch was successfully addressed. 🚨 Performance: Full aggregator scan on every filtered page request📄 openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ColumnRepository.java:147-161 Every call to This means:
This is a significant regression compared to the previous approach which only filtered the current page (even though that had correctness issues with totals). Consider one of these alternatives:
Suggested fix
|
| Compact |
|
Was this helpful? React with 👍 / 👎 | Gitar
|
@PubChimps @harshach I have added the screen recording for this functionality. |
Describe your changes:
Fixes #26824
Implemented a two-phase filtering approach in ColumnRepository
Detect filtering requirements checks if any filters are active (metadataStatus, hasConflicts, hasMissingMetadata)
Removes filter parameters from aggregation requests to get full result set
Screen.Recording.2026-04-18.at.01.35.35.mov
Type of change:
Checklist:
Fixes <issue-number>: <short explanation>