mirror of
https://github.com/dolthub/dolt.git
synced 2026-04-26 03:30:09 -05:00
best I got
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user