uranusjr commented on code in PR #30641: URL: https://github.com/apache/airflow/pull/30641#discussion_r1169413547
########## airflow/models/xcom_arg.py: ########## @@ -309,11 +310,26 @@ def zip(self, *others: XComArg, fillvalue: Any = NOTSET) -> ZipXComArg: return super().zip(*others, fillvalue=fillvalue) def get_task_map_length(self, run_id: str, *, session: Session) -> int | None: + from airflow.models.taskinstance import TaskInstance from airflow.models.taskmap import TaskMap from airflow.models.xcom import XCom task = self.operator if isinstance(task, MappedOperator): + unfinished_ti_count_query = session.query(func.count(TaskInstance.map_index)).filter( Review Comment: TI is indexed in this query so scanning should not happen, and having `COUNT` reduces data sent through the wire. IIRC we did a micro benchmark against a similar query sometime back; the best choice in theory is `EXISTS` but it’s not universally supported. The second best is `SELECT 1 FROM ...` + `first()` but that reads pretty weird, and `COUNT` is the next best choice. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@airflow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org