best I got

This commit is contained in:
James Cor
2022-07-13 12:38:21 -07:00
parent 3455828f2b
commit fc28171ddc
12 changed files with 33 additions and 45 deletions
+1 -1
View File
@@ -370,7 +370,7 @@ func getInitialDBStateWithDefaultBranch(ctx context.Context, db dsqle.SqlDatabas
// NewSqlEngineForEnv returns a SqlEngine configured for the environment provided, with a single root user
func NewSqlEngineForEnv(ctx context.Context, dEnv *env.DoltEnv) (*SqlEngine, error) {
mrEnv, err := env.MultiEnvForDirectory(ctx, dEnv.FS, dEnv)
mrEnv, err := env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
if err != nil {
return nil, err
}
+1 -1
View File
@@ -242,7 +242,7 @@ func rebaseSqlEngine(ctx context.Context, dEnv *env.DoltEnv, cm *doltdb.Commit)
opts := editor.Options{Deaf: dEnv.DbEaFactory(), Tempdir: dEnv.TempTableFilesDir()}
db := dsqle.NewDatabase(dbName, dEnv.DbData(), opts)
mrEnv, err := env.MultiEnvForDirectory(ctx, dEnv.FS, dEnv)
mrEnv, err := env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
if err != nil {
return nil, nil, err
}
+1 -1
View File
@@ -449,7 +449,7 @@ func getMultiRepoEnv(ctx context.Context, apr *argparser.ArgParseResults, dEnv *
return nil, errhand.VerboseErrorFromError(err)
}
mrEnv, err := env.MultiEnvForDirectory(ctx, fs, dEnv)
mrEnv, err := env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), fs, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
if err != nil {
return nil, errhand.VerboseErrorFromError(err)
}
+1 -1
View File
@@ -98,7 +98,7 @@ func Serve(
}
// TODO: this should be the global config, probably?
mrEnv, err = env.MultiEnvForDirectory(ctx, fs, dEnv)
mrEnv, err = env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), fs, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
if err != nil {
return err, nil
}
+20 -32
View File
@@ -17,7 +17,6 @@ package env
import (
"context"
"fmt"
"net/url"
"os"
"path/filepath"
"strings"
@@ -230,48 +229,37 @@ func getRepoRootDir(path, pathSeparator string) string {
// MultiEnvForDirectory returns a MultiRepoEnv for the directory rooted at the file system given
func MultiEnvForDirectory(
ctx context.Context,
config config.ReadWriteConfig,
fs filesys.Filesys,
dEnv *DoltEnv,
version string,
ignoreLockFile bool,
oldDEnv *DoltEnv, // TODO: eventually get rid of this
) (*MultiRepoEnv, error) {
mrEnv := &MultiRepoEnv{
envs: make([]NamedEnv, 0),
fs: fs,
cfg: dEnv.Config.WriteableConfig(),
ignoreLockFile: dEnv.IgnoreLockFile,
cfg: config,
ignoreLockFile: ignoreLockFile,
}
if dEnv.Valid() && fs == dEnv.FS {
dbName := "dolt"
if dEnv.RSLoadErr != nil {
return nil, fmt.Errorf("error loading environment: %s", dEnv.RSLoadErr.Error())
} else if dEnv.DBLoadError != nil {
return nil, fmt.Errorf("error loading environment: %s", dEnv.DBLoadError.Error())
} else if dEnv.CfgLoadErr != nil {
return nil, fmt.Errorf("error loading environment: %s", dEnv.CfgLoadErr.Error())
}
u, err := earl.Parse(dEnv.urlStr)
// add method to filesys interface to convert path to url?
// Load current fs and put into mr env
var dEnv *DoltEnv
var dbName string
if _, ok := fs.(*filesys.InMemFS); ok {
dbName = "dolt"
dEnv = oldDEnv
} else {
path, err := fs.Abs("")
if err != nil {
return nil, err
}
envName := getRepoRootDir(path, string(os.PathSeparator))
dbName = dirToDBName(envName)
dEnv = Load(ctx, GetCurrentUserHomeDir, fs, doltdb.LocalDirDoltDB, version)
}
if u.Scheme == dbfactory.FileScheme {
path, err := url.PathUnescape(u.Path)
if err != nil {
return nil, err
}
path, err = dEnv.FS.Abs(path)
if err != nil {
return nil, err
}
dirName := getRepoRootDir(path, string(os.PathSeparator))
if dirName != "" {
dbName = dirToDBName(dirName)
}
}
if dEnv.Valid() {
mrEnv.AddEnv(dbName, dEnv)
}
+2 -2
View File
@@ -104,7 +104,7 @@ func TestMultiEnvForDirectory(t *testing.T) {
envPath := filepath.Join(rootPath, " test---name _ 123")
dEnv := initRepoWithRelativePath(t, envPath, hdp)
mrEnv, err := MultiEnvForDirectory(context.Background(), dEnv.FS, dEnv)
mrEnv, err := MultiEnvForDirectory(context.Background(), dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
require.NoError(t, err)
assert.Len(t, mrEnv.envs, 1)
@@ -124,7 +124,7 @@ func TestMultiEnvForDirectoryWithMultipleRepos(t *testing.T) {
subEnv1 := initRepoWithRelativePath(t, filepath.Join(envPath, "abc"), hdp)
subEnv2 := initRepoWithRelativePath(t, filepath.Join(envPath, "def"), hdp)
mrEnv, err := MultiEnvForDirectory(context.Background(), dEnv.FS, dEnv)
mrEnv, err := MultiEnvForDirectory(context.Background(), dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
require.NoError(t, err)
assert.Len(t, mrEnv.envs, 3)
@@ -39,7 +39,7 @@ type sqlEngineTableReader struct {
}
func NewSqlEngineReader(ctx context.Context, dEnv *env.DoltEnv, tableName string) (*sqlEngineTableReader, error) {
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.FS, dEnv)
mrEnv, err := env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
if err != nil {
return nil, err
}
@@ -65,7 +65,7 @@ type SqlEngineTableWriter struct {
}
func NewSqlEngineTableWriter(ctx context.Context, dEnv *env.DoltEnv, createTableSchema, rowOperationSchema schema.Schema, options *MoverOptions, statsCB noms.StatsCB) (*SqlEngineTableWriter, error) {
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.FS, dEnv)
mrEnv, err := env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
if err != nil {
return nil, err
}
@@ -73,7 +73,7 @@ var _ enginetest.ValidatingHarness = (*DoltHarness)(nil)
func newDoltHarness(t *testing.T) *DoltHarness {
dEnv := dtestutils.CreateTestEnv()
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.FS, dEnv)
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
require.NoError(t, err)
b := env.GetDefaultInitBranch(dEnv.Config)
pro := sqle.NewDoltDatabaseProvider(b, mrEnv.FileSystem())
@@ -322,7 +322,7 @@ func (d *DoltHarness) NewDatabaseProvider(dbs ...sql.Database) sql.MutableDataba
// NewDatabases must be called before NewDatabaseProvider, we grab the DoltEnvs
// previously created by NewDatabases and re-add them to the new MultiRepoEnv.
dEnv := dtestutils.CreateTestEnv()
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.FS, dEnv)
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
require.NoError(d.t, err)
d.multiRepoEnv = mrEnv
for _, db := range dbs {
@@ -94,7 +94,7 @@ func setupIndexes(t *testing.T, tableName, insertQuery string) (*sqle.Engine, *e
cols: idxv2v1Cols,
}
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.FS, dEnv)
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
require.NoError(t, err)
b := env.GetDefaultInitBranch(dEnv.Config)
pro := dsqle.NewDoltDatabaseProvider(b, mrEnv.FileSystem(), db)
@@ -308,7 +308,7 @@ func schemaToSchemaString(sch sql.Schema) (string, error) {
func sqlNewEngine(dEnv *env.DoltEnv) (*sqle.Engine, error) {
opts := editor.Options{Deaf: dEnv.DbEaFactory(), Tempdir: dEnv.TempTableFilesDir()}
db := dsql.NewDatabase("dolt", dEnv.DbData(), opts)
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.FS, dEnv)
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
if err != nil {
return nil, err
}
@@ -111,7 +111,7 @@ func setupBenchmark(t *testing.B, dEnv *env.DoltEnv) (*sql.Context, *engine.SqlE
Autocommit: true,
}
mrEnv, err := env.MultiEnvForDirectory(context.Background(), dEnv.FS, dEnv)
mrEnv, err := env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), dEnv.FS, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
require.NoError(t, err)
eng, err := engine.NewSqlEngine(ctx, mrEnv, engine.FormatNull, config)