[
https://issues.apache.org/jira/browse/CALCITE-4996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17486639#comment-17486639
]
Marieke Gueye commented on CALCITE-4996:
----------------------------------------
Hey [~zabetak] ! In this project I am working on with Julian, there is a
calcite adapter that creates the RexJson and then sends it to an API that is
the one knowing how to handle the inputs. The API does not have the same
context as the module so an input ref in that context would not work and
Calcite would raise an error. Does that make sense ?
> [RelJson] create a new public toRex method which can override makeInputRef
> --------------------------------------------------------------------------
>
> Key: CALCITE-4996
> URL: https://issues.apache.org/jira/browse/CALCITE-4996
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Reporter: Marieke Gueye
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 20m
> Remaining Estimate: 0h
>
> In the case of our project, the environment that generates a JSON from a
> RexNode and the environment that reads it are different. We need to
> "translate" the inputs into their aliases in the new cluster.
> This method will permit to give more freedom to the JSON RexNode parser if
> needed.
> {code}
> /**
> * Transforms a RexNode tree defined in a map (from a JSON) into a RexNode
> * Applying a special method to inputs instead of transforming them into
> inputRef
> * @param cluster The optimization environment
> * @param apply is a InputTranslator lambda that transforms the map
> representing input
> * references into a RexNode
> * @param o the map derived from a RexNode transformed into a JSON
> * @return the transformed RexNode
> */
> {code}
> Make sure that {{RexNode toRex(RelInput relInput, @PolyNull Object o)}} is
> still working + adding tests
--
This message was sent by Atlassian Jira
(v8.20.1#820001)