mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-11 02:59:34 -06:00
Added filesys to DB provider, CREATE DATABASE now fully working
This commit is contained in:
@@ -252,7 +252,7 @@ func rebaseSqlEngine(ctx context.Context, dEnv *env.DoltEnv, cm *doltdb.Commit)
|
||||
opts := editor.Options{Deaf: dEnv.DbEaFactory()}
|
||||
db := dsqle.NewDatabase(dbName, dEnv.DbData(), opts)
|
||||
|
||||
pro := dsqle.NewDoltDatabaseProvider(dEnv.Config, db)
|
||||
pro := dsqle.NewDoltDatabaseProvider(dEnv.Config, dEnv.FS, db)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
@@ -1482,7 +1482,7 @@ func newSqlEngine(
|
||||
infoDB := information_schema.NewInformationSchemaDatabase()
|
||||
all := append(dsqleDBsAsSqlDBs(dbs), infoDB)
|
||||
|
||||
pro := dsqle.NewDoltDatabaseProvider(dEnv.Config, all...)
|
||||
pro := dsqle.NewDoltDatabaseProvider(dEnv.Config, dEnv.FS, all...)
|
||||
|
||||
engine := sqle.New(analyzer.NewBuilder(pro).WithParallelism(parallelism).Build(), &sqle.Config{Auth: au})
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ func Serve(ctx context.Context, version string, serverConfig ServerConfig, serve
|
||||
return err, nil
|
||||
}
|
||||
all := append(dsqleDBsAsSqlDBs(dbs), information_schema.NewInformationSchemaDatabase())
|
||||
pro := dsqle.NewDoltDatabaseProvider(dEnv.Config, all...)
|
||||
pro := dsqle.NewDoltDatabaseProvider(dEnv.Config, dEnv.FS, all...)
|
||||
|
||||
a := analyzer.NewBuilder(pro).WithParallelism(serverConfig.QueryParallelism()).Build()
|
||||
sqlEngine := sqle.New(a, nil)
|
||||
|
||||
@@ -55,7 +55,7 @@ var _ dsess.RevisionDatabaseProvider = DoltDatabaseProvider{}
|
||||
const createDbWC = 1105 // 1105 represents an unknown error.
|
||||
|
||||
// NewDoltDatabaseProvider returns a provider for the databases given
|
||||
func NewDoltDatabaseProvider(config config.ReadableConfig, databases ...sql.Database) DoltDatabaseProvider {
|
||||
func NewDoltDatabaseProvider(config config.ReadableConfig, fs filesys.Filesys, databases ...sql.Database) DoltDatabaseProvider {
|
||||
dbs := make(map[string]sql.Database, len(databases))
|
||||
for _, db := range databases {
|
||||
dbs[strings.ToLower(db.Name())] = db
|
||||
@@ -70,6 +70,7 @@ func NewDoltDatabaseProvider(config config.ReadableConfig, databases ...sql.Data
|
||||
databases: dbs,
|
||||
functions: funcs,
|
||||
mu: &sync.RWMutex{},
|
||||
fs: fs,
|
||||
cfg: config,
|
||||
}
|
||||
}
|
||||
@@ -154,7 +155,8 @@ func (p DoltDatabaseProvider) CreateDatabase(ctx *sql.Context, name string) erro
|
||||
|
||||
// TODO: unbreak this
|
||||
newEnv := env.Load(ctx, env.GetCurrentUserHomeDir, newFs, doltdb.LocalDirDoltDB, "TODO")
|
||||
err = newEnv.InitRepo(ctx, types.Format_Default, "test", "test@test.com", "main")
|
||||
dsess := dsess.DSessFromSess(ctx.Session)
|
||||
err = newEnv.InitRepo(ctx, types.Format_Default, dsess.Username(), dsess.Email(), "main")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -173,7 +175,6 @@ func (p DoltDatabaseProvider) CreateDatabase(ctx *sql.Context, name string) erro
|
||||
db := NewDatabase(name, newEnv.DbData(), opts)
|
||||
p.databases[strings.ToLower(db.Name())] = db
|
||||
|
||||
dsess := dsess.DSessFromSess(ctx.Session)
|
||||
dbstate, err := GetInitialDBState(ctx, db)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -57,7 +57,7 @@ var _ enginetest.ReadOnlyDatabaseHarness = (*DoltHarness)(nil)
|
||||
|
||||
func newDoltHarness(t *testing.T) *DoltHarness {
|
||||
dEnv := dtestutils.CreateTestEnv()
|
||||
pro := sqle.NewDoltDatabaseProvider(dEnv.Config)
|
||||
pro := sqle.NewDoltDatabaseProvider(dEnv.Config, dEnv.FS)
|
||||
session, err := dsess.NewDoltSession(sql.NewEmptyContext(), enginetest.NewBaseSession(), pro, dEnv.Config)
|
||||
require.NoError(t, err)
|
||||
return &DoltHarness{
|
||||
@@ -193,7 +193,7 @@ func (d *DoltHarness) NewReadOnlyDatabases(names ...string) (dbs []sql.ReadOnlyD
|
||||
}
|
||||
|
||||
func (d *DoltHarness) NewDatabaseProvider(dbs ...sql.Database) sql.MutableDatabaseProvider {
|
||||
return sqle.NewDoltDatabaseProvider(d.env.Config, dbs...)
|
||||
return sqle.NewDoltDatabaseProvider(d.env.Config, d.env.FS, dbs...)
|
||||
}
|
||||
|
||||
func getDbState(t *testing.T, db sqle.Database, dEnv *env.DoltEnv) dsess.InitialDbState {
|
||||
|
||||
@@ -342,7 +342,7 @@ func schemaToSchemaString(sch sql.Schema) (string, error) {
|
||||
func sqlNewEngine(dEnv *env.DoltEnv) (*sqle.Engine, error) {
|
||||
opts := editor.Options{Deaf: dEnv.DbEaFactory()}
|
||||
db := dsql.NewDatabase("dolt", dEnv.DbData(), opts)
|
||||
pro := dsql.NewDoltDatabaseProvider(dEnv.Config, db)
|
||||
pro := dsql.NewDoltDatabaseProvider(dEnv.Config, dEnv.FS, db)
|
||||
engine := sqle.NewDefault(pro)
|
||||
|
||||
return engine, nil
|
||||
|
||||
@@ -99,7 +99,7 @@ func setupIndexes(t *testing.T, tableName, insertQuery string) (*sqle.Engine, *e
|
||||
tbl: tbl,
|
||||
editOpts: opts,
|
||||
}
|
||||
pro := NewDoltDatabaseProvider(dEnv.Config, tiDb)
|
||||
pro := NewDoltDatabaseProvider(dEnv.Config, dEnv.FS, tiDb)
|
||||
engine = sqle.NewDefault(pro)
|
||||
|
||||
// Get an updated root to use for the rest of the test
|
||||
|
||||
@@ -35,7 +35,7 @@ func PrepareCreateTableStmt(ctx context.Context, sqlDb sql.Database) (*sql.Conte
|
||||
sql.WithTracer(tracing.Tracer(ctx)))
|
||||
|
||||
var cfg config.ReadableConfig = nil
|
||||
pro := NewDoltDatabaseProvider(cfg, sqlDb)
|
||||
pro := NewDoltDatabaseProvider(cfg, nil, sqlDb)
|
||||
engine := sqle.NewDefault(pro)
|
||||
sqlCtx.SetCurrentDatabase(sqlDb.Name())
|
||||
return sqlCtx, engine, sess
|
||||
|
||||
@@ -109,7 +109,7 @@ func NewTestSQLCtx(ctx context.Context) *sql.Context {
|
||||
|
||||
// NewTestEngine creates a new default engine, and a *sql.Context and initializes indexes and schema fragments.
|
||||
func NewTestEngine(t *testing.T, dEnv *env.DoltEnv, ctx context.Context, db Database, root *doltdb.RootValue) (*sqle.Engine, *sql.Context, error) {
|
||||
engine := sqle.NewDefault(NewDoltDatabaseProvider(dEnv.Config, db))
|
||||
engine := sqle.NewDefault(NewDoltDatabaseProvider(dEnv.Config, dEnv.FS, db))
|
||||
|
||||
sqlCtx := NewTestSQLCtx(ctx)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user