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)