DatabaseDimensionOverlapStorage¶
- class lsst.daf.butler.registry.interfaces.DatabaseDimensionOverlapStorage¶
- Bases: - ABC- A base class for objects that manage overlaps between a pair of database-backed dimensions. - Attributes Summary - The pair of elements whose overlaps this object manages. - Methods Summary - Clear any cached state about which overlaps have been materialized. - Return tables used for schema digest. - initialize(db, elementStorage, governorStorage)- Construct an instance of this class using a standardized interface. - make_relation(context, governor_constraints)- Return a - lsst.daf.relation.Relationthat represents the join table.- Attributes Documentation - elements¶
- The pair of elements whose overlaps this object manages. - The order of elements is the same as their ordering within the - DimensionUniverse.
 - Methods Documentation - abstract digestTables() Iterable[Table]¶
- Return tables used for schema digest. - Returns:
- tablesIterable[sqlalchemy.schema.Table]
- Possibly empty set of tables for schema digest calculations. 
 
- tables
 
 - abstract classmethod initialize(db: Database, elementStorage: tuple[DatabaseDimensionRecordStorage, DatabaseDimensionRecordStorage], governorStorage: tuple[GovernorDimensionRecordStorage, GovernorDimensionRecordStorage], context: StaticTablesContext | None = None) DatabaseDimensionOverlapStorage¶
- Construct an instance of this class using a standardized interface. - Parameters:
- dbDatabase
- Interface to the underlying database engine and namespace. 
- elementStoragetuple[DatabaseDimensionRecordStorage]
- Storage objects for the elements this object will related. 
- governorStoragetuple[GovernorDimensionRecordStorage]
- Storage objects for the governor dimensions of the elements this object will related. 
- contextStaticTablesContext, optional
- If provided, an object to use to create any new tables. If not provided, - db.ensureTableExistsshould be used instead.
 
- db
- Returns:
- storageDatabaseDimensionOverlapStorage
- A new - DatabaseDimensionOverlapStoragesubclass instance.
 
- storage
 
 - abstract make_relation(context: queries.SqlQueryContext, governor_constraints: Mapping[str, Set[str]]) Relation | None¶
- Return a - lsst.daf.relation.Relationthat represents the join table.- High-level code should generally call - DimensionRecordStorageManager.make_spatial_join_relation(which delegates to this) instead of calling this method directly.- Parameters:
- contextqueries.SqlQueryContext
- Object that manages relation engines and database-side state (e.g. temporary tables) for the query. 
- governor_constraintsMapping[str,Set], optional
- Constraints imposed by other aspects of the query on governor dimensions; collections inconsistent with these constraints will be skipped. 
 
- context
- Returns:
- relationlsst.daf.relation.RelationorNone
- Join relation. Should be - Nonewhen no direct overlaps for this combination are stored; higher-level code is responsible for working out alternative approaches involving multiple joins.
 
- relation