-
Notifications
You must be signed in to change notification settings - Fork 1.3k
[df] Preserve schema of empty output TTree in Snapshot #18197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[df] Preserve schema of empty output TTree in Snapshot #18197
Conversation
Test Results 18 files 18 suites 4d 1h 11m 35s ⏱️ Results for commit f5d9d72. ♻️ This comment has been updated with latest results. |
d175480
to
a7a87ec
Compare
Thanks! I talked to Vincenzo privately, but I will also post the test results there. There seems to be a crash when JITting the types of the branches in Snapshot.
|
fa439d2
to
551ecba
Compare
Thanks for the updates! With the latest changes my code finishes properly and I also see the branches in the output of a Snapshot that has no events passing in a multithreaded mode. |
551ecba
to
0a1d7c7
Compare
Previously, the behaviour of Snapshot in case no entries pass the selections in the event loop was two-fold: * In single thread, Snapshot created an output file with an empty TTree inside, without the user-requested branches. * In multi-threaded mode, Snapshot created an output file, without any TTree inside. This commit aligns the behaviour of the two execution modes. Furthermore, it ensures the user-requested dataset schema is preserved even when the output TTree is empty. i.e., all the user-requested branches will be present in the output TTree.
0a1d7c7
to
f5d9d72
Compare
Previously, the behaviour of Snapshot in case no entries pass the selections in the event loop was two-fold:
In single thread, Snapshot created an output file with an empty TTree inside, without the user-requested branches.
In multi-threaded mode, Snapshot created an output file, without any TTree inside.
This commit aligns the behaviour of the two execution modes. Furthermore, it ensures the user-requested dataset schema is preserved even when the output TTree is empty. i.e., all the user-requested branches will be present in the output TTree.
FYI @TomasDado