Re: [ROOT] Schema Evoltuion problems

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Jan 23 2002 - 18:10:38 MET


Hi Joe again,

joer00@bellsouth.net wrote:
> 
> Hi Rooters,
> finally after almost 2 days of debugging I found the problem why reading my old root files containing my custom classes do not work anymore. It was not due to new ROOT version, but due to new RQUANT version I am using. My class has a RQUANT data mebmer and this data member class was changed with new RQUANT version.
> 
> I was reading again the whole Schema evolution documentation and from my understdanding, I SHOULD be able to read old classes !

Yes, you should.
> 
> So I have the follwing questions/comments why it might not work: (Lets call my class which has not changed ClassA and this has a data member of ClassB which HAS been changed)
> 
> 1.) If ClassA DID NOT change and just the data mebmber ClassB , do I still have to change ClassA Version Number in ClassDef ??

No, you do not have to change ClassA version in ClassDef. Only the class that
has
been modified needs to have its ClassDef version number incremented.

> 
> 2.) I guess file reading will fail if ClassB Version Number was not changed !
> 

No, it will not fail, but you will get a warning.


> 3.) If (I gues this is more likely the case in my situation) ClassB has a custom streamer and manuall schema evolution was not done, reading ClassA will fail too.

If you have a custom Streamer, it is your responsability to maintain
a coherent class evolution. You should try to banish as much as possible custom
Streamers.

Rene Brun

> 
> Joe



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:39 MET