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);
   }

Reply via email to