@Override public boolean nextKeyValue() throws IOException, InterruptedException { if (key == null) { key = NullWritable.get(); } if (value == null) { value = ReflectionUtils.newInstance(inputClass, this.configuration); } Preconditions.checkNotNull(this.resultSet); try { if(!resultSet.next()) { return false; } value.readFields(resultSet); return true; } catch (SQLException e) { LOG.error(String.format(" Error [%s] occurred while iterating over the resultset. ",e.getMessage())); throw new RuntimeException(e); } }
@Override public boolean next(WritableComparable key, T value) throws IOException { try { if (!resultSet.next()) { return false; } value.readFields(resultSet); if (isTransactional) { ((PhoenixResultWritable) value).readPrimaryKey((PhoenixRowKey) key); } ++readCount; if (LOG.isTraceEnabled()) { LOG.trace("Result[" + readCount + "] : " + ((PhoenixResultWritable) value) .getResultMap()); } return true; } catch (SQLException e) { LOG.error(String.format(" Error [%s] occurred while iterating over the resultset. ", e.getMessage())); throw new RuntimeException(e); } }
@Test public void testReadMetricsForSelect() throws Exception { String tableName = generateUniqueName(); long numSaltBuckets = 6; String ddl = "CREATE TABLE " + tableName + " (K VARCHAR NOT NULL PRIMARY KEY, V VARCHAR)" + " SALT_BUCKETS = " + numSaltBuckets; Connection conn = DriverManager.getConnection(getUrl()); conn.createStatement().execute(ddl); long numRows = 1000; long numExpectedTasks = numSaltBuckets; insertRowsInTable(tableName, numRows); String query = "SELECT * FROM " + tableName; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(query); PhoenixResultSet resultSetBeingTested = rs.unwrap(PhoenixResultSet.class); changeInternalStateForTesting(resultSetBeingTested); while (resultSetBeingTested.next()) {} resultSetBeingTested.close(); Set<String> expectedTableNames = Sets.newHashSet(tableName); assertReadMetricValuesForSelectSql(Lists.newArrayList(numRows), Lists.newArrayList(numExpectedTasks), resultSetBeingTested, expectedTableNames); }
ValueGetter getter = getIndexValueGetter(rs, dataColNames); while (rs.next()) { rs.getCurrentRow().getKey(dataRowKeyPtr);
while (rs.next()) { ImmutableBytesPtr rowKeyPtr = new ImmutableBytesPtr(); // allocate new as this is a key in a Map rs.getCurrentRow().getKey(rowKeyPtr);
@Override public boolean nextKeyValue() throws IOException, InterruptedException { if (key == null) { key = NullWritable.get(); } if (value == null) { value = ReflectionUtils.newInstance(inputClass, this.configuration); } Preconditions.checkNotNull(this.resultSet); try { if(!resultSet.next()) { return false; } value.readFields(resultSet); return true; } catch (SQLException e) { LOG.error(String.format(" Error [%s] occurred while iterating over the resultset. ",e.getMessage())); throw new RuntimeException(e); } }
@Override public boolean nextKeyValue() throws IOException, InterruptedException { if (key == null) { key = NullWritable.get(); } if (value == null) { value = ReflectionUtils.newInstance(inputClass, this.configuration); } Preconditions.checkNotNull(this.resultSet); try { if(!resultSet.next()) { return false; } value.readFields(resultSet); return true; } catch (SQLException e) { LOG.error(String.format(" Error [%s] occurred while iterating over the resultset. ",e.getMessage())); throw new RuntimeException(e); } }
ResultIterator resultIterator = plan.iterator(); PhoenixResultSet rs = ps.newResultSet(resultIterator, plan.getProjector(), plan.getContext()); rs.next(); autoPartitionNum = rs.getLong(1);
@Test public void testMapResultsResultSetClassOfR_Long() throws Exception { PhoenixProjectedResultMapper mapper = new PhoenixProjectedResultMapper(null); @SuppressWarnings("resource") PhoenixResultSet rs = mock(PhoenixResultSet.class); ResultSetMetaData rsMeta = mock(ResultSetMetaData.class); when(rs.getMetaData()).thenReturn(rsMeta); when(rs.next()).thenAnswer(new Answer<Boolean>() { boolean t = false; @Override public Boolean answer(InvocationOnMock invocation) throws Throwable { t = !t; return t; } }); when(rsMeta.getColumnCount()).thenReturn(1); when(rsMeta.getColumnName(1)).thenReturn("count"); when(rs.getObject(any())).thenReturn(new Long(1000)); Iterable<Long> longL = mapper.mapResults(rs, Long.class); assertNotNull(longL); Iterator<Long> it = longL.iterator(); assertTrue(it.next() == 1000); assertFalse(it.hasNext()); }
@Test public void testMapResultsResultSetClassOfR_Int() throws Exception { PhoenixProjectedResultMapper mapper = new PhoenixProjectedResultMapper(null); @SuppressWarnings("resource") PhoenixResultSet rs = mock(PhoenixResultSet.class); ResultSetMetaData rsMeta = mock(ResultSetMetaData.class); when(rs.getMetaData()).thenReturn(rsMeta); when(rs.next()).thenAnswer(new Answer<Boolean>() { boolean t = false; @Override public Boolean answer(InvocationOnMock invocation) throws Throwable { t = !t; return t; } }); when(rsMeta.getColumnCount()).thenReturn(1); when(rsMeta.getColumnName(1)).thenReturn("count"); when(rs.getObject(any())).thenReturn(new Integer(1000)); Iterable<Integer> intL = mapper.mapResults(rs, Integer.class); assertNotNull(intL); Iterator<Integer> it = intL.iterator(); assertTrue(it.next() == 1000); assertFalse(it.hasNext()); }
ValueGetter getter = getIndexValueGetter(rs, dataColNames); while (rs.next()) { rs.getCurrentRow().getKey(dataRowKeyPtr);
ValueGetter getter = getIndexValueGetter(rs, dataColNames); while (rs.next()) { rs.getCurrentRow().getKey(dataRowKeyPtr);
while (rs.next()) { ImmutableBytesPtr rowKeyPtr = new ImmutableBytesPtr(); // allocate new as this is a key in a Map rs.getCurrentRow().getKey(rowKeyPtr);
while (rs.next()) { ImmutableBytesPtr rowKeyPtr = new ImmutableBytesPtr(); // allocate new as this is a key in a Map rs.getCurrentRow().getKey(rowKeyPtr);
ResultIterator resultIterator = plan.iterator(); PhoenixResultSet rs = ps.newResultSet(resultIterator, plan.getProjector(), plan.getContext()); rs.next(); autoPartitionNum = rs.getLong(1);
ResultIterator resultIterator = plan.iterator(); PhoenixResultSet rs = ps.newResultSet(resultIterator, plan.getProjector(), plan.getContext()); rs.next(); autoPartitionNum = rs.getLong(1);