Diagnostics¶
-
class
lsst.daf.relation.
Diagnostics
(is_doomed: bool, messages: list)¶ Bases:
object
A relation-processing algorithm that attempts to explain why a relation has no rows.
The
Diagnostics
class itself is just the type returned by itsrun
class method, which performs a depth-first tree traversal looking for relations that are either known in advance to have no rows (Relation.max_rows
zero) or shown to have no rows via anexecutor
callable; when present, these are then propagated downstream to the root. Only operations that can remove all rows (UnaryOperation.is_empty_invariant
isFalse
) are executed when no empty leaf relations are found.xMethods Summary
run
(relation, executor, bool], None] = None)Report on whether the given relation has no rows, and if so, why. Methods Documentation
-
classmethod
run
(relation: lsst.daf.relation._relation.Relation, executor: Optional[collections.abc.Callable[lsst.daf.relation._relation.Relation, bool], None] = None) → lsst.daf.relation._diagnostics.Diagnostics¶ Report on whether the given relation has no rows, and if so, why.
Parameters: - relation :
Relation
Relation to analyze.
- executor :
Callable
, optional If provided, a callable that takes a
Relation
and does some engine-specific processing to determine whether it has any rows, such as aLIMIT 1
query in SQL. If not provided, diagnostics will be based only on relations withRelation.max_rows
set to zero.
Returns: - diagnostics :
Diagnostics
Struct containing the diagnostics report.
- relation :
-
classmethod