private static RelNode project(DruidQuery dq, ImmutableBitSet fieldsUsed, Set<RelDataTypeField> extraFields, RelBuilder relBuilder) { final int fieldCount = dq.getRowType().getFieldCount(); if (fieldsUsed.equals(ImmutableBitSet.range(fieldCount)) && extraFields.isEmpty()) { final List<String> nameList = new ArrayList<>(); final RexBuilder rexBuilder = dq.getCluster().getRexBuilder(); final List<RelDataTypeField> fields = dq.getRowType().getFieldList();
private static RelNode project(DruidQuery dq, ImmutableBitSet fieldsUsed, Set<RelDataTypeField> extraFields, RelBuilder relBuilder) { final int fieldCount = dq.getRowType().getFieldCount(); if (fieldsUsed.equals(ImmutableBitSet.range(fieldCount)) && extraFields.isEmpty()) { final List<String> nameList = new ArrayList<>(); final RexBuilder rexBuilder = dq.getCluster().getRexBuilder(); final List<RelDataTypeField> fields = dq.getRowType().getFieldList();
Schema(DruidQuery dq) { HiveTableScan hts = (HiveTableScan) ((DruidQuery)dq).getTableScan(); String tabName = hts.getTableAlias(); for (RelDataTypeField field : dq.getRowType().getFieldList()) { add(new ColumnInfo(tabName, field.getName())); } }
Schema(DruidQuery dq) { HiveTableScan hts = (HiveTableScan) ((DruidQuery)dq).getTableScan(); String tabName = hts.getTableAlias(); for (RelDataTypeField field : dq.getRowType().getFieldList()) { add(new ColumnInfo(tabName, field.getName())); } }
final int fieldCount = dq.getRowType().getFieldCount(); if (fieldsUsed.equals(ImmutableBitSet.range(fieldCount)) && extraFields.isEmpty()) {
final int fieldCount = dq.getRowType().getFieldCount(); if (fieldsUsed.equals(ImmutableBitSet.range(fieldCount)) && extraFields.isEmpty()) {
.add(HiveParser.StringLiteral, "\"" + Constants.DRUID_QUERY_FIELD_NAMES + "\"") .add(HiveParser.StringLiteral, "\"" + dq.getRowType().getFieldNames().stream().map(Object::toString) .collect(Collectors.joining(",")) + "\"" )); .add(HiveParser.StringLiteral, "\"" + Constants.DRUID_QUERY_FIELD_TYPES + "\"") .add(HiveParser.StringLiteral, "\"" + dq.getRowType().getFieldList().stream() .map(e -> TypeConverter.convert(e.getType()).getTypeName()) .collect(Collectors.joining(",")) + "\""
/** * @return index of the timestamp ref or -1 if not present */ protected int getTimestampFieldIndex() { return Iterables.indexOf(this.getRowType().getFieldList(), input -> druidTable.timestampFieldName.equals(input.getName())); } }
List<String> aggNamesWithGroup = query.getRowType().getFieldNames(); final ImmutableMap.Builder<String, String> mapBuilder = ImmutableMap.builder(); int j = 0;
public void run() throws InterruptedException { final List<ColumnMetaData.Rep> fieldTypes = new ArrayList<>(); for (RelDataTypeField field : query.getRowType().getFieldList()) { fieldTypes.add(getPrimitive(field)); } final DruidConnectionImpl connection = new DruidConnectionImpl(query.druidTable.schema.url, query.druidTable.schema.coordinatorUrl); final boolean limitQuery = containsLimit(querySpec); final DruidConnectionImpl.Page page = new DruidConnectionImpl.Page(); do { final String queryString = querySpec.getQueryString(page.pagingIdentifier, page.offset); connection.request(querySpec.queryType, queryString, sink, querySpec.fieldNames, fieldTypes, page); } while (!limitQuery && page.pagingIdentifier != null && page.totalRowCount > 0); }
public void run() throws InterruptedException { final List<ColumnMetaData.Rep> fieldTypes = new ArrayList<>(); for (RelDataTypeField field : query.getRowType().getFieldList()) { fieldTypes.add(getPrimitive(field)); } final DruidConnectionImpl connection = new DruidConnectionImpl(query.druidTable.schema.url, query.druidTable.schema.coordinatorUrl); final boolean limitQuery = containsLimit(querySpec); final DruidConnectionImpl.Page page = new DruidConnectionImpl.Page(); do { final String queryString = querySpec.getQueryString(page.pagingIdentifier, page.offset); connection.request(querySpec.queryType, queryString, sink, querySpec.fieldNames, fieldTypes, page); } while (!limitQuery && page.pagingIdentifier != null && page.totalRowCount > 0); }
final RexNode node = rexBuilder.makeInputRef(Util.last(query.rels), i); innerRex.add(node); typeBuilder.add(query.getRowType().getFieldNames().get(i), node.getType()); innerTypes.add(node.getType());
for (int i = 0; i < query.getRowType().getFieldCount(); i++) { if (query.druidTable.timestampFieldName.equals( query.getRowType().getFieldList().get(i).getName())) { timestampFieldIdx = i; break;
query.getRowType().getFieldNames() .indexOf(query.druidTable.timestampFieldName); RelNode newDruidQuery = query;