/** Returns a consumer that checks that a particular Druid query is * generated to implement a query. */ private static Consumer<List> druidChecker(final String... lines) { return list -> { assertThat(list.size(), is(1)); DruidQuery.QuerySpec querySpec = (DruidQuery.QuerySpec) list.get(0); for (String line : lines) { final String s = line.replace('\'', '"'); assertThat(querySpec.getQueryString(null, -1), containsString(s)); } }; }
/** Returns a function that checks that a particular Druid query is * generated to implement a query. */ private static Consumer<List> druidChecker(final String... lines) { return list -> { assertThat(list.size(), is(1)); DruidQuery.QuerySpec querySpec = (DruidQuery.QuerySpec) list.get(0); for (String line : lines) { final String s = line.replace('\'', '"'); assertThat(querySpec.getQueryString(null, -1), containsString(s)); } }; }
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); }
private String convertToDruidQuery(RelNode root) { return findDruidQuery(root).getQuerySpec().getQueryString(null, 0); }