[ 
https://issues.apache.org/jira/browse/DRILL-6721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16596494#comment-16596494
 ] 

ASF GitHub Bot commented on DRILL-6721:
---------------------------------------

arina-ielchiieva closed pull request #1452: DRILL-6721: Fix SchemalessScan plan 
serialization / deserialization
URL: https://github.com/apache/drill/pull/1452
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/base/SchemalessScan.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/base/SchemalessScan.java
index b2d12cd6012..1db83f579e0 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/base/SchemalessScan.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/base/SchemalessScan.java
@@ -17,24 +17,26 @@
  */
 package org.apache.drill.exec.physical.base;
 
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonTypeName;
-import org.apache.drill.shaded.guava.com.google.common.base.Preconditions;
-import org.apache.drill.common.exceptions.ExecutionSetupException;
 import org.apache.drill.common.expression.SchemaPath;
-import org.apache.drill.exec.physical.PhysicalOperatorSetupException;
 import org.apache.drill.exec.proto.CoordinationProtos;
+import org.apache.drill.shaded.guava.com.google.common.base.Preconditions;
 
 import java.util.List;
 
 /**
- *  The type of scan operator, which allows to scan schemaless tables ({@link 
DynamicDrillTable} with null selection)
+ *  The type of scan operator, which allows to scan schemaless tables ({@link 
org.apache.drill.exec.planner.logical.DynamicDrillTable} with null selection)
  */
 @JsonTypeName("schemaless-scan")
 public class SchemalessScan extends AbstractFileGroupScan implements SubScan {
 
   private final String selectionRoot;
 
-  public SchemalessScan(String userName, String selectionRoot) {
+  @JsonCreator
+  public SchemalessScan(@JsonProperty("userName") String userName,
+                        @JsonProperty("selectionRoot") String selectionRoot) {
     super(userName);
     this.selectionRoot = selectionRoot;
   }
@@ -44,12 +46,17 @@ public SchemalessScan(final SchemalessScan that) {
     this.selectionRoot = that.selectionRoot;
   }
 
+  @JsonProperty
+  public String getSelectionRoot() {
+    return selectionRoot;
+  }
+
   @Override
-  public void applyAssignments(List<CoordinationProtos.DrillbitEndpoint> 
endpoints) throws PhysicalOperatorSetupException {
+  public void applyAssignments(List<CoordinationProtos.DrillbitEndpoint> 
endpoints) {
   }
 
   @Override
-  public SubScan getSpecificScan(int minorFragmentId) throws 
ExecutionSetupException {
+  public SubScan getSpecificScan(int minorFragmentId) {
     return this;
   }
 
@@ -65,14 +72,13 @@ public String getDigest() {
 
   @Override
   public String toString() {
-    final String pattern = "SchemalessScan [selectionRoot = %s]";
+    String pattern = "SchemalessScan [selectionRoot = %s]";
     return String.format(pattern, selectionRoot);
   }
 
   @Override
-  public PhysicalOperator getNewWithChildren(List<PhysicalOperator> children) 
throws ExecutionSetupException {
+  public PhysicalOperator getNewWithChildren(List<PhysicalOperator> children) {
     Preconditions.checkArgument(children.isEmpty());
-    assert children == null || children.isEmpty();
     return new SchemalessScan(this);
   }
 
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/TestEmptyInputSql.java 
b/exec/java-exec/src/test/java/org/apache/drill/exec/TestEmptyInputSql.java
index 1e85cb15c59..1512059a59b 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/TestEmptyInputSql.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/TestEmptyInputSql.java
@@ -17,6 +17,7 @@
  */
 package org.apache.drill.exec;
 
+import org.apache.drill.PlanTestBase;
 import org.apache.drill.shaded.guava.com.google.common.collect.Lists;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.drill.exec.planner.physical.PlannerSettings;
@@ -69,7 +70,6 @@ public void testQueryEmptyJson() throws Exception {
   /**
    * Test with query against an empty file. Select clause has one or more *
    * star column is expanded into an empty list.
-   * @throws Exception
    */
   @Test
   public void testQueryStarColEmptyJson() throws Exception {
@@ -92,7 +92,6 @@ public void testQueryStarColEmptyJson() throws Exception {
   /**
    * Test with query against an empty file. Select clause has one or more 
qualified *
    * star column is expanded into an empty list.
-   * @throws Exception
    */
   @Test
   public void testQueryQualifiedStarColEmptyJson() throws Exception {
@@ -180,7 +179,6 @@ public void testQueryConstExprEmptyJson() throws Exception {
 
   /**
    * Test select * against empty csv with empty header. * is expanded into 
empty list of fields.
-   * @throws Exception
    */
   @Test
   public void testQueryEmptyCsvH() throws Exception {
@@ -195,9 +193,8 @@ public void testQueryEmptyCsvH() throws Exception {
   }
 
   /**
-   * Test select * against empty csv file. * is exapnede into "columns : 
repeated-varchar",
+   * Test select * against empty csv file. * is expanded into "columns : 
repeated-varchar",
    * which is the default column from reading a csv file.
-   * @throws Exception
    */
   @Test
   public void testQueryEmptyCsv() throws Exception {
@@ -239,6 +236,10 @@ public void testEmptyDirectoryAndFieldInQuery() throws 
Exception {
         .run();
   }
 
-
+  @Test
+  public void testEmptyDirectoryPlanSerDe() throws Exception {
+    String query = String.format("select * from dfs.tmp.`%s`", EMPTY_DIR_NAME);
+    PlanTestBase.testPhysicalPlanExecutionBasedOnQuery(query);
+  }
 
 }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> SchemalessScan cannot be deserialized by Jackson
> ------------------------------------------------
>
>                 Key: DRILL-6721
>                 URL: https://issues.apache.org/jira/browse/DRILL-6721
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.13.0, 1.14.0
>            Reporter: Oleg Zinoviev
>            Assignee: Arina Ielchiieva
>            Priority: Major
>              Labels: ready-to-commit
>             Fix For: 1.15.0
>
>
> SchemalessScan has a JsonTypeName annotation, but default (or marked with 
> @JsonCreator) constructor is missing.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to