@@ -2,6 +2,7 @@ package gitquery
2
2
3
3
import (
4
4
"io"
5
+ "io/ioutil"
5
6
6
7
"gopkg.in/src-d/go-mysql-server.v0/sql"
7
8
@@ -16,6 +17,7 @@ type blobsTable struct {
16
17
var blobsSchema = sql.Schema {
17
18
{Name : "hash" , Type : sql .Text , Nullable : false , Source : blobsTableName },
18
19
{Name : "size" , Type : sql .Int64 , Nullable : false , Source : blobsTableName },
20
+ {Name : "content" , Type : sql .Blob , Nullable : false , Source : blobsTableName },
19
21
}
20
22
21
23
var _ sql.PushdownProjectionAndFiltersTable = (* blobsTable )(nil )
@@ -104,7 +106,7 @@ func (i *blobIter) Next() (sql.Row, error) {
104
106
return nil , err
105
107
}
106
108
107
- return blobToRow (o ), nil
109
+ return blobToRow (o )
108
110
}
109
111
110
112
func (i * blobIter ) Close () error {
@@ -142,17 +144,28 @@ func (i *blobsByHashIter) Next() (sql.Row, error) {
142
144
return nil , err
143
145
}
144
146
145
- return blobToRow (blob ), nil
147
+ return blobToRow (blob )
146
148
}
147
149
}
148
150
149
151
func (i * blobsByHashIter ) Close () error {
150
152
return nil
151
153
}
152
154
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
+
154
166
return sql .NewRow (
155
167
c .Hash .String (),
156
168
c .Size ,
157
- )
169
+ content ,
170
+ ), nil
158
171
}
0 commit comments