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

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

paul-rogers commented on pull request #1925: DRILL-7472: Fix ser / de for sys 
and information_schema schemas queries
URL: https://github.com/apache/drill/pull/1925#discussion_r356989016
 
 

 ##########
 File path: 
exec/java-exec/src/main/java/org/apache/drill/exec/store/ischema/InfoSchemaGroupScan.java
 ##########
 @@ -111,12 +114,8 @@ public GroupScan clone(List<SchemaPath> columns) {
     return new InfoSchemaGroupScan(this);
   }
 
-  public void setFilterPushedDown(boolean status) {
-    this.isFilterPushedDown = status;
-  }
-
   @JsonIgnore
   public boolean isFilterPushedDown() {
-    return isFilterPushedDown;
+    return filter != null;
 
 Review comment:
   This is tricky. This flag is probably acting more like "has filter push-down 
analysis been done": it prevents Calcite from pushing filters down multiple 
times (which won't work if the group scan removes the original `WHERE` clause 
conditions); and it prevents Calcite from needlessly repeating the analysis 
multiple times when there are no filters.
   
   The proposed change means we will do that no-filter analysis repeatedly.
   
   (As it turns out, I made this same mistake myself in a recent project.)
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Complex queries on INFORMATION_SCHEMA fail when `planner.slice_target`is small
> ------------------------------------------------------------------------------
>
>                 Key: DRILL-7472
>                 URL: https://issues.apache.org/jira/browse/DRILL-7472
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.16.0
>            Reporter: Vova Vysotskyi
>            Assignee: Arina Ielchiieva
>            Priority: Major
>             Fix For: 1.17.0
>
>
> Set small value for slice_target:
> {code:sql}
> alter session set `planner.slice_target`=1;
> {code}
> Run query on INFORMATION_SCHEMA:
> {code:sql}
> select * from information_schema.`tables` where TABLE_NAME='lineitem' order 
> by TABLE_NAME;
> {code}
> It will fail with the following exception:
> {noformat}
> Error: SYSTEM ERROR: InvalidDefinitionException: Cannot construct instance of 
> `org.apache.drill.exec.store.ischema.InfoSchemaFilter$ExprNode` (no Creators, 
> like default construct, exist): cannot deserialize from Object value (no 
> delegate- or property-based Creator)
>  at [Source: (String)"{
>   "pop" : "hash-partition-sender",
>   "@id" : 0,
>   "receiver-major-fragment" : 2,
>   "child" : {
>     "pop" : "InfoSchemaSubScan",
>     "@id" : 1,
>     "table" : "TABLES",
>     "filter" : {
>       "exprRoot" : {
>         "type" : "FUNCTION",
>         "function" : "equal",
>         "args" : [ {
>           "type" : "FIELD",
>           "field" : "TABLE_NAME"
>         }, {
>           "type" : "CONSTANT",
>           "value" : "lineitem"
>         } ]
>       }
>     },
>     "initialAllocation" : 1000000,
>     "maxAllocat"[truncated 681 chars]; line: 11, column: 9] (through 
> reference chain: 
> org.apache.drill.exec.physical.config.HashPartitionSender["child"]->org.apache.drill.exec.store.ischema.InfoSchemaSubScan["filter"]->org.apache.drill.exec.store.ischema.InfoSchemaFilter["exprRoot"])
> {noformat}
> Even when deserialization is fixed, it will fail when creating 
> InfoSchemaBatchCreator:
> {noformat}
> java.lang.Exception: org.apache.drill.common.exceptions.UserRemoteException: 
> SYSTEM ERROR: UnsupportedOperationException: Schema tree can only be created 
> in root fragment. This is a non-root fragment.
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to