From e12fba3f6cdbed3b8b6c2da1a935a92eb78b9ceb Mon Sep 17 00:00:00 2001 From: Asdine El Hrychy Date: Sat, 27 Jul 2019 12:38:32 +0200 Subject: [PATCH] Add query.TableSelector methods to genji table --- db.go | 10 ++++++++++ db_test.go | 41 +++++++++++------------------------------ 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/db.go b/db.go index 8c036c91..a62c5dbf 100644 --- a/db.go +++ b/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 +} diff --git a/db_test.go b/db_test.go index 906a1105..ef8048ba 100644 --- a/db_test.go +++ b/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)