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

Vladimir Sitnikov updated CALCITE-6019:
---------------------------------------
    Affects Version/s: 1.35.0
                       1.27.0

> Excessive cast when UDF receives nullable JavaType
> --------------------------------------------------
>
>                 Key: CALCITE-6019
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6019
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.27.0, 1.35.0
>            Reporter: Vladimir Sitnikov
>            Priority: Major
>
> See CALCITE-6018, however, CALCITE-6018 is about the "ability to declare 
> nullable, non-optional parameter" while this issue is about the excessive NOT 
> NULL cast.
> Just in case, adding {{@Strict}} to {{retainedSize}} does not make CAST go 
> away.
> It causes weird "cast(... NOT NULL)" even though my {{retainedSize}} function 
> processes null just fine.
> {noformat}
> expr#4=[TO_HEAP_REFERENCE($t3)],
> expr#5=[CAST($t4):JavaType(class java.lang.Object) NOT NULL],
> expr#6=[retainedSize($t5)],
> {noformat}
> {{TO_HEAP_REFERENCE}} returns nullable {{HeapReference}} (Java class): 
> [https://github.com/vlsi/mat-calcite-plugin/blob/4d4aa2284eeec69bc51da0c2e769ded06ef9ab97/MatCalcitePlugin/src/com/github/vlsi/mat/calcite/schema/objects/HeapOperatorTable.java#L27-L28]
> {{retainedSize}} receives a single (nullable) {{Object}} parameter, and it is 
> declared as 
> [https://github.com/vlsi/mat-calcite-plugin/blob/4d4aa2284eeec69bc51da0c2e769ded06ef9ab97/MatCalcitePlugin/src/com/github/vlsi/mat/calcite/functions/HeapFunctions.java#L129]
> I tried adding {{@Parameter(optional=true)}} to {{{}retainedSize{}}}, and it 
> does not eliminate {{NOT NULL}} part of the cast.
>  
> My expectation is that NOT NULL must not be there as both return type and the 
> parameter type are nullable. It might be cast should not be there as well.



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

Reply via email to