From dcd246d1152dd0aa0c01d611b6eb511b356b1b32 Mon Sep 17 00:00:00 2001 From: Anton Date: Wed, 1 May 2024 23:49:55 +0500 Subject: [PATCH] refactor: rkey - hardcode initial key version --- internal/core/core.go | 3 --- internal/rhash/tx.go | 8 ++------ internal/rkey/db_test.go | 2 +- internal/rlist/tx.go | 8 ++------ internal/rstring/tx.go | 11 +++-------- internal/rzset/inter.go | 9 ++------- internal/rzset/tx.go | 16 ++++------------ internal/rzset/union.go | 9 ++------- 8 files changed, 16 insertions(+), 50 deletions(-) diff --git a/internal/core/core.go b/internal/core/core.go index dee745f..ca7e8ce 100644 --- a/internal/core/core.go +++ b/internal/core/core.go @@ -19,9 +19,6 @@ const ( TypeZSet = TypeID(5) ) -// InitialVersion is the initial version of the key. -const InitialVersion = 1 - // Common errors returned by data structure methods. var ( ErrNotFound = errors.New("key or elem not found") diff --git a/internal/rhash/tx.go b/internal/rhash/tx.go index 725cec5..4d93eab 100644 --- a/internal/rhash/tx.go +++ b/internal/rhash/tx.go @@ -56,7 +56,7 @@ const ( sqlSet1 = ` insert into rkey (key, type, version, mtime) - values (?, 4, ?, ?) + values (?, 4, 1, ?) on conflict (key, type) do update set version = version+1, mtime = excluded.mtime @@ -441,11 +441,7 @@ func (tx *Tx) set(key string, field string, value any) error { if err != nil { return err } - args := []any{ - key, // key - core.InitialVersion, // version - time.Now().UnixMilli(), // mtime - } + args := []any{key, time.Now().UnixMilli()} var keyID int err = tx.tx.QueryRow(sqlSet1, args...).Scan(&keyID) if err != nil { diff --git a/internal/rkey/db_test.go b/internal/rkey/db_test.go index 7e6ec64..aaa7a83 100644 --- a/internal/rkey/db_test.go +++ b/internal/rkey/db_test.go @@ -234,7 +234,7 @@ func TestGet(t *testing.T) { testx.AssertEqual(t, key.ID, 1) testx.AssertEqual(t, key.Key, "name") testx.AssertEqual(t, key.Type, core.TypeString) - testx.AssertEqual(t, key.Version, core.InitialVersion) + testx.AssertEqual(t, key.Version, 1) testx.AssertEqual(t, key.ETime, (*int64)(nil)) testx.AssertEqual(t, key.MTime >= now, true) }) diff --git a/internal/rlist/tx.go b/internal/rlist/tx.go index eeb911d..b47196d 100644 --- a/internal/rlist/tx.go +++ b/internal/rlist/tx.go @@ -208,7 +208,7 @@ const ( sqlSetKey = ` insert into rkey (key, type, version, mtime) - values (?, 2, ?, ?) + values (?, 2, 1, ?) on conflict (key, type) do update set version = version+1, mtime = excluded.mtime @@ -553,11 +553,7 @@ func (tx *Tx) push(key string, elem any, query string) (int, error) { } // Set the key if it does not exist. - args := []any{ - key, // key - core.InitialVersion, // version - time.Now().UnixMilli(), // mtime - } + args := []any{key, time.Now().UnixMilli()} var keyID int err = tx.tx.QueryRow(sqlSetKey, args...).Scan(&keyID) if err != nil { diff --git a/internal/rstring/tx.go b/internal/rstring/tx.go index 4a9f276..261c880 100644 --- a/internal/rstring/tx.go +++ b/internal/rstring/tx.go @@ -22,7 +22,7 @@ const ( sqlSet1 = ` insert into rkey (key, type, version, etime, mtime) - values (?, 1, ?, ?, ?) + values (?, 1, 1, ?, ?) on conflict (key, type) do update set version = version+1, etime = excluded.etime, @@ -37,7 +37,7 @@ const ( sqlUpdate1 = ` insert into rkey (key, type, version, etime, mtime) - values (?, 1, ?, null, ?) + values (?, 1, 1, null, ?) on conflict (key, type) do update set version = version+1, mtime = excluded.mtime @@ -227,7 +227,6 @@ func set(tx sqlx.Tx, key string, value any, at time.Time) error { args := []any{ key, // key - core.InitialVersion, // version etime, // etime time.Now().UnixMilli(), // mtime } @@ -248,11 +247,7 @@ func update(tx sqlx.Tx, key string, value any) error { if err != nil { return err } - args := []any{ - key, // key - core.InitialVersion, // version - time.Now().UnixMilli(), // mtime - } + args := []any{key, time.Now().UnixMilli()} var keyID int err = tx.QueryRow(sqlUpdate1, args...).Scan(&keyID) if err != nil { diff --git a/internal/rzset/inter.go b/internal/rzset/inter.go index ee8fe70..38ab425 100644 --- a/internal/rzset/inter.go +++ b/internal/rzset/inter.go @@ -6,7 +6,6 @@ import ( "strings" "time" - "github.com/nalgeon/redka/internal/core" "github.com/nalgeon/redka/internal/sqlx" ) @@ -28,7 +27,7 @@ const ( sqlInterStore2 = ` insert into rkey (key, type, version, mtime) - values (?, 5, ?, ?) + values (?, 5, 1, ?) on conflict (key, type) do update set version = version+1, mtime = excluded.mtime @@ -163,11 +162,7 @@ func (c InterCmd) store(tx sqlx.Tx) (int, error) { } // Create the destination key. - args = []any{ - c.dest, // key - core.InitialVersion, // version - now, // mtime - } + args = []any{c.dest, now} var destID int err = tx.QueryRow(sqlInterStore2, args...).Scan(&destID) if err != nil { diff --git a/internal/rzset/tx.go b/internal/rzset/tx.go index 035066b..b8b86d1 100644 --- a/internal/rzset/tx.go +++ b/internal/rzset/tx.go @@ -12,7 +12,7 @@ import ( const ( sqlAdd1 = ` insert into rkey (key, type, version, mtime) - values (?, 5, ?, ?) + values (?, 5, 1, ?) on conflict (key, type) do update set version = version+1, mtime = excluded.mtime @@ -59,7 +59,7 @@ const ( sqlIncr1 = ` insert into rkey (key, type, version, mtime) - values (?, 5, ?, ?) + values (?, 5, 1, ?) on conflict (key, type) do update set version = version+1, mtime = excluded.mtime @@ -231,11 +231,7 @@ func (tx *Tx) Incr(key string, elem any, delta float64) (float64, error) { return 0, err } - args := []any{ - key, // key - core.InitialVersion, // version - time.Now().UnixMilli(), // mtime - } + args := []any{key, time.Now().UnixMilli()} var keyID int err = tx.tx.QueryRow(sqlIncr1, args...).Scan(&keyID) if err != nil { @@ -360,11 +356,7 @@ func (tx *Tx) add(key string, elem any, score float64) error { return err } - args := []any{ - key, // key - core.InitialVersion, // version - time.Now().UnixMilli(), // mtime - } + args := []any{key, time.Now().UnixMilli()} var keyID int err = tx.tx.QueryRow(sqlAdd1, args...).Scan(&keyID) if err != nil { diff --git a/internal/rzset/union.go b/internal/rzset/union.go index e05adb3..40d2fc4 100644 --- a/internal/rzset/union.go +++ b/internal/rzset/union.go @@ -6,7 +6,6 @@ import ( "strings" "time" - "github.com/nalgeon/redka/internal/core" "github.com/nalgeon/redka/internal/sqlx" ) @@ -27,7 +26,7 @@ const ( sqlUnionStore2 = ` insert into rkey (key, type, version, mtime) - values (?, 5, ?, ?) + values (?, 5, 1, ?) on conflict (key, type) do update set version = version+1, mtime = excluded.mtime @@ -160,11 +159,7 @@ func (c UnionCmd) store(tx sqlx.Tx) (int, error) { } // Create the destination key. - args = []any{ - c.dest, // key - core.InitialVersion, // version - now, // mtime - } + args = []any{c.dest, now} var destID int err = tx.QueryRow(sqlUnionStore2, args...).Scan(&destID) if err != nil {