Skip to content

[ntuple] Schema evolution fixes - #23196

Open
jblomer wants to merge 3 commits into
root-project:masterfrom
jblomer:ntuple-fix-evolution
Open

[ntuple] Schema evolution fixes#23196
jblomer wants to merge 3 commits into
root-project:masterfrom
jblomer:ntuple-fix-evolution

Conversation

@jblomer

@jblomer jblomer commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Fixes #23146
Fixes #17713

@jblomer jblomer self-assigned this Aug 30, 2026
@jblomer
jblomer force-pushed the ntuple-fix-evolution branch 3 times, most recently from fe4b41b to a879404 Compare August 30, 2026 21:58
@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown

Test Results

    22 files      22 suites   3d 15h 41m 56s ⏱️
 3 874 tests  3 873 ✅ 0 💤 1 ❌
77 471 runs  77 470 ✅ 0 💤 1 ❌

For more details on these failures, see this check.

Results for commit c0423bd.

♻️ This comment has been updated with latest results.

@jblomer
jblomer force-pushed the ntuple-fix-evolution branch 3 times, most recently from 35b0064 to 1942bf1 Compare September 1, 2026 11:30

@hahnjo hahnjo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some considerations for simplification

Comment thread tree/ntuple/src/RFieldMeta.cxx Outdated
Comment on lines +555 to +558
if (fieldDesc.GetTypeVersion() != GetTypeVersion() || fieldDesc.GetTypeName() != GetTypeName()) {
// We need the on-disk streamer info for the conversion streamer info
pageSource.LoadStreamerInfo();
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this an optimization to only load the streamer infos when needed? How much would it cost to always load them when opening the file?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, the benefits of loading the streamer info on demand are not clear enough.

I would like to implement this as a separate PR (#23252) though to keep this one lean and to ease backporting.

Comment thread tree/ntuple/src/RFieldMeta.cxx Outdated
@olantwin

olantwin commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

I can confirm that this fixes #23146 (at least in our workflow where I first noticed this). I'd appreciate a backport to 6.40.x if possible once merged.

@jblomer
jblomer force-pushed the ntuple-fix-evolution branch from 4c9c7d4 to c0423bd Compare September 4, 2026 19:35
If during schema evolution a conversion streamer info is required, we
have to load the schema info records from the ROOT file. If the RNTuple
is loaded through the RMiniFile, this requires an extra call.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

3 participants