@@ -42,7 +42,7 @@ func TestInsert(t *testing.T) {
42
42
ic .Insert (is5 , 5 )
43
43
require .Equal (t , is5 , ic .GetByVersion (5 ))
44
44
require .Equal (t , is2 , ic .GetByVersion (2 ))
45
- require .Nil ( t , ic .GetBySnapshotTS (2 ))
45
+ require .Equal ( t , is2 , ic .GetBySnapshotTS (2 ))
46
46
require .Equal (t , is5 , ic .GetBySnapshotTS (10 ))
47
47
48
48
// older
@@ -59,7 +59,7 @@ func TestInsert(t *testing.T) {
59
59
require .Equal (t , is5 , ic .GetByVersion (5 ))
60
60
require .Equal (t , is2 , ic .GetByVersion (2 ))
61
61
require .Nil (t , ic .GetByVersion (0 ))
62
- require .Nil ( t , ic .GetBySnapshotTS (2 ))
62
+ require .Equal ( t , is2 , ic .GetBySnapshotTS (2 ))
63
63
require .Equal (t , is6 , ic .GetBySnapshotTS (10 ))
64
64
65
65
// replace 2, drop 2
@@ -91,7 +91,7 @@ func TestInsert(t *testing.T) {
91
91
require .Nil (t , ic .GetByVersion (2 ))
92
92
require .Nil (t , ic .GetByVersion (0 ))
93
93
require .Nil (t , ic .GetBySnapshotTS (2 ))
94
- require .Nil ( t , ic .GetBySnapshotTS (5 ))
94
+ require .Equal ( t , is5 , ic .GetBySnapshotTS (5 ))
95
95
require .Equal (t , is6 , ic .GetBySnapshotTS (10 ))
96
96
}
97
97
@@ -129,3 +129,61 @@ func TestGetLatest(t *testing.T) {
129
129
ic .Insert (is0 , 0 )
130
130
require .Equal (t , is2 , ic .GetLatest ())
131
131
}
132
+
133
+ func TestGetByTimestamp (t * testing.T ) {
134
+ ic := infoschema .NewCache (16 )
135
+ require .NotNil (t , ic )
136
+ require .Nil (t , ic .GetLatest ())
137
+
138
+ is1 := infoschema .MockInfoSchemaWithSchemaVer (nil , 1 )
139
+ ic .Insert (is1 , 1 )
140
+ require .Equal (t , is1 , ic .GetLatest ())
141
+ _ , err := ic .GetSchemaByTimestamp (0 )
142
+ require .NotNil (t , err )
143
+ schema , err := ic .GetSchemaByTimestamp (1 )
144
+ require .Nil (t , err )
145
+ require .Equal (t , int64 (1 ), schema .SchemaMetaVersion ())
146
+ require .Equal (t , is1 , ic .GetBySnapshotTS (1 ))
147
+ schema , err = ic .GetSchemaByTimestamp (2 )
148
+ require .Nil (t , err )
149
+ require .Equal (t , int64 (1 ), schema .SchemaMetaVersion ())
150
+ require .Equal (t , is1 , ic .GetBySnapshotTS (2 ))
151
+
152
+ is2 := infoschema .MockInfoSchemaWithSchemaVer (nil , 2 )
153
+ ic .Insert (is2 , 2 )
154
+ require .Equal (t , is2 , ic .GetLatest ())
155
+ _ , err = ic .GetSchemaByTimestamp (0 )
156
+ require .NotNil (t , err )
157
+ schema , err = ic .GetSchemaByTimestamp (1 )
158
+ require .Nil (t , err )
159
+ require .Equal (t , int64 (1 ), schema .SchemaMetaVersion ())
160
+ require .Equal (t , is1 , ic .GetBySnapshotTS (1 ))
161
+ schema , err = ic .GetSchemaByTimestamp (2 )
162
+ require .Nil (t , err )
163
+ require .Equal (t , int64 (2 ), schema .SchemaMetaVersion ())
164
+ require .Equal (t , is2 , ic .GetBySnapshotTS (2 ))
165
+ schema , err = ic .GetSchemaByTimestamp (3 )
166
+ require .Nil (t , err )
167
+ require .Equal (t , int64 (2 ), schema .SchemaMetaVersion ())
168
+ require .Equal (t , is2 , ic .GetBySnapshotTS (3 ))
169
+
170
+ is0 := infoschema .MockInfoSchemaWithSchemaVer (nil , 0 )
171
+ ic .Insert (is0 , 0 )
172
+ require .Equal (t , is2 , ic .GetLatest ())
173
+ schema , err = ic .GetSchemaByTimestamp (0 )
174
+ require .Nil (t , err )
175
+ require .Equal (t , int64 (0 ), schema .SchemaMetaVersion ())
176
+ require .Equal (t , is0 , ic .GetBySnapshotTS (0 ))
177
+ schema , err = ic .GetSchemaByTimestamp (1 )
178
+ require .Nil (t , err )
179
+ require .Equal (t , int64 (1 ), schema .SchemaMetaVersion ())
180
+ require .Equal (t , is1 , ic .GetBySnapshotTS (1 ))
181
+ schema , err = ic .GetSchemaByTimestamp (2 )
182
+ require .Nil (t , err )
183
+ require .Equal (t , int64 (2 ), schema .SchemaMetaVersion ())
184
+ require .Equal (t , is2 , ic .GetBySnapshotTS (2 ))
185
+ schema , err = ic .GetSchemaByTimestamp (3 )
186
+ require .Nil (t , err )
187
+ require .Equal (t , int64 (2 ), schema .SchemaMetaVersion ())
188
+ require .Equal (t , is2 , ic .GetBySnapshotTS (3 ))
189
+ }
0 commit comments