From d08a21ccccb37c85fa35f1137c8d818630845b54 Mon Sep 17 00:00:00 2001 From: Gian Merlino Date: Wed, 10 Apr 2019 21:24:03 -0700 Subject: [PATCH] SQL: Remove "select" execution code. Select queries can no longer be generated, since #7373. --- .../druid/sql/calcite/rel/QueryMaker.java | 108 ------------------ 1 file changed, 108 deletions(-) diff --git a/sql/src/main/java/org/apache/druid/sql/calcite/rel/QueryMaker.java b/sql/src/main/java/org/apache/druid/sql/calcite/rel/QueryMaker.java index 658fb540dd4b..e1cabc2d3131 100644 --- a/sql/src/main/java/org/apache/druid/sql/calcite/rel/QueryMaker.java +++ b/sql/src/main/java/org/apache/druid/sql/calcite/rel/QueryMaker.java @@ -121,8 +121,6 @@ public Sequence runQuery(final DruidQuery druidQuery) return executeGroupBy(druidQuery, (GroupByQuery) query); } else if (query instanceof ScanQuery) { return executeScan(druidQuery, (ScanQuery) query); - } else if (query instanceof SelectQuery) { - return executeSelect(druidQuery, (SelectQuery) query); } else { throw new ISE("Cannot run query of class[%s]", query.getClass().getName()); } @@ -182,112 +180,6 @@ private Sequence executeScan( ); } - private Sequence executeSelect( - final DruidQuery druidQuery, - final SelectQuery baseQuery - ) - { - Preconditions.checkState(druidQuery.getGrouping() == null, "grouping must be null"); - - final List fieldList = druidQuery.getOutputRowType().getFieldList(); - final Integer limit = druidQuery.getLimitSpec() != null ? druidQuery.getLimitSpec().getLimit() : null; - final RowSignature outputRowSignature = druidQuery.getOutputRowSignature(); - - // Select is paginated, we need to make multiple queries. - final Sequence> sequenceOfSequences = Sequences.simple( - new Iterable>() - { - @Override - public Iterator> iterator() - { - final AtomicBoolean morePages = new AtomicBoolean(true); - final AtomicReference> pagingIdentifiers = new AtomicReference<>(); - final AtomicLong rowsRead = new AtomicLong(); - - // Each Sequence is one page. - return new Iterator>() - { - @Override - public boolean hasNext() - { - return morePages.get(); - } - - @Override - public Sequence next() - { - final SelectQuery queryWithPagination = baseQuery.withPagingSpec( - new PagingSpec( - pagingIdentifiers.get(), - plannerContext.getPlannerConfig().getSelectThreshold(), - true - ) - ); - - morePages.set(false); - final AtomicBoolean gotResult = new AtomicBoolean(); - - return Sequences.concat( - Sequences.map( - runQuery(queryWithPagination), - new Function, Sequence>() - { - @Override - public Sequence apply(final Result result) - { - if (!gotResult.compareAndSet(false, true)) { - throw new ISE("WTF?! Expected single result from Select query but got multiple!"); - } - - pagingIdentifiers.set(result.getValue().getPagingIdentifiers()); - final List retVals = new ArrayList<>(); - for (EventHolder holder : result.getValue().getEvents()) { - morePages.set(true); - final Map map = holder.getEvent(); - final Object[] retVal = new Object[fieldList.size()]; - for (RelDataTypeField field : fieldList) { - final String outputName = outputRowSignature.getRowOrder().get(field.getIndex()); - if (outputName.equals(ColumnHolder.TIME_COLUMN_NAME)) { - retVal[field.getIndex()] = coerce( - holder.getTimestamp().getMillis(), - field.getType().getSqlTypeName() - ); - } else { - retVal[field.getIndex()] = coerce( - map.get(outputName), - field.getType().getSqlTypeName() - ); - } - } - if (limit == null || rowsRead.incrementAndGet() <= limit) { - retVals.add(retVal); - } else { - morePages.set(false); - return Sequences.simple(retVals); - } - } - - return Sequences.simple(retVals); - } - } - ) - ); - } - - @Override - public void remove() - { - throw new UnsupportedOperationException(); - } - }; - } - } - ); - - return Sequences.concat(sequenceOfSequences); - } - - @SuppressWarnings("unchecked") private Sequence runQuery(Query query) { Hook.QUERY_PLAN.run(query);