CDF File Catalog DB Task List

UPDATED Nov 11 1999



Progress Report, Nov 11, 1999

Here is what I have so far:

1) Re-wrote Oracle template library to handle Oracle errors without 
throwing C++ exceptions.

2) Written DBObject/DbOTL class, and in DataFileDB, skeletons of 
FilesetOTL.cc, TapeOTL.cc, DatasetOTL.cc,RunSectionOTL.cc,TapePoolOTL.cc, 
FileOTL.cc, and TapeAllocOTL.cc

3) The following IO classes generated from Julies ER diagrams, as well as 
oracle tables which these classes successfully read from and write to:

DatasetStruct.hh              RunSectionStruct.hh
Dataset_StatusStruct.hh       Runsection_LifetimeStruct.hh
FileStruct.hh                 Runsection_RangeStruct.hh
FilesetStruct.hh              TapePoolStruct.hh
Parent_DatasetStruct.hh       TapeStatusStruct.hh
Prod_Version_DescStruct.hh    TapeStruct.hh


4) I have re-written arch_spec_oci.mk to correctly link static oracle 
libraries on Sun, Linux, and SGI.  I have spoken recently with Art Kramer who 
wanted me to hold off until Monday or so checking these in as I am somewhat 
afraid of breaking the nightly build and he wants to get it to build  
successfully with EDM first.



What remains to be done, as I understand it:

1) The database schema needs to solidify, and an oracle instance made out of 
the results. 

2) I need to modify the above 'Struct.hh' IO classes to reflect the schema.  
This step is quick and easy as the code is all generated.

3) The 'Struct' IO classes talk to the 'OTL' classes mentioned above.  This is 
where simple tables are to be joined into more complex objects.  Jim K. has 
checked in comments, I plan to use these to manually assemble complex objects 
here.  This process has just started. To date, I have the 'DFCTestLoader' 
program writing to one oracle table.


4) What remains is chiefly integration, between my low level database IO 
ojects, Jim's high level business objects, and Julie's database definitions. 
Much of this will take place at the currently skeleton 'OTL' layer described 
in point 2) of the 'What I have so far' section of this note.

It would be good to have specified, in writing, what functionality is required 
for the MDC, i.e. what tables are to be filled, and how, and which ones are to 
be specified later.  I have preliminary notes on this.


The previous task list