You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Seeing a similar issue with parameter injection, depending on the dialect.
When using TSql parameter injection works, when using StandardSql, SparkSql, and maybe others, an extra whitespace is added, and parameter injection does not work:
// Bad exampleSqlFormatter.of(Dialect.SparkSql).format("@thing", Map.of("thing", "foo")); // Result: "@ thing"// Good exampleSqlFormatter.of(Dialect.TSql).format("@thing", Map.of("thing", "foo")); // Result: "foo"
If anyone bumps into this issue, a possible workaround is to add '@' as a named placeholder type:
FormattersparkSqlFormatter = SqlFormatter
.of(Dialect.SparkSql)
// Required for named placeholders to work
.extend(dialectConfig -> dialectConfig.plusNamedPlaceholderTypes("@"));
// ... any other needed extensions
Name placeholders like
WHERE name = :name
are broken and do not replace at all.Example:
this formats as:
Notice the
=:
and the space between the:
andname
-=: name
You can see this right on the demo page:
https://www.vertical-blank.com/sql-formatter/
The text was updated successfully, but these errors were encountered: