hussein-awala commented on code in PR #37150: URL: https://github.com/apache/airflow/pull/37150#discussion_r1476859987
########## airflow/providers/common/sql/operators/sql.py: ########## @@ -1058,9 +1058,13 @@ def __init__( def execute(self, context: Context): hook = self.get_db_hook() - result = hook.get_first(self.sql)[0] - if not result: + result = hook.get_first(self.sql) + + # if the query returns 0 rows result will be None so cannot be indexed into + if result is None: Review Comment: Ah yes, every operator has its own implementation. But your change is not correct, if an operator returns an empty list, dict, tuple, or string, `result[0]` will raise an exception. What about using something like: ```python if result is None or (isinstance([], Sized) and len(result) == 0) ``` here is the explanation: ```python >>> from collections.abc import Sized >>> isinstance([], Sized) True >>> isinstance((), Sized) True >>> isinstance({}, Sized) True >>> isinstance("", Sized) True >>> isinstance(0, Sized) False ``` -- 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