@Override public boolean moveNext() { try { if (cursor == null) { cursor = queryStorage(); } if (!cursor.hasNext()) { return false; } ITuple tuple = cursor.next(); if (tuple == null) { return false; } convertCurrentRow(tuple); return true; } catch (Exception e) { try { if (cursor != null) { cursor.close(); } } catch (Exception ee) { logger.info("Error when closing cursor, ignore it", ee); } throw e; } }
@Override public void close() { for (ITupleIterator i : backends) { i.close(); } }
@Override public boolean hasNext() { while (!this.tupleIterator.hasNext()) { if (this.regionResponsesIterator.hasNext()) { this.tupleIterator = new SingleRegionTupleIterator(this.regionResponsesIterator.next()); } else { return false; } } return true; }
@Override public ITuple next() { rowsInAllMetric++; if (!hasNext()) { throw new IllegalStateException("No more ITuple in EndpointTupleIterator"); } return this.tupleIterator.next(); }
@Override public void close() { if (cursor != null) cursor.close(); }
@Override public boolean hasNext() { // 1. check limit if (context.isLimitEnabled() && scanCount >= context.getLimit()) { return false; } // 2. check partial result if (context.isAcceptPartialResult() && scanCount > partialResultLimit) { context.setPartialResultReturned(true); return false; } // 3. check threshold if (scanCount >= context.getThreshold()) { throw new ScanOutOfLimitException("Scan row count exceeded threshold: " + context.getThreshold() + ", please add filter condition to narrow down backend scan range, like where clause."); } // 4. check cube segments return segmentIteratorIterator.hasNext() || segmentIterator.hasNext(); }
@Override public void close() { if (cursor != null) { cursor.close(); } }
@Override public void close() { context.setTotalScanCount(scanCount); segmentIterator.close(); } }
@Override public void close() { if (cursor != null) cursor.close(); }
private int search(List<TblColRef> groups, List<FunctionDesc> aggregations, TupleFilter filter, StorageContext context) { int count = 0; ITupleIterator iterator = null; try { SQLDigest sqlDigest = new SQLDigest("default.test_kylin_fact", filter, null, Collections.<TblColRef> emptySet(), groups, Collections.<TblColRef> emptySet(), Collections.<TblColRef> emptySet(), aggregations); iterator = storageEngine.search(context, sqlDigest); while (iterator.hasNext()) { ITuple tuple = iterator.next(); System.out.println("Tuple = " + tuple); count++; } } catch (Exception e) { e.printStackTrace(); } finally { if (iterator != null) { iterator.close(); } } return count; }
@Override public void close() { for (ITupleIterator i : backends) { i.close(); } }
@Override public boolean moveNext() { try { if (cursor == null) { cursor = queryStorage(); } if (!cursor.hasNext()) { return false; } ITuple tuple = cursor.next(); if (tuple == null) { return false; } convertCurrentRow(tuple); return true; } catch (Exception e) { try { if (cursor != null) { cursor.close(); } } catch (Exception ee) { logger.info("Error when closing cursor, ignore it", ee); } throw e; } }
@Override public void close() { for (ITupleIterator i : backends) { i.close(); } }