Hi Vladislav,

Can you share more details regarding your use case?

If you want to share the same object between join inputs, you can use RelShuttleImpl [1] to traverse the RelNode tree and every time you are visiting a Join relation you need to put the object to the stack and remove it from there when you are leaving the Join. In this case the shared object will be available on the top of the stack for both sides of the Join.

[1] https://github.com/apache/calcite/blob/b0420947ddeb2c9e18afe896dbf7adaf49a715a2/core/src/main/java/org/apache/calcite/rel/RelShuttleImpl.java#L49

Thanks,

Roman

On 24.05.2023 05:44, Vladislav Matyushevski wrote:
Greetings Calcite team!

I`m using the Calcite + Avatica and curious to know:
Is there a way how I can share an Object (e.g. Map) between left and right
parts of join?
Sharing is needed due to the fact that the left part is producing data that
must be re-used in the right part.
I`m thinking of the following solution:
There is a getProvider() method, which returns me CalciteJDBC41Connection.
And if I have my own implementation of this class then I`ll be able to
extend it and enrich the class with methods I need. However, it
doesn't feel like a good idea. I believe there might be a proper solution
for this.


Thanks in advance,
Vladislav

Reply via email to