airflow.providers.common.sql.hooks.handlers

模組內容

函數

return_single_query_results(sql, return_last, ...)

確定何時應僅傳回單一查詢的結果。

fetch_all_handler(cursor)

傳回 DbApiHook.run() 的結果。

fetch_one_handler(cursor)

傳回 DbApiHook.run() 的第一個結果。

airflow.providers.common.sql.hooks.handlers.return_single_query_results(sql, return_last, split_statements)[原始碼]

確定何時應僅傳回單一查詢的結果。

基於相容性考量,DBAPIHook 的行為有些令人困惑。在某些情況下,當執行多個查詢時,傳回值將是結果的可迭代物件(列表)——每個查詢一個。然而,在其他情況下,當執行單一查詢時,傳回值將僅是該單一查詢的結果,而不會將結果包裝在列表中。

在以下情況下,單一查詢結果將不包裝在列表中傳回

  1. sql 是字串且 return_last 為 True(無論 split_statements 值為何)

  2. sql 是字串且 split_statements 為 False

在所有其他情況下,結果都會包裝在列表中,即使只有一個語句要處理。特別是,在以下情況下,傳回值將是查詢結果的列表

  1. sql 是字串語句的可迭代物件時(無論 return_last 值為何)

  2. sql 是字串,split_statements 為 True 且 return_last 為 False 時

參數
  • sql (str | collections.abc.Iterable[str]) – 要執行的 SQL (字串或字串列表)

  • return_last (bool) – 是否應僅傳回最後一個語句的輸出

  • split_statements (bool | None) – 是否拆分字串語句。

傳回值

如果 hook 應傳回單一查詢結果,則為 True

airflow.providers.common.sql.hooks.handlers.fetch_all_handler(cursor)[原始碼]

傳回 DbApiHook.run() 的結果。

airflow.providers.common.sql.hooks.handlers.fetch_one_handler(cursor)[原始碼]

傳回 DbApiHook.run() 的第一個結果。

此條目是否有幫助?