Spanner: Add trivial sequence number generator. (#101777)

* Add trivial sequence number generator.
This commit is contained in:
Peter Štibraný
2025-03-10 17:37:44 +01:00
committed by GitHub
parent 8142aef64d
commit 9858e40a02
5 changed files with 128 additions and 15 deletions
+31
View File
@@ -0,0 +1,31 @@
package xorm
import (
"context"
"testing"
"github.com/stretchr/testify/require"
)
func TestSequenceGenerator(t *testing.T) {
eng, err := NewEngine("sqlite3", ":memory:")
require.NoError(t, err)
require.NotNil(t, eng)
require.Equal(t, "sqlite3", eng.DriverName())
_, err = eng.Exec("CREATE TABLE `autoincrement_sequences` (`name` STRING(128) NOT NULL PRIMARY KEY, `next_value` INT64 NOT NULL)")
require.NoError(t, err)
sg := newSequenceGenerator(eng.db.DB)
val, err := sg.Next(context.Background(), "test", "test")
require.NoError(t, err)
require.Equal(t, int64(1), val)
val, err = sg.Next(context.Background(), "test", "different")
require.NoError(t, err)
require.Equal(t, int64(1), val)
val, err = sg.Next(context.Background(), "test", "different")
require.NoError(t, err)
require.Equal(t, int64(2), val)
}