This is an automated email from the ASF dual-hosted git repository. volodymyr pushed a commit to branch mongo in repository https://gitbox.apache.org/repos/asf/drill.git
commit 523ca038372956e456ed5bd95d85eb1792e32a61 Author: Volodymyr Vysotskyi <[email protected]> AuthorDate: Wed Jul 28 20:43:41 2021 +0300 Revert several changes... --- .../drill/exec/store/mongo/MongoGroupScan.java | 1 - .../drill/exec/store/mongo/MongoRecordReader.java | 8 +++----- .../drill/exec/store/mongo/MongoScanSpec.java | 21 +++++---------------- .../apache/drill/exec/store/mongo/MongoSubScan.java | 14 +------------- .../store/mongo/plan/MongoPluginImplementor.java | 9 ++++++--- 5 files changed, 15 insertions(+), 38 deletions(-) diff --git a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoGroupScan.java b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoGroupScan.java index 12fd384..bc3817e 100644 --- a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoGroupScan.java +++ b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoGroupScan.java @@ -460,7 +460,6 @@ public class MongoGroupScan extends AbstractGroupScan implements .setMinFilters(chunkInfo.getMinFilters()) .setMaxFilters(chunkInfo.getMaxFilters()) .setFilter(scanSpec.getFilters()) - .setFields(scanSpec.getFields()) .setDbName(scanSpec.getDbName()) .setCollectionName(scanSpec.getCollectionName()) .setHosts(chunkInfo.getChunkLocList()); diff --git a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoRecordReader.java b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoRecordReader.java index 820eb8a..5cb007f 100644 --- a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoRecordReader.java +++ b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoRecordReader.java @@ -70,7 +70,7 @@ public class MongoRecordReader extends AbstractRecordReader { private Document filters; private List<Bson> operations; - private Document fields; + private final Document fields; private final FragmentContext fragmentContext; @@ -85,9 +85,9 @@ public class MongoRecordReader extends AbstractRecordReader { public MongoRecordReader(BaseMongoSubScanSpec subScanSpec, List<SchemaPath> projectedColumns, FragmentContext context, MongoStoragePlugin plugin) { -// fields = new Document(); + fields = new Document(); // exclude _id field, if not mentioned by user. -// fields.put(DrillMongoConstants.ID, 0); + fields.put(DrillMongoConstants.ID, 0); setColumns(projectedColumns); fragmentContext = context; this.plugin = plugin; @@ -100,8 +100,6 @@ public class MongoRecordReader extends AbstractRecordReader { shardedMongoSubScanSpec.getMinFilters(), shardedMongoSubScanSpec.getMaxFilters()); buildFilters(shardedMongoSubScanSpec.getFilter(), mergedFilters); - - fields = shardedMongoSubScanSpec.getFields(); } enableAllTextMode = fragmentContext.getOptions().getOption(ExecConstants.MONGO_ALL_TEXT_MODE).bool_val; enableNanInf = fragmentContext.getOptions().getOption(ExecConstants.JSON_READER_NAN_INF_NUMBERS).bool_val; diff --git a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoScanSpec.java b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoScanSpec.java index da10a54..17b548b 100644 --- a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoScanSpec.java +++ b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoScanSpec.java @@ -33,26 +33,20 @@ public class MongoScanSpec { private Document filters; - private Document fields; - private List<Bson> operations = new ArrayList<>(); - public MongoScanSpec(String dbName, - String collectionName) { + @JsonCreator + public MongoScanSpec(@JsonProperty("dbName") String dbName, + @JsonProperty("collectionName") String collectionName) { this.dbName = dbName; this.collectionName = collectionName; } - @JsonCreator - public MongoScanSpec(@JsonProperty("dbName") String dbName, - @JsonProperty("collectionName") String collectionName, - @JsonProperty("filters") Document filters, - @JsonProperty("fields") Document fields, - @JsonProperty("operations") List<Bson> operations) { + public MongoScanSpec(String dbName, String collectionName, + Document filters, List<Bson> operations) { this.dbName = dbName; this.collectionName = collectionName; this.filters = filters; - this.fields = fields; this.operations = operations; } @@ -68,10 +62,6 @@ public class MongoScanSpec { return filters; } - public Document getFields() { - return fields; - } - public List<Bson> getOperations() { return operations; } @@ -82,7 +72,6 @@ public class MongoScanSpec { .field("dbName", dbName) .field("collectionName", collectionName) .field("filters", filters) - .field("fields", fields) .field("operations", operations) .toString(); } diff --git a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoSubScan.java b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoSubScan.java index ef31f25..692a939 100644 --- a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoSubScan.java +++ b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoSubScan.java @@ -128,7 +128,6 @@ public class MongoSubScan extends AbstractBase implements SubScan { protected Map<String, Object> minFilters; protected Map<String, Object> maxFilters; protected Document filter; - protected Document fields; @JsonCreator public ShardedMongoSubScanSpec(@JsonProperty("dbName") String dbName, @@ -136,13 +135,11 @@ public class MongoSubScan extends AbstractBase implements SubScan { @JsonProperty("hosts") List<String> hosts, @JsonProperty("minFilters") Map<String, Object> minFilters, @JsonProperty("maxFilters") Map<String, Object> maxFilters, - @JsonProperty("filters") Document filters, - @JsonProperty("fields") Document fields) { + @JsonProperty("filters") Document filters) { super(dbName, collectionName, hosts); this.minFilters = minFilters; this.maxFilters = maxFilters; this.filter = filters; - this.fields = fields; } ShardedMongoSubScanSpec() { @@ -175,15 +172,6 @@ public class MongoSubScan extends AbstractBase implements SubScan { return this; } - public Document getFields() { - return fields; - } - - public ShardedMongoSubScanSpec setFields(Document fields) { - this.fields = fields; - return this; - } - @Override public String toString() { return new PlanStringBuilder(this) diff --git a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/plan/MongoPluginImplementor.java b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/plan/MongoPluginImplementor.java index c359c77..0fc30b4 100644 --- a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/plan/MongoPluginImplementor.java +++ b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/plan/MongoPluginImplementor.java @@ -47,7 +47,6 @@ public class MongoPluginImplementor implements PluginImplementor { private List<Bson> operations; private Document filters; private List<SchemaPath> columns; - private Document fields; private boolean runAggregate; @@ -96,6 +95,7 @@ public class MongoPluginImplementor implements PluginImplementor { @Override public void implement(PluginProjectRel project) throws IOException { + runAggregate = true; visitChild(project.getInput()); MongoRules.RexToMongoTranslator translator = @@ -113,6 +113,10 @@ public class MongoPluginImplementor implements PluginImplementor { BsonDocument projection = Aggregates.project(new BsonDocument(items)).toBsonDocument(); if (runAggregate) { operations.add(projection); + List<String> outNames = MongoAggregateUtils.mongoFieldNames(project.getRowType()); + this.columns = outNames.stream() + .map(SchemaPath::getSimplePath) + .collect(Collectors.toList()); } else { List<String> outNames = MongoAggregateUtils.mongoFieldNames(project.getRowType()); this.columns = outNames.stream() @@ -201,7 +205,6 @@ public class MongoPluginImplementor implements PluginImplementor { groupScan = (MongoGroupScan) Utilities.getDrillTable(scan.getTable()).getGroupScan(); operations = new ArrayList<>(this.groupScan.getScanSpec().getOperations()); filters = groupScan.getScanSpec().getFilters(); - fields = groupScan.getScanSpec().getFields(); columns = groupScan.getColumns(); } @@ -213,7 +216,7 @@ public class MongoPluginImplementor implements PluginImplementor { @Override public GroupScan getPhysicalOperator() throws IOException { MongoScanSpec scanSpec = groupScan.getScanSpec(); - MongoScanSpec newSpec = new MongoScanSpec(scanSpec.getDbName(), scanSpec.getCollectionName(), filters, fields, operations); + MongoScanSpec newSpec = new MongoScanSpec(scanSpec.getDbName(), scanSpec.getCollectionName(), filters, operations); return new MongoGroupScan(groupScan.getUserName(), groupScan.getStoragePlugin(), newSpec, columns, runAggregate); }
