[
https://issues.apache.org/jira/browse/CALCITE-4996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marieke Gueye updated CALCITE-4996:
-----------------------------------
Description:
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
was:
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
* @param cluster: The optimization Environment
* @param o the map derived from a RexNode transformed into a JSON
* @param InputMapToRex is a BiFunction that transform the map representing
input references into RexNode.
* it has two parameters: the map of the references and the RexBuilder
* @return the RexNode
*/
public RexNode toRex(RelOptCluster cluster, Object o, BiFunction<Map,
RexBuilder, RexNode> InputMapToRex)
{code}
Make sure that {{RexNode toRex(RelInput relInput, @PolyNull Object o)}} is
still working
> [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)