Hacker News new | ask | show | jobs
by egorfine 2825 days ago
Hey, thank you for the formatter! I really like the way it formats statements. Although I have found two issues:

1. It lowercases table and field names, rendering the formatted statement useless for a project with not exclusively lowercased names. Could you please fix this?

2. I'd appreciate accepting common placeholder "?" as a valid part of the SQL statement so that we can format queries with placeholders. Would that be possible?

1 comments

The formatter adheres to CockroachDB rules which is why it acts like you describe. Case is insensitive in names unless you double quote it. Postgres-style (CockroachDB is one) uses "$1" for placeholders instead of "?". Adding "?" would complicate our grammar enough that it's not worth adding it.

sqlfmt is not super useful for non-postgres grammars.

I understand it about placeholders. Fair enough. I can do quick s/\?/\$1/g, no prob.

Still how about not lowercasing identifiers? This is actually a blocker, I'm sure you see it:)

Consider those of us stuck with Java adapters to Postgres, which means Postgres syntax but ? for placeholders.
Is that a thing? The Java driver must actually parse those and convert them. Java is crazy. https://github.com/mjibson/sqlfmt/issues/25 is the issue to track '?' as placeholders.
It might be crazy, but having just gotten my hands dirty with some seriously DB programming, JDBC has a hell of a lot of value in my view.