sql-formatter-org / sql-formatter

A whitespace formatter for different query languages
https://sql-formatter-org.github.io/sql-formatter/
MIT License
2.37k stars 405 forks source link

[FORMATTING] Formatter inserts space in between @ operator in mariadb dialect #793

Open mariadb-ThienLy opened 4 weeks ago

mariadb-ThienLy commented 4 weeks ago

Input data

Which SQL and options did you provide as input?

CREATE USER newuser@localhost;

Expected Output

CREATE USER newuser@localhost;

Actual Output

CREATE USER newuser @localhost;

Having an extra space before the @ sign doesn't break the execution but it just doesn't look nice. The same thing happens even if I wrap it inside backticks. i.e.

CREATE USER `newuser` @`localhost`;

Usage

export function formatSQL(v) { return formatDialect(v, { dialect: mariadb, tabWidth: 2, keywordCase: 'upper' }) }


- What SQL language(s) does this apply to? mariadb
- Which SQL Formatter version are you using? 15.3.2
nene commented 4 weeks ago

Thanks for reporting.

The formatter thinks that @localhost is a variable and formats it accordingly. This user@host syntax is kinda tricky to handle as it's specific to very few SQL statements. As this thankfully doesn't make the SQL invalid, it's unlikely that it'll get fixed by me. Especially as I'm avoiding any new feature development on this library.