Some identifiers get converted to uppercase with keywordCase:upper
Input data
Which SQL and options did you provide as input?
create table player_match_details(
name varchar(150),
match varchar(150),
score int
);
Expected Output
CREATE TABLE player_match_details(
name varchar(150),
match varchar(150),
score int
);
Actual Output
CREATE TABLE player_match_details(
name varchar(150),
MATCH varchar(150),
score int
);
Usage
- How are you calling / using the library?
import { format } from 'sql-formatter';
- What SQL language(s) does this apply to?
{
language: 'sql',
indent: '',
uppercase: true,
linesBetweenQueries: 2
}
- Which SQL Formatter version are you using? 15.3.1
Thanks for reporting. This is similar to #302 and #732.
One one hand this is really a fundamental problem with SQL Formatter that can't be easily fixed. (I could remove MATCH from list of keywords and then we'd have the opposite problem).
On another hand, you would be better off not using the default language:"sql". If possible choose the value that matches the SQL dialect you're actually using, like language: "postgresql". That other dialect might or might not have MATCH in its list of keywords.
FYI, there are no uppercase and indent options in latest SQL Formatter. You're either using some old version or some other tool altogether.
@nene
Thanks for the reply,
I kept the specific language SQLite, even though I have the issue.
Is there any alternative fix?
An alternative is to use a different formatting library which doesn't have this issue: https://github.com/nene/prettier-plugin-sql-cst