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

Reply via email to