mirror of
https://github.com/chaisql/chai.git
synced 2025-10-29 01:52:52 +08:00
Add query.TableSelector methods to genji table
This commit is contained in:
10
db.go
10
db.go
@@ -263,3 +263,13 @@ func (t Table) ReIndex(fieldName string) error {
|
||||
return idx.Set(f.Data, recordID)
|
||||
})
|
||||
}
|
||||
|
||||
// SelectTable returns the current table. Implements the query.TableSelector interface.
|
||||
func (t Table) SelectTable(*Tx) (*Table, error) {
|
||||
return &t, nil
|
||||
}
|
||||
|
||||
// Name of the table.
|
||||
func (t Table) Name() string {
|
||||
return t.name
|
||||
}
|
||||
|
||||
41
db_test.go
41
db_test.go
@@ -15,10 +15,9 @@ import (
|
||||
|
||||
func TestTable(t *testing.T) {
|
||||
t.Run("Table/Insert/NoIndex", func(t *testing.T) {
|
||||
db, err := genji.New(memory.NewEngine())
|
||||
require.NoError(t, err)
|
||||
db := genji.New(memory.NewEngine())
|
||||
|
||||
err = db.Update(func(tx *genji.Tx) error {
|
||||
err := db.Update(func(tx *genji.Tx) error {
|
||||
err := tx.CreateTable("test")
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -42,11 +41,10 @@ func TestTable(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Table/Insert/WithIndex", func(t *testing.T) {
|
||||
db, err := genji.New(memory.NewEngine())
|
||||
require.NoError(t, err)
|
||||
db := genji.New(memory.NewEngine())
|
||||
defer db.Close()
|
||||
|
||||
err = db.Update(func(tx *genji.Tx) error {
|
||||
err := db.Update(func(tx *genji.Tx) error {
|
||||
err := tx.CreateTable("test")
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -80,39 +78,22 @@ func TestTable(t *testing.T) {
|
||||
|
||||
func TestTableString(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
withSchema bool
|
||||
expected string
|
||||
name string
|
||||
expected string
|
||||
}{
|
||||
{"No schema", false, `name(String): "John 0", age(Int): 10
|
||||
{"OK", `name(String): "John 0", age(Int): 10
|
||||
name(String): "John 1", age(Int): 11
|
||||
name(String): "John 2", age(Int): 12
|
||||
`},
|
||||
{"With schema", true, `name(String), age(Int)
|
||||
"John 0", 10
|
||||
"John 1", 11
|
||||
"John 2", 12
|
||||
`},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
db, err := genji.New(memory.NewEngine())
|
||||
require.NoError(t, err)
|
||||
db := genji.New(memory.NewEngine())
|
||||
|
||||
err = db.Update(func(tx *genji.Tx) error {
|
||||
if test.withSchema {
|
||||
err := tx.CreateTableWithSchema("test", &record.Schema{
|
||||
Fields: []field.Field{
|
||||
{Name: "name", Type: field.String},
|
||||
{Name: "age", Type: field.Int},
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
} else {
|
||||
err := tx.CreateTable("test")
|
||||
require.NoError(t, err)
|
||||
}
|
||||
err := db.Update(func(tx *genji.Tx) error {
|
||||
err := tx.CreateTable("test")
|
||||
require.NoError(t, err)
|
||||
|
||||
tb, err := tx.Table("test")
|
||||
require.NoError(t, err)
|
||||
|
||||
Reference in New Issue
Block a user