Skip to content

Commit c8e5bac

Browse files
committed
Additional tests for inline-comment
1 parent be12225 commit c8e5bac

File tree

2 files changed

+46
-12
lines changed

2 files changed

+46
-12
lines changed

database/spanner/spanner.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -442,8 +442,8 @@ func statementGroups(migr []byte) (groups []*statementGroup, err error) {
442442
continue
443443
}
444444

445-
if len(lex.Token.Comments) > 0 {
446-
// preserve newline where comments are removed
445+
if len(lex.Token.Comments) > 0 && strings.HasPrefix(lex.Token.Comments[0].Raw, "--") {
446+
// standard comment Token consumes a \n, so we need to add it back
447447
if _, err := stmt.WriteString("\n"); err != nil {
448448
return nil, err
449449
}

database/spanner/spanner_test.go

+44-10
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ func Test_statementGroups(t *testing.T) {
117117
{
118118
typ: statementTypeDDL,
119119
stmts: []string{
120-
"CREATE TABLE table_name (\n id STRING(255) NOT NULL,\n ) PRIMARY KEY (id)",
120+
"CREATE TABLE table_name (\n\t\t\tid STRING(255) NOT NULL,\n\t\t) PRIMARY KEY (id)",
121121
},
122122
},
123123
},
@@ -143,7 +143,7 @@ func Test_statementGroups(t *testing.T) {
143143
{
144144
typ: statementTypeDDL,
145145
stmts: []string{
146-
"CREATE TABLE table_name (\n id STRING(255) NOT NULL,\n ) PRIMARY KEY (id)",
146+
"CREATE TABLE table_name (\n\t\t\tid STRING(255) NOT NULL,\n\t\t) PRIMARY KEY (id)",
147147
},
148148
},
149149
},
@@ -160,7 +160,7 @@ func Test_statementGroups(t *testing.T) {
160160
{
161161
typ: statementTypeDDL,
162162
stmts: []string{
163-
"CREATE TABLE table_name (\n id STRING(255) NOT NULL,\n ) PRIMARY KEY(id)",
163+
"CREATE TABLE table_name (\n\t\t\tid STRING(255) NOT NULL,\n\t\t) PRIMARY KEY(id)",
164164
"CREATE INDEX table_name_id_idx ON table_name (id)",
165165
},
166166
},
@@ -178,7 +178,7 @@ func Test_statementGroups(t *testing.T) {
178178
{
179179
typ: statementTypeDDL,
180180
stmts: []string{
181-
"CREATE TABLE table_name (\n id STRING(255) NOT NULL,\n ) PRIMARY KEY(id)",
181+
"CREATE TABLE table_name (\n\t\t\tid STRING(255) NOT NULL,\n\t\t) PRIMARY KEY(id)",
182182
"CREATE INDEX table_name_id_idx ON table_name (id)",
183183
},
184184
},
@@ -197,25 +197,59 @@ func Test_statementGroups(t *testing.T) {
197197
{
198198
typ: statementTypeDDL,
199199
stmts: []string{
200-
"CREATE TABLE table_name (\n id STRING(255) NOT NULL,\n ) PRIMARY KEY(id)",
200+
"CREATE TABLE table_name (\n\t\t\tid STRING(255) NOT NULL,\n\t\t) PRIMARY KEY(id)",
201201
"CREATE INDEX table_name_id_idx ON table_name (id)",
202202
},
203203
},
204204
},
205205
},
206206
{
207-
name: "multi statement, no trailing semicolon, inline comment",
207+
name: "multi statement, no trailing semicolon, end-of-line comment",
208208
// From https://github.com/mattes/migrate/pull/281
209209
multiStatement: `CREATE TABLE table_name (
210-
id STRING(255) NOT NULL, -- inline comment
210+
id STRING(255) NOT NULL, -- end-of-line comment
211211
) PRIMARY KEY(id);
212212
213213
CREATE INDEX table_name_id_idx ON table_name (id)`,
214214
expected: []*statementGroup{
215215
{
216216
typ: statementTypeDDL,
217217
stmts: []string{
218-
"CREATE TABLE table_name (\n id STRING(255) NOT NULL,\n ) PRIMARY KEY(id)",
218+
"CREATE TABLE table_name (\n\t\t\tid STRING(255) NOT NULL,\n\t\t) PRIMARY KEY(id)",
219+
"CREATE INDEX table_name_id_idx ON table_name (id)",
220+
},
221+
},
222+
},
223+
},
224+
{
225+
name: "multi statement, inline comment",
226+
multiStatement: `CREATE TABLE table_name (
227+
id STRING(255) NOT NULL, /* inline comment */
228+
) PRIMARY KEY(id);
229+
230+
CREATE INDEX table_name_id_idx ON table_name (id);`,
231+
expected: []*statementGroup{
232+
{
233+
typ: statementTypeDDL,
234+
stmts: []string{
235+
"CREATE TABLE table_name (\n\t\t\tid STRING(255) NOT NULL,\n\t\t) PRIMARY KEY(id)",
236+
"CREATE INDEX table_name_id_idx ON table_name (id)",
237+
},
238+
},
239+
},
240+
},
241+
{
242+
name: "multi statement, inline comment inside DML",
243+
multiStatement: `CREATE TABLE table_name (
244+
id STRING(255 /* inline comment */) NOT NULL,
245+
) PRIMARY KEY(id);
246+
247+
CREATE INDEX table_name_id_idx ON table_name (id);`,
248+
expected: []*statementGroup{
249+
{
250+
typ: statementTypeDDL,
251+
stmts: []string{
252+
"CREATE TABLE table_name (\n\t\t\tid STRING(255) NOT NULL,\n\t\t) PRIMARY KEY(id)",
219253
"CREATE INDEX table_name_id_idx ON table_name (id)",
220254
},
221255
},
@@ -229,7 +263,7 @@ func Test_statementGroups(t *testing.T) {
229263
{
230264
typ: statementTypeDDL,
231265
stmts: []string{
232-
"ALTER TABLE users ALTER COLUMN created\n SET OPTIONS (allow_commit_timestamp=true)",
266+
"ALTER TABLE users ALTER COLUMN created\n\t\t\tSET OPTIONS (allow_commit_timestamp=true)",
233267
},
234268
},
235269
},
@@ -244,7 +278,7 @@ func Test_statementGroups(t *testing.T) {
244278
{
245279
typ: statementTypeDDL,
246280
stmts: []string{
247-
"CREATE TABLE table_name (\n id STRING(255) NOT NULL,\n sum NUMERIC,\n ) PRIMARY KEY (id)",
281+
"CREATE TABLE table_name (\n\t\t\t\tid STRING(255) NOT NULL,\n\t\t\t\tsum NUMERIC,\n\t\t\t) PRIMARY KEY (id)",
248282
},
249283
},
250284
},

0 commit comments

Comments
 (0)