Open mvanderlee opened 4 months ago
This also requires a change to Function.get_function_sql
to prevent duplicate kwargs:
get_function_sql(self: Function, subquery: Any = None, with_alias: Any = None, **kwargs: Any) -> str:
special_params_sql = self.get_special_params_sql(**kwargs)
return "{name}({args}{special})".format(
name=self.name,
args=",".join(
p.get_sql(with_alias=False, subquery=True, **kwargs)
if hasattr(p, "get_sql")
else self.get_arg_sql(p, **kwargs)
for p in self.args
),
special=(" " + special_params_sql) if special_params_sql else "",
)
Would you like to make a PR?
Gladly, done.
kwargs are passed around everywhere except in
Function.get_sql
.I've implemented a parameter wrapper to ensure I can build parametrized queries, but this doesn't work on functions because of this simple issue.
https://github.com/kayak/pypika/blob/master/pypika/terms.py#L1336