Each AST statement node has a toSql() implementation. The code for ScalarFunction and ToSqlUtils has a number of issues:
- If Location or Symbol are not set, they are shown as 'null'. Better to omit these clauses if the items are not available.
- The generated SQL does not follow the [Impala CREATE TABLE|] syntax. For example, the signature and return value are provided for JAVA functions, but should not be.
- Unlike other statements, this one is generated with a trailing newline.
- ToSql.getCreateFunctionSql() fails to separate functions with the semi-colon statement terminator.