X Tutup
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: graphql-java/graphql-java
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: graphql-java/graphql-java
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: claude/executable-field-caching-yUb5B
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 1 commit
  • 6 files changed
  • 1 contributor

Commits on Mar 9, 2026

  1. Add cached normalized operation intermediate representation

    Introduce a cacheable, variable-independent intermediate layer between
    AST parsing and ExecutableNormalizedOperation construction. This allows
    the expensive normalization work (schema traversal, fragment resolution,
    type condition computation) to be done once and cached, while the cheap
    per-request materialization step evaluates skip/include conditions,
    coerces arguments, and merges fields.
    
    New classes:
    - FieldInclusionCondition: unevaluated skip/include condition algebra
    - CachedNormalizedField: per-type-condition field with inclusion conditions
    - CachedNormalizedOperation: the cacheable operation tree
    - CachedNormalizedOperationFactory: builds cached tree from AST + schema
    - CachedOperationMaterializer: cached tree + variables → ENO
    
    Key design: fields are NOT merged across type conditions in the cached
    layer when they have different inclusion conditions. This solves the
    merged field problem where Dog.name and Cat.name might have different
    skip/include directives — they stay separate in the cache and only
    merge during materialization after conditions are evaluated.
    
    https://claude.ai/code/session_01QjvnzuBJxhRUbnneMnUABU
    claude committed Mar 9, 2026
    Configuration menu
    Copy the full SHA
    8b26cf7 View commit details
    Browse the repository at this point in the history
Loading
X Tutup