airflow.providers.common.sql.hooks.handlers
¶
模組內容¶
函數¶
|
確定何時應僅傳回單一查詢的結果。 |
|
傳回 DbApiHook.run() 的結果。 |
|
傳回 DbApiHook.run() 的第一個結果。 |
- airflow.providers.common.sql.hooks.handlers.return_single_query_results(sql, return_last, split_statements)[原始碼]¶
確定何時應僅傳回單一查詢的結果。
基於相容性考量,DBAPIHook 的行為有些令人困惑。在某些情況下,當執行多個查詢時,傳回值將是結果的可迭代物件(列表)——每個查詢一個。然而,在其他情況下,當執行單一查詢時,傳回值將僅是該單一查詢的結果,而不會將結果包裝在列表中。
在以下情況下,單一查詢結果將不包裝在列表中傳回
sql 是字串且
return_last
為 True(無論split_statements
值為何)sql 是字串且
split_statements
為 False
在所有其他情況下,結果都會包裝在列表中,即使只有一個語句要處理。特別是,在以下情況下,傳回值將是查詢結果的列表
當
sql
是字串語句的可迭代物件時(無論return_last
值為何)當
sql
是字串,split_statements
為 True 且return_last
為 False 時
- 參數
sql (str | collections.abc.Iterable[str]) – 要執行的 SQL (字串或字串列表)
return_last (bool) – 是否應僅傳回最後一個語句的輸出
split_statements (bool | None) – 是否拆分字串語句。
- 傳回值
如果 hook 應傳回單一查詢結果,則為 True