@@ -54,21 +54,23 @@ func TestOpenAndReload(t *testing.T) {
54
54
db := fakesqldb .New (t )
55
55
defer db .Close ()
56
56
schematest .AddDefaultQueries (db )
57
- db .AddQueryPattern (baseShowTablesPattern ,
58
- & sqltypes.Result {
59
- Fields : mysql .BaseShowTablesFields ,
60
- RowsAffected : 0 ,
61
- InsertID : 0 ,
62
- Rows : [][]sqltypes.Value {
63
- mysql .BaseShowTablesRow ("test_table_01" , false , "" ),
64
- mysql .BaseShowTablesRow ("test_table_02" , false , "" ),
65
- mysql .BaseShowTablesRow ("test_table_03" , false , "" ),
66
- mysql .BaseShowTablesRow ("seq" , false , "vitess_sequence" ),
67
- mysql .BaseShowTablesRow ("msg" , false , "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30" ),
68
- },
69
- SessionStateChanges : "" ,
70
- StatusFlags : 0 ,
71
- })
57
+
58
+ db .RejectQueryPattern (baseShowTablesPattern , "Opening schema engine should query tables without size information" )
59
+
60
+ db .AddQuery ("SELECT table_name, table_type, unix_timestamp(create_time), table_comment FROM information_schema.tables WHERE table_schema = database()" , & sqltypes.Result {
61
+ Fields : mysql .BaseShowTablesFields ,
62
+ RowsAffected : 0 ,
63
+ InsertID : 0 ,
64
+ Rows : [][]sqltypes.Value {
65
+ mysql .BaseShowTablesRow ("test_table_01" , false , "" ),
66
+ mysql .BaseShowTablesRow ("test_table_02" , false , "" ),
67
+ mysql .BaseShowTablesRow ("test_table_03" , false , "" ),
68
+ mysql .BaseShowTablesRow ("seq" , false , "vitess_sequence" ),
69
+ mysql .BaseShowTablesRow ("msg" , false , "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30" ),
70
+ },
71
+ SessionStateChanges : "" ,
72
+ StatusFlags : 0 ,
73
+ })
72
74
73
75
// advance to one second after the default 1427325875.
74
76
db .AddQuery ("select unix_timestamp()" , sqltypes .MakeTestResult (sqltypes .MakeTestFields (
@@ -84,8 +86,8 @@ func TestOpenAndReload(t *testing.T) {
84
86
85
87
want := initialSchema ()
86
88
mustMatch (t , want , se .GetSchema ())
87
- assert .Equal (t , int64 (100 ), se .tableFileSizeGauge .Counts ()["msg" ])
88
- assert .Equal (t , int64 (150 ), se .tableAllocatedSizeGauge .Counts ()["msg" ])
89
+ assert .Equal (t , int64 (0 ), se .tableFileSizeGauge .Counts ()["msg" ])
90
+ assert .Equal (t , int64 (0 ), se .tableAllocatedSizeGauge .Counts ()["msg" ])
89
91
90
92
// Advance time some more.
91
93
db .AddQuery ("select unix_timestamp()" , sqltypes .MakeTestResult (sqltypes .MakeTestFields (
@@ -116,6 +118,9 @@ func TestOpenAndReload(t *testing.T) {
116
118
mysql .BaseShowTablesRow ("seq" , false , "vitess_sequence" ),
117
119
},
118
120
})
121
+
122
+ db .AddRejectedQuery ("SELECT table_name, table_type, unix_timestamp(create_time), table_comment FROM information_schema.tables WHERE table_schema = database()" , fmt .Errorf ("Reloading schema engine should query tables with size information" ))
123
+
119
124
db .MockQueriesForTable ("test_table_03" , & sqltypes.Result {
120
125
Fields : []* querypb.Field {{
121
126
Name : "pk1" ,
@@ -171,6 +176,15 @@ func TestOpenAndReload(t *testing.T) {
171
176
172
177
assert .EqualValues (t , secondReadRowsValue , se .innoDbReadRowsCounter .Get ())
173
178
179
+ want ["seq" ].FileSize = 100
180
+ want ["seq" ].AllocatedSize = 150
181
+
182
+ want ["test_table_01" ].FileSize = 100
183
+ want ["test_table_01" ].AllocatedSize = 150
184
+
185
+ want ["test_table_02" ].FileSize = 100
186
+ want ["test_table_02" ].AllocatedSize = 150
187
+
174
188
want ["test_table_03" ] = & Table {
175
189
Name : sqlparser .NewIdentifierCS ("test_table_03" ),
176
190
Fields : []* querypb.Field {{
@@ -228,6 +242,17 @@ func TestOpenAndReload(t *testing.T) {
228
242
mysql .BaseShowTablesRow ("seq" , false , "vitess_sequence" ),
229
243
},
230
244
})
245
+
246
+ db .AddQuery ("SELECT table_name, table_type, unix_timestamp(create_time), table_comment FROM information_schema.tables WHERE table_schema = database()" , & sqltypes.Result {
247
+ Fields : mysql .BaseShowTablesFields ,
248
+ Rows : [][]sqltypes.Value {
249
+ mysql .BaseShowTablesRow ("test_table_01" , false , "" ),
250
+ mysql .BaseShowTablesRow ("test_table_02" , false , "" ),
251
+ mysql .BaseShowTablesRow ("test_table_04" , false , "" ),
252
+ mysql .BaseShowTablesRow ("seq" , false , "vitess_sequence" ),
253
+ },
254
+ })
255
+
231
256
db .AddQuery (mysql .BaseShowPrimary , & sqltypes.Result {
232
257
Fields : mysql .ShowPrimaryFields ,
233
258
Rows : [][]sqltypes.Value {
@@ -251,21 +276,23 @@ func TestReloadWithSwappedTables(t *testing.T) {
251
276
db := fakesqldb .New (t )
252
277
defer db .Close ()
253
278
schematest .AddDefaultQueries (db )
254
- db .AddQueryPattern (baseShowTablesPattern ,
255
- & sqltypes.Result {
256
- Fields : mysql .BaseShowTablesFields ,
257
- RowsAffected : 0 ,
258
- InsertID : 0 ,
259
- Rows : [][]sqltypes.Value {
260
- mysql .BaseShowTablesRow ("test_table_01" , false , "" ),
261
- mysql .BaseShowTablesRow ("test_table_02" , false , "" ),
262
- mysql .BaseShowTablesRow ("test_table_03" , false , "" ),
263
- mysql .BaseShowTablesRow ("seq" , false , "vitess_sequence" ),
264
- mysql .BaseShowTablesRow ("msg" , false , "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30" ),
265
- },
266
- SessionStateChanges : "" ,
267
- StatusFlags : 0 ,
268
- })
279
+
280
+ db .RejectQueryPattern (baseShowTablesPattern , "Opening schema engine should query tables without size information" )
281
+
282
+ db .AddQuery ("SELECT table_name, table_type, unix_timestamp(create_time), table_comment FROM information_schema.tables WHERE table_schema = database()" , & sqltypes.Result {
283
+ Fields : mysql .BaseShowTablesFields ,
284
+ RowsAffected : 0 ,
285
+ InsertID : 0 ,
286
+ Rows : [][]sqltypes.Value {
287
+ mysql .BaseShowTablesRow ("test_table_01" , false , "" ),
288
+ mysql .BaseShowTablesRow ("test_table_02" , false , "" ),
289
+ mysql .BaseShowTablesRow ("test_table_03" , false , "" ),
290
+ mysql .BaseShowTablesRow ("seq" , false , "vitess_sequence" ),
291
+ mysql .BaseShowTablesRow ("msg" , false , "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30" ),
292
+ },
293
+ SessionStateChanges : "" ,
294
+ StatusFlags : 0 ,
295
+ })
269
296
firstReadRowsValue := 12
270
297
AddFakeInnoDBReadRowsResult (db , firstReadRowsValue )
271
298
@@ -319,6 +346,22 @@ func TestReloadWithSwappedTables(t *testing.T) {
319
346
})
320
347
err := se .Reload (context .Background ())
321
348
require .NoError (t , err )
349
+
350
+ want ["msg" ].FileSize = 100
351
+ want ["msg" ].AllocatedSize = 150
352
+
353
+ want ["seq" ].FileSize = 100
354
+ want ["seq" ].AllocatedSize = 150
355
+
356
+ want ["test_table_01" ].FileSize = 100
357
+ want ["test_table_01" ].AllocatedSize = 150
358
+
359
+ want ["test_table_02" ].FileSize = 100
360
+ want ["test_table_02" ].AllocatedSize = 150
361
+
362
+ want ["test_table_03" ].FileSize = 100
363
+ want ["test_table_03" ].AllocatedSize = 150
364
+
322
365
want ["test_table_04" ] = & Table {
323
366
Name : sqlparser .NewIdentifierCS ("test_table_04" ),
324
367
Fields : []* querypb.Field {{
@@ -418,7 +461,7 @@ func TestOpenFailedDueToExecErr(t *testing.T) {
418
461
defer db .Close ()
419
462
schematest .AddDefaultQueries (db )
420
463
want := "injected error"
421
- db .RejectQueryPattern ( baseShowTablesPattern , want )
464
+ db .AddRejectedQuery ( "SELECT table_name, table_type, unix_timestamp(create_time), table_comment FROM information_schema.tables WHERE table_schema = database()" , fmt . Errorf ( want ) )
422
465
se := newEngine (10 , 1 * time .Second , 1 * time .Second , 0 , db )
423
466
err := se .Open ()
424
467
if err == nil || ! strings .Contains (err .Error (), want ) {
@@ -433,7 +476,7 @@ func TestOpenFailedDueToLoadTableErr(t *testing.T) {
433
476
db := fakesqldb .New (t )
434
477
defer db .Close ()
435
478
schematest .AddDefaultQueries (db )
436
- db .AddQueryPattern ( baseShowTablesPattern , & sqltypes.Result {
479
+ db .AddQuery ( "SELECT table_name, table_type, unix_timestamp(create_time), table_comment FROM information_schema.tables WHERE table_schema = database()" , & sqltypes.Result {
437
480
Fields : mysql .BaseShowTablesFields ,
438
481
Rows : [][]sqltypes.Value {
439
482
mysql .BaseShowTablesRow ("test_table" , false , "" ),
@@ -468,7 +511,7 @@ func TestOpenNoErrorDueToInvalidViews(t *testing.T) {
468
511
db := fakesqldb .New (t )
469
512
defer db .Close ()
470
513
schematest .AddDefaultQueries (db )
471
- db .AddQueryPattern ( baseShowTablesPattern , & sqltypes.Result {
514
+ db .AddQuery ( "SELECT table_name, table_type, unix_timestamp(create_time), table_comment FROM information_schema.tables WHERE table_schema = database()" , & sqltypes.Result {
472
515
Fields : mysql .BaseShowTablesFields ,
473
516
Rows : [][]sqltypes.Value {
474
517
mysql .BaseShowTablesRow ("foo_view" , true , "VIEW" ),
@@ -526,7 +569,7 @@ func TestSchemaEngineCloseTickRace(t *testing.T) {
526
569
db := fakesqldb .New (t )
527
570
defer db .Close ()
528
571
schematest .AddDefaultQueries (db )
529
- db .AddQueryPattern ( baseShowTablesPattern ,
572
+ db .AddQuery ( "SELECT table_name, table_type, unix_timestamp(create_time), table_comment FROM information_schema.tables WHERE table_schema = database()" ,
530
573
& sqltypes.Result {
531
574
Fields : mysql .BaseShowTablesFields ,
532
575
RowsAffected : 0 ,
@@ -602,8 +645,8 @@ func initialSchema() map[string]*Table {
602
645
}},
603
646
PKColumns : []int {0 },
604
647
CreateTime : 1427325875 ,
605
- FileSize : 0x64 ,
606
- AllocatedSize : 0x96 ,
648
+ FileSize : 0 ,
649
+ AllocatedSize : 0 ,
607
650
},
608
651
"test_table_02" : {
609
652
Name : sqlparser .NewIdentifierCS ("test_table_02" ),
@@ -613,8 +656,8 @@ func initialSchema() map[string]*Table {
613
656
}},
614
657
PKColumns : []int {0 },
615
658
CreateTime : 1427325875 ,
616
- FileSize : 0x64 ,
617
- AllocatedSize : 0x96 ,
659
+ FileSize : 0 ,
660
+ AllocatedSize : 0 ,
618
661
},
619
662
"test_table_03" : {
620
663
Name : sqlparser .NewIdentifierCS ("test_table_03" ),
@@ -624,8 +667,8 @@ func initialSchema() map[string]*Table {
624
667
}},
625
668
PKColumns : []int {0 },
626
669
CreateTime : 1427325875 ,
627
- FileSize : 0x64 ,
628
- AllocatedSize : 0x96 ,
670
+ FileSize : 0 ,
671
+ AllocatedSize : 0 ,
629
672
},
630
673
"seq" : {
631
674
Name : sqlparser .NewIdentifierCS ("seq" ),
@@ -645,8 +688,8 @@ func initialSchema() map[string]*Table {
645
688
}},
646
689
PKColumns : []int {0 },
647
690
CreateTime : 1427325875 ,
648
- FileSize : 0x64 ,
649
- AllocatedSize : 0x96 ,
691
+ FileSize : 0 ,
692
+ AllocatedSize : 0 ,
650
693
SequenceInfo : & SequenceInfo {},
651
694
},
652
695
"msg" : {
@@ -673,8 +716,8 @@ func initialSchema() map[string]*Table {
673
716
}},
674
717
PKColumns : []int {0 },
675
718
CreateTime : 1427325875 ,
676
- FileSize : 0x64 ,
677
- AllocatedSize : 0x96 ,
719
+ FileSize : 0 ,
720
+ AllocatedSize : 0 ,
678
721
MessageInfo : & MessageInfo {
679
722
Fields : []* querypb.Field {{
680
723
Name : "id" ,
0 commit comments