def format_sql_in_function(sql, into=None):
kwargs = AnyArg({'USING': AnyUsingArg()})
# TODO: Replace Formatter with sql.format(**kwargs) when dropping Python 2.
sql = Formatter().vformat(sql, (), kwargs).replace("'", "''")
using = kwargs.pop('USING')
args = ', '.join([k for k in kwargs])
extra = ''
if into is not None:
extra += ' INTO ' + ', '.join(into)
if using:
extra += ' USING ' + ', '.join([a for a in using])
return "EXECUTE format('%s', %s)%s;" % (sql, args, extra)
# TODO: Add `LIMIT 1` where appropriate to see if it optimises a bit.
评论列表
文章目录