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)[source]

確定何時只應返回單個查詢結果。

出於相容性原因,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

返回型別:

bool

airflow.providers.common.sql.hooks.handlers.fetch_all_handler(cursor)[source]

返回 DbApiHook.run() 的結果。

airflow.providers.common.sql.hooks.handlers.fetch_one_handler(cursor)[source]

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

此條目是否有幫助?