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() 的第一个结果。

此条目是否有帮助?