You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "JingDas (Jira)" <ji...@apache.org> on 2023/08/09 03:51:00 UTC

[jira] [Closed] (CALCITE-5844) Make RelMdColumnOrigins to be extendable for getting columnOrigins from viewTable

     [ https://issues.apache.org/jira/browse/CALCITE-5844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

JingDas closed CALCITE-5844.
----------------------------
    Resolution: Not A Problem

> Make RelMdColumnOrigins to be extendable for getting columnOrigins from viewTable
> ---------------------------------------------------------------------------------
>
>                 Key: CALCITE-5844
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5844
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: JingDas
>            Priority: Minor
>
> 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 modifier constructor in class RelMdColumnOrigins(also such as
> RelMdCollation, RelMdColumnUniqueness, RelMdDistribution, RelMdExplainVisibility,
> RelMdPercentageOriginalRows, RelMdPopulationSize, RelMdUniqueKeys
> ),
> and protected modifier constructors(such as RelMdDistinctRowCount, RelMdExpressionLineage, RelMdLowerBoundCost,
> RelMdMemory, RelMdParallelism, RelMdSelectivity, RelMdSize, RelMdTableReferences
> ) 
> and public modifier 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.
> These "RelMd"prefixed class are default implementation,  They should can be extended for user to add
> customed logic.
> 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)