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

Function TestTx_PrefixSearchScan_NotFound

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

Source from the content-addressed store, hash-verified

769}
770
771func TestTx_PrefixSearchScan_NotFound(t *testing.T) {
772 regs := "(.+)"
773 bucket := "bucket_prefix_search_scan_test"
774
775 t.Run("prefix search in empty bucket", func(t *testing.T) {
776 withDefaultDB(t, func(t *testing.T, db *DB) {
777 txCreateBucket(t, db, DataStructureBTree, bucket, nil)
778
779 tx, err := db.Begin(false)
780 require.NoError(t, err)
781
782 prefix := []byte("key_")
783 _, err = tx.PrefixSearchScan("foobucket", prefix, regs, 0, 10)
784 assert.Error(t, err)
785
786 assert.NoError(t, tx.Commit())
787 })
788 })
789
790 t.Run("prefix search scan", func(t *testing.T) {
791 withDefaultDB(t, func(t *testing.T, db *DB) {
792 { // set up the data
793 txCreateBucket(t, db, DataStructureBTree, bucket, nil)
794
795 tx, err = db.Begin(true) // write tx begin
796 require.NoError(t, err)
797
798 for i := 0; i <= 10; i++ {
799 key := []byte("key_" + fmt.Sprintf("%07d", i))
800 val := []byte("val" + fmt.Sprintf("%07d", i))
801
802 err := tx.Put(bucket, key, val, Persistent)
803 assert.NoError(t, err)
804 }
805 // tx commit
806 assert.NoError(t, tx.Commit())
807 }
808
809 { // no key exists in bucket
810 tx, err := db.Begin(false)
811 require.NoError(t, err)
812
813 prefix := []byte("key_foo")
814 _, err = tx.PrefixSearchScan(bucket, prefix, regs, 0, 10)
815 assert.Error(t, err)
816
817 assert.NoError(t, tx.Rollback())
818 }
819
820 { // scan by closed tx
821 tx, err := db.Begin(false)
822 require.NoError(t, err)
823
824 assert.NoError(t, tx.Commit())
825
826 _, err = tx.PrefixSearchScan(bucket, []byte("key_"), regs, 0, 10)
827 assert.Error(t, err)
828 }

Callers

nothing calls this directly

Calls 9

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

Tested by

no test coverage detected