[ 
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)

Reply via email to