Skip to content

Commit 9427e11

Browse files
authored
Merge branch 'master' into testcov/889
2 parents cf01f79 + 2fb1fcd commit 9427e11

23 files changed

+147
-63
lines changed

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
### Changed
10+
11+
- Errors now report the repository causing the error, if possible.
12+
- Now non rooted siva files support old siva rooted repositories.
13+
14+
## [0.22.0] - 2019-07-03
15+
16+
### Added
17+
18+
- Now gitbase uses [go-borges](https://github.com/src-d/go-borges) to access repositories
19+
- The type of files in each directory has to be specified ([#867](https://github.com/src-d/gitbase/pull/867))
20+
- Supports new rooted repository format and separates references and objects from each repo (https://github.com/src-d/borges/issues/389)
21+
22+
### Changed
23+
24+
- Changed cli to be able to specify different formats ([#866](https://github.com/src-d/gitbase/issues/866))
25+
26+
### Fixed
27+
28+
- function: correctly transform up explode nodes ([#757](https://github.com/src-d/go-mysql-server/pull/757))
29+
- git libraries bare or non bare format is automatically detected ([#897](https://github.com/src-d/gitbase/pull/897))
30+
- Fix bug that created multiple object cache with incorrect size ([#898](https://github.com/src-d/gitbase/pull/898))
31+
- sql/expression: handle null values in arithmetic expressions ([#760](https://github.com/src-d/go-mysql-server/pull/760))
32+
- Panic on query using EXPLODE ([#755](https://github.com/src-d/go-mysql-server/issues/755))
33+
- Fixed error iterating over non ready repositories ([src-d/go-borges#54](https://github.com/src-d/go-borges/pull/54))
34+
- Error saying value could not be converted to bool.
35+
- function: make array_length not fail with literal null ([#767](https://github.com/src-d/go-mysql-server/pull/767))
36+
- server: kill queries on connection closed (([#769](https://github.com/src-d/go-mysql-server/pull/769)))
37+
938
## [0.22.0-rc2] - 2019-06-24
1039

1140
### Fixed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
**gitbase**, is a SQL database interface to Git repositories.
44

5-
This project is now part of [source{d} Engine](https://sourced.tech/engine),
5+
This project is now part of [source{d} Community Edition](https://sourced.tech/products/community-edition/),
66
which provides the simplest way to get started with a single command.
7-
Visit [sourced.tech/engine](https://sourced.tech/engine) for more information.
7+
Visit [https://docs.sourced.tech/community-edition](https://docs.sourced.tech/community-edition) for more information.
88

99
It can be used to perform SQL queries about the Git history and
1010
about the [Universal AST](https://doc.bblf.sh/) of the code itself. gitbase is being built to work on top of any number of git repositories.

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 {

cmd/gitbase/command/server.go

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/sirupsen/logrus"
2121
"github.com/src-d/go-borges"
2222
"github.com/src-d/go-borges/libraries"
23+
"github.com/src-d/go-borges/oldsiva"
2324
"github.com/src-d/go-borges/plain"
2425
"github.com/src-d/go-borges/siva"
2526
sqle "github.com/src-d/go-mysql-server"
@@ -227,7 +228,7 @@ func (c *Server) buildDatabase() error {
227228

228229
c.sharedCache = cache.NewObjectLRU(c.CacheSize * cache.MiByte)
229230

230-
c.rootLibrary = libraries.New(libraries.Options{})
231+
c.rootLibrary = libraries.New(nil)
231232
c.pool = gitbase.NewRepositoryPool(c.sharedCache, c.rootLibrary)
232233

233234
if err := c.addDirectories(); err != nil {
@@ -318,18 +319,34 @@ func (c *Server) addDirectories() error {
318319

319320
func (c *Server) addDirectory(d directory) error {
320321
if d.Format == "siva" {
321-
sivaOpts := siva.LibraryOptions{
322-
Transactional: true,
323-
RootedRepo: d.Rooted,
324-
Cache: c.sharedCache,
325-
Bucket: d.Bucket,
326-
Performance: true,
327-
RegistryCache: 100000,
328-
}
322+
var lib borges.Library
323+
var err error
324+
325+
if d.Rooted {
326+
sivaOpts := &siva.LibraryOptions{
327+
Transactional: true,
328+
RootedRepo: d.Rooted,
329+
Cache: c.sharedCache,
330+
Bucket: d.Bucket,
331+
Performance: true,
332+
RegistryCache: 100000,
333+
}
329334

330-
lib, err := siva.NewLibrary(d.Path, osfs.New(d.Path), sivaOpts)
331-
if err != nil {
332-
return err
335+
lib, err = siva.NewLibrary(d.Path, osfs.New(d.Path), sivaOpts)
336+
if err != nil {
337+
return err
338+
}
339+
} else {
340+
sivaOpts := &oldsiva.LibraryOptions{
341+
Cache: c.sharedCache,
342+
Bucket: d.Bucket,
343+
RegistryCache: 100000,
344+
}
345+
346+
lib, err = oldsiva.NewLibrary(d.Path, osfs.New(d.Path), sivaOpts)
347+
if err != nil {
348+
return err
349+
}
333350
}
334351

335352
err = c.rootLibrary.Add(lib)

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 {

common_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,14 +314,14 @@ func newMultiLibrary() (*multiLibrary, error) {
314314
plainLib.AddLocation(plainLoc)
315315

316316
sivaFS := memfs.New()
317-
sivaLib, err := siva.NewLibrary("siva", sivaFS, siva.LibraryOptions{
317+
sivaLib, err := siva.NewLibrary("siva", sivaFS, &siva.LibraryOptions{
318318
RootedRepo: true,
319319
})
320320
if err != nil {
321321
return nil, err
322322
}
323323

324-
libs := libraries.New(libraries.Options{})
324+
libs := libraries.New(nil)
325325

326326
err = libs.Add(plainLib)
327327
if err != nil {

database_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const testDBName = "foo"
1414
func TestDatabase_Tables(t *testing.T) {
1515
require := require.New(t)
1616

17-
lib := libraries.New(libraries.Options{})
17+
lib := libraries.New(nil)
1818
db := getDB(t, testDBName, NewRepositoryPool(nil, lib))
1919

2020
tables := db.Tables()
@@ -45,7 +45,7 @@ func TestDatabase_Tables(t *testing.T) {
4545
func TestDatabase_Name(t *testing.T) {
4646
require := require.New(t)
4747

48-
lib := libraries.New(libraries.Options{})
48+
lib := libraries.New(nil)
4949
db := getDB(t, testDBName, NewRepositoryPool(nil, lib))
5050
require.Equal(testDBName, db.Name())
5151
}

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)

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ require (
1414
github.com/opentracing/opentracing-go v1.1.0
1515
github.com/sirupsen/logrus v1.3.0
1616
github.com/src-d/enry/v2 v2.0.0
17-
github.com/src-d/go-borges v0.0.0-20190624135448-6ee47472d565
17+
github.com/src-d/go-borges v0.0.0-20190628121335-da12a84d60fd
1818
github.com/src-d/go-git v4.7.0+incompatible
1919
github.com/src-d/go-git-fixtures v3.5.1-0.20190605154830-57f3972b0248+incompatible
20-
github.com/src-d/go-mysql-server v0.4.1-0.20190624170509-8702d43af506
20+
github.com/src-d/go-mysql-server v0.4.1-0.20190703085445-1538f09dbaaf
2121
github.com/stretchr/testify v1.3.0
2222
github.com/uber-go/atomic v1.4.0 // indirect
2323
github.com/uber/jaeger-client-go v2.16.0+incompatible

go.sum

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,14 +217,14 @@ github.com/src-d/enry/v2 v2.0.0 h1:2ADqfDHhroFwL1RGhMS9e15NkEwln8P4AABwVvIdAlo=
217217
github.com/src-d/enry/v2 v2.0.0/go.mod h1:qQeCMRwzMF3ckeGr+h0tJLdxXnq+NVZsIDMELj0t028=
218218
github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4=
219219
github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI=
220-
github.com/src-d/go-borges v0.0.0-20190624135448-6ee47472d565 h1:cyTdUPYEW0oGeXNCjZes3aTr+Ent3F2OHD3rm6Qy/bs=
221-
github.com/src-d/go-borges v0.0.0-20190624135448-6ee47472d565/go.mod h1:Myl/zHrk3iT/I5T08RTBpuGzchucytSsi6p7KzM2lOA=
220+
github.com/src-d/go-borges v0.0.0-20190628121335-da12a84d60fd h1:jUbtZFWSqGX1DfD2evCwA4y7LIrWV0W8h06sjWZANf0=
221+
github.com/src-d/go-borges v0.0.0-20190628121335-da12a84d60fd/go.mod h1:Myl/zHrk3iT/I5T08RTBpuGzchucytSsi6p7KzM2lOA=
222222
github.com/src-d/go-git v4.7.0+incompatible h1:IYSSnbAHeKmsfbQFi9ozbid+KNh0bKjlorMfQehQbcE=
223223
github.com/src-d/go-git v4.7.0+incompatible/go.mod h1:1bQciz+hn0jzPQNsYj0hDFZHLJBdV7gXE2mWhC7EkFk=
224224
github.com/src-d/go-git-fixtures v3.5.1-0.20190605154830-57f3972b0248+incompatible h1:A5bKevhs9C//Nh8QV0J+1KphEaIa25cDe1DTs/yPxDI=
225225
github.com/src-d/go-git-fixtures v3.5.1-0.20190605154830-57f3972b0248+incompatible/go.mod h1:XcIQp7L+k0pgfTqfbaTKj3kxlBv8kYOKZ/tKNXbZFLg=
226-
github.com/src-d/go-mysql-server v0.4.1-0.20190624170509-8702d43af506 h1:VOP2Y52vJhi+ipl/3h+8+Vtt4vySAuMdj2vPduSHsAI=
227-
github.com/src-d/go-mysql-server v0.4.1-0.20190624170509-8702d43af506/go.mod h1:GO8SmBnN9LcKSXy6DYuBbqKtJvrRnHsBrlXvlVOX+NM=
226+
github.com/src-d/go-mysql-server v0.4.1-0.20190703085445-1538f09dbaaf h1:5w4Ma4svbcyGuWTqD7EoT8Yq6DAzKYmVxlIu5NruTac=
227+
github.com/src-d/go-mysql-server v0.4.1-0.20190703085445-1538f09dbaaf/go.mod h1:GO8SmBnN9LcKSXy6DYuBbqKtJvrRnHsBrlXvlVOX+NM=
228228
github.com/src-d/go-oniguruma v1.0.0 h1:JDk5PUAjreGsGAKLsoDLNmrsaryjJ5RqT3h+Si6aw/E=
229229
github.com/src-d/go-oniguruma v1.0.0/go.mod h1:chVbff8kcVtmrhxtZ3yBVLLquXbzCS6DrxQaAK/CeqM=
230230
github.com/src-d/go-oniguruma v1.1.0 h1:EG+Nm5n2JqWUaCjtM0NtutPxU7ZN5Tp50GWrrV8bTww=
@@ -379,6 +379,8 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
379379
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
380380
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
381381
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
382+
honnef.co/go/tools v0.0.0-2019.2.1 h1:fW1wbZIKRbRK56ETe5SYloH5SdLzhXOFet2KlpRKDqg=
383+
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099 h1:XJP7lxbSxWLOMNdBE4B/STaqVy6L73o0knwj2vIlxnw=
382384
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
383385
modernc.org/mathutil v1.0.0 h1:93vKjrJopTPrtTNpZ8XIovER7iCIH1QU7wNbOQXC60I=
384386
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=

integration_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,7 @@ func TestMissingHeadRefs(t *testing.T) {
748748

749749
path := filepath.Join(cwd, "_testdata")
750750

751-
lib, err := siva.NewLibrary("siva", osfs.New(path), siva.LibraryOptions{
751+
lib, err := siva.NewLibrary("siva", osfs.New(path), &siva.LibraryOptions{
752752
RootedRepo: true,
753753
})
754754
require.NoError(err)

internal/rule/squashjoins_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
func TestAnalyzeSquashJoinsExchange(t *testing.T) {
1919
require := require.New(t)
2020

21-
lib := libraries.New(libraries.Options{})
21+
lib := libraries.New(nil)
2222

2323
catalog := sql.NewCatalog()
2424
catalog.AddDatabase(
@@ -57,7 +57,7 @@ func TestAnalyzeSquashJoinsExchange(t *testing.T) {
5757
func TestAnalyzeSquashNaturalJoins(t *testing.T) {
5858
require := require.New(t)
5959

60-
lib := libraries.New(libraries.Options{})
60+
lib := libraries.New(nil)
6161

6262
catalog := sql.NewCatalog()
6363
catalog.AddDatabase(
@@ -2288,7 +2288,7 @@ func TestIsJoinLeafSquashable(t *testing.T) {
22882288
}
22892289

22902290
func TestOrderedTableNames(t *testing.T) {
2291-
lib := libraries.New(libraries.Options{})
2291+
lib := libraries.New(nil)
22922292
tables := gitbase.NewDatabase("foo", gitbase.NewRepositoryPool(nil, lib)).Tables()
22932293

22942294
input := []sql.Table{
@@ -2830,6 +2830,6 @@ func (l dummyLookup) Indexes() []string {
28302830
}
28312831

28322832
func gitbaseTables() map[string]sql.Table {
2833-
lib := libraries.New(libraries.Options{})
2833+
lib := libraries.New(nil)
28342834
return gitbase.NewDatabase("", gitbase.NewRepositoryPool(nil, lib)).Tables()
28352835
}

0 commit comments

Comments
 (0)