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