Tables containing "Auxiliary Data" are not stored when merging .db files
When using gmcat
to merge plugins, the tables containing subsystems' specific Auxiliary Data are correctly stored into the output .db
file.
Instead, when using gmcat
to merge the .db
files of the same subsystems, the tables containing the Auxiliary Data are not stored in the output file at all. See the example printout at the bottom.
It can be caused by a bug in gmcat
itself or in the underlying GeoModelWrite
and GeoModelDBManager
libraries.
Notes:
When using gmcat
to dump a .db
file, Aux Data are correctly stored in the output file.
Here for a TRT .db
file:
$ $ ./install/bin/gmcat trt.db -o trt.db
$ sqlite3 trt.db
SQLite version 3.24.0 2018-06-04 14:10:15
Enter ".help" for usage hints.
sqlite> .tables
AlignableTransforms TRTBarrelOverallPars
ChildrenPositions TRTBarrelRingDepPars
Elements TRTBarrelServices
FullPhysVols TRTBarrelStrawCoord
Functions TRTCommonPars
GeoNodesTypes TRTDigVersion
IdentifierTags TRTECEndCapDepPars
LogVols TRTECHeatExchAndFoil
Materials TRTECMembranePars
NameTags TRTECWheelDepPars
PhysVols TRTECWheelTypDepPars
PublishedAlignableTransforms_TRT TRTEndCapOverallPars
PublishedFullPhysVols_TRT TRTEndCapStrwLayZPos
RootVolume TRTShellPosVec
SerialDenominators TRTSwitches
SerialIdentifiers TRTTopLevel
SerialTransformers Transforms
Shapes dbversion
TRTBarrelNStrawInLay
sqlite>
Here for a Tile .db
file:
$ ./install/bin/gmcat tile.db -o tile.db
$ sqlite3 tile.db
SQLite version 3.24.0 2018-06-04 14:10:15
Enter ".help" for usage hints.
sqlite> .tables
AlignableTransforms Materials TileCalibGirderCells
CaloNeighborTable NameTags TileCalibPlateCells
ChildrenPositions PhysVols TileCalibSections
Elements RootVolume TileIdentifier
FullPhysVols SerialDenominators TileSwitches
Functions SerialIdentifiers Transforms
GeoNodesTypes SerialTransformers dbversion
IdentifierTags Shapes
LogVols TileCalibCells
sqlite>
But it does not work correctly, when merging two .db
files. Aux Data tables are not dumped to the output file at all:
$ ./install/bin/gmcat trt.db tile.db -o trt_tile.db
$ sqlite3 trt_tile_2.db
SQLite version 3.24.0 2018-06-04 14:10:15
Enter ".help" for usage hints.
sqlite> .tables
AlignableTransforms IdentifierTags SerialDenominators
ChildrenPositions LogVols SerialIdentifiers
Elements Materials SerialTransformers
FullPhysVols NameTags Shapes
Functions PhysVols Transforms
GeoNodesTypes RootVolume dbversion
sqlite>
Instead, Aux Data tables are correctly stored when merging the corresponding plugins, instead of the .db
files:
$ ./install/bin/gmcat install/lib/libTRTGeoPlugin.0.dylib install/lib/libTileGeoPlugin.0.dylib -o trt_tile_plugins.db
$ sqlite3 trt_tile_plugins.db
SQLite version 3.24.0 2018-06-04 14:10:15
Enter ".help" for usage hints.
sqlite> .tables
AlignableTransforms TRTBarrelServices
CaloNeighborTable TRTBarrelStrawCoord
ChildrenPositions TRTCommonPars
Elements TRTDigVersion
FullPhysVols TRTECEndCapDepPars
Functions TRTECHeatExchAndFoil
GeoNodesTypes TRTECMembranePars
IdentifierTags TRTECWheelDepPars
LogVols TRTECWheelTypDepPars
Materials TRTEndCapOverallPars
NameTags TRTEndCapStrwLayZPos
PhysVols TRTShellPosVec
PublishedAlignableTransforms_TRT TRTSwitches
PublishedFullPhysVols_TRT TRTTopLevel
RootVolume TileCalibCells
SerialDenominators TileCalibGirderCells
SerialIdentifiers TileCalibPlateCells
SerialTransformers TileCalibSections
Shapes TileIdentifier
TRTBarrelNStrawInLay TileSwitches
TRTBarrelOverallPars Transforms
TRTBarrelRingDepPars dbversion
sqlite>