Skip to content

Commit

Permalink
use ctx
Browse files Browse the repository at this point in the history
  • Loading branch information
jennifersp committed May 6, 2024
1 parent 8775be2 commit e049c8a
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 20 deletions.
7 changes: 3 additions & 4 deletions go/cmd/dolt/commands/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -871,7 +871,7 @@ func getTableSchemaAtRef(queryist cli.Queryist, sqlCtx *sql.Context, tableName s
createStmt += ";"
}

sch, err = schemaFromCreateTableStmt(createStmt)
sch, err = schemaFromCreateTableStmt(sqlCtx, createStmt)
if err != nil {
return sch, createStmt, err
}
Expand All @@ -881,9 +881,8 @@ func getTableSchemaAtRef(queryist cli.Queryist, sqlCtx *sql.Context, tableName s

// schemaFromCreateTableStmt returns a schema for the CREATE TABLE statement given
// TODO: this is substantially incorrect, doesn't handle primary key ordering, probably other things too
func schemaFromCreateTableStmt(createTableStmt string) (schema.Schema, error) {
// TODO: need to use parser from the engine
parsed, err := ast.Parse(createTableStmt)
func schemaFromCreateTableStmt(ctx *sql.Context, createTableStmt string) (schema.Schema, error) {
parsed, _, _, err := ctx.Parser.Parse(ctx, createTableStmt, false)
if err != nil {
return nil, err
}
Expand Down
6 changes: 2 additions & 4 deletions go/cmd/dolt/commands/sql.go
Original file line number Diff line number Diff line change
Expand Up @@ -624,9 +624,7 @@ func execBatchMode(ctx *sql.Context, qryist cli.Queryist, input io.Reader, conti
continue
}

sqlMode := sql.LoadSqlMode(ctx)

sqlStatement, err := sqlparser.ParseWithOptions(query, sqlMode.ParserOptions())
sqlStatement, _, _, err := ctx.Parser.Parse(ctx, query, false)
if err == sqlparser.ErrEmpty {
continue
} else if err != nil {
Expand Down Expand Up @@ -1028,7 +1026,7 @@ func prepend(s string, ss []string) []string {
// processQuery processes a single query. The Root of the sqlEngine will be updated if necessary.
// Returns the schema and the row iterator for the results, which may be nil, and an error if one occurs.
func processQuery(ctx *sql.Context, query string, qryist cli.Queryist) (sql.Schema, sql.RowIter, error) {
sqlStatement, err := sqlparser.Parse(query)
sqlStatement, err := ctx.Parser.ParseSimple(query)
if err == sqlparser.ErrEmpty {
// silently skip empty statements
return nil, nil, nil
Expand Down
4 changes: 3 additions & 1 deletion go/cmd/dolt/commands/sqlserver/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ func Serve(
controller = svcs.NewController()
}

ConfigureServices(serverConfig, controller, version, dEnv)
ConfigureServices(serverConfig, controller, version, dEnv, sql.NewMysqlParser())

go controller.Start(ctx)
err := controller.WaitForStart()
Expand All @@ -100,6 +100,7 @@ func ConfigureServices(
controller *svcs.Controller,
version string,
dEnv *env.DoltEnv,
parser sql.Parser,
) {
ValidateConfigStep := &svcs.AnonService{
InitF: func(context.Context) error {
Expand Down Expand Up @@ -237,6 +238,7 @@ func ConfigureServices(
SystemVariables: serverConfig.SystemVars(),
ClusterController: clusterController,
BinlogReplicaController: binlogreplication.DoltBinlogReplicaController,
Parser: parser,
}
return nil
},
Expand Down
2 changes: 1 addition & 1 deletion go/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ require (
github.com/cespare/xxhash v1.1.0
github.com/creasty/defaults v1.6.0
github.com/dolthub/flatbuffers/v23 v23.3.3-dh.2
github.com/dolthub/go-mysql-server v0.18.2-0.20240503172935-378eaeccc4f9
github.com/dolthub/go-mysql-server v0.18.2-0.20240506163421-afdf22321b7e
github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63
github.com/dolthub/swiss v0.1.0
github.com/goccy/go-json v0.10.2
Expand Down
4 changes: 2 additions & 2 deletions go/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,8 @@ github.com/dolthub/fslock v0.0.3 h1:iLMpUIvJKMKm92+N1fmHVdxJP5NdyDK5bK7z7Ba2s2U=
github.com/dolthub/fslock v0.0.3/go.mod h1:QWql+P17oAAMLnL4HGB5tiovtDuAjdDTPbuqx7bYfa0=
github.com/dolthub/go-icu-regex v0.0.0-20230524105445-af7e7991c97e h1:kPsT4a47cw1+y/N5SSCkma7FhAPw7KeGmD6c9PBZW9Y=
github.com/dolthub/go-icu-regex v0.0.0-20230524105445-af7e7991c97e/go.mod h1:KPUcpx070QOfJK1gNe0zx4pA5sicIK1GMikIGLKC168=
github.com/dolthub/go-mysql-server v0.18.2-0.20240503172935-378eaeccc4f9 h1:3cYp7znIi2O4xjpM6sD2adoS9RJGOqb5nuH5ACz62qM=
github.com/dolthub/go-mysql-server v0.18.2-0.20240503172935-378eaeccc4f9/go.mod h1:T6EEu2iQoasR13Ovtp44yDn+rXQOBgh3BACPZMxSF/8=
github.com/dolthub/go-mysql-server v0.18.2-0.20240506163421-afdf22321b7e h1:+mb0wbieGAqsGMYvs3RolKpLgpjlda/fq+2SGrLHrcg=
github.com/dolthub/go-mysql-server v0.18.2-0.20240506163421-afdf22321b7e/go.mod h1:T6EEu2iQoasR13Ovtp44yDn+rXQOBgh3BACPZMxSF/8=
github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63 h1:OAsXLAPL4du6tfbBgK0xXHZkOlos63RdKYS3Sgw/dfI=
github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63/go.mod h1:lV7lUeuDhH5thVGDCKXbatwKy2KW80L4rMT46n+Y2/Q=
github.com/dolthub/ishell v0.0.0-20221214210346-d7db0b066488 h1:0HHu0GWJH0N6a6keStrHhUAK5/o9LVfkh44pvsV4514=
Expand Down
3 changes: 1 addition & 2 deletions go/libraries/doltcore/merge/merge_schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -1354,9 +1354,8 @@ func isCheckReferenced(sch schema.Schema, chk schema.Check) (bool, error) {
// ColumnsFromCheckDefinition retrieves the Column Names referenced by a CheckDefinition
func ColumnsFromCheckDefinition(ctx *sql.Context, def *sql.CheckDefinition) ([]string, error) {
// Evaluate the CheckDefinition to get evaluated Expression
// TODO: need to use parser from the engine
parseStr := fmt.Sprintf("select %s", def.CheckExpression)
parsed, err := ast.Parse(parseStr)
parsed, _, _, err := ctx.Parser.Parse(ctx, parseStr, false)
if err != nil {
return nil, err
}
Expand Down
13 changes: 8 additions & 5 deletions go/libraries/doltcore/sqle/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -1309,7 +1309,7 @@ func (db Database) GetViewDefinition(ctx *sql.Context, viewName string) (sql.Vie
return sql.ViewDefinition{}, false, nil
}

views, viewDef, found, err := getViewDefinitionFromSchemaFragmentsOfView(ctx, db.getCatalog(ctx), tbl.(*WritableDoltTable), viewName)
views, viewDef, found, err := getViewDefinitionFromSchemaFragmentsOfView(ctx, tbl.(*WritableDoltTable), viewName)
if err != nil {
return sql.ViewDefinition{}, false, err
}
Expand All @@ -1320,7 +1320,7 @@ func (db Database) GetViewDefinition(ctx *sql.Context, viewName string) (sql.Vie
return viewDef, found, nil
}

func getViewDefinitionFromSchemaFragmentsOfView(ctx *sql.Context, cat *analyzer.Catalog, tbl *WritableDoltTable, viewName string) ([]sql.ViewDefinition, sql.ViewDefinition, bool, error) {
func getViewDefinitionFromSchemaFragmentsOfView(ctx *sql.Context, tbl *WritableDoltTable, viewName string) ([]sql.ViewDefinition, sql.ViewDefinition, bool, error) {
fragments, err := getSchemaFragmentsOfType(ctx, tbl, viewFragment)
if err != nil {
return nil, sql.ViewDefinition{}, false, err
Expand All @@ -1330,14 +1330,17 @@ func getViewDefinitionFromSchemaFragmentsOfView(ctx *sql.Context, cat *analyzer.
var viewDef sql.ViewDefinition
var views = make([]sql.ViewDefinition, len(fragments))
for i, fragment := range fragments {
cv, _, _, err := cat.GetParser().ParseWithOptions(fragments[i].fragment, ';', false, sql.NewSqlModeFromString(fragment.sqlMode).ParserOptions())
cv, _, _, err := ctx.Parser.ParseWithOptions(fragments[i].fragment, ';', false, sql.NewSqlModeFromString(fragment.sqlMode).ParserOptions())
if err != nil {
return nil, sql.ViewDefinition{}, false, err
}

createView, ok := cv.(*sqlparser.DDL)
if ok {
selectStr := fragments[i].fragment[createView.SubStatementPositionStart:createView.SubStatementPositionEnd]
selectStr := createView.SubStatementStr
if selectStr == "" {
selectStr = fragments[i].fragment[createView.SubStatementPositionStart:createView.SubStatementPositionEnd]
}
views[i] = sql.ViewDefinition{
Name: fragments[i].name,
TextDefinition: selectStr,
Expand Down Expand Up @@ -1371,7 +1374,7 @@ func (db Database) AllViews(ctx *sql.Context) ([]sql.ViewDefinition, error) {
return nil, nil
}

views, _, _, err := getViewDefinitionFromSchemaFragmentsOfView(ctx, db.getCatalog(ctx), tbl.(*WritableDoltTable), "")
views, _, _, err := getViewDefinitionFromSchemaFragmentsOfView(ctx, tbl.(*WritableDoltTable), "")
if err != nil {
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion go/libraries/doltcore/sqle/index/key_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ func parseCreateTable(ctx *sql.Context, tableName string, sch schema.Schema) (*p
mockDatabase := memory.NewDatabase("mydb")
mockProvider := memory.NewDBProvider(mockDatabase)
catalog := analyzer.NewCatalog(mockProvider)
parseCtx := sql.NewEmptyContext()
parseCtx := sql.NewEmptyContext().WithParser(ctx.Parser)
parseCtx.SetCurrentDatabase("mydb")

b := planbuilder.New(parseCtx, catalog)
Expand Down

0 comments on commit e049c8a

Please sign in to comment.