JingDas created CALCITE-5844:
--------------------------------

             Summary: Allow RelMdColumnOrigins to get columnOrigins from 
viewTable
                 Key: CALCITE-5844
                 URL: https://issues.apache.org/jira/browse/CALCITE-5844
             Project: Calcite
          Issue Type: Improvement
          Components: core
            Reporter: JingDas


In our scene, Getting field from view is expected when call 
RelMdColumnOrigins#getColumnOrigins.
So I want to define customized RelMdColumnOrigins extend *RelMdColumnOrigins* 
which can *getColumnOrigins* from viewTable.
Then I add customized RelMdColumnOrigins to {*}ChainedRelMetadataProvider{*}, 
keep the sequence before DefaultRelMetadataProvider.INSTANCE.
After doing all above, I can get columnOrigins from viewTable.

 

But I found the private constructor inclass RelMdColumnOrigins(also such as
RelMdCollation, RelMdColumnUniqueness, RelMdDistribution, 
RelMdExplainVisibility,
RelMdPercentageOriginalRows, RelMdPopulationSize, RelMdUniqueKeys
),
and protected constructors(such as RelMdDistinctRowCount, 
RelMdExpressionLineage, RelMdLowerBoundCost,
RelMdMemory, RelMdParallelism, RelMdSelectivity, RelMdSize, RelMdTableReferences
) 
and public constructors(such as RelMdAllPredicates, RelMdMaxRowCount, 
RelMdMinRowCount, RelMdNodeTypes,
RelMdPredicates, RelMdRowCount, 
) 

I haven't had a chance to extend this class to add my custom logic because the 
constructor modifier is private.
For extensibility, I think this modifier maybe protected for these 
"RelMd"prefixed Class whose modifier is private.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to