SqlQueryBackend¶
- class lsst.daf.butler.registry.queries.SqlQueryBackend(db: Database, managers: RegistryManagerInstances, dimension_record_cache: DimensionRecordCache)¶
Bases:
QueryBackend
[SqlQueryContext
]An implementation of
QueryBackend
forSqlRegistry
.- Parameters:
- db
Database
Object that abstracts the database engine.
- managers
RegistryManagerInstances
Struct containing the manager objects that back a
SqlRegistry
.- dimension_record_cache
DimensionRecordCache
Cache of all records for dimension elements with
is_cached
True
.
- db
Attributes Summary
Definition of all dimensions and dimension elements for this registry (
DimensionUniverse
).Methods Summary
Enable caching of collection records and summaries for the duration of the returned context manager.
context
()Return a context manager that can be used to execute queries with this backend.
filter_dataset_collections
(dataset_types, ...)Filter a sequence of collections to those for which a dataset query might succeed.
get_collection_name
(key)Return the collection name associated with a collection primary key value.
get_dimension_record_cache
(element_name)Return a local cache of all
DimensionRecord
objects for a dimension element, fetching it if necessary.resolve_collection_wildcard
(expression, *[, ...])Return the collection records that match a wildcard expression.
resolve_dataset_type_wildcard
(expression[, ...])Return the dataset types that match a wildcard expression.
resolve_governor_constraints
(dimensions, ...)Resolve governor dimension constraints provided by user input to a query against the content in the
Registry
.Attributes Documentation
- universe¶
Methods Documentation
- caching_context() AbstractContextManager[None] ¶
Enable caching of collection records and summaries for the duration of the returned context manager.
- context() SqlQueryContext ¶
Return a context manager that can be used to execute queries with this backend.
- Returns:
- context
QueryContext
Context manager that manages state and connections needed to execute queries.
- context
- filter_dataset_collections(dataset_types: Iterable[DatasetType], collections: Sequence[CollectionRecord], *, governor_constraints: Mapping[str, Set[str]], rejections: list[str] | None = None) dict[lsst.daf.butler._dataset_type.DatasetType, list[lsst.daf.butler.registry.interfaces._collections.CollectionRecord]] ¶
Filter a sequence of collections to those for which a dataset query might succeed.
- Parameters:
- dataset_types
Iterable
[DatasetType
] Dataset types that are being queried. Must include only parent or standalone dataset types, not components.
- collections
Sequence
[CollectionRecord
] Sequence of collections that will be searched.
- governor_constraints
Mapping
[str
,Set
[str
] ], optional Constraints imposed by other aspects of the query on governor dimensions; collections inconsistent with these constraints will be skipped.
- rejections
list
[str
], optional If not
None
, alist
that diagnostic messages will be appended to, for any collection that matchescollections
that is not returned. At least one message is guaranteed whenever the result is empty.
- dataset_types
- Returns:
Notes
This method accepts multiple dataset types and multiple collections at once to enable implementations to batch up the fetching of summary information needed to relate them.
- get_collection_name(key: Any) str ¶
Return the collection name associated with a collection primary key value.
- get_dimension_record_cache(element_name: str) DimensionRecordSet | None ¶
Return a local cache of all
DimensionRecord
objects for a dimension element, fetching it if necessary.
- resolve_collection_wildcard(expression: Any, *, collection_types: Set[CollectionType] = frozenset({CollectionType.RUN, CollectionType.TAGGED, CollectionType.CHAINED, CollectionType.CALIBRATION}), flatten_chains: bool = True, include_chains: bool | None = None) list[lsst.daf.butler.registry.interfaces._collections.CollectionRecord] ¶
Return the collection records that match a wildcard expression.
- Parameters:
- expression
Any
Names and/or patterns for collections; will be passed to
CollectionWildcard.from_expression
.- collection_types
collections.abc.Set
[CollectionType
], optional If provided, only yield collections of these types.
- flatten_chains
bool
, optional If
True
(default) recursively yield the child collections ofCHAINED
collections.- include_chains
bool
, optional If
False
, return records forCHAINED
collections themselves. The default is the opposite offlattenChains
: either return records for CHAINED collections or their children, but not both.
- expression
- Returns:
- records
list
[CollectionRecord
] Matching collection records.
- records
- resolve_dataset_type_wildcard(expression: Any, missing: list[str] | None = None, explicit_only: bool = False) list[lsst.daf.butler._dataset_type.DatasetType] ¶
Return the dataset types that match a wildcard expression.
- Parameters:
- expression
Any
Names and/or patterns for dataset types; will be passed to
DatasetTypeWildcard.from_expression
.- missing
list
ofstr
, optional String dataset type names that were explicitly given (i.e. not regular expression patterns) but not found will be appended to this list, if it is provided.
- explicit_only
bool
, optional If
True
, require explicitDatasetType
instances orstr
names, withre.Pattern
instances deprecated and...
prohibited.
- expression
- Returns:
- dataset_types
list
[DatasetType
] A list of resolved dataset types.
- dataset_types
- resolve_governor_constraints(dimensions: DimensionGroup, constraints: Mapping[str, Set[str]]) Mapping[str, Set[str]] ¶
Resolve governor dimension constraints provided by user input to a query against the content in the
Registry
.- Parameters:
- Returns:
- Raises:
- DataIdValueError
Raised if
constraints
includes governor dimension values that are not present in theRegistry
.