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.Relation
that 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:
- tables
Iterable
[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:
- db
Database
Interface to the underlying database engine and namespace.
- elementStorage
tuple
[DatabaseDimensionRecordStorage
] Storage objects for the elements this object will related.
- governorStorage
tuple
[GovernorDimensionRecordStorage
] Storage objects for the governor dimensions of the elements this object will related.
- context
StaticTablesContext
, optional If provided, an object to use to create any new tables. If not provided,
db.ensureTableExists
should be used instead.
- db
- Returns:
- storage
DatabaseDimensionOverlapStorage
A new
DatabaseDimensionOverlapStorage
subclass instance.
- storage
- abstract make_relation(context: queries.SqlQueryContext, governor_constraints: Mapping[str, Set[str]]) Relation | None ¶
Return a
lsst.daf.relation.Relation
that 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:
- context
queries.SqlQueryContext
Object that manages relation engines and database-side state (e.g. temporary tables) for the query.
- governor_constraints
Mapping
[str
,Set
], optional Constraints imposed by other aspects of the query on governor dimensions; collections inconsistent with these constraints will be skipped.
- context
- Returns:
- relation
lsst.daf.relation.Relation
orNone
Join relation. Should be
None
when no direct overlaps for this combination are stored; higher-level code is responsible for working out alternative approaches involving multiple joins.
- relation