Ensure callers get errors when they happen
Previously we silently dropped portions or all of a block when a duplicate quad is found. We still fail now, but we tell someone. Fixes #201.
This commit is contained in:
parent
9088fe376b
commit
9e378302f5
2 changed files with 10 additions and 5 deletions
12
db/db.go
12
db/db.go
|
|
@ -82,15 +82,21 @@ func Load(qw graph.QuadWriter, cfg *config.Config, dec quad.Unmarshaler) error {
|
||||||
block = append(block, t)
|
block = append(block, t)
|
||||||
if len(block) == cap(block) {
|
if len(block) == cap(block) {
|
||||||
count += len(block)
|
count += len(block)
|
||||||
qw.AddQuadSet(block)
|
err := qw.AddQuadSet(block)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("db: failed to load data: %v", err)
|
||||||
|
}
|
||||||
|
block = block[:0]
|
||||||
if glog.V(2) {
|
if glog.V(2) {
|
||||||
glog.V(2).Infof("Wrote %d quads.", count)
|
glog.V(2).Infof("Wrote %d quads.", count)
|
||||||
}
|
}
|
||||||
block = block[:0]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
count += len(block)
|
count += len(block)
|
||||||
qw.AddQuadSet(block)
|
err := qw.AddQuadSet(block)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("db: failed to load data: %v", err)
|
||||||
|
}
|
||||||
if glog.V(2) {
|
if glog.V(2) {
|
||||||
glog.V(2).Infof("Wrote %d quads.", count)
|
glog.V(2).Infof("Wrote %d quads.", count)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,8 +55,7 @@ func (s *Single) AddQuadSet(set []quad.Quad) error {
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s.qs.ApplyDeltas(deltas)
|
return s.qs.ApplyDeltas(deltas)
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Single) RemoveQuad(q quad.Quad) error {
|
func (s *Single) RemoveQuad(q quad.Quad) error {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue