@@ -323,3 +323,85 @@ func TestWithoutSchemeExp(t *testing.T) {
323
323
}
324
324
}
325
325
}
326
+
327
+ func TestCreateIndexExp (t * testing.T ) {
328
+ cases := []string {
329
+ "create index test0 on test.test (id)" ,
330
+ "create index test0 ON test.test (id)" ,
331
+ "CREATE INDEX test0 on `test`.test (id)" ,
332
+ "CREATE INDEX test0 ON test.test (id)" ,
333
+ "CREATE index test0 on `test`.test (id)" ,
334
+ "CREATE index test0 ON test.test (id)" ,
335
+ "create INDEX test0 on `test`.test (id)" ,
336
+ "create INDEX test0 ON test.test (id)" ,
337
+ "CREATE INDEX `test0` ON `test`.`test` (`id`) /* generated by server */" ,
338
+ "CREATE /*generated by server */ INDEX `test0` ON `test`.`test` (`id`)" ,
339
+ "CREATE INDEX `test0` ON `test`.test (id)" ,
340
+ "CREATE INDEX `test0` ON test.`test` (id)" ,
341
+ "CREATE INDEX `test0` ON test.test (`id`)" ,
342
+ "CREATE INDEX test0 ON `test`.`test` (`id`)" ,
343
+ "CREATE INDEX test0 ON `test`.`test` (id)" ,
344
+ "CREATE INDEX test0 ON test.test (`id`)" ,
345
+ }
346
+
347
+ baseTable := "test"
348
+ db := "test"
349
+ pr := parser .New ()
350
+ for _ , s := range cases {
351
+ stmts , _ , err := pr .Parse (s , "" , "" )
352
+ require .NoError (t , err )
353
+ for _ , st := range stmts {
354
+ nodes := parseStmt (st )
355
+ require .NotZero (t , nodes )
356
+ for _ , node := range nodes {
357
+ rdb := node .db
358
+ rtable := node .table
359
+ require .Equal (t , db , rdb )
360
+ require .Equal (t , baseTable , rtable )
361
+ }
362
+ }
363
+ }
364
+ }
365
+
366
+ func TestDropIndexExp (t * testing.T ) {
367
+ cases := []string {
368
+ "drop index test0 on test.test" ,
369
+ "DROP INDEX test0 ON test.test" ,
370
+ "drop INDEX test0 on test.test" ,
371
+ "DROP index test0 ON test.test" ,
372
+ "drop INDEX `test0` on `test`.`test`" ,
373
+ "drop INDEX test0 ON `test`.`test`" ,
374
+ "drop INDEX test0 on `test`.test" ,
375
+ "drop INDEX test0 on test.`test`" ,
376
+ "DROP index `test0` on `test`.`test`" ,
377
+ "DROP index test0 ON `test`.`test`" ,
378
+ "DROP index test0 on `test`.test" ,
379
+ "DROP index test0 on test.`test`" ,
380
+ "DROP INDEX `test0` ON `test`.`test` /* generated by server */" ,
381
+ "DROP /*generated by server */ INDEX `test0` ON `test`.`test`" ,
382
+ "DROP INDEX `test0` ON `test`.test" ,
383
+ "DROP INDEX `test0` ON test.`test`" ,
384
+ "DROP INDEX `test0` ON test.test" ,
385
+ "DROP INDEX test0 ON `test`.`test`" ,
386
+ "DROP INDEX test0 ON `test`.`test`" ,
387
+ "DROP INDEX test0 ON test.test" ,
388
+ }
389
+
390
+ baseTable := "test"
391
+ db := "test"
392
+ pr := parser .New ()
393
+ for _ , s := range cases {
394
+ stmts , _ , err := pr .Parse (s , "" , "" )
395
+ require .NoError (t , err )
396
+ for _ , st := range stmts {
397
+ nodes := parseStmt (st )
398
+ require .NotZero (t , nodes )
399
+ for _ , node := range nodes {
400
+ rdb := node .db
401
+ rtable := node .table
402
+ require .Equal (t , db , rdb )
403
+ require .Equal (t , baseTable , rtable )
404
+ }
405
+ }
406
+ }
407
+ }
0 commit comments