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)