Github user vvysotskyi commented on a diff in the pull request:
    --- Diff: 
    @@ -277,6 +279,25 @@ public String deriveAlias(
           return SqlValidatorUtil.getAlias(node, ordinal);
    +    /**
    +     * Checks that specified expression is not implicit column and
    +     * adds is to a select list, ensuring that its alias does not
    +     * clash with any existing expressions on the list.
    +     */
    +    @Override
    +    protected void addToSelectList(
    --- End diff --
    Added comment into Javadoc, which describes when and why this method is 
    As for Avro and Dynamic tables, the key point is the result of 
`RelDataType.isDynamicStruct()` method. 
    For `AvroDrillTable` we use `ExtendableRelDataType` whose 
`isDynamicStruct()` method returns `false`, but for `DynamicDrillTable` we use 
`RelDataTypeDrillImpl`  whose `isDynamicStruct()` method returns `true`. 
    In such way, Calcites `SqlValidatorImpl` determines whether columns should 
be added.


Reply via email to