MCPcopy Create free account
hub / github.com/nutsdb/nutsdb / TestTx_PrefixScan_NotFound

Function TestTx_PrefixScan_NotFound

tx_btree_test.go:699–769  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

697}
698
699func TestTx_PrefixScan_NotFound(t *testing.T) {
700 t.Run("prefix scan in empty bucket", func(t *testing.T) {
701 withDefaultDB(t, func(t *testing.T, db *DB) {
702 txCreateBucket(t, db, DataStructureBTree, bucket, nil)
703
704 tx, err := db.Begin(false)
705 assert.NoError(t, err)
706
707 prefix := []byte("key_")
708 entries, err := tx.PrefixScan("foobucket", prefix, 0, 10)
709 assert.Error(t, err)
710 assert.Empty(t, entries)
711
712 assert.NoError(t, tx.Commit()) // tx commit
713 })
714 })
715
716 t.Run("prefix scan", func(t *testing.T) {
717 bucket := "bucket_prefix_scan_test"
718
719 withDefaultDB(t, func(t *testing.T, db *DB) {
720 { // write tx begin
721 txCreateBucket(t, db, DataStructureBTree, bucket, nil)
722
723 tx, err := db.Begin(true)
724 require.NoError(t, err)
725
726 for i := 0; i <= 10; i++ {
727 key := []byte("key_" + fmt.Sprintf("%07d", i))
728 val := []byte("val" + fmt.Sprintf("%07d", i))
729 err = tx.Put(bucket, key, val, Persistent)
730 assert.NoError(t, err)
731 }
732
733 assert.NoError(t, tx.Commit()) // tx commit
734 }
735
736 {
737 tx, err = db.Begin(false)
738 require.NoError(t, err)
739
740 prefix := []byte("key_foo")
741 entries, err := tx.PrefixScan(bucket, prefix, 0, 10)
742 assert.Error(t, err)
743 assert.NoError(t, tx.Commit())
744
745 assert.Empty(t, entries)
746 }
747
748 {
749 tx, err = db.Begin(false)
750 require.NoError(t, err)
751
752 entries, err := tx.PrefixScan(bucket, []byte("key_"), 0, 10)
753 assert.NoError(t, err)
754 assert.NoError(t, tx.Commit())
755
756 assert.NotEmpty(t, entries)

Callers

nothing calls this directly

Calls 8

withDefaultDBFunction · 0.85
txCreateBucketFunction · 0.85
RunMethod · 0.80
BeginMethod · 0.80
CommitMethod · 0.80
PrefixScanMethod · 0.65
ErrorMethod · 0.45
PutMethod · 0.45

Tested by

no test coverage detected