gInterpreter->Declare failed after upgrade to ROOT 6.22


_ROOT Version:6.22
_Platform: ubuntu20.04, Mac OS X


after upgrade to 6.22, I’ve some bug

   struct c_t{
     double a;
     double b;
   };

   void p1_read()
   {
     struct c_t c;
     c.a = 1;
     c.b = 2;
     TFile * f1 = new TFile("f1.root","RECREATE");
     TTree * t1 = new TTree("t1", "t1");
     t1->Branch("c",&c);
     t1->Fill();
     t1->Fill();

     t1->Write();
     f1->Close();

     ROOT::RDataFrame aData("t1", "f1.root");
     aData.Display("a")->Print();
   }
terminate called after throwing an instance of 'std::runtime_error'
  what():  : regex "a" did not match any column.

How ever, I’ve run it on 6.20, It’s OK.
How could I read the column “c.a” with RDataFrame

Hi,
thank you for the report, I’m afraid this is a bug! I filed https://sft.its.cern.ch/jira/browse/ROOT-10942 , and will take a better look at soon as possible.

Thank you very much for the report!

In case it helpls, usage of the column "c.a" outside of just-in-time-compiled expression strings is ok:

aData.Filter([] (double a) { return a > 0; }, {"c.a"})

Cheers,
Enrico

thanks for answer so quickly!

Sure! Work in progress, but there is no full workaround that I know. Things will go back to a sane state with the next patch releases.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.