Skip to content

Commit 299449b

Browse files
authored
Fix bug: count sql statement leak (#1640)
fix resultset leak for count query fixed #1626
1 parent d9b70d7 commit 299449b

File tree

3 files changed

+8
-5
lines changed
  • hugegraph-core/src/main/java/com/baidu/hugegraph/backend/store
  • hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql
  • hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb

3 files changed

+8
-5
lines changed

hugegraph-core/src/main/java/com/baidu/hugegraph/backend/store/BackendEntry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public default boolean olap() {
102102
return false;
103103
}
104104

105-
public interface BackendIterator<T> extends Iterator<T> {
105+
public interface BackendIterator<T> extends Iterator<T>, AutoCloseable {
106106

107107
public void close();
108108

hugegraph-mysql/src/main/java/com/baidu/hugegraph/backend/store/mysql/MysqlTable.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,8 @@ public Number queryNumber(Session session, Query query) {
340340
return IteratorUtils.of(rs.resultSet().getLong(1));
341341
} catch (SQLException e) {
342342
throw new BackendException(e);
343+
} finally {
344+
rs.close();
343345
}
344346
});
345347
return aggregate.reduce(results);

hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBTable.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,12 @@ public Number queryNumber(Session session, Query query) {
129129

130130
assert aggregate.func() == AggregateFunc.COUNT;
131131
assert query.noLimit();
132-
Iterator<BackendColumn> results = this.queryBy(session, query);
133-
if (results instanceof Countable) {
134-
return ((Countable) results).count();
132+
try (BackendColumnIterator results = this.queryBy(session, query)) {
133+
if (results instanceof Countable) {
134+
return ((Countable) results).count();
135+
}
136+
return IteratorUtils.count(results);
135137
}
136-
return IteratorUtils.count(results);
137138
}
138139

139140
@Override

0 commit comments

Comments
 (0)