Skip to content

Commit a9c1f19

Browse files
committed
gitquery: add content column to blobs table
Signed-off-by: Miguel Molina <[email protected]>
1 parent 12085e5 commit a9c1f19

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

blobs.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package gitquery
22

33
import (
44
"io"
5+
"io/ioutil"
56

67
"gopkg.in/src-d/go-mysql-server.v0/sql"
78

@@ -16,6 +17,7 @@ type blobsTable struct {
1617
var blobsSchema = sql.Schema{
1718
{Name: "hash", Type: sql.Text, Nullable: false, Source: blobsTableName},
1819
{Name: "size", Type: sql.Int64, Nullable: false, Source: blobsTableName},
20+
{Name: "content", Type: sql.Blob, Nullable: false, Source: blobsTableName},
1921
}
2022

2123
var _ sql.PushdownProjectionAndFiltersTable = (*blobsTable)(nil)
@@ -104,7 +106,7 @@ func (i *blobIter) Next() (sql.Row, error) {
104106
return nil, err
105107
}
106108

107-
return blobToRow(o), nil
109+
return blobToRow(o)
108110
}
109111

110112
func (i *blobIter) Close() error {
@@ -142,17 +144,28 @@ func (i *blobsByHashIter) Next() (sql.Row, error) {
142144
return nil, err
143145
}
144146

145-
return blobToRow(blob), nil
147+
return blobToRow(blob)
146148
}
147149
}
148150

149151
func (i *blobsByHashIter) Close() error {
150152
return nil
151153
}
152154

153-
func blobToRow(c *object.Blob) sql.Row {
155+
func blobToRow(c *object.Blob) (sql.Row, error) {
156+
r, err := c.Reader()
157+
if err != nil {
158+
return nil, err
159+
}
160+
161+
content, err := ioutil.ReadAll(r)
162+
if err != nil {
163+
return nil, err
164+
}
165+
154166
return sql.NewRow(
155167
c.Hash.String(),
156168
c.Size,
157-
)
169+
content,
170+
), nil
158171
}

0 commit comments

Comments
 (0)