mirror of
https://github.com/dolthub/dolt.git
synced 2026-01-27 03:09:14 -06:00
Merge pull request #1922 from dolthub/andy/read-empty-conflicts
[no-release-notes] Andy/read empty conflicts
This commit is contained in:
@@ -154,23 +154,19 @@ func (t *Table) SetConflicts(ctx context.Context, schemas Conflict, conflictData
|
||||
|
||||
func (t *Table) GetConflicts(ctx context.Context) (Conflict, types.Map, error) {
|
||||
schemasVal, ok, err := t.tableStruct.MaybeGet(conflictSchemasKey)
|
||||
|
||||
if err != nil {
|
||||
return Conflict{}, types.EmptyMap, err
|
||||
}
|
||||
|
||||
if !ok {
|
||||
return Conflict{}, types.EmptyMap, ErrNoConflicts
|
||||
}
|
||||
|
||||
schemas, err := ConflictFromTuple(schemasVal.(types.Tuple))
|
||||
|
||||
if err != nil {
|
||||
return Conflict{}, types.EmptyMap, err
|
||||
}
|
||||
|
||||
conflictsVal, _, err := t.tableStruct.MaybeGet(conflictsKey)
|
||||
|
||||
if err != nil {
|
||||
return Conflict{}, types.EmptyMap, err
|
||||
}
|
||||
|
||||
@@ -47,7 +47,10 @@ type ConflictReader struct {
|
||||
// NewConflictReader returns a new conflict reader for a given table
|
||||
func NewConflictReader(ctx context.Context, tbl *doltdb.Table) (*ConflictReader, error) {
|
||||
base, sch, mergeSch, err := tbl.GetConflictSchemas(ctx)
|
||||
|
||||
if err == doltdb.ErrNoConflicts {
|
||||
base, err = tbl.GetSchema(ctx)
|
||||
sch, mergeSch = base, base
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -63,19 +66,19 @@ func NewConflictReader(ctx context.Context, tbl *doltdb.Table) (*ConflictReader,
|
||||
theirsStr: func(colName string) string { return theirsStr + "_" + colName },
|
||||
},
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_, confData, err := tbl.GetConflicts(ctx)
|
||||
|
||||
if err == doltdb.ErrNoConflicts {
|
||||
confData, err = types.NewMap(ctx, tbl.ValueReadWriter())
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
confItr, err := confData.Iterator(ctx)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -30,6 +30,10 @@ teardown() {
|
||||
teardown_common
|
||||
}
|
||||
|
||||
@test "sql-conflicts: read from empty table" {
|
||||
dolt sql -q "SELECT * FROM dolt_conflicts_empty"
|
||||
}
|
||||
|
||||
@test "sql-conflicts: add conflict" {
|
||||
dolt branch feature_branch master
|
||||
dolt SQL -q "INSERT INTO one_pk (pk1,c1,c2) VALUES (0,0,0)"
|
||||
|
||||
Reference in New Issue
Block a user