mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-11 02:59:34 -06:00
More refactoring
This commit is contained in:
@@ -27,6 +27,7 @@ import (
|
||||
"syscall"
|
||||
|
||||
"github.com/abiosoft/readline"
|
||||
"github.com/dolthub/dolt/go/libraries/utils/filesys"
|
||||
sqle "github.com/dolthub/go-mysql-server"
|
||||
"github.com/dolthub/go-mysql-server/auth"
|
||||
"github.com/dolthub/go-mysql-server/sql"
|
||||
@@ -257,17 +258,17 @@ func (cmd SqlCmd) Exec(ctx context.Context, commandStr string, args []string, dE
|
||||
}
|
||||
|
||||
if multiStatementMode {
|
||||
verr := execMultiStatements(ctx, dEnv, continueOnError, mrEnv, os.Stdin, format)
|
||||
verr := execMultiStatements(ctx, dEnv.Config, dEnv.FS, continueOnError, mrEnv, os.Stdin, format)
|
||||
if verr != nil {
|
||||
return HandleVErrAndExitCode(verr, usage)
|
||||
}
|
||||
} else if runInBatchMode {
|
||||
verr := execBatch(ctx, dEnv, continueOnError, mrEnv, os.Stdin, format)
|
||||
verr := execBatch(ctx, dEnv.Config, dEnv.FS, continueOnError, mrEnv, os.Stdin, format)
|
||||
if verr != nil {
|
||||
return HandleVErrAndExitCode(verr, usage)
|
||||
}
|
||||
} else {
|
||||
verr := execShell(ctx, dEnv, mrEnv, format)
|
||||
verr := execShell(ctx, dEnv.Config, dEnv.FS, mrEnv, format)
|
||||
if verr != nil {
|
||||
return HandleVErrAndExitCode(verr, usage)
|
||||
}
|
||||
@@ -290,11 +291,7 @@ func listSavedQueriesMode(ctx context.Context, initialRoots map[string]*doltdb.R
|
||||
}
|
||||
|
||||
query := "SELECT * FROM " + doltdb.DoltQueryCatalogTableName
|
||||
verr := execQuery(ctx, dEnv, mrEnv, query, format)
|
||||
if verr != nil {
|
||||
return HandleVErrAndExitCode(verr, usage)
|
||||
}
|
||||
return 0
|
||||
return HandleVErrAndExitCode(execQuery(ctx, dEnv.Config, dEnv.FS, mrEnv, query, format), usage)
|
||||
}
|
||||
|
||||
func savedQueryMode(ctx context.Context, initialRoots map[string]*doltdb.RootValue, currentDb string, savedQueryName string, usage cli.UsagePrinter, dEnv *env.DoltEnv, mrEnv *env.MultiRepoEnv, format resultFormat) int {
|
||||
@@ -305,12 +302,7 @@ func savedQueryMode(ctx context.Context, initialRoots map[string]*doltdb.RootVal
|
||||
}
|
||||
|
||||
cli.PrintErrf("Executing saved query '%s':\n%s\n", savedQueryName, sq.Query)
|
||||
verr := execQuery(ctx, dEnv, mrEnv, sq.Query, format)
|
||||
if verr != nil {
|
||||
return HandleVErrAndExitCode(verr, usage)
|
||||
}
|
||||
|
||||
return 0
|
||||
return HandleVErrAndExitCode(execQuery(ctx, dEnv.Config, dEnv.FS, mrEnv, sq.Query, format), usage)
|
||||
}
|
||||
|
||||
func queryMode(ctx context.Context, dEnv *env.DoltEnv, apr *argparser.ArgParseResults, query string, continueOnError bool, mrEnv *env.MultiRepoEnv, format resultFormat, usage cli.UsagePrinter, initialRoots map[string]*doltdb.RootValue, currentDb string) int {
|
||||
@@ -319,18 +311,18 @@ func queryMode(ctx context.Context, dEnv *env.DoltEnv, apr *argparser.ArgParseRe
|
||||
|
||||
if multiStatementMode {
|
||||
batchInput := strings.NewReader(query)
|
||||
verr := execMultiStatements(ctx, dEnv, continueOnError, mrEnv, batchInput, format)
|
||||
verr := execMultiStatements(ctx, dEnv.Config, dEnv.FS, continueOnError, mrEnv, batchInput, format)
|
||||
if verr != nil {
|
||||
return HandleVErrAndExitCode(verr, usage)
|
||||
}
|
||||
} else if batchMode {
|
||||
batchInput := strings.NewReader(query)
|
||||
verr := execBatch(ctx, dEnv, continueOnError, mrEnv, batchInput, format)
|
||||
verr := execBatch(ctx, dEnv.Config, dEnv.FS, continueOnError, mrEnv, batchInput, format)
|
||||
if verr != nil {
|
||||
return HandleVErrAndExitCode(verr, usage)
|
||||
}
|
||||
} else {
|
||||
verr := execQuery(ctx, dEnv, mrEnv, query, format)
|
||||
verr := execQuery(ctx, dEnv.Config, dEnv.FS, mrEnv, query, format)
|
||||
if verr != nil {
|
||||
return HandleVErrAndExitCode(verr, usage)
|
||||
}
|
||||
@@ -379,7 +371,8 @@ func getMultiRepoEnv(ctx context.Context, apr *argparser.ArgParseResults, dEnv *
|
||||
|
||||
func execShell(
|
||||
ctx context.Context,
|
||||
dEnv *env.DoltEnv,
|
||||
config *env.DoltCliConfig,
|
||||
fs filesys.Filesys,
|
||||
mrEnv *env.MultiRepoEnv,
|
||||
format resultFormat,
|
||||
) errhand.VerboseError {
|
||||
@@ -387,7 +380,7 @@ func execShell(
|
||||
if err != nil {
|
||||
return errhand.VerboseErrorFromError(err)
|
||||
}
|
||||
se, err := newSqlEngine(ctx, dEnv, format, dbs...)
|
||||
se, err := newSqlEngine(ctx, config, fs, format, dbs...)
|
||||
if err != nil {
|
||||
return errhand.VerboseErrorFromError(err)
|
||||
}
|
||||
@@ -401,7 +394,8 @@ func execShell(
|
||||
|
||||
func execBatch(
|
||||
ctx context.Context,
|
||||
dEnv *env.DoltEnv,
|
||||
config *env.DoltCliConfig,
|
||||
fs filesys.Filesys,
|
||||
continueOnErr bool,
|
||||
mrEnv *env.MultiRepoEnv,
|
||||
batchInput io.Reader,
|
||||
@@ -412,7 +406,7 @@ func execBatch(
|
||||
return errhand.VerboseErrorFromError(err)
|
||||
}
|
||||
|
||||
se, err := newSqlEngine(ctx, dEnv, format, dbs...)
|
||||
se, err := newSqlEngine(ctx, config, fs, format, dbs...)
|
||||
if err != nil {
|
||||
return errhand.VerboseErrorFromError(err)
|
||||
}
|
||||
@@ -445,7 +439,8 @@ func execBatch(
|
||||
|
||||
func execMultiStatements(
|
||||
ctx context.Context,
|
||||
dEnv *env.DoltEnv,
|
||||
config *env.DoltCliConfig,
|
||||
fs filesys.Filesys,
|
||||
continueOnErr bool,
|
||||
mrEnv *env.MultiRepoEnv,
|
||||
batchInput io.Reader,
|
||||
@@ -455,7 +450,7 @@ func execMultiStatements(
|
||||
if err != nil {
|
||||
return errhand.VerboseErrorFromError(err)
|
||||
}
|
||||
se, err := newSqlEngine(ctx, dEnv, format, dbs...)
|
||||
se, err := newSqlEngine(ctx, config, fs, format, dbs...)
|
||||
if err != nil {
|
||||
return errhand.VerboseErrorFromError(err)
|
||||
}
|
||||
@@ -483,7 +478,8 @@ func newDatabase(name string, dEnv *env.DoltEnv) dsqle.Database {
|
||||
|
||||
func execQuery(
|
||||
ctx context.Context,
|
||||
dEnv *env.DoltEnv,
|
||||
config *env.DoltCliConfig,
|
||||
fs filesys.Filesys,
|
||||
mrEnv *env.MultiRepoEnv,
|
||||
query string,
|
||||
format resultFormat,
|
||||
@@ -492,7 +488,7 @@ func execQuery(
|
||||
if err != nil {
|
||||
return errhand.VerboseErrorFromError(err)
|
||||
}
|
||||
se, err := newSqlEngine(ctx, dEnv, format, dbs...)
|
||||
se, err := newSqlEngine(ctx, config, fs, format, dbs...)
|
||||
if err != nil {
|
||||
return errhand.VerboseErrorFromError(err)
|
||||
}
|
||||
@@ -1443,7 +1439,8 @@ var ErrDBNotFoundKind = errors.NewKind("database '%s' not found")
|
||||
// sqlEngine packages up the context necessary to run sql queries against sqle.
|
||||
func newSqlEngine(
|
||||
ctx context.Context,
|
||||
dEnv *env.DoltEnv,
|
||||
config *env.DoltCliConfig,
|
||||
fs filesys.Filesys,
|
||||
format resultFormat,
|
||||
dbs ...dsqle.SqlDatabase,
|
||||
) (*sqlEngine, error) {
|
||||
@@ -1454,7 +1451,7 @@ func newSqlEngine(
|
||||
infoDB := information_schema.NewInformationSchemaDatabase()
|
||||
all := append(dsqleDBsAsSqlDBs(dbs), infoDB)
|
||||
|
||||
pro := dsqle.NewDoltDatabaseProvider(dEnv.Config, dEnv.FS, all...)
|
||||
pro := dsqle.NewDoltDatabaseProvider(config, fs, all...)
|
||||
|
||||
engine := sqle.New(analyzer.NewBuilder(pro).WithParallelism(parallelism).Build(), &sqle.Config{Auth: au})
|
||||
|
||||
@@ -1479,7 +1476,7 @@ func newSqlEngine(
|
||||
}
|
||||
|
||||
// TODO: not having user and email for this command should probably be an error or warning, it disables certain functionality
|
||||
sess, err := dsess.NewDoltSession(sql.NewEmptyContext(), sql.NewBaseSession(), pro, dEnv.Config, dbStates...)
|
||||
sess, err := dsess.NewDoltSession(sql.NewEmptyContext(), sql.NewBaseSession(), pro, config, dbStates...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user