mirror of
https://github.com/nalgeon/redka.git
synced 2025-12-24 12:38:00 +08:00
refactor: rkey - hardcode initial key version
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
})
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user