If I have enabled ImplicitMT, RDataFrame::Snapshot
does not preserve the row order. Moreover, this happens completely invisibly with no errors or warnings, so the user is left with shuffled rows and no indication this happened without manually checking. This strikes me as a feature-breaking bug.
Reproducer below.
ROOT Version: 6.22/06
Platform: macOS
Compiler: conda-forge
import ROOT as r
r.ROOT.EnableImplicitMT(4)
rdf = r.RDataFrame(10).Define("e", "rdfentry_")
rdf.Snapshot("test", "test.root")
f = r.TFile.Open("test.root")
f.test.Scan()
Output:
************************
* Row * e.e *
************************
* 0 * 7 *
* 1 * 0 *
* 2 * 1 *
* 3 * 8 *
* 4 * 6 *
* 5 * 2 *
* 6 * 3 *
* 7 * 9 *
* 8 * 4 *
* 9 * 5 *
************************