Details
-
Task
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
None
-
None
Description
(I chose an issue type "epic", but this is a feature request)
It would be nice if it were possible to check the syntax of a file, for example as part of a pre-commit hook in a version control system.
I tried to do something like that by abusing the --one-database option of the command-line client:
mysql -u automatic -o mysql < developmentrevival.sql
(Where the .sql file starts with a USE statement that mentions another database than "mysql")
In the query log, I see only the (harmless) SET statements in that file, so this workaround does not influence the wrong database, but alas it does not fail on syntax errors either.
It would be nice if there were a --lint or --dry-run option to do a syntax check.
Attachments
Issue Links
- relates to
-
MDEV-4680 PARSER - new sql function
-
- Open
-
-
MDEV-26634 Feature request: add STATEMENT_DIGEST_TEXT
-
- Closed
-
While a linter using the same parser as the server would be more reliable, I started using sqlfluff in my projects for that purpose which works well enough, and doubles as a pretty printer. There's still corner cases it doesn't handle correctly, but it sees very active development so things might improve over time.