@@ -19,19 +19,19 @@ func Test_TxBegin(t *testing.T) {
19
19
Engine : memory .NewMemory (),
20
20
}
21
21
22
- tx1 , err := mvcc .Begin ()
22
+ tx1 , err := mvcc .Begin (false )
23
23
assert .Nil (t , err )
24
24
assert .Equal (t , TXID (1 ), tx1 .State .TxID )
25
25
assert .Equal (t , map [TXID ]struct {}{}, tx1 .State .ActiveTx )
26
26
27
- tx2 , err := mvcc .Begin ()
27
+ tx2 , err := mvcc .Begin (false )
28
28
assert .Nil (t , err )
29
29
assert .Equal (t , TXID (2 ), tx2 .State .TxID )
30
30
assert .Equal (t , map [TXID ]struct {}{
31
31
TXID (1 ): {},
32
32
}, tx2 .State .ActiveTx )
33
33
34
- tx3 , err := mvcc .Begin ()
34
+ tx3 , err := mvcc .Begin (false )
35
35
assert .Nil (t , err )
36
36
assert .Equal (t , TXID (3 ), tx3 .State .TxID )
37
37
assert .Equal (t , map [TXID ]struct {}{
@@ -42,7 +42,7 @@ func Test_TxBegin(t *testing.T) {
42
42
err = tx2 .Commit ()
43
43
assert .Nil (t , err )
44
44
45
- tx4 , err := mvcc .Begin ()
45
+ tx4 , err := mvcc .Begin (false )
46
46
assert .Nil (t , err )
47
47
assert .Equal (t , TXID (4 ), tx4 .State .TxID )
48
48
assert .Equal (t , map [TXID ]struct {}{
@@ -57,18 +57,18 @@ func Test_GetSet(t *testing.T) {
57
57
Engine : memory .NewMemory (),
58
58
}
59
59
60
- tx1 , err := mvcc .Begin ()
60
+ tx1 , err := mvcc .Begin (false )
61
61
62
62
assert .Nil (t , err )
63
63
assert .Nil (t , tx1 .Set ("a" , []byte {1 }))
64
64
assert .Nil (t , tx1 .Set ("b" , []byte {1 }))
65
65
assert .Nil (t , tx1 .Commit ())
66
66
67
- tx2 , err := mvcc .Begin ()
67
+ tx2 , err := mvcc .Begin (false )
68
68
assert .Nil (t , err )
69
- tx3 , err := mvcc .Begin ()
69
+ tx3 , err := mvcc .Begin (false )
70
70
assert .Nil (t , err )
71
- tx4 , err := mvcc .Begin ()
71
+ tx4 , err := mvcc .Begin (false )
72
72
assert .Nil (t , err )
73
73
74
74
assert .Nil (t , tx2 .Set ("a" , []byte {2 }))
@@ -90,7 +90,7 @@ func Test_GetSet(t *testing.T) {
90
90
assert .Nil (t , err )
91
91
assert .Equal (t , []byte {3 }, ret ) // tx2 can see it's self
92
92
93
- tx5 , err := mvcc .Begin ()
93
+ tx5 , err := mvcc .Begin (false )
94
94
assert .Nil (t , err )
95
95
ret , err = tx5 .Get ("a" )
96
96
assert .Nil (t , err )
@@ -108,7 +108,7 @@ func Test_GetSet(t *testing.T) {
108
108
assert .Nil (t , tx3 .Commit ())
109
109
110
110
// all txs are commited, so tx6 can see the latest data version
111
- tx6 , err := mvcc .Begin ()
111
+ tx6 , err := mvcc .Begin (true )
112
112
assert .Nil (t , err )
113
113
ret , err = tx6 .Get ("a" )
114
114
assert .Nil (t , err )
@@ -129,18 +129,18 @@ func Test_delete_conflict(t *testing.T) {
129
129
Engine : memory .NewMemory (),
130
130
}
131
131
132
- tx1 , err := mvcc .Begin ()
132
+ tx1 , err := mvcc .Begin (false )
133
133
assert .Nil (t , err )
134
134
assert .Nil (t , tx1 .Set ("a" , []byte {1 }))
135
135
136
- tx2 , err := mvcc .Begin ()
136
+ tx2 , err := mvcc .Begin (false )
137
137
assert .Nil (t , err )
138
138
139
- tx3 , err := mvcc .Begin ()
139
+ tx3 , err := mvcc .Begin (false )
140
140
assert .Nil (t , err )
141
141
assert .Nil (t , tx3 .Set ("c" , []byte {3 }))
142
142
143
- tx4 , err := mvcc .Begin ()
143
+ tx4 , err := mvcc .Begin (false )
144
144
assert .Nil (t , err )
145
145
assert .Nil (t , tx4 .Set ("d" , []byte {4 }))
146
146
assert .Nil (t , tx4 .Commit ())
@@ -157,24 +157,24 @@ func Test_get_isolation(t *testing.T) {
157
157
Engine : memory .NewMemory (),
158
158
}
159
159
160
- tx1 , err := mvcc .Begin ()
160
+ tx1 , err := mvcc .Begin (false )
161
161
assert .Nil (t , err )
162
162
assert .Nil (t , tx1 .Set ("a" , []byte {1 }))
163
163
assert .Nil (t , tx1 .Set ("b" , []byte {1 }))
164
164
assert .Nil (t , tx1 .Set ("d" , []byte {1 }))
165
165
assert .Nil (t , tx1 .Set ("e" , []byte {1 }))
166
166
assert .Nil (t , tx1 .Commit ())
167
167
168
- tx2 , err := mvcc .Begin ()
168
+ tx2 , err := mvcc .Begin (false )
169
169
assert .Nil (t , err )
170
170
assert .Nil (t , tx2 .Set ("a" , []byte {2 }))
171
171
assert .Nil (t , tx2 .Delete ("b" ))
172
172
assert .Nil (t , tx2 .Set ("c" , []byte {2 }))
173
173
174
- tx3 , err := mvcc .Begin ()
174
+ tx3 , err := mvcc .Begin (true )
175
175
assert .Nil (t , err )
176
176
177
- tx4 , err := mvcc .Begin ()
177
+ tx4 , err := mvcc .Begin (false )
178
178
assert .Nil (t , err )
179
179
assert .Nil (t , tx4 .Set ("d" , []byte {4 }))
180
180
assert .Nil (t , tx2 .Delete ("e" ))
@@ -200,15 +200,15 @@ func Test_get_isolation(t *testing.T) {
200
200
assert .Nil (t , err )
201
201
assert .Equal (t , []byte {}, ret )
202
202
203
- assert .Nil (t , tx3 .RollBack ())
203
+ assert .ErrorIs (t , tx3 .RollBack (), ErrorReadOnly )
204
204
}
205
205
206
206
func Test_set (t * testing.T ) {
207
207
mvcc := MVCC {
208
208
Lock : & sync.Mutex {},
209
209
Engine : memory .NewMemory (),
210
210
}
211
- tx0 , err := mvcc .Begin ()
211
+ tx0 , err := mvcc .Begin (false )
212
212
assert .Nil (t , err )
213
213
assert .Nil (t , tx0 .Set ("a" , []byte {0 }))
214
214
assert .Nil (t , tx0 .Set ("a" , []byte {0 }))
@@ -220,13 +220,13 @@ func Test_set_conflict(t *testing.T) {
220
220
Lock : & sync.Mutex {},
221
221
Engine : memory .NewMemory (),
222
222
}
223
- tx1 , err := mvcc .Begin ()
223
+ tx1 , err := mvcc .Begin (false )
224
224
assert .Nil (t , err )
225
- tx2 , err := mvcc .Begin ()
225
+ tx2 , err := mvcc .Begin (false )
226
226
assert .Nil (t , err )
227
- tx3 , err := mvcc .Begin ()
227
+ tx3 , err := mvcc .Begin (false )
228
228
assert .Nil (t , err )
229
- tx4 , err := mvcc .Begin ()
229
+ tx4 , err := mvcc .Begin (false )
230
230
assert .Nil (t , err )
231
231
232
232
assert .Nil (t , tx1 .Set ("a" , []byte {1 }))
@@ -244,19 +244,19 @@ func Test_rollback(t *testing.T) {
244
244
Lock : & sync.Mutex {},
245
245
Engine : memory .NewMemory (),
246
246
}
247
- tx0 , err := mvcc .Begin ()
247
+ tx0 , err := mvcc .Begin (false )
248
248
assert .Nil (t , err )
249
249
assert .Nil (t , tx0 .Set ("a" , []byte {0 }))
250
250
assert .Nil (t , tx0 .Set ("b" , []byte {0 }))
251
251
assert .Nil (t , tx0 .Set ("c" , []byte {0 }))
252
252
assert .Nil (t , tx0 .Set ("d" , []byte {0 }))
253
253
assert .Nil (t , tx0 .Commit ())
254
254
255
- tx1 , err := mvcc .Begin ()
255
+ tx1 , err := mvcc .Begin (false )
256
256
assert .Nil (t , err )
257
- tx2 , err := mvcc .Begin ()
257
+ tx2 , err := mvcc .Begin (false )
258
258
assert .Nil (t , err )
259
- tx3 , err := mvcc .Begin ()
259
+ tx3 , err := mvcc .Begin (false )
260
260
assert .Nil (t , err )
261
261
262
262
assert .Nil (t , tx1 .Set ("a" , []byte {1 }))
@@ -269,7 +269,7 @@ func Test_rollback(t *testing.T) {
269
269
270
270
assert .Nil (t , tx2 .RollBack ())
271
271
272
- tx4 , err := mvcc .Begin ()
272
+ tx4 , err := mvcc .Begin (true )
273
273
assert .Nil (t , err )
274
274
ret , err := tx4 .Get ("a" )
275
275
assert .Nil (t , err )
@@ -289,7 +289,7 @@ func Test_rollback(t *testing.T) {
289
289
assert .Nil (t , tx1 .Commit ())
290
290
assert .Nil (t , tx3 .Commit ())
291
291
292
- tx5 , err := mvcc .Begin ()
292
+ tx5 , err := mvcc .Begin (true )
293
293
assert .Nil (t , err )
294
294
ret , err = tx5 .Get ("a" )
295
295
assert .Nil (t , err )
@@ -310,11 +310,11 @@ func Test_dirty_write(t *testing.T) {
310
310
Lock : & sync.Mutex {},
311
311
Engine : memory .NewMemory (),
312
312
}
313
- tx1 , err := mvcc .Begin ()
313
+ tx1 , err := mvcc .Begin (false )
314
314
assert .Nil (t , err )
315
315
assert .Nil (t , tx1 .Set ("a" , []byte {0 }))
316
316
317
- tx2 , err := mvcc .Begin ()
317
+ tx2 , err := mvcc .Begin (false )
318
318
assert .Nil (t , err )
319
319
assert .ErrorIs (t , tx2 .Set ("a" , []byte {1 }), ErrorSerialization )
320
320
}
@@ -324,11 +324,11 @@ func Test_dirty_read(t *testing.T) {
324
324
Lock : & sync.Mutex {},
325
325
Engine : memory .NewMemory (),
326
326
}
327
- tx1 , err := mvcc .Begin ()
327
+ tx1 , err := mvcc .Begin (false )
328
328
assert .Nil (t , err )
329
329
assert .Nil (t , tx1 .Set ("a" , []byte {0 }))
330
330
331
- tx2 , err := mvcc .Begin ()
331
+ tx2 , err := mvcc .Begin (false )
332
332
assert .Nil (t , err )
333
333
ret , err := tx2 .Get ("a" )
334
334
assert .Nil (t , err )
@@ -340,9 +340,9 @@ func Test_lost_update(t *testing.T) {
340
340
Lock : & sync.Mutex {},
341
341
Engine : memory .NewMemory (),
342
342
}
343
- tx1 , err := mvcc .Begin ()
343
+ tx1 , err := mvcc .Begin (false )
344
344
assert .Nil (t , err )
345
- tx2 , err := mvcc .Begin ()
345
+ tx2 , err := mvcc .Begin (false )
346
346
assert .Nil (t , err )
347
347
348
348
_ , err = tx1 .Get ("a" )
@@ -353,21 +353,22 @@ func Test_lost_update(t *testing.T) {
353
353
assert .Nil (t , tx1 .Set ("a" , []byte {0 }))
354
354
assert .ErrorIs (t , tx2 .Set ("a" , []byte {1 }), ErrorSerialization )
355
355
assert .Nil (t , tx1 .Commit ())
356
+ assert .Nil (t , tx2 .RollBack ())
356
357
}
357
358
358
- func Test_fuzzt_read (t * testing.T ) {
359
+ func Test_fuzzy_read (t * testing.T ) {
359
360
mvcc := MVCC {
360
361
Lock : & sync.Mutex {},
361
362
Engine : memory .NewMemory (),
362
363
}
363
- tx0 , err := mvcc .Begin ()
364
+ tx0 , err := mvcc .Begin (false )
364
365
assert .Nil (t , err )
365
366
assert .Nil (t , tx0 .Set ("a" , []byte {0 }))
366
367
assert .Nil (t , tx0 .Commit ())
367
368
368
- tx1 , err := mvcc .Begin ()
369
+ tx1 , err := mvcc .Begin (false )
369
370
assert .Nil (t , err )
370
- tx2 , err := mvcc .Begin ()
371
+ tx2 , err := mvcc .Begin (false )
371
372
assert .Nil (t , err )
372
373
373
374
ret , err := tx2 .Get ("a" )
@@ -388,15 +389,15 @@ func Test_read_skew(t *testing.T) {
388
389
Lock : & sync.Mutex {},
389
390
Engine : memory .NewMemory (),
390
391
}
391
- tx0 , err := mvcc .Begin ()
392
+ tx0 , err := mvcc .Begin (false )
392
393
assert .Nil (t , err )
393
394
assert .Nil (t , tx0 .Set ("a" , []byte {0 }))
394
395
assert .Nil (t , tx0 .Set ("b" , []byte {0 }))
395
396
assert .Nil (t , tx0 .Commit ())
396
397
397
- tx1 , err := mvcc .Begin ()
398
+ tx1 , err := mvcc .Begin (true )
398
399
assert .Nil (t , err )
399
- tx2 , err := mvcc .Begin ()
400
+ tx2 , err := mvcc .Begin (false )
400
401
assert .Nil (t , err )
401
402
402
403
ret , err := tx1 .Get ("a" )
@@ -418,15 +419,15 @@ func Test_write_skew(t *testing.T) {
418
419
Lock : & sync.Mutex {},
419
420
Engine : memory .NewMemory (),
420
421
}
421
- tx0 , err := mvcc .Begin ()
422
+ tx0 , err := mvcc .Begin (false )
422
423
assert .Nil (t , err )
423
424
assert .Nil (t , tx0 .Set ("a" , []byte {0 }))
424
425
assert .Nil (t , tx0 .Set ("b" , []byte {0 }))
425
426
assert .Nil (t , tx0 .Commit ())
426
427
427
- tx1 , err := mvcc .Begin ()
428
+ tx1 , err := mvcc .Begin (false )
428
429
assert .Nil (t , err )
429
- tx2 , err := mvcc .Begin ()
430
+ tx2 , err := mvcc .Begin (false )
430
431
assert .Nil (t , err )
431
432
432
433
ret , err := tx1 .Get ("a" )
0 commit comments