gyfora opened a new pull request, #29011:
URL: https://github.com/apache/flink/pull/29011

   ## What is the purpose of the change
   
   This is the second part of the code contribution for the [FLIP-599 State 
Catalog](https://cwiki.apache.org/confluence/spaces/FLINK/pages/438009922/FLIP-599+State+Catalog)
   
   The StateCatalog can already expose plain keyed state from a savepoint as 
queryable tables. This PR extends that support to namespaced keyed state — most 
commonly window state — so state kept per (key, window) pair can also be 
discovered and queried as a table through the StateCatalog, instead of only 
being reachable via the lower-level SavepointReader API.
   
   ## Brief change log
   
    - Added the schema-extraction and table-building utilities needed to 
describe namespaced keyed state as a catalog table, mirroring the existing
     utilities for plain keyed state.
     - Wired the new window tables into StateCatalog and 
SavepointDynamicTableSourceFactory, adding two new table shapes: simple keyed 
window table, flattened window table (similar to keyed states)
     - Added the readers/operators needed to pull namespaced state out of a 
savepoint and feed it into these tables
     - Fixed a bug in SavepointEnvironment#getTaskInfo where the reported 
number of subtasks could exceed the max parallelism of the operator being read. 
This surfaces when reading state from operators with a low max parallelism, 
such as windowAll().
     - Added integration tests covering both the general and flattened window 
tables end to end, through the catalog and via SQL
   
   ## Verifying this change
   
   - Added StateCatalogWindowITCase which builds real savepoints containing 
window state and verifies both
     catalog discovery and SQL reads for the new tables.
   - Added a unit test for the new window state reader function.
   - Existing keyed-state catalog/table tests continue to pass, confirming the 
plain keyed-state path is unaffected.
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): no
     - The public API, i.e., is any changed class annotated with 
`@Public(Evolving)`:no
     - The serializers: no
     - The runtime per-record code paths (performance sensitive): no
     - Anything that affects deployment or recovery: JobManager (and its 
components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
     - The S3 file system connector: no
   
   ## Documentation
   
     - Does this pull request introduce a new feature? (yes / no)
     - If yes, how is the feature documented? not yet
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [x ] Yes
   
   Generated-by: Claude Sonnet 5
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to