ChainedDatasetQueryResults¶
- class lsst.daf.butler.registry.queries.ChainedDatasetQueryResults(chain: Sequence[ParentDatasetQueryResults], doomed_by: Iterable[str] = ())¶
Bases:
DatasetQueryResultsA
DatasetQueryResultsimplementation that simply chains together other results objects, each for a different parent dataset type.- Parameters:
- chain
Sequence[ParentDatasetQueryResults] The underlying results objects this object will chain together.
- doomed_by
Iterable[str], optional A list of messages (appropriate for e.g. logging or exceptions) that explain why the query is known to return no results even before it is executed. Queries with a non-empty list will never be executed. Child results objects may also have their own list.
- chain
Methods Summary
any(*[, execute, exact])Test whether this query returns any results.
Group results by parent dataset type.
count(*[, exact, discard])Count the number of rows this query would return.
expanded()Return a
DatasetQueryResultsfor whichDataCoordinate.hasRecordsreturnsTruefor all data IDs in returnedDatasetRefobjects.explain_no_results([execute])Return human-readable messages that may help explain why the query yields no results.
Insert this query's results into a temporary table.
Methods Documentation
- any(*, execute: bool = True, exact: bool = True) bool¶
Test whether this query returns any results.
- Parameters:
- execute
bool, optional If
True, execute at least aLIMIT 1query if it cannot be determined prior to execution that the query would return no rows.- exact
bool, optional If
True, run the full query and perform post-query filtering if needed, until at least one result row is found. IfFalse, the returned result does not account for post-query filtering, and hence may beTrueeven when all result rows would be filtered out.
- execute
- Returns:
- byParentDatasetType() Iterator[ParentDatasetQueryResults]¶
Group results by parent dataset type.
- Returns:
- iter
Iterator[ParentDatasetQueryResults] An iterator over
DatasetQueryResultsinstances that are each responsible for a single parent dataset type.
- iter
- count(*, exact: bool = True, discard: bool = False) int¶
Count the number of rows this query would return.
- Parameters:
- exact
bool, optional If
True, run the full query and perform post-query filtering if needed to account for that filtering in the count. IfFalse, the result may be an upper bound.- discard
bool, optional If
True, compute the exact count even if it would require running the full query and then throwing away the result rows after counting them. IfFalse, this is an error, as the user would usually be better off executing the query first to fetch its rows into a new query (or passingexact=False). Ignored ifexact=False.
- exact
- Returns:
- count
int The number of rows the query would return, or an upper bound if
exact=False.
- count
Notes
This counts the number of rows returned, not the number of unique rows returned, so even with
exact=Trueit may provide only an upper bound on the number of deduplicated result rows.
- expanded() ChainedDatasetQueryResults¶
Return a
DatasetQueryResultsfor whichDataCoordinate.hasRecordsreturnsTruefor all data IDs in returnedDatasetRefobjects.- Returns:
- expanded
DatasetQueryResults Either a new
DatasetQueryResultsinstance orself, if it is already expanded.
- expanded
Notes
As with
DataCoordinateQueryResults.expanded, it may be more efficient to callmaterializebefore expanding data IDs for very large result sets.
- explain_no_results(execute: bool = True) Iterable[str]¶
Return human-readable messages that may help explain why the query yields no results.
- materialize() Iterator[ChainedDatasetQueryResults]¶
Insert this query’s results into a temporary table.
- Returns:
- context
typing.ContextManager[DatasetQueryResults] A context manager that ensures the temporary table is created and populated in
__enter__(returning a results object backed by that table), and dropped in__exit__. Ifselfis already materialized, the context manager may do nothing (reflecting the fact that an outer context manager should already take care of everything else).
- context