Skip to content

Commit

Permalink
Allow dolt index cat to work with vector indexes.
Browse files Browse the repository at this point in the history
This also removes the `offset` parameter from table.NewTableIterator because it's unused.
  • Loading branch information
nicktobey committed Jan 3, 2025
1 parent 1de42e6 commit a189e19
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 19 deletions.
2 changes: 1 addition & 1 deletion go/cmd/dolt/commands/indexcmds/cat.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ func (cmd CatCmd) prettyPrintResults(ctx context.Context, doltSch schema.Schema,

sqlCtx := sql.NewEmptyContext()

rowItr, err := table.NewTableIterator(ctx, doltSch, idx, 0)
rowItr, err := table.NewTableIterator(ctx, doltSch, idx)
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion go/libraries/doltcore/sqle/index/prolly_row_iter.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ type prollyRowIter struct {

var _ sql.RowIter = prollyRowIter{}

func NewProllyRowIterForMap(sch schema.Schema, rows prolly.Map, iter prolly.MapIter, projections []uint64) sql.RowIter {
func NewProllyRowIterForMap(sch schema.Schema, rows prolly.MapInterface, iter prolly.MapIter, projections []uint64) sql.RowIter {
if projections == nil {
projections = sch.GetAllCols().Tags
}
Expand Down
12 changes: 4 additions & 8 deletions go/libraries/doltcore/table/table_iterator.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,11 @@ func (i rowIterImpl) Close(ctx context.Context) error {

// NewTableIterator creates a RowIter that iterates sql.Row's from |idx|.
// |offset| can be supplied to read at some start point in |idx|.
func NewTableIterator(ctx context.Context, sch schema.Schema, idx durable.Index, offset uint64) (RowIter, error) {
func NewTableIterator(ctx context.Context, sch schema.Schema, idx durable.Index) (RowIter, error) {
var rowItr sql.RowIter
if types.IsFormat_DOLT(idx.Format()) {
m := durable.ProllyMapFromIndex(idx)
c, err := m.Count()
if err != nil {
return nil, err
}
itr, err := m.IterOrdinalRange(ctx, offset, uint64(c))
m := durable.MapFromIndex(idx)
itr, err := m.IterAll(ctx)
if err != nil {
return nil, err
}
Expand All @@ -78,7 +74,7 @@ func NewTableIterator(ctx context.Context, sch schema.Schema, idx durable.Index,
} else {

noms := durable.NomsMapFromIndex(idx)
itr, err := noms.IteratorAt(ctx, offset)
itr, err := noms.IteratorAt(ctx, 0)
if err != nil {
return nil, err
}
Expand Down
15 changes: 6 additions & 9 deletions go/libraries/doltcore/table/table_iterator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,12 @@ var testRand = rand.New(rand.NewSource(1))
func TestTableIteratorProlly(t *testing.T) {
n := 100

for i := 0; i < 10; i++ {
offset := testRand.Intn(n)
m, tups := mustMakeProllyMap(t, n)
idx := durable.IndexFromProllyMap(m)
itr, err := NewTableIterator(context.Background(), sch, idx, uint64(offset))
require.NoError(t, err)
expectedRows := tuplesToRows(t, tups[offset:])
testIterator(t, itr, expectedRows)
}
m, tups := mustMakeProllyMap(t, n)
idx := durable.IndexFromProllyMap(m)
itr, err := NewTableIterator(context.Background(), sch, idx)
require.NoError(t, err)
expectedRows := tuplesToRows(t, tups)
testIterator(t, itr, expectedRows)
}

func testIterator(t *testing.T, iter RowIter, expected []sql.Row) {
Expand Down

0 comments on commit a189e19

Please sign in to comment.