Skip to content

Commit 2bbc3bd

Browse files
authored
sql: make Row a concrete implementation. (#96)
* Row is now a slice instead of an interface. * MemoryRow is removed.
1 parent 48b4a0c commit 2bbc3bd

31 files changed

+167
-167
lines changed

cmd/gitql/query.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,12 @@ func (c *CmdQuery) printQuery(schema sql.Schema, iter sql.RowIter) error {
114114
return err
115115
}
116116

117-
if err := f.Write(row.Fields()); err != nil {
117+
record := make([]interface{}, len(row))
118+
for i := 0; i < len(row); i++ {
119+
record[i] = row[i]
120+
}
121+
122+
if err := f.Write(record); err != nil {
118123
return err
119124
}
120125
}

engine.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package gitql
33
import (
44
"github.com/gitql/gitql/sql"
55
"github.com/gitql/gitql/sql/analyzer"
6-
"github.com/gitql/gitql/sql/parse"
76
"github.com/gitql/gitql/sql/expression"
7+
"github.com/gitql/gitql/sql/parse"
88
)
99

1010
type Engine struct {

engine_test.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,46 +16,46 @@ func TestEngine_Query(t *testing.T) {
1616
testQuery(t, e,
1717
"SELECT i FROM mytable;",
1818
[]sql.Row{
19-
sql.NewMemoryRow(int64(1)),
20-
sql.NewMemoryRow(int64(2)),
21-
sql.NewMemoryRow(int64(3)),
19+
sql.NewRow(int64(1)),
20+
sql.NewRow(int64(2)),
21+
sql.NewRow(int64(3)),
2222
},
2323
)
2424

2525
testQuery(t, e,
2626
"SELECT i FROM mytable WHERE i = 2;",
2727
[]sql.Row{
28-
sql.NewMemoryRow(int64(2)),
28+
sql.NewRow(int64(2)),
2929
},
3030
)
3131

3232
testQuery(t, e,
3333
"SELECT i FROM mytable ORDER BY i DESC;",
3434
[]sql.Row{
35-
sql.NewMemoryRow(int64(3)),
36-
sql.NewMemoryRow(int64(2)),
37-
sql.NewMemoryRow(int64(1)),
35+
sql.NewRow(int64(3)),
36+
sql.NewRow(int64(2)),
37+
sql.NewRow(int64(1)),
3838
},
3939
)
4040

4141
testQuery(t, e,
4242
"SELECT i FROM mytable WHERE s = 'a' ORDER BY i DESC;",
4343
[]sql.Row{
44-
sql.NewMemoryRow(int64(1)),
44+
sql.NewRow(int64(1)),
4545
},
4646
)
4747

4848
testQuery(t, e,
4949
"SELECT i FROM mytable WHERE s = 'a' ORDER BY i DESC LIMIT 1;",
5050
[]sql.Row{
51-
sql.NewMemoryRow(int64(1)),
51+
sql.NewRow(int64(1)),
5252
},
5353
)
5454

5555
testQuery(t, e,
5656
"SELECT COUNT(*) FROM mytable;",
5757
[]sql.Row{
58-
sql.NewMemoryRow(int32(3)),
58+
sql.NewRow(int32(3)),
5959
},
6060
)
6161
}
@@ -91,9 +91,9 @@ func newEngine(t *testing.T) *gitql.Engine {
9191
{"i", sql.BigInteger},
9292
{"s", sql.String},
9393
})
94-
assert.Nil(table.Insert(int64(1), "a"))
95-
assert.Nil(table.Insert(int64(2), "b"))
96-
assert.Nil(table.Insert(int64(3), "c"))
94+
assert.Nil(table.Insert(sql.NewRow(int64(1), "a")))
95+
assert.Nil(table.Insert(sql.NewRow(int64(2), "b")))
96+
assert.Nil(table.Insert(sql.NewRow(int64(3), "c")))
9797

9898
db := mem.NewDatabase("mydb")
9999
db.AddTable("mytable", table)

git/blobs.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func (i *blobIter) Next() (sql.Row, error) {
6565
}
6666

6767
func blobToRow(c *object.Blob) sql.Row {
68-
return sql.NewMemoryRow(
68+
return sql.NewRow(
6969
c.Hash.String(),
7070
c.Size,
7171
)

git/commits.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func (i *commitIter) Next() (sql.Row, error) {
7070
}
7171

7272
func commitToRow(c *object.Commit) sql.Row {
73-
return sql.NewMemoryRow(
73+
return sql.NewRow(
7474
c.Hash.String(),
7575
c.Author.Name,
7676
c.Author.Email,

git/objects.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func (i *objectIter) Next() (sql.Row, error) {
6565
}
6666

6767
func objectToRow(o object.Object) sql.Row {
68-
return sql.NewMemoryRow(
68+
return sql.NewRow(
6969
o.ID().String(),
7070
o.Type().String(),
7171
)

git/references.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func (i *referenceIter) Next() (sql.Row, error) {
7171
}
7272

7373
func referenceToRow(c *plumbing.Reference) sql.Row {
74-
return sql.NewMemoryRow(
74+
return sql.NewRow(
7575
c.Hash().String(),
7676
c.Name().String(),
7777
c.IsBranch(),

git/tags.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func (i *tagIter) Next() (sql.Row, error) {
7070
}
7171

7272
func tagToRow(c *object.Tag) sql.Row {
73-
return sql.NewMemoryRow(
73+
return sql.NewRow(
7474
c.Hash.String(),
7575
c.Name,
7676
c.Tagger.Email,

git/tree_entries.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func (i *treeEntryIter) Next() (sql.Row, error) {
8686
}
8787

8888
func treeEntryToRow(t *object.Tree, e object.TreeEntry) sql.Row {
89-
return sql.NewMemoryRow(
89+
return sql.NewRow(
9090
t.ID().String(),
9191
e.Hash.String(),
9292
strconv.FormatInt(int64(e.Mode), 8),

internal/format/json_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ func TestNewJsonFormat(t *testing.T) {
1919
}, w, t)
2020
}
2121

22-
2322
func TestNewFormat_Json(t *testing.T) {
2423
testNewFormat("json", t)
25-
}
24+
}

0 commit comments

Comments
 (0)