| 219 | } |
| 220 | |
| 221 | func getUncommittedUpdateInSameTransaction() { |
| 222 | log.Println("start run: Get uncommitted update in same transaction") |
| 223 | currBucket := "bucketForTransactionNew" |
| 224 | key := []byte("testkey") |
| 225 | val1 := []byte("value1") |
| 226 | val2 := []byte("value2") |
| 227 | must := func(f func() error) { |
| 228 | if err := f(); err != nil { |
| 229 | panic(err) |
| 230 | } |
| 231 | } |
| 232 | if err := db.Update(func(tx *nutsdb.Tx) (err error) { |
| 233 | must(func() error { |
| 234 | return tx.NewKVBucket(currBucket) |
| 235 | }) |
| 236 | must(func() error { |
| 237 | return tx.Put(currBucket, key, val1, 0) |
| 238 | }) |
| 239 | vcurr, err := tx.Get(currBucket, key) |
| 240 | log.Printf("expect value is '%v', value is '%v', %v", string(val1), string(vcurr), err) |
| 241 | return |
| 242 | }); err != nil { |
| 243 | log.Printf("failed update: %v", err) |
| 244 | return |
| 245 | } |
| 246 | if err := db.Update(func(tx *nutsdb.Tx) (err error) { |
| 247 | must(func() error { |
| 248 | return tx.Put(currBucket, key, val2, 0) |
| 249 | }) |
| 250 | vcurr, err := tx.Get(currBucket, key) |
| 251 | log.Printf("expect value is '%v', value is '%v', %v", string(val2), string(vcurr), err) |
| 252 | return |
| 253 | }); err != nil { |
| 254 | log.Printf("failed update: %v", err) |
| 255 | return |
| 256 | } |
| 257 | } |