doctrine / doctrine/sql-formatter

SQLite format doesn't always split on comma

Open
#65 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
HTML
Stars
1.9k
Forks
29
PR merge metrics
No merged PRs in 30d

Description

In this example, why doesn't `ct_tag_id` end up on a new row?

Given
```lang=sql
CREATE TABLE /*_*/change_tag (ct_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, ct_rc_id INTEGER UNSIGNED DEFAULT NULL, ct_log_id INTEGER UNSIGNED DEFAULT NULL, ct_rev_id INTEGER U>

CREATE UNIQUE INDEX change_tag_rc_tag_id ON /*_*/change_tag (ct_rc_id, ct_tag_id);

CREATE UNIQUE INDEX change_tag_log_tag_id ON /*_*/change_tag (ct_log_id, ct_tag_id);

CREATE UNIQUE INDEX change_tag_rev_tag_id ON /*_*/change_tag (ct_rev_id, ct_tag_id);
```

After running `( new SqlFormatter( new NullHighlighter() ) )->format( $sql )` we end up with

```lang=sql
CREATE TABLE
/*_*/
change_tag (
ct_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
ct_rc_id INTEGER UNSIGNED DEFAULT NULL,
ct_log_id INTEGER UNSIGNED DEFAULT NULL,
ct_rev_id INTEGER UNSIGNED DEFAULT NULL,
ct_params BLOB DEFAULT NULL, ct_tag_id INTEGER UNSIGNED NOT NULL
); CREATE UNIQUE INDEX change_tag_rc_tag_id ON
/*_*/
change_tag (ct_rc_id, ct_tag_id); CREATE UNIQUE INDEX change_tag_log_tag_id ON
/*_*/
change_tag (ct_log_id, ct_tag_id); CREATE UNIQUE INDEX change_tag_rev_tag_id ON
/*_*/
change_tag (ct_rev_id, ct_tag_id); CREATE INDEX change_tag_tag_id_id ON
/*_*/
change_tag (
ct_tag_id, ct_rc_id, ct_rev_id, ct_log_id
);
```

We should end up with (ignoring #53)

```lang=sql
CREATE TABLE
/*_*/
change_tag (
ct_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
ct_rc_id INTEGER UNSIGNED DEFAULT NULL,
ct_log_id INTEGER UNSIGNED DEFAULT NULL,
ct_rev_id INTEGER UNSIGNED DEFAULT NULL,
ct_params BLOB DEFAULT NULL,
ct_tag_id INTEGER UNSIGNED NOT NULL
); CREATE UNIQUE INDEX change_tag_rc_tag_id ON
/*_*/
change_tag (ct_rc_id, ct_tag_id); CREATE UNIQUE INDEX change_tag_log_tag_id ON
/*_*/
change_tag (ct_log_id, ct_tag_id); CREATE UNIQUE INDEX change_tag_rev_tag_id ON
/*_*/
change_tag (ct_rev_id, ct_tag_id); CREATE INDEX change_tag_tag_id_id ON
/*_*/
change_tag (
ct_tag_id, ct_rc_id, ct_rev_id, ct_log_id
);
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.