SkyPixDimensionRecordStorage¶
- 
class lsst.daf.butler.registry.interfaces.SkyPixDimensionRecordStorage¶
- Bases: - lsst.daf.butler.registry.interfaces.DimensionRecordStorage- Intermediate interface for - DimensionRecordStorageobjects that provide storage for- SkyPixDimensioninstances.- Attributes Summary - element- The element whose records this instance managers ( - DimensionElement).- Methods Summary - clearCaches()- Clear any in-memory caches held by the storage instance. - digestTables()- Return tables used for schema digest. - fetch(dataIds)- Retrieve records from storage. - insert(*records, replace, skip_existing)- Insert one or more records into storage. - join(builder, *, regions, …)- Add the dimension element’s logical table to a query under construction. - sync(record, update)- Synchronize a record with the database, inserting it only if it does not exist and comparing values if it does. - Attributes Documentation - 
element¶
- The element whose records this instance managers ( - DimensionElement).
 - Methods Documentation - 
clearCaches() → None¶
- Clear any in-memory caches held by the storage instance. - This is called by - Registrywhen transactions are rolled back, to avoid in-memory caches from ever containing records that are not present in persistent storage.
 - 
digestTables() → Iterable[sqlalchemy.sql.schema.Table]¶
- Return tables used for schema digest. - Returns: - tables : Iterable[sqlalchemy.schema.Table]
- Possibly empty set of tables for schema digest calculations. 
 
- tables : 
 - 
fetch(dataIds: DataCoordinateIterable) → Iterable[DimensionRecord]¶
- Retrieve records from storage. - Parameters: - dataIds : DataCoordinateIterable
- Data IDs that identify the records to be retrieved. 
 - Returns: - records : Iterable[DimensionRecord]
- Record retrieved from storage. Not all data IDs may have corresponding records (if there are no records that match a data ID), and even if they are, the order of inputs is not preserved. 
 
- dataIds : 
 - 
insert(*records, replace: bool = False, skip_existing: bool = False) → None¶
- Insert one or more records into storage. - Parameters: - records
- One or more instances of the - DimensionRecordsubclass for the element this storage is associated with.
- replace: `bool`, optional
- If - True(- Falseis default), replace existing records in the database if there is a conflict.
- skip_existing : bool, optional
- If - True(- Falseis default), skip insertion if a record with the same primary key values already exists.
 - Raises: - TypeError
- Raised if the element does not support record insertion. 
- sqlalchemy.exc.IntegrityError
- Raised if one or more records violate database integrity constraints. 
 - Notes - As - insertis expected to be called only by a- Registry, we rely on- Registryto provide transactionality, both by using a SQLALchemy connection shared with the- Registryand by relying on it to call- clearCacheswhen rolling back transactions.
 - 
join(builder: QueryBuilder, *, regions: Optional[NamedKeyDict[DimensionElement, sqlalchemy.sql.ColumnElement]] = None, timespans: Optional[NamedKeyDict[DimensionElement, TimespanDatabaseRepresentation]] = None) → sqlalchemy.sql.FromClause¶
- Add the dimension element’s logical table to a query under construction. - This is a visitor pattern interface that is expected to be called only by - QueryBuilder.joinDimensionElement.- Parameters: - builder : QueryBuilder
- Builder for the query that should contain this element. 
- regions : NamedKeyDict, optional
- A mapping from - DimensionElementto a SQLAlchemy column containing the region for that element, which should be updated to include a region column for this element if one exists. If- None,- self.elementis not being included in the query via a spatial join.
- timespan : NamedKeyDict, optional
- A mapping from - DimensionElementto a- Timespanof SQLALchemy columns containing the timespan for that element, which should be updated to include timespan columns for this element if they exist. If- None,- self.elementis not being included in the query via a temporal join.
 - Returns: - fromClause : sqlalchemy.sql.FromClause
- Table or clause for the element which is joined. 
 - Notes - Elements are only included in queries via spatial and/or temporal joins when necessary to connect them to other elements in the query, so - regionsand- timespanscannot be assumed to be not- Nonejust because an element has a region or timespan.
- builder : 
 - 
sync(record: DimensionRecord, update: bool = False) → Union[bool, Dict[str, Any]]¶
- Synchronize a record with the database, inserting it only if it does not exist and comparing values if it does. - Parameters: - Returns: - Raises: - DatabaseConflictError
- Raised if the record exists in the database (according to primary key lookup) but is inconsistent with the given one. 
- TypeError
- Raised if the element does not support record synchronization. 
- sqlalchemy.exc.IntegrityError
- Raised if one or more records violate database integrity constraints. 
 
 
-