@Override public RecordCursor cursor() { return new TpchRecordCursor<>(rows.iterator(), table, columns, predicate); }
@Override public double getDouble(int field) { checkState(row != null, "No current row"); return getDouble(getTpchColumn(field)); }
@Override public long getLong(int field) { checkState(row != null, "No current row"); return getLong(getTpchColumn(field)); }
private boolean rowMatchesPredicate() { if (predicate.isAll()) { return true; } if (predicate.isNone()) { return false; } Map<ColumnHandle, NullableValue> rowMap = predicate.getDomains().get().keySet().stream() .collect(toImmutableMap( column -> column, column -> { TpchColumnHandle tpchColumnHandle = (TpchColumnHandle) column; Type type = tpchColumnHandle.getType(); TpchColumn tpchColumn = table.getColumn(tpchColumnHandle.getColumnName()); return NullableValue.of(type, getPrestoObject(tpchColumn, type)); })); TupleDomain<ColumnHandle> rowTupleDomain = TupleDomain.fromFixedValues(rowMap); return predicate.contains(rowTupleDomain); }
private boolean rowMatchesPredicate() { if (predicate.isAll()) { return true; } if (predicate.isNone()) { return false; } Map<ColumnHandle, NullableValue> rowMap = predicate.getDomains().get().keySet().stream() .collect(toImmutableMap( column -> column, column -> { TpchColumnHandle tpchColumnHandle = (TpchColumnHandle) column; Type type = tpchColumnHandle.getType(); TpchColumn tpchColumn = table.getColumn(tpchColumnHandle.getColumnName()); return NullableValue.of(type, getPrestoObject(tpchColumn, type)); })); TupleDomain<ColumnHandle> rowTupleDomain = TupleDomain.fromFixedValues(rowMap); return predicate.contains(rowTupleDomain); }
private Object getPrestoObject(TpchColumn<E> column, Type type) { if (type.getJavaType() == long.class) { return getLong(column); } else if (type.getJavaType() == double.class) { return getDouble(column); } else if (type.getJavaType() == Slice.class) { return getSlice(column); } else { throw new PrestoException(NOT_SUPPORTED, format("Unsupported column type %s", type.getDisplayName())); } }
private Object getPrestoObject(TpchColumn<E> column, Type type) { if (type.getJavaType() == long.class) { return getLong(column); } else if (type.getJavaType() == double.class) { return getDouble(column); } else if (type.getJavaType() == Slice.class) { return getSlice(column); } else { throw new PrestoException(NOT_SUPPORTED, format("Unsupported column type %s", type.getDisplayName())); } }
@Override public Type getType(int field) { return getPrestoType(getTpchColumn(field)); }
@Override public boolean advanceNextPosition() { while (!closed && rows.hasNext()) { row = rows.next(); if (rowMatchesPredicate()) { return true; } } closed = true; row = null; return false; }
@Override public boolean advanceNextPosition() { while (!closed && rows.hasNext()) { row = rows.next(); if (rowMatchesPredicate()) { return true; } } closed = true; row = null; return false; }
@Override public long getLong(int field) { checkState(row != null, "No current row"); return getLong(getTpchColumn(field)); }
@Override public RecordCursor cursor() { return new TpchRecordCursor<>(rows.iterator(), table, columns, predicate); }
@Override public Slice getSlice(int field) { checkState(row != null, "No current row"); return getSlice(getTpchColumn(field)); }
@Override public double getDouble(int field) { checkState(row != null, "No current row"); return getDouble(getTpchColumn(field)); }
@Override public Slice getSlice(int field) { checkState(row != null, "No current row"); return getSlice(getTpchColumn(field)); }
@Override public Type getType(int field) { return getPrestoType(getTpchColumn(field)); }