diff --git a/homeassistant/components/logbook/queries.py b/homeassistant/components/logbook/queries.py index 8c13719a1cf..08f6d759d25 100644 --- a/homeassistant/components/logbook/queries.py +++ b/homeassistant/components/logbook/queries.py @@ -6,7 +6,7 @@ from datetime import datetime as dt from typing import Any import sqlalchemy -from sqlalchemy import lambda_stmt, select +from sqlalchemy import lambda_stmt, select, union_all from sqlalchemy.orm import aliased from sqlalchemy.sql.expression import literal from sqlalchemy.sql.lambdas import StatementLambdaElement @@ -118,15 +118,15 @@ def _select_entities_context_ids_sub_query( entity_ids: list[str], ) -> Select: """Generate a subquery to find context ids for multiple entities.""" - return ( - _select_events_context_id_subquery(start_day, end_day, event_types) - .where(_apply_event_entity_id_matchers(entity_ids)) - .union_all( + return select( + union_all( + _select_events_context_id_subquery(start_day, end_day, event_types).where( + _apply_event_entity_id_matchers(entity_ids) + ), select(States.context_id) .filter((States.last_updated > start_day) & (States.last_updated < end_day)) - .where(States.entity_id.in_(entity_ids)) - ) - .subquery() + .where(States.entity_id.in_(entity_ids)), + ).c.context_id ) @@ -183,18 +183,16 @@ def _select_entity_context_ids_sub_query( entity_id_like: str, ) -> Select: """Generate a subquery to find context ids for a single entity.""" - return ( - _select_events_context_id_subquery(start_day, end_day, event_types) - .where( - Events.event_data.like(entity_id_like) - | EventData.shared_data.like(entity_id_like) - ) - .union_all( + return select( + union_all( + _select_events_context_id_subquery(start_day, end_day, event_types).where( + Events.event_data.like(entity_id_like) + | EventData.shared_data.like(entity_id_like) + ), select(States.context_id) .filter((States.last_updated > start_day) & (States.last_updated < end_day)) - .where(States.entity_id == entity_id) - ) - .subquery() + .where(States.entity_id == entity_id), + ).c.context_id )