| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package core
- import (
- "testing"
- "time"
- "git.ycl.pub/yl32940/TsDB2/DB/core/page"
- "git.ycl.pub/yl32940/TsDB2/DB/core/types"
- )
- func TestScanPKID6ColDrill(t *testing.T) {
- db := fixOpenDB(t)
- tbl, err := db.CreateTable("t6", []types.FieldInfo{
- {FieldType: types.FieldType_Uint64, FieldName: []byte("id")},
- {FieldType: types.FieldType_DateTime, FieldName: []byte("created_at")},
- {FieldType: types.FieldType_DateTime, FieldName: []byte("updated_at")},
- {FieldType: types.FieldType_DateTime, Flag: types.FlagNullable, FieldName: []byte("deleted_at")},
- {FieldType: types.FieldType_String, Flag: types.WidthCodeFor(32) | types.FlagNullable, FieldName: []byte("title")},
- {FieldType: types.FieldType_Int64, Flag: types.FlagNullable, FieldName: []byte("port")},
- })
- if err != nil {
- t.Fatal(err)
- }
- if _, err := tbl.CreateIndex("pk", page.IndexTypePrimary, []byte{0}); err != nil {
- t.Fatal(err)
- }
- if _, err := tbl.InsertRowWithID(1, []types.FieldValue{
- {FieldName: []byte("id"), Value: uint64(1)},
- {FieldName: []byte("created_at"), Value: time.Now()},
- {FieldName: []byte("updated_at"), Value: time.Now()},
- {FieldName: []byte("deleted_at"), Value: nil},
- {FieldName: []byte("title"), Value: "原始"},
- {FieldName: []byte("port"), Value: int64(11)},
- }); err != nil {
- t.Fatal(err)
- }
- db.Commit()
- cond := And(Eq("id", uint64(1), types.FieldType(0)), IsNull("deleted_at"))
- // COUNT 路径
- cnt, err := tbl.Query().Where(cond).Count()
- t.Logf("Count=%d err=%v", cnt, err)
- // ScanWithPKID 路径
- n := 0
- err = tbl.Query().Where(cond).ScanWithPKID(func(pkID uint64, row []types.FieldValue) bool { n++; return true })
- t.Logf("ScanWithPKID=%d err=%v", n, err)
- }
|