sql-formatter icon indicating copy to clipboard operation
sql-formatter copied to clipboard

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

Open mariadb-ThienLy opened this issue 1 year ago • 1 comments

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

  • How are you calling / using the library?
import { formatDialect, mariadb } from 'sql-formatter'

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

mariadb-ThienLy avatar Oct 24 '24 13:10 mariadb-ThienLy

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.

nene avatar Oct 24 '24 14:10 nene