From 2f0b420b35eba093a9ee7e9b9fee3226ce1d9a74 Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Mon, 9 Feb 2026 12:41:18 -0800 Subject: [PATCH 01/11] rename getIta to getIndexedTableAccess, remove unused return variable --- go/libraries/doltcore/sqle/kvexec/builder.go | 68 ++++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/go/libraries/doltcore/sqle/kvexec/builder.go b/go/libraries/doltcore/sqle/kvexec/builder.go index 620187775bc..41c4a02cb10 100644 --- a/go/libraries/doltcore/sqle/kvexec/builder.go +++ b/go/libraries/doltcore/sqle/kvexec/builder.go @@ -60,17 +60,17 @@ func (b Builder) Build(ctx *sql.Context, n sql.Node, r sql.Row) (sql.RowIter, er // (3) right-side is an index lookup, by definition // (4) the key expressions for the lookup are literals or columns (ex: no arithmetic yet) - ita, ok := getIta(n.Right()) + ita, ok := getIndexedTableAccess(n.Right()) if !ok || len(r) > 0 || !simpleLookupExpressions(ita.Expressions()) { return nil, nil } - _, _, _, dstIter, _, _, dstTags, dstFilter, err := getSourceKv(ctx, n.Right(), false) + _, _, _, dstIter, _, dstTags, dstFilter, err := getSourceKv(ctx, n.Right(), false) if err != nil || dstIter == nil { return nil, nil } - srcMap, _, srcIter, _, srcSchema, _, srcTags, srcFilter, err := getSourceKv(ctx, n.Left(), true) + srcMap, _, srcIter, _, srcSchema, srcTags, srcFilter, err := getSourceKv(ctx, n.Left(), true) if err != nil || srcSchema == nil { return nil, nil } @@ -88,7 +88,7 @@ func (b Builder) Build(ctx *sql.Context, n sql.Node, r sql.Row) (sql.RowIter, er } split := len(srcTags) - projections := append(srcTags, dstTags...) + projections := append(srcTags, dstTags...) // this isn't right -- this always assumes src rows are projected rowJoiner := newRowJoiner([]schema.Schema{srcSchema, dstIter.Schema()}, []int{split}, projections, dstIter.NodeStore()) return newLookupKvIter( srcIter, @@ -125,7 +125,7 @@ func (b Builder) Build(ctx *sql.Context, n sql.Node, r sql.Row) (sql.RowIter, er case *plan.GroupBy: if len(n.GroupByExprs) == 0 && len(n.SelectDeps) == 1 { if cnt, ok := n.SelectDeps[0].(*aggregation.Count); ok { - if _, _, srcIter, _, srcSchema, _, _, srcFilter, err := getSourceKv(ctx, n.Child, true); err == nil && srcSchema != nil && srcFilter == nil { + if _, _, srcIter, _, srcSchema, _, srcFilter, err := getSourceKv(ctx, n.Child, true); err == nil && srcSchema != nil && srcFilter == nil { iter, ok, err := newCountAggregationKvIter(srcIter, srcSchema, cnt.Child) if ok && err == nil { // (1) no grouping expressions (returns one row) @@ -143,12 +143,12 @@ func (b Builder) Build(ctx *sql.Context, n sql.Node, r sql.Row) (sql.RowIter, er return nil, nil } -func getIta(n sql.Node) (*plan.IndexedTableAccess, bool) { +func getIndexedTableAccess(n sql.Node) (*plan.IndexedTableAccess, bool) { switch n := n.(type) { case *plan.TableAlias: - return getIta(n.Child) + return getIndexedTableAccess(n.Child) case *plan.Filter: - return getIta(n.Child) + return getIndexedTableAccess(n.Child) case *plan.IndexedTableAccess: return n, true default: @@ -339,7 +339,7 @@ func getPhysicalColCount(schemas []schema.Schema, splits []int, projections []ui // getSourceKv extracts prolly table and index specific structures needed // to implement a lookup join. We return either |srcIter| or |dstIter| // depending on whether |isSrc| is true. -func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.Map, prolly.MapIter, index.SecondaryLookupIterGen, schema.Schema, schema.Schema, []uint64, sql.Expression, error) { +func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.Map, prolly.MapIter, index.SecondaryLookupIterGen, schema.Schema, []uint64, sql.Expression, error) { var table *doltdb.Table var tags []uint64 var err error @@ -352,14 +352,14 @@ func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.M case *plan.TableAlias: return getSourceKv(ctx, n.Child, isSrc) case *plan.Filter: - m, secM, mIter, destIter, s, _, t, _, err := getSourceKv(ctx, n.Child, isSrc) + m, secM, mIter, destIter, s, t, _, err := getSourceKv(ctx, n.Child, isSrc) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } - return m, secM, mIter, destIter, s, nil, t, n.Expression, nil + return m, secM, mIter, destIter, s, t, n.Expression, nil case *plan.IndexedTableAccess: if _, ok := plan.FindVirtualColumnTable(n.Table); ok { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, fmt.Errorf("virtual tables unsupported in kvexec") + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, fmt.Errorf("virtual tables unsupported in kvexec") } var lb index.IndexScanBuilder @@ -368,38 +368,38 @@ func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.M tags = dt.ProjectedTags() table, err = dt.DoltTable.DoltTable(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } lb, err = dt.LookupBuilder(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } case *sqle.IndexedDoltTable: tags = dt.ProjectedTags() table, err = dt.DoltTable.DoltTable(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } lb, err = dt.LookupBuilder(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } // case *dtables.DiffTable: // TODO: add interface to include system tables default: - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, nil + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil } rowData, err := table.GetRowData(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } if rowData.Format() != types.Format_DOLT { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, nil + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil } priMap, err = durable.ProllyMapFromIndex(rowData) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } priSch = lb.OutputSchema() @@ -407,17 +407,17 @@ func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.M if isSrc { l, _, err := n.GetLookup(ctx, nil) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } prollyRanges, err := index.ProllyRangesForIndex(ctx, l.Index, l.Ranges) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } srcIter, err = index.NewSequenceRangeIter(ctx, lb, prollyRanges, l.IsReverse) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } } else { dstIter, _ = lb.NewSecondaryIter(n.IsStrictLookup(), len(n.Expressions()), n.NullMask()) @@ -435,30 +435,30 @@ func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.M tags = dt.ProjectedTags() table, err = dt.DoltTable(ctx) default: - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, nil + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil } if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } priSch, err = table.GetSchema(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } priIndex, err := table.GetRowData(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } priMap, err = durable.ProllyMapFromIndex(priIndex) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } secMap = priMap srcIter, err = priMap.IterAll(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } if schema.IsKeyless(priSch) { @@ -466,20 +466,20 @@ func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.M } default: - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, nil + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil } if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } if priSch == nil && table != nil { priSch, err = table.GetSchema(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil, err + return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err } } - return priMap, secMap, srcIter, dstIter, priSch, nil, tags, nil, nil + return priMap, secMap, srcIter, dstIter, priSch, tags, nil, nil } // coveringNormalizer inputs a secondary index key tuple and outputs a From eaeb2f908f350d2776ecd429e18282bc855a27a3 Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Mon, 9 Feb 2026 13:04:03 -0800 Subject: [PATCH 02/11] remove secondary map return variable (never used) --- go/libraries/doltcore/sqle/kvexec/builder.go | 61 ++++++++++---------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/go/libraries/doltcore/sqle/kvexec/builder.go b/go/libraries/doltcore/sqle/kvexec/builder.go index 41c4a02cb10..76cbe9d6b6b 100644 --- a/go/libraries/doltcore/sqle/kvexec/builder.go +++ b/go/libraries/doltcore/sqle/kvexec/builder.go @@ -65,12 +65,12 @@ func (b Builder) Build(ctx *sql.Context, n sql.Node, r sql.Row) (sql.RowIter, er return nil, nil } - _, _, _, dstIter, _, dstTags, dstFilter, err := getSourceKv(ctx, n.Right(), false) + _, _, dstIter, _, dstTags, dstFilter, err := getSourceKv(ctx, n.Right(), false) if err != nil || dstIter == nil { return nil, nil } - srcMap, _, srcIter, _, srcSchema, srcTags, srcFilter, err := getSourceKv(ctx, n.Left(), true) + srcMap, srcIter, _, srcSchema, srcTags, srcFilter, err := getSourceKv(ctx, n.Left(), true) if err != nil || srcSchema == nil { return nil, nil } @@ -125,7 +125,7 @@ func (b Builder) Build(ctx *sql.Context, n sql.Node, r sql.Row) (sql.RowIter, er case *plan.GroupBy: if len(n.GroupByExprs) == 0 && len(n.SelectDeps) == 1 { if cnt, ok := n.SelectDeps[0].(*aggregation.Count); ok { - if _, _, srcIter, _, srcSchema, _, srcFilter, err := getSourceKv(ctx, n.Child, true); err == nil && srcSchema != nil && srcFilter == nil { + if _, srcIter, _, srcSchema, _, srcFilter, err := getSourceKv(ctx, n.Child, true); err == nil && srcSchema != nil && srcFilter == nil { iter, ok, err := newCountAggregationKvIter(srcIter, srcSchema, cnt.Child) if ok && err == nil { // (1) no grouping expressions (returns one row) @@ -339,27 +339,27 @@ func getPhysicalColCount(schemas []schema.Schema, splits []int, projections []ui // getSourceKv extracts prolly table and index specific structures needed // to implement a lookup join. We return either |srcIter| or |dstIter| // depending on whether |isSrc| is true. -func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.Map, prolly.MapIter, index.SecondaryLookupIterGen, schema.Schema, []uint64, sql.Expression, error) { +func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.MapIter, index.SecondaryLookupIterGen, schema.Schema, []uint64, sql.Expression, error) { var table *doltdb.Table var tags []uint64 var err error var priMap prolly.Map - var secMap prolly.Map var srcIter prolly.MapIter var dstIter index.SecondaryLookupIterGen var priSch schema.Schema switch n := n.(type) { + // TODO: what if the node is a join because we're doing a multi-table join? case *plan.TableAlias: return getSourceKv(ctx, n.Child, isSrc) case *plan.Filter: - m, secM, mIter, destIter, s, t, _, err := getSourceKv(ctx, n.Child, isSrc) + m, mIter, destIter, s, t, _, err := getSourceKv(ctx, n.Child, isSrc) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } - return m, secM, mIter, destIter, s, t, n.Expression, nil + return m, mIter, destIter, s, t, n.Expression, nil case *plan.IndexedTableAccess: if _, ok := plan.FindVirtualColumnTable(n.Table); ok { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, fmt.Errorf("virtual tables unsupported in kvexec") + return prolly.Map{}, nil, nil, nil, nil, nil, fmt.Errorf("virtual tables unsupported in kvexec") } var lb index.IndexScanBuilder @@ -368,38 +368,38 @@ func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.M tags = dt.ProjectedTags() table, err = dt.DoltTable.DoltTable(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } lb, err = dt.LookupBuilder(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } case *sqle.IndexedDoltTable: tags = dt.ProjectedTags() table, err = dt.DoltTable.DoltTable(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } lb, err = dt.LookupBuilder(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } // case *dtables.DiffTable: // TODO: add interface to include system tables default: - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil + return prolly.Map{}, nil, nil, nil, nil, nil, nil } rowData, err := table.GetRowData(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } if rowData.Format() != types.Format_DOLT { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil + return prolly.Map{}, nil, nil, nil, nil, nil, nil } priMap, err = durable.ProllyMapFromIndex(rowData) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } priSch = lb.OutputSchema() @@ -407,17 +407,17 @@ func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.M if isSrc { l, _, err := n.GetLookup(ctx, nil) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } prollyRanges, err := index.ProllyRangesForIndex(ctx, l.Index, l.Ranges) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } srcIter, err = index.NewSequenceRangeIter(ctx, lb, prollyRanges, l.IsReverse) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } } else { dstIter, _ = lb.NewSecondaryIter(n.IsStrictLookup(), len(n.Expressions()), n.NullMask()) @@ -435,30 +435,29 @@ func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.M tags = dt.ProjectedTags() table, err = dt.DoltTable(ctx) default: - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil + return prolly.Map{}, nil, nil, nil, nil, nil, nil } if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } priSch, err = table.GetSchema(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } priIndex, err := table.GetRowData(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } priMap, err = durable.ProllyMapFromIndex(priIndex) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } - secMap = priMap srcIter, err = priMap.IterAll(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } if schema.IsKeyless(priSch) { @@ -466,20 +465,20 @@ func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.M } default: - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, nil + return prolly.Map{}, nil, nil, nil, nil, nil, nil } if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } if priSch == nil && table != nil { priSch, err = table.GetSchema(ctx) if err != nil { - return prolly.Map{}, prolly.Map{}, nil, nil, nil, nil, nil, err + return prolly.Map{}, nil, nil, nil, nil, nil, err } } - return priMap, secMap, srcIter, dstIter, priSch, tags, nil, nil + return priMap, srcIter, dstIter, priSch, tags, nil, nil } // coveringNormalizer inputs a secondary index key tuple and outputs a From 0740009e5deb55b91227f2b714ad04712efb9c4d Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Mon, 9 Feb 2026 13:32:18 -0800 Subject: [PATCH 03/11] there's a difference between projecting zero columns bc table has been completely pruned and no projected columns set --- go/libraries/doltcore/sqle/history_table.go | 3 --- go/libraries/doltcore/sqle/tables.go | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/go/libraries/doltcore/sqle/history_table.go b/go/libraries/doltcore/sqle/history_table.go index 8303a35a613..f3679f2a26c 100644 --- a/go/libraries/doltcore/sqle/history_table.go +++ b/go/libraries/doltcore/sqle/history_table.go @@ -363,9 +363,6 @@ func (ht *HistoryTable) Projections() []string { } func (ht *HistoryTable) ProjectedTags() []uint64 { - if ht.projectedCols != nil { - return ht.projectedCols - } // Otherwise (no projection), return the tags for the underlying table with the extra meta tags appended return append(ht.doltTable.ProjectedTags(), schema.HistoryCommitHashTag, schema.HistoryCommitterTag, schema.HistoryCommitDateTag) } diff --git a/go/libraries/doltcore/sqle/tables.go b/go/libraries/doltcore/sqle/tables.go index d0a2b6afd97..df0a4a9258b 100644 --- a/go/libraries/doltcore/sqle/tables.go +++ b/go/libraries/doltcore/sqle/tables.go @@ -1353,7 +1353,7 @@ func (t *DoltTable) Projections() []string { } func (t *DoltTable) ProjectedTags() []uint64 { - if len(t.projectedCols) > 0 { + if t.projectedCols != nil { return t.projectedCols } return t.sch.GetAllCols().Tags From a14c81217e2810fbb3cf5c0159a8f020bf7c18c4 Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Mon, 9 Feb 2026 13:42:20 -0800 Subject: [PATCH 04/11] undo changes to history table --- go/libraries/doltcore/sqle/history_table.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/go/libraries/doltcore/sqle/history_table.go b/go/libraries/doltcore/sqle/history_table.go index f3679f2a26c..66953c67c61 100644 --- a/go/libraries/doltcore/sqle/history_table.go +++ b/go/libraries/doltcore/sqle/history_table.go @@ -363,6 +363,10 @@ func (ht *HistoryTable) Projections() []string { } func (ht *HistoryTable) ProjectedTags() []uint64 { + if ht.projectedCols != nil { + return ht.projectedCols + } + // Otherwise (no projection), return the tags for the underlying table with the extra meta tags appended return append(ht.doltTable.ProjectedTags(), schema.HistoryCommitHashTag, schema.HistoryCommitterTag, schema.HistoryCommitDateTag) } From dfb7daf88b83c2d223b61fb0f9434e6fdb84ecb9 Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Mon, 9 Feb 2026 21:51:16 +0000 Subject: [PATCH 05/11] [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh --- go/libraries/doltcore/sqle/history_table.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/libraries/doltcore/sqle/history_table.go b/go/libraries/doltcore/sqle/history_table.go index 66953c67c61..d742ae900f3 100644 --- a/go/libraries/doltcore/sqle/history_table.go +++ b/go/libraries/doltcore/sqle/history_table.go @@ -366,7 +366,7 @@ func (ht *HistoryTable) ProjectedTags() []uint64 { if ht.projectedCols != nil { return ht.projectedCols } - + // Otherwise (no projection), return the tags for the underlying table with the extra meta tags appended return append(ht.doltTable.ProjectedTags(), schema.HistoryCommitHashTag, schema.HistoryCommitterTag, schema.HistoryCommitDateTag) } From d6173ee5bf38a26bbc503622b2865f7c86b169db Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Mon, 9 Feb 2026 13:52:53 -0800 Subject: [PATCH 06/11] remove empty line --- go/libraries/doltcore/sqle/history_table.go | 1 - 1 file changed, 1 deletion(-) diff --git a/go/libraries/doltcore/sqle/history_table.go b/go/libraries/doltcore/sqle/history_table.go index 66953c67c61..8303a35a613 100644 --- a/go/libraries/doltcore/sqle/history_table.go +++ b/go/libraries/doltcore/sqle/history_table.go @@ -366,7 +366,6 @@ func (ht *HistoryTable) ProjectedTags() []uint64 { if ht.projectedCols != nil { return ht.projectedCols } - // Otherwise (no projection), return the tags for the underlying table with the extra meta tags appended return append(ht.doltTable.ProjectedTags(), schema.HistoryCommitHashTag, schema.HistoryCommitterTag, schema.HistoryCommitDateTag) } From 2592a9184a3c02daa47fd28427990d6ea14f1d92 Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Mon, 9 Feb 2026 15:12:30 -0800 Subject: [PATCH 07/11] clean up --- go/libraries/doltcore/sqle/kvexec/builder.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/go/libraries/doltcore/sqle/kvexec/builder.go b/go/libraries/doltcore/sqle/kvexec/builder.go index 76cbe9d6b6b..76dd2c17914 100644 --- a/go/libraries/doltcore/sqle/kvexec/builder.go +++ b/go/libraries/doltcore/sqle/kvexec/builder.go @@ -88,7 +88,7 @@ func (b Builder) Build(ctx *sql.Context, n sql.Node, r sql.Row) (sql.RowIter, er } split := len(srcTags) - projections := append(srcTags, dstTags...) // this isn't right -- this always assumes src rows are projected + projections := append(srcTags, dstTags...) rowJoiner := newRowJoiner([]schema.Schema{srcSchema, dstIter.Schema()}, []int{split}, projections, dstIter.NodeStore()) return newLookupKvIter( srcIter, @@ -339,6 +339,10 @@ func getPhysicalColCount(schemas []schema.Schema, splits []int, projections []ui // getSourceKv extracts prolly table and index specific structures needed // to implement a lookup join. We return either |srcIter| or |dstIter| // depending on whether |isSrc| is true. +// TODO: This function call is very confusing because it returns so many different variables (many of which are often +// +// ignored or nil). Split into two separate functions. The source and destination distinction is also not the most +// intuitive -- consider using primary and secondary naming conventions. func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.MapIter, index.SecondaryLookupIterGen, schema.Schema, []uint64, sql.Expression, error) { var table *doltdb.Table var tags []uint64 @@ -348,7 +352,6 @@ func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.M var dstIter index.SecondaryLookupIterGen var priSch schema.Schema switch n := n.(type) { - // TODO: what if the node is a join because we're doing a multi-table join? case *plan.TableAlias: return getSourceKv(ctx, n.Child, isSrc) case *plan.Filter: From a7fd1c71fdbd9924b75e2695ad72b540ad6c58ab Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Mon, 9 Feb 2026 15:19:08 -0800 Subject: [PATCH 08/11] gms bump --- go/go.mod | 2 +- go/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go/go.mod b/go/go.mod index a7452145c44..5bacfd9994f 100644 --- a/go/go.mod +++ b/go/go.mod @@ -61,7 +61,7 @@ require ( github.com/dolthub/dolt-mcp v0.2.2 github.com/dolthub/eventsapi_schema v0.0.0-20260205214132-a7a3c84c84a1 github.com/dolthub/flatbuffers/v23 v23.3.3-dh.2 - github.com/dolthub/go-mysql-server v0.20.1-0.20260206233720-bbef18042f77 + github.com/dolthub/go-mysql-server v0.20.1-0.20260209230123-bb90d32b340e github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63 github.com/edsrzf/mmap-go v1.2.0 github.com/esote/minmaxheap v1.0.0 diff --git a/go/go.sum b/go/go.sum index 7a556cf1a86..7887e9bb811 100644 --- a/go/go.sum +++ b/go/go.sum @@ -196,8 +196,8 @@ github.com/dolthub/fslock v0.0.0-20251215194149-ef20baba2318 h1:n+vdH5G5Db+1qnDC github.com/dolthub/fslock v0.0.0-20251215194149-ef20baba2318/go.mod h1:QWql+P17oAAMLnL4HGB5tiovtDuAjdDTPbuqx7bYfa0= github.com/dolthub/go-icu-regex v0.0.0-20250916051405-78a38d478790 h1:zxMsH7RLiG+dlZ/y0LgJHTV26XoiSJcuWq+em6t6VVc= github.com/dolthub/go-icu-regex v0.0.0-20250916051405-78a38d478790/go.mod h1:F3cnm+vMRK1HaU6+rNqQrOCyR03HHhR1GWG2gnPOqaE= -github.com/dolthub/go-mysql-server v0.20.1-0.20260206233720-bbef18042f77 h1:1b6Z3rm58d5LtLFQI2olPwnNTbwC1g7aTVRhrO6HJdc= -github.com/dolthub/go-mysql-server v0.20.1-0.20260206233720-bbef18042f77/go.mod h1:LEWdXw6LKjdonOv2X808RpUc8wZVtQx4ZEPvmDWkvY4= +github.com/dolthub/go-mysql-server v0.20.1-0.20260209230123-bb90d32b340e h1:5Cw2B7D4jNc1chcna4KhV3oICP6TYv1OLtlIWufzfvo= +github.com/dolthub/go-mysql-server v0.20.1-0.20260209230123-bb90d32b340e/go.mod h1:LEWdXw6LKjdonOv2X808RpUc8wZVtQx4ZEPvmDWkvY4= 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= From 1a28801e4e4e382883a1977a0c794cafef3521a5 Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Mon, 9 Feb 2026 15:20:45 -0800 Subject: [PATCH 09/11] fix TODO formatting --- go/libraries/doltcore/sqle/kvexec/builder.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/go/libraries/doltcore/sqle/kvexec/builder.go b/go/libraries/doltcore/sqle/kvexec/builder.go index 76dd2c17914..f993cb028a7 100644 --- a/go/libraries/doltcore/sqle/kvexec/builder.go +++ b/go/libraries/doltcore/sqle/kvexec/builder.go @@ -340,9 +340,8 @@ func getPhysicalColCount(schemas []schema.Schema, splits []int, projections []ui // to implement a lookup join. We return either |srcIter| or |dstIter| // depending on whether |isSrc| is true. // TODO: This function call is very confusing because it returns so many different variables (many of which are often -// -// ignored or nil). Split into two separate functions. The source and destination distinction is also not the most -// intuitive -- consider using primary and secondary naming conventions. +// ignored or nil). Split into two separate functions. The source and destination distinction is also not the most +// intuitive -- consider using primary and secondary naming conventions. func getSourceKv(ctx *sql.Context, n sql.Node, isSrc bool) (prolly.Map, prolly.MapIter, index.SecondaryLookupIterGen, schema.Schema, []uint64, sql.Expression, error) { var table *doltdb.Table var tags []uint64 From 677d1f8f78e26f78e2d086ed02da87293deececc Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Mon, 9 Feb 2026 16:04:31 -0800 Subject: [PATCH 10/11] gms bump --- go/go.mod | 2 +- go/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go/go.mod b/go/go.mod index 5bacfd9994f..9c3b81da1b8 100644 --- a/go/go.mod +++ b/go/go.mod @@ -61,7 +61,7 @@ require ( github.com/dolthub/dolt-mcp v0.2.2 github.com/dolthub/eventsapi_schema v0.0.0-20260205214132-a7a3c84c84a1 github.com/dolthub/flatbuffers/v23 v23.3.3-dh.2 - github.com/dolthub/go-mysql-server v0.20.1-0.20260209230123-bb90d32b340e + github.com/dolthub/go-mysql-server v0.20.1-0.20260210000147-1ce36a7d1e8f github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63 github.com/edsrzf/mmap-go v1.2.0 github.com/esote/minmaxheap v1.0.0 diff --git a/go/go.sum b/go/go.sum index 7887e9bb811..014d12fafdb 100644 --- a/go/go.sum +++ b/go/go.sum @@ -196,8 +196,8 @@ github.com/dolthub/fslock v0.0.0-20251215194149-ef20baba2318 h1:n+vdH5G5Db+1qnDC github.com/dolthub/fslock v0.0.0-20251215194149-ef20baba2318/go.mod h1:QWql+P17oAAMLnL4HGB5tiovtDuAjdDTPbuqx7bYfa0= github.com/dolthub/go-icu-regex v0.0.0-20250916051405-78a38d478790 h1:zxMsH7RLiG+dlZ/y0LgJHTV26XoiSJcuWq+em6t6VVc= github.com/dolthub/go-icu-regex v0.0.0-20250916051405-78a38d478790/go.mod h1:F3cnm+vMRK1HaU6+rNqQrOCyR03HHhR1GWG2gnPOqaE= -github.com/dolthub/go-mysql-server v0.20.1-0.20260209230123-bb90d32b340e h1:5Cw2B7D4jNc1chcna4KhV3oICP6TYv1OLtlIWufzfvo= -github.com/dolthub/go-mysql-server v0.20.1-0.20260209230123-bb90d32b340e/go.mod h1:LEWdXw6LKjdonOv2X808RpUc8wZVtQx4ZEPvmDWkvY4= +github.com/dolthub/go-mysql-server v0.20.1-0.20260210000147-1ce36a7d1e8f h1:1XL5lO5pbL6xomeC5DBzfT9pUoDZGpd9809TFsDiEWY= +github.com/dolthub/go-mysql-server v0.20.1-0.20260210000147-1ce36a7d1e8f/go.mod h1:LEWdXw6LKjdonOv2X808RpUc8wZVtQx4ZEPvmDWkvY4= 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= From 76f2168f0cafbf08f983fbb7e9194d5d05e943f0 Mon Sep 17 00:00:00 2001 From: angelamayxie Date: Tue, 10 Feb 2026 00:55:28 +0000 Subject: [PATCH 11/11] [ga-bump-dep] Bump dependency in Dolt by angelamayxie --- go/go.mod | 2 +- go/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go/go.mod b/go/go.mod index a7452145c44..fb5804552ef 100644 --- a/go/go.mod +++ b/go/go.mod @@ -61,7 +61,7 @@ require ( github.com/dolthub/dolt-mcp v0.2.2 github.com/dolthub/eventsapi_schema v0.0.0-20260205214132-a7a3c84c84a1 github.com/dolthub/flatbuffers/v23 v23.3.3-dh.2 - github.com/dolthub/go-mysql-server v0.20.1-0.20260206233720-bbef18042f77 + github.com/dolthub/go-mysql-server v0.20.1-0.20260210005347-46fe127d0460 github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63 github.com/edsrzf/mmap-go v1.2.0 github.com/esote/minmaxheap v1.0.0 diff --git a/go/go.sum b/go/go.sum index 7a556cf1a86..4c96b0eee2d 100644 --- a/go/go.sum +++ b/go/go.sum @@ -196,8 +196,8 @@ github.com/dolthub/fslock v0.0.0-20251215194149-ef20baba2318 h1:n+vdH5G5Db+1qnDC github.com/dolthub/fslock v0.0.0-20251215194149-ef20baba2318/go.mod h1:QWql+P17oAAMLnL4HGB5tiovtDuAjdDTPbuqx7bYfa0= github.com/dolthub/go-icu-regex v0.0.0-20250916051405-78a38d478790 h1:zxMsH7RLiG+dlZ/y0LgJHTV26XoiSJcuWq+em6t6VVc= github.com/dolthub/go-icu-regex v0.0.0-20250916051405-78a38d478790/go.mod h1:F3cnm+vMRK1HaU6+rNqQrOCyR03HHhR1GWG2gnPOqaE= -github.com/dolthub/go-mysql-server v0.20.1-0.20260206233720-bbef18042f77 h1:1b6Z3rm58d5LtLFQI2olPwnNTbwC1g7aTVRhrO6HJdc= -github.com/dolthub/go-mysql-server v0.20.1-0.20260206233720-bbef18042f77/go.mod h1:LEWdXw6LKjdonOv2X808RpUc8wZVtQx4ZEPvmDWkvY4= +github.com/dolthub/go-mysql-server v0.20.1-0.20260210005347-46fe127d0460 h1:ku4qVcwZUUImcaWOOrPWwhjD5BD34wS6LuENxU3XJUU= +github.com/dolthub/go-mysql-server v0.20.1-0.20260210005347-46fe127d0460/go.mod h1:LEWdXw6LKjdonOv2X808RpUc8wZVtQx4ZEPvmDWkvY4= 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=