Skip to content

Commit c868dd4

Browse files
authored
sql: add Close() method to RowIter. (#103)
1 parent f2951ee commit c868dd4

17 files changed

+82
-1
lines changed

cmd/gitql/query_base.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,11 @@ func (c *cmdQueryBase) printQuery(schema sql.Schema, iter sql.RowIter, formatId
103103
}
104104
}
105105

106+
if err := iter.Close(); err != nil {
107+
_ = f.Close()
108+
return err
109+
}
110+
106111
return f.Close()
107112
}
108113

git/blobs.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ func (i *blobIter) Next() (sql.Row, error) {
6464
return blobToRow(blob), nil
6565
}
6666

67+
func (i *blobIter) Close() error {
68+
i.i.Close()
69+
return nil
70+
}
71+
6772
func blobToRow(c *object.Blob) sql.Row {
6873
return sql.NewRow(
6974
c.Hash.String(),

git/commits.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ func (i *commitIter) Next() (sql.Row, error) {
6969
return commitToRow(commit), nil
7070
}
7171

72+
func (i *commitIter) Close() error {
73+
i.i.Close()
74+
return nil
75+
}
76+
7277
func commitToRow(c *object.Commit) sql.Row {
7378
return sql.NewRow(
7479
c.Hash.String(),

git/objects.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ func (i *objectIter) Next() (sql.Row, error) {
6464
return objectToRow(o), nil
6565
}
6666

67+
func (i *objectIter) Close() error {
68+
i.i.Close()
69+
return nil
70+
}
71+
6772
func objectToRow(o object.Object) sql.Row {
6873
return sql.NewRow(
6974
o.ID().String(),

git/references.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ func (i *referenceIter) Next() (sql.Row, error) {
7070
return referenceToRow(reference), nil
7171
}
7272

73+
func (i *referenceIter) Close() error {
74+
i.i.Close()
75+
return nil
76+
}
77+
7378
func referenceToRow(c *plumbing.Reference) sql.Row {
7479
return sql.NewRow(
7580
c.Hash().String(),

git/tags.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ func (i *tagIter) Next() (sql.Row, error) {
6969
return tagToRow(tag), nil
7070
}
7171

72+
func (i *tagIter) Close() error {
73+
i.i.Close()
74+
return nil
75+
}
76+
7277
func tagToRow(c *object.Tag) sql.Row {
7378
return sql.NewRow(
7479
c.Hash.String(),

git/tree_entries.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ func (i *treeEntryIter) Next() (sql.Row, error) {
8585
}
8686
}
8787

88+
func (i *treeEntryIter) Close() error {
89+
i.i.Close()
90+
return nil
91+
}
92+
8893
func treeEntryToRow(t *object.Tree, e object.TreeEntry) sql.Row {
8994
return sql.NewRow(
9095
t.ID().String(),

mem/table.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,8 @@ func (i *iter) Next() (sql.Row, error) {
7878
i.idx++
7979
return row.Copy(), nil
8080
}
81+
82+
func (i *iter) Close() error {
83+
i.rows = nil
84+
return nil
85+
}

sql/plan/cross_join.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,15 @@ func (i *crossJoinIterator) Next() (sql.Row, error) {
101101
return row, nil
102102
}
103103

104+
func (i *crossJoinIterator) Close() error {
105+
if err := i.li.Close(); err != nil {
106+
_ = i.ri.Close()
107+
return err
108+
}
109+
110+
return i.ri.Close()
111+
}
112+
104113
func (i *crossJoinIterator) fillRows() error {
105114
for {
106115
rr, err := i.ri.Next()

sql/plan/describe.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,7 @@ func (i *describeIter) Next() (sql.Row, error) {
5959
i.i++
6060
return sql.NewRow(f.Name, f.Type.Name()), nil
6161
}
62+
63+
func (i *describeIter) Close() error {
64+
return nil
65+
}

0 commit comments

Comments
 (0)