yl32940 před 3 týdny
rodič
revize
e4d05284e3
1 změnil soubory, kde provedl 46 přidání a 0 odebrání
  1. 46 0
      DB/core/zz_scanpkid_drill_test.go

+ 46 - 0
DB/core/zz_scanpkid_drill_test.go

@@ -0,0 +1,46 @@
+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)
+}