Skip to content

Commit

Permalink
revert much of the interface refactors
Browse files Browse the repository at this point in the history
  • Loading branch information
max-hoffman committed May 21, 2024
1 parent 738257a commit 5bf8b94
Show file tree
Hide file tree
Showing 9 changed files with 25 additions and 41 deletions.
2 changes: 1 addition & 1 deletion go/libraries/doltcore/merge/schema_merge_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1626,7 +1626,7 @@ func makeRootWithTable(t *testing.T, ddb *doltdb.DoltDB, eo editor.Options, tbl
require.NoError(t, err)
noop := func(ctx *sql.Context, dbName string, root doltdb.RootValue) (err error) { return }
sess := writer.NewWriteSession(ddb.Format(), ws, gst, eo)
wr, err := sess.GetTableWriter(sql.NewContext(ctx), dt, doltdb.TableName{Name: tbl.ns.name}, "test", noop)
wr, err := sess.GetTableWriter(sql.NewContext(ctx), doltdb.TableName{Name: tbl.ns.name}, "test", noop)
require.NoError(t, err)

sctx := sql.NewEmptyContext()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -758,18 +758,8 @@ func getTableWriter(ctx *sql.Context, engine *gms.Engine, tableName, databaseNam

ds := dsess.DSessFromSess(ctx.Session)
setter := ds.SetWorkingRoot

table, _, err := engine.Analyzer.Catalog.Table(ctx, databaseName, tableName)
if err != nil {
return nil, nil, err
}

dTab, err := table.(*sqle.WritableDoltTable).DoltTable.DoltTable(ctx)
if err != nil {
return nil, nil, err
}

tableWriter, err := writeSession.GetTableWriter(ctx, dTab, doltdb.TableName{Name: tableName}, databaseName, setter)

tableWriter, err := writeSession.GetTableWriter(ctx, doltdb.TableName{Name: tableName}, databaseName, setter)
if err != nil {
return nil, nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion go/libraries/doltcore/sqle/dsess/table_writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import (
// It's responsible for creating and managing the lifecycle of TableWriter's.
type WriteSession interface {
// GetTableWriter creates a TableWriter and adds it to the WriteSession.
GetTableWriter(ctx *sql.Context, t *doltdb.Table, table doltdb.TableName, db string, setter SessionRootSetter) (TableWriter, error)
GetTableWriter(ctx *sql.Context, table doltdb.TableName, db string, setter SessionRootSetter) (TableWriter, error)

// GetWorkingSet returns the session's current working set.
GetWorkingSet() *doltdb.WorkingSet
Expand Down
7 changes: 1 addition & 6 deletions go/libraries/doltcore/sqle/dtables/docs_table.go
Original file line number Diff line number Diff line change
Expand Up @@ -258,12 +258,7 @@ func (iw *docsWriter) StatementBegin(ctx *sql.Context) {
}

if ws := dbState.WriteSession(); ws != nil {
table, _, err := ws.GetWorkingSet().WorkingRoot().GetTable(ctx, doltdb.TableName{Name: doltdb.DocTableName})
if err != nil {
iw.errDuringStatementBegin = err
return
}
tableWriter, err := ws.GetTableWriter(ctx, table, doltdb.TableName{Name: doltdb.DocTableName}, dbName, dSess.SetWorkingRoot)
tableWriter, err := ws.GetTableWriter(ctx, doltdb.TableName{Name: doltdb.DocTableName}, dbName, dSess.SetWorkingRoot)
if err != nil {
iw.errDuringStatementBegin = err
return
Expand Down
7 changes: 1 addition & 6 deletions go/libraries/doltcore/sqle/dtables/ignore_table.go
Original file line number Diff line number Diff line change
Expand Up @@ -274,12 +274,7 @@ func (iw *ignoreWriter) StatementBegin(ctx *sql.Context) {
}

if ws := dbState.WriteSession(); ws != nil {
table, _, err := ws.GetWorkingSet().WorkingRoot().GetTable(ctx, doltdb.TableName{Name: doltdb.IgnoreTableName})
if err != nil {
iw.errDuringStatementBegin = err
return
}
tableWriter, err := ws.GetTableWriter(ctx, table, doltdb.TableName{Name: doltdb.IgnoreTableName}, dbName, dSess.SetWorkingRoot)
tableWriter, err := ws.GetTableWriter(ctx, doltdb.TableName{Name: doltdb.IgnoreTableName}, dbName, dSess.SetWorkingRoot)
if err != nil {
iw.errDuringStatementBegin = err
return
Expand Down
10 changes: 3 additions & 7 deletions go/libraries/doltcore/sqle/tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -595,12 +595,8 @@ func (t *WritableDoltTable) getTableEditor(ctx *sql.Context) (ed dsess.TableWrit
}

setter := ds.SetWorkingRoot
dTab, err := t.DoltTable.DoltTable(ctx)
if err != nil {
return nil, err
}

ed, err = writeSession.GetTableWriter(ctx, dTab, doltdb.TableName{Name: t.tableName}, t.db.RevisionQualifiedName(), setter)
ed, err = writeSession.GetTableWriter(ctx, doltdb.TableName{Name: t.tableName}, t.db.RevisionQualifiedName(), setter)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -1717,7 +1713,7 @@ func (t *AlterableDoltTable) RewriteInserter(
opts.ForeignKeyChecksDisabled = true
writeSession := writer.NewWriteSession(dt.Format(), newWs, ait, opts)

ed, err := writeSession.GetTableWriter(ctx, dt, doltdb.TableName{Name: t.Name(), Schema: t.db.schemaName}, t.db.RevisionQualifiedName(), sess.SetWorkingRoot)
ed, err := writeSession.GetTableWriter(ctx, doltdb.TableName{Name: t.Name(), Schema: t.db.schemaName}, t.db.RevisionQualifiedName(), sess.SetWorkingRoot)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -1766,7 +1762,7 @@ func fullTextRewriteEditor(
opts.ForeignKeyChecksDisabled = true
writeSession := writer.NewWriteSession(dt.Format(), newWs, ait, opts)

parentEditor, err := writeSession.GetTableWriter(ctx, dt, doltdb.TableName{Name: t.Name(), Schema: t.db.schemaName}, t.db.RevisionQualifiedName(), sess.SetWorkingRoot)
parentEditor, err := writeSession.GetTableWriter(ctx, doltdb.TableName{Name: t.Name(), Schema: t.db.schemaName}, t.db.RevisionQualifiedName(), sess.SetWorkingRoot)
if err != nil {
return nil, err
}
Expand Down
4 changes: 2 additions & 2 deletions go/libraries/doltcore/sqle/temp_table.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ func NewTempTable(
opts: opts,
}

tempTable.ed, err = writeSession.GetTableWriter(ctx, tbl, doltdb.TableName{Name: name}, db, setTempTableRoot(tempTable))
tempTable.ed, err = writeSession.GetTableWriter(ctx, doltdb.TableName{Name: name}, db, setTempTableRoot(tempTable))
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -166,7 +166,7 @@ func setTempTableRoot(t *TempTable) func(ctx *sql.Context, dbName string, newRoo
}

writeSession := writer.NewWriteSession(newTable.Format(), newWs, ait, t.opts)
t.ed, err = writeSession.GetTableWriter(ctx, t.table, doltdb.TableName{Name: t.tableName}, t.dbName, setTempTableRoot(t))
t.ed, err = writeSession.GetTableWriter(ctx, doltdb.TableName{Name: t.tableName}, t.dbName, setTempTableRoot(t))
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion go/libraries/doltcore/sqle/writer/noms_write_session.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func (s *nomsWriteSession) GetWorkingSet() *doltdb.WorkingSet {
return s.workingSet
}

func (s *nomsWriteSession) GetTableWriter(ctx *sql.Context, _ *doltdb.Table, table doltdb.TableName, db string, setter dsess.SessionRootSetter) (dsess.TableWriter, error) {
func (s *nomsWriteSession) GetTableWriter(ctx *sql.Context, table doltdb.TableName, db string, setter dsess.SessionRootSetter) (dsess.TableWriter, error) {
s.mut.Lock()
defer s.mut.Unlock()

Expand Down
18 changes: 13 additions & 5 deletions go/libraries/doltcore/sqle/writer/prolly_write_session.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
package writer

import (
"fmt"
"sync"

"github.com/dolthub/go-mysql-server/sql"
Expand Down Expand Up @@ -44,17 +43,26 @@ func (s *prollyWriteSession) GetWorkingSet() *doltdb.WorkingSet {
}

// GetTableWriter implemented WriteSession.
func (s *prollyWriteSession) GetTableWriter(ctx *sql.Context, t *doltdb.Table, tableName doltdb.TableName, db string, setter dsess.SessionRootSetter) (dsess.TableWriter, error) {
if t == nil {
return nil, fmt.Errorf("expected table to be non-nil: %s.%s", db, tableName)
}
func (s *prollyWriteSession) GetTableWriter(ctx *sql.Context, tableName doltdb.TableName, db string, setter dsess.SessionRootSetter) (dsess.TableWriter, error) {
s.mut.Lock()
defer s.mut.Unlock()

if tw, ok := s.tables[tableName]; ok {
return tw, nil
}

// XXX: certain table editors rely on this embedded working set. See
// fullTextRewriteEditor for one example, where the |ctx| maintains
// the old version of the data while fulltext indexes are rebuilt
// using this hidden empty workingSet.
t, ok, err := s.workingSet.WorkingRoot().GetTable(ctx, tableName)
if err != nil {
return nil, err
}
if !ok {
return nil, doltdb.ErrTableNotFound
}

schState, err := writerSchema(ctx, t, tableName.Name, db)
if err != nil {
return nil, err
Expand Down

0 comments on commit 5bf8b94

Please sign in to comment.