From 530b5771ea74c6104b1ae84b5db95e273968bcc9 Mon Sep 17 00:00:00 2001 From: James Cor Date: Fri, 1 Nov 2024 21:02:42 -0700 Subject: [PATCH] [no-release-notes] bump planbuilder changes (#8515) --- go/cmd/dolt/commands/dump.go | 2 +- go/cmd/dolt/commands/engine/sqlengine.go | 1 + go/go.mod | 2 +- go/go.sum | 4 ++-- go/libraries/doltcore/mvdata/engine_table_reader.go | 2 +- go/libraries/doltcore/mvdata/engine_table_writer.go | 2 +- .../sqle/binlogreplication/binlog_replica_applier.go | 2 +- go/libraries/doltcore/sqle/database.go | 8 +++++++- .../doltcore/sqle/enginetest/dolt_branch_queries.go | 2 +- go/libraries/doltcore/sqle/enginetest/testgen_test.go | 3 +-- go/libraries/doltcore/sqle/expranalysis/expranalysis.go | 2 +- .../doltcore/sqle/index/mergeable_indexes_test.go | 2 +- go/libraries/doltcore/sqle/kvexec/count_agg_test.go | 2 +- go/libraries/doltcore/sqle/kvexec/lookup_join_test.go | 2 +- go/libraries/doltcore/sqle/sqlutil/schema.go | 2 +- go/libraries/doltcore/sqle/statsnoms/iter.go | 2 +- 16 files changed, 23 insertions(+), 17 deletions(-) diff --git a/go/cmd/dolt/commands/dump.go b/go/cmd/dolt/commands/dump.go index d3f6a74dbc3..b3194d06f2d 100644 --- a/go/cmd/dolt/commands/dump.go +++ b/go/cmd/dolt/commands/dump.go @@ -438,7 +438,7 @@ func dumpViews(ctx *sql.Context, engine *engine.SqlEngine, root doltdb.RootValue } // We used to store just the SELECT part of a view, but now we store the entire CREATE VIEW statement sqlEngine := engine.GetUnderlyingEngine() - binder := planbuilder.New(ctx, sqlEngine.Analyzer.Catalog, sqlEngine.Parser) + binder := planbuilder.New(ctx, sqlEngine.Analyzer.Catalog, sqlEngine.EventScheduler, sqlEngine.Parser) binder.SetParserOptions(sql.NewSqlModeFromString(sqlMode).ParserOptions()) cv, _, _, _, err := binder.Parse(row[fragColIdx].(string), nil, false) if err != nil { diff --git a/go/cmd/dolt/commands/engine/sqlengine.go b/go/cmd/dolt/commands/engine/sqlengine.go index c60b978841e..0ee6f063c4b 100644 --- a/go/cmd/dolt/commands/engine/sqlengine.go +++ b/go/cmd/dolt/commands/engine/sqlengine.go @@ -396,6 +396,7 @@ func configureEventScheduler(config *SqlEngineConfig, engine *gms.Engine, sessFa eventSchedulerPeriod = i } } + return engine.InitializeEventScheduler(getCtxFunc, config.EventSchedulerStatus, eventSchedulerPeriod) } diff --git a/go/go.mod b/go/go.mod index 4e460e84e9d..7b9c2c15d5e 100644 --- a/go/go.mod +++ b/go/go.mod @@ -57,7 +57,7 @@ require ( github.com/cespare/xxhash/v2 v2.2.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.20241101222639-f3be1d272253 + github.com/dolthub/go-mysql-server v0.18.2-0.20241101230148-2766041c6e96 github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63 github.com/dolthub/swiss v0.1.0 github.com/goccy/go-json v0.10.2 diff --git a/go/go.sum b/go/go.sum index 373bc299b66..16891bc2682 100644 --- a/go/go.sum +++ b/go/go.sum @@ -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-20240916130659-0118adc6b662 h1:aC17hZD6iwzBwwfO5M+3oBT5E5gGRiQPdn+vzpDXqIA= github.com/dolthub/go-icu-regex v0.0.0-20240916130659-0118adc6b662/go.mod h1:KPUcpx070QOfJK1gNe0zx4pA5sicIK1GMikIGLKC168= -github.com/dolthub/go-mysql-server v0.18.2-0.20241101222639-f3be1d272253 h1:DnEwYi4IiIm+apOy0L9XTOlOIdaoY9jiayhPwHPY7lE= -github.com/dolthub/go-mysql-server v0.18.2-0.20241101222639-f3be1d272253/go.mod h1:jlzVUA+tsjDw6YKbhRsCLHT3OVO6nn4BWrUanECTo3s= +github.com/dolthub/go-mysql-server v0.18.2-0.20241101230148-2766041c6e96 h1:pL21juk8jiM0qyvhjncyhC0UvNCspFlqiE9ETYmeVtc= +github.com/dolthub/go-mysql-server v0.18.2-0.20241101230148-2766041c6e96/go.mod h1:jlzVUA+tsjDw6YKbhRsCLHT3OVO6nn4BWrUanECTo3s= 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-20240701202509-2b217167d718 h1:lT7hE5k+0nkBdj/1UOSFwjWpNxf+LCApbRHgnCA17XE= diff --git a/go/libraries/doltcore/mvdata/engine_table_reader.go b/go/libraries/doltcore/mvdata/engine_table_reader.go index bb14e16d32e..ae4483c8ed1 100644 --- a/go/libraries/doltcore/mvdata/engine_table_reader.go +++ b/go/libraries/doltcore/mvdata/engine_table_reader.go @@ -67,7 +67,7 @@ func NewSqlEngineReader(ctx context.Context, dEnv *env.DoltEnv, tableName string sqlCtx.SetCurrentDatabase(mrEnv.GetFirstDatabase()) sqlEngine := se.GetUnderlyingEngine() - binder := planbuilder.New(sqlCtx, sqlEngine.Analyzer.Catalog, sqlEngine.Parser) + binder := planbuilder.New(sqlCtx, sqlEngine.Analyzer.Catalog, sqlEngine.EventScheduler, sqlEngine.Parser) ret, _, _, _, err := binder.Parse(fmt.Sprintf("show create table `%s`", tableName), nil, false) if err != nil { return nil, err diff --git a/go/libraries/doltcore/mvdata/engine_table_writer.go b/go/libraries/doltcore/mvdata/engine_table_writer.go index 791e44335dc..dc91cac6e7a 100644 --- a/go/libraries/doltcore/mvdata/engine_table_writer.go +++ b/go/libraries/doltcore/mvdata/engine_table_writer.go @@ -311,7 +311,7 @@ func (s *SqlEngineTableWriter) getInsertNode(inputChannel chan sql.Row, replace } sqlEngine := s.se.GetUnderlyingEngine() - binder := planbuilder.New(s.sqlCtx, sqlEngine.Analyzer.Catalog, sqlEngine.Parser) + binder := planbuilder.New(s.sqlCtx, sqlEngine.Analyzer.Catalog, sqlEngine.EventScheduler, sqlEngine.Parser) insert := fmt.Sprintf("insert into `%s` (%s) VALUES (%s)%s", s.tableName, colNames, values, duplicate) parsed, _, _, qFlags, err := binder.Parse(insert, nil, false) if err != nil { diff --git a/go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go b/go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go index d41f20a9a81..3833aecc6aa 100644 --- a/go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go +++ b/go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go @@ -901,7 +901,7 @@ func convertVitessJsonExpressionString(ctx *sql.Context, value sqltypes.Value) ( return nil, fmt.Errorf("unable to access running SQL server") } - binder := planbuilder.New(ctx, server.Engine.Analyzer.Catalog, server.Engine.Parser) + binder := planbuilder.New(ctx, server.Engine.Analyzer.Catalog, server.Engine.EventScheduler, server.Engine.Parser) node, _, _, qFlags, err := binder.Parse("SELECT "+strValue, nil, false) if err != nil { return nil, err diff --git a/go/libraries/doltcore/sqle/database.go b/go/libraries/doltcore/sqle/database.go index a79b92df001..57d3734ee5d 100644 --- a/go/libraries/doltcore/sqle/database.go +++ b/go/libraries/doltcore/sqle/database.go @@ -1938,7 +1938,7 @@ func (db Database) doltSchemaTableHash(ctx *sql.Context) (hash.Hash, error) { // createEventDefinitionFromFragment creates an EventDefinition instance from the schema fragment |frag|. func (db Database) createEventDefinitionFromFragment(ctx *sql.Context, frag schemaFragment) (*sql.EventDefinition, error) { - b := planbuilder.New(ctx, db.getCatalog(ctx), sql.NewMysqlParser()) + b := planbuilder.New(ctx, db.getCatalog(ctx), db.getEventScheduler(ctx), nil) b.SetParserOptions(sql.NewSqlModeFromString(frag.sqlMode).ParserOptions()) parsed, _, _, _, err := b.Parse(updateEventStatusTemporarilyForNonDefaultBranch(db.revision, frag.fragment), nil, false) if err != nil { @@ -1970,6 +1970,12 @@ func (db Database) getCatalog(ctx *sql.Context) *analyzer.Catalog { return sqle.NewDefault(doltSession.Provider()).Analyzer.Catalog } +// getEventScheduler retrieves the EventScheduler for this database +func (db Database) getEventScheduler(ctx *sql.Context) sql.EventScheduler { + doltSession := dsess.DSessFromSess(ctx.Session) + return sqle.NewDefault(doltSession.Provider()).EventScheduler +} + // SaveEvent implements sql.EventDatabase. func (db Database) SaveEvent(ctx *sql.Context, event sql.EventDefinition) (bool, error) { // If the database is NOT on the DefaultInitBranch, then we disable the event, since diff --git a/go/libraries/doltcore/sqle/enginetest/dolt_branch_queries.go b/go/libraries/doltcore/sqle/enginetest/dolt_branch_queries.go index f97a3e2cdef..9c613931571 100755 --- a/go/libraries/doltcore/sqle/enginetest/dolt_branch_queries.go +++ b/go/libraries/doltcore/sqle/enginetest/dolt_branch_queries.go @@ -603,7 +603,7 @@ func TestIndexedAccess(t *testing.T, e enginetest.QueryEngine, harness enginetes } func analyzeQuery(ctx *sql.Context, e enginetest.QueryEngine, query string) (sql.Node, error) { - binder := planbuilder.New(ctx, e.EngineAnalyzer().Catalog, sql.NewMysqlParser()) + binder := planbuilder.New(ctx, e.EngineAnalyzer().Catalog, e.EngineEventScheduler(), nil) parsed, _, _, qFlags, err := binder.Parse(query, nil, false) if err != nil { return nil, err diff --git a/go/libraries/doltcore/sqle/enginetest/testgen_test.go b/go/libraries/doltcore/sqle/enginetest/testgen_test.go index 00c9915de3d..43bb4b38fec 100644 --- a/go/libraries/doltcore/sqle/enginetest/testgen_test.go +++ b/go/libraries/doltcore/sqle/enginetest/testgen_test.go @@ -22,7 +22,6 @@ import ( "strings" "testing" - "github.com/dolthub/go-mysql-server/sql" "github.com/dolthub/go-mysql-server/sql/planbuilder" "github.com/dolthub/go-mysql-server/enginetest" @@ -48,7 +47,7 @@ func TestGenNewFormatQueryPlans(t *testing.T) { for _, tt := range queries.PlanTests { _, _ = w.WriteString("\t{\n") ctx := enginetest.NewContext(harness) - binder := planbuilder.New(ctx, engine.EngineAnalyzer().Catalog, sql.NewMysqlParser()) + binder := planbuilder.New(ctx, engine.EngineAnalyzer().Catalog, engine.EngineEventScheduler(), nil) parsed, _, _, qFlags, err := binder.Parse(tt.Query, nil, false) require.NoError(t, err) diff --git a/go/libraries/doltcore/sqle/expranalysis/expranalysis.go b/go/libraries/doltcore/sqle/expranalysis/expranalysis.go index b41a9d31449..e100978ad2c 100644 --- a/go/libraries/doltcore/sqle/expranalysis/expranalysis.go +++ b/go/libraries/doltcore/sqle/expranalysis/expranalysis.go @@ -95,7 +95,7 @@ func parseCreateTable(_ *sql.Context, tableName string, sch schema.Schema) (*pla parseCtx := sql.NewEmptyContext() parseCtx.SetCurrentDatabase("mydb") - b := planbuilder.New(parseCtx, catalog, sql.NewMysqlParser()) + b := planbuilder.New(parseCtx, catalog, nil, nil) pseudoAnalyzedQuery, _, _, _, err := b.Parse(query, nil, false) if err != nil { return nil, err diff --git a/go/libraries/doltcore/sqle/index/mergeable_indexes_test.go b/go/libraries/doltcore/sqle/index/mergeable_indexes_test.go index 0a46a9c61f1..9b522728589 100644 --- a/go/libraries/doltcore/sqle/index/mergeable_indexes_test.go +++ b/go/libraries/doltcore/sqle/index/mergeable_indexes_test.go @@ -1564,7 +1564,7 @@ func TestMergeableIndexesNulls(t *testing.T) { } func ReadRangesFromQuery(ctx *sql.Context, eng *sqle.Engine, query string) ([]*noms.ReadRange, error) { - binder := planbuilder.New(ctx, eng.Analyzer.Catalog, eng.Parser) + binder := planbuilder.New(ctx, eng.Analyzer.Catalog, eng.EventScheduler, eng.Parser) parsed, _, _, qFlags, err := binder.Parse(query, nil, false) if err != nil { return nil, err diff --git a/go/libraries/doltcore/sqle/kvexec/count_agg_test.go b/go/libraries/doltcore/sqle/kvexec/count_agg_test.go index 160ccca6436..b8df98bc771 100644 --- a/go/libraries/doltcore/sqle/kvexec/count_agg_test.go +++ b/go/libraries/doltcore/sqle/kvexec/count_agg_test.go @@ -114,7 +114,7 @@ func TestCountAgg(t *testing.T) { require.NoError(t, err) } - binder := planbuilder.New(ctx, engine.EngineAnalyzer().Catalog, engine.Parser) + binder := planbuilder.New(ctx, engine.EngineAnalyzer().Catalog, engine.EngineEventScheduler(), engine.Parser) node, _, _, qFlags, err := binder.Parse(tt.query, nil, false) require.NoError(t, err) node, err = engine.EngineAnalyzer().Analyze(ctx, node, nil, qFlags) diff --git a/go/libraries/doltcore/sqle/kvexec/lookup_join_test.go b/go/libraries/doltcore/sqle/kvexec/lookup_join_test.go index 5c794f43f8d..75878b25076 100644 --- a/go/libraries/doltcore/sqle/kvexec/lookup_join_test.go +++ b/go/libraries/doltcore/sqle/kvexec/lookup_join_test.go @@ -172,7 +172,7 @@ func TestLookupJoin(t *testing.T) { require.NoError(t, err) } - binder := planbuilder.New(ctx, engine.EngineAnalyzer().Catalog, engine.Parser) + binder := planbuilder.New(ctx, engine.EngineAnalyzer().Catalog, engine.EventScheduler, engine.Parser) node, _, _, qFlags, err := binder.Parse(tt.join, nil, false) require.NoError(t, err) node, err = engine.EngineAnalyzer().Analyze(ctx, node, nil, qFlags) diff --git a/go/libraries/doltcore/sqle/sqlutil/schema.go b/go/libraries/doltcore/sqle/sqlutil/schema.go index 8bd7eb427a3..b7c8a646325 100644 --- a/go/libraries/doltcore/sqle/sqlutil/schema.go +++ b/go/libraries/doltcore/sqle/sqlutil/schema.go @@ -30,7 +30,7 @@ import ( // ParseCreateTableStatement will parse a CREATE TABLE ddl statement and use it to create a Dolt Schema. A RootValue // is used to generate unique tags for the Schema func ParseCreateTableStatement(ctx *sql.Context, root doltdb.RootValue, engine *sqle.Engine, query string) (string, schema.Schema, error) { - binder := planbuilder.New(ctx, engine.Analyzer.Catalog, engine.Parser) + binder := planbuilder.New(ctx, engine.Analyzer.Catalog, engine.EventScheduler, engine.Parser) parsed, _, _, _, err := binder.Parse(query, nil, false) if err != nil { return "", nil, err diff --git a/go/libraries/doltcore/sqle/statsnoms/iter.go b/go/libraries/doltcore/sqle/statsnoms/iter.go index 8dc9b8161da..685b497582b 100644 --- a/go/libraries/doltcore/sqle/statsnoms/iter.go +++ b/go/libraries/doltcore/sqle/statsnoms/iter.go @@ -47,7 +47,7 @@ func NewStatsIter(ctx *sql.Context, m prolly.Map) (*statsIter, error) { kb: keyBuilder, vb: valueBuilder, ns: ns, - planb: planbuilder.New(ctx, nil, sql.NewMysqlParser()), + planb: planbuilder.New(ctx, nil, nil, nil), }, nil }