Skip to content

Commit 5905ca9

Browse files
authored
Merge branch 'master' into master
2 parents a453eee + 2a31061 commit 5905ca9

15 files changed

+72
-35
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88

99
### Changed
1010

11+
- Errors now report the repository causing the error, if possible.
1112
- Now non rooted siva files support old siva rooted repositories.
1213

1314
## [0.22.0] - 2019-07-03
@@ -32,7 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3233
- Fixed error iterating over non ready repositories ([src-d/go-borges#54](https://github.com/src-d/go-borges/pull/54))
3334
- Error saying value could not be converted to bool.
3435
- function: make array_length not fail with literal null ([#767](https://github.com/src-d/go-mysql-server/pull/767))
35-
- server: kill queries on connection closed (([#769](https://github.com/src-d/go-mysql-server/pull/769)))
36+
- server: kill queries on connection closed (([#769](https://github.com/src-d/go-mysql-server/pull/769)))
3637

3738
## [0.22.0-rc2] - 2019-06-24
3839

blobs.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,10 @@ func (r *blobsTable) PartitionRows(
143143

144144
if err != nil {
145145
span.Finish()
146-
return nil, err
146+
return nil, errorWithRepo(repo, err)
147147
}
148148

149-
return sql.NewSpanIter(span, iter), nil
149+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
150150
}
151151

152152
func (blobsTable) HandledFilters(filters []sql.Expression) []sql.Expression {

commit_blobs.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import (
44
"bytes"
55
"io"
66

7+
"github.com/src-d/go-mysql-server/sql"
78
"gopkg.in/src-d/go-git.v4/plumbing"
89
"gopkg.in/src-d/go-git.v4/plumbing/object"
9-
"github.com/src-d/go-mysql-server/sql"
1010
)
1111

1212
type commitBlobsTable struct {
@@ -113,10 +113,10 @@ func (t *commitBlobsTable) PartitionRows(
113113

114114
if err != nil {
115115
span.Finish()
116-
return nil, err
116+
return nil, errorWithRepo(repo, err)
117117
}
118118

119-
return sql.NewSpanIter(span, iter), nil
119+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
120120
}
121121

122122
func (commitBlobsTable) HandledFilters(filters []sql.Expression) []sql.Expression {

commit_files.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import (
55
"io"
66

77
"github.com/sirupsen/logrus"
8+
"github.com/src-d/go-mysql-server/sql"
9+
"github.com/src-d/go-mysql-server/sql/expression"
10+
"github.com/src-d/go-mysql-server/sql/plan"
811
git "gopkg.in/src-d/go-git.v4"
912
"gopkg.in/src-d/go-git.v4/plumbing"
1013
"gopkg.in/src-d/go-git.v4/plumbing/filemode"
1114
"gopkg.in/src-d/go-git.v4/plumbing/object"
12-
"github.com/src-d/go-mysql-server/sql"
13-
"github.com/src-d/go-mysql-server/sql/expression"
14-
"github.com/src-d/go-mysql-server/sql/plan"
1515
)
1616

1717
type commitFilesTable struct {
@@ -125,10 +125,10 @@ func (t *commitFilesTable) PartitionRows(
125125

126126
if err != nil {
127127
span.Finish()
128-
return nil, err
128+
return nil, errorWithRepo(repo, err)
129129
}
130130

131-
return sql.NewSpanIter(span, iter), nil
131+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
132132
}
133133

134134
func (commitFilesTable) HandledFilters(filters []sql.Expression) []sql.Expression {

commit_trees.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66

77
"gopkg.in/src-d/go-git.v4/plumbing"
88

9+
"github.com/src-d/go-mysql-server/sql"
910
"gopkg.in/src-d/go-git.v4/plumbing/filemode"
1011
"gopkg.in/src-d/go-git.v4/plumbing/object"
11-
"github.com/src-d/go-mysql-server/sql"
1212
)
1313

1414
type commitTreesTable struct {
@@ -106,10 +106,10 @@ func (t *commitTreesTable) PartitionRows(
106106

107107
if err != nil {
108108
span.Finish()
109-
return nil, err
109+
return nil, errorWithRepo(repo, err)
110110
}
111111

112-
return sql.NewSpanIter(span, iter), nil
112+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
113113
}
114114

115115
// IndexKeyValues implements the sql.IndexableTable interface.

commits.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,10 @@ func (r *commitsTable) PartitionRows(
133133

134134
if err != nil {
135135
span.Finish()
136-
return nil, err
136+
return nil, errorWithRepo(repo, err)
137137
}
138138

139-
return sql.NewSpanIter(span, iter), nil
139+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
140140
}
141141

142142
func (commitsTable) HandledFilters(filters []sql.Expression) []sql.Expression {

files.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import (
44
"bytes"
55
"io"
66

7+
"github.com/src-d/go-mysql-server/sql"
78
git "gopkg.in/src-d/go-git.v4"
89
"gopkg.in/src-d/go-git.v4/plumbing"
910
"gopkg.in/src-d/go-git.v4/plumbing/filemode"
1011
"gopkg.in/src-d/go-git.v4/plumbing/object"
11-
"github.com/src-d/go-mysql-server/sql"
1212
)
1313

1414
type filesTable struct {
@@ -143,10 +143,10 @@ func (r *filesTable) PartitionRows(
143143

144144
if err != nil {
145145
span.Finish()
146-
return nil, err
146+
return nil, errorWithRepo(repo, err)
147147
}
148148

149-
return sql.NewSpanIter(span, iter), nil
149+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
150150
}
151151

152152
func (filesTable) HandledFilters(filters []sql.Expression) []sql.Expression {

fs_error_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func setupErrorRepos(t *testing.T) (*sql.Context, CleanupFunc) {
5858
tmpDir, err := ioutil.TempDir("", "gitbase")
5959
require.NoError(err)
6060

61-
var rootFS billy.Filesystem = osfs.New(tmpDir)
61+
rootFS := osfs.New(tmpDir)
6262

6363
lib, pool, err := newMultiPool()
6464
require.NoError(err)

partition.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,3 +271,36 @@ func (i *partitionedIndexKeyValueIter) Close() error {
271271
}
272272
return nil
273273
}
274+
275+
var errRepository = errors.NewKind("on repository %q")
276+
277+
func errorWithRepo(repo *Repository, err error) error {
278+
return errRepository.Wrap(err, repo.ID())
279+
}
280+
281+
type repoRowIter struct {
282+
iter sql.RowIter
283+
repo *Repository
284+
}
285+
286+
func newRepoRowIter(repo *Repository, iter sql.RowIter) sql.RowIter {
287+
return &repoRowIter{iter, repo}
288+
}
289+
290+
func (i *repoRowIter) Next() (sql.Row, error) {
291+
row, err := i.iter.Next()
292+
if err != nil {
293+
if err == io.EOF {
294+
return nil, io.EOF
295+
}
296+
return nil, errorWithRepo(i.repo, err)
297+
}
298+
return row, nil
299+
}
300+
301+
func (i *repoRowIter) Close() error {
302+
if err := i.iter.Close(); err != nil {
303+
return errorWithRepo(i.repo, err)
304+
}
305+
return nil
306+
}

ref_commits.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import (
77

88
"gopkg.in/src-d/go-git.v4/plumbing"
99

10+
"github.com/src-d/go-mysql-server/sql"
1011
"gopkg.in/src-d/go-git.v4/plumbing/object"
1112
"gopkg.in/src-d/go-git.v4/plumbing/storer"
12-
"github.com/src-d/go-mysql-server/sql"
1313
)
1414

1515
type refCommitsTable struct {
@@ -121,10 +121,10 @@ func (t *refCommitsTable) PartitionRows(
121121

122122
if err != nil {
123123
span.Finish()
124-
return nil, err
124+
return nil, errorWithRepo(repo, err)
125125
}
126126

127-
return sql.NewSpanIter(span, iter), nil
127+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
128128
}
129129

130130
func (refCommitsTable) HandledFilters(filters []sql.Expression) []sql.Expression {

references.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,10 @@ func (r *referencesTable) PartitionRows(
119119

120120
if err != nil {
121121
span.Finish()
122-
return nil, err
122+
return nil, errorWithRepo(repo, err)
123123
}
124124

125-
return sql.NewSpanIter(span, iter), nil
125+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
126126
}
127127

128128
func (referencesTable) HandledFilters(filters []sql.Expression) []sql.Expression {

remotes.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import (
44
"bytes"
55
"io"
66

7+
"github.com/src-d/go-mysql-server/sql"
78
git "gopkg.in/src-d/go-git.v4"
89
"gopkg.in/src-d/go-git.v4/config"
9-
"github.com/src-d/go-mysql-server/sql"
1010
)
1111

1212
type remotesTable struct {
@@ -111,10 +111,10 @@ func (r *remotesTable) PartitionRows(
111111

112112
if err != nil {
113113
span.Finish()
114-
return nil, err
114+
return nil, errorWithRepo(repo, err)
115115
}
116116

117-
return sql.NewSpanIter(span, iter), nil
117+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
118118
}
119119

120120
func (remotesTable) HandledFilters(filters []sql.Expression) []sql.Expression {

repositories.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,10 @@ func (r *repositoriesTable) PartitionRows(
9191

9292
if err != nil {
9393
span.Finish()
94-
return nil, err
94+
return nil, errorWithRepo(repo, err)
9595
}
9696

97-
return sql.NewSpanIter(span, iter), nil
97+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
9898
}
9999

100100
func (repositoriesTable) handledColumns() []string { return nil }

squash.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,19 +83,22 @@ func (t *SquashedTable) PartitionRows(ctx *sql.Context, p sql.Partition) (sql.Ro
8383
iter, err := t.iter.New(ctx, repo)
8484
if err != nil {
8585
span.Finish()
86-
return nil, err
86+
return nil, errorWithRepo(repo, err)
8787
}
8888

8989
if len(t.schemaMappings) == 0 {
9090
return sql.NewSpanIter(
9191
span,
92-
NewChainableRowIter(iter),
92+
newRepoRowIter(repo, NewChainableRowIter(iter)),
9393
), nil
9494
}
9595

9696
return sql.NewSpanIter(
9797
span,
98-
NewSchemaMapperIter(NewChainableRowIter(iter), t.schemaMappings),
98+
newRepoRowIter(
99+
repo,
100+
NewSchemaMapperIter(NewChainableRowIter(iter), t.schemaMappings),
101+
),
99102
), nil
100103
}
101104

tree_entries.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,10 @@ func (r *treeEntriesTable) PartitionRows(
108108

109109
if err != nil {
110110
span.Finish()
111-
return nil, err
111+
return nil, errorWithRepo(repo, err)
112112
}
113113

114-
return sql.NewSpanIter(span, iter), nil
114+
return sql.NewSpanIter(span, newRepoRowIter(repo, iter)), nil
115115
}
116116

117117
func (treeEntriesTable) HandledFilters(filters []sql.Expression) []sql.Expression {

0 commit comments

Comments
 (0)