Adding the challenge 0303

This commit is contained in:
2026-07-31 20:30:42 +02:00
parent 185ba1878e
commit 8a50f55782
15 changed files with 966 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
package db0303
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestTableByPKey(t *testing.T) {
db := DB{}
db.KV.log.FileName = ".test_db"
defer os.Remove(db.KV.log.FileName)
os.Remove(db.KV.log.FileName)
err := db.Open()
assert.Nil(t, err)
defer db.Close()
schema := &Schema{
Table: "link",
Cols: []Column{
{Name: "time", Type: TypeI64},
{Name: "src", Type: TypeStr},
{Name: "dst", Type: TypeStr},
},
PKey: []int{1, 2}, // (src, dst)
}
row := Row{
Cell{Type: TypeI64, I64: 123},
Cell{Type: TypeStr, Str: []byte("a")},
Cell{Type: TypeStr, Str: []byte("b")},
}
ok, err := db.Select(schema, row)
assert.True(t, !ok && err == nil)
updated, err := db.Insert(schema, row)
assert.True(t, updated && err == nil)
out := Row{
Cell{},
Cell{Type: TypeStr, Str: []byte("a")},
Cell{Type: TypeStr, Str: []byte("b")},
}
ok, err = db.Select(schema, out)
assert.True(t, ok && err == nil)
assert.Equal(t, row, out)
row[0].I64 = 456
updated, err = db.Update(schema, row)
assert.True(t, updated && err == nil)
ok, err = db.Select(schema, out)
assert.True(t, ok && err == nil)
assert.Equal(t, row, out)
deleted, err := db.Delete(schema, row)
assert.True(t, deleted && err == nil)
ok, err = db.Select(schema, row)
assert.True(t, !ok && err == nil)
}
// QzBQWVJJOUhU https://trialofcode.org/