sqlformat-rs icon indicating copy to clipboard operation
sqlformat-rs copied to clipboard

Formatting mangles GLOB parameters for SQLite dialect

Open linusjf opened this issue 10 months ago • 0 comments

The following SQL statements are fed to the formatter:


SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB 'Man*';


SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB '*Man';


SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB '?ere*';

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB '*[1-9]*';

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB '*[^1-9]*';
SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB '*[1-9]';

The dialect is SQLite.

The string literal that follows keyword GLOB should remain unchanged.

However, the output is as follows:

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB ' Man * ';
SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB ' * Man ';
SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB ' ? ere * ';

SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB ' * [1-9] * ';
SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB ' * [^1-9] * ';
SELECT
	trackid,
	name
FROM
	tracks
WHERE
	name GLOB ' * [1-9] ';

It would be nice to have a way to have the parser ignore certain SQL statements if there isn't a solution at the moment.

sleek version: 0.3.0

linusjf avatar Dec 21 '24 09:12 linusjf