You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "JingDas (Jira)" <ji...@apache.org> on 2023/07/13 03:19:00 UTC
[jira] [Created] (CALCITE-5844) Allow RelMdColumnOrigins to get columnOrigins from viewTable
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)