Virtual schema subselect pushdown

PeterK
Xpert

This is a probably question for Exa-devs ...

While looking through the new Lua RLS virtual schema framework I noticed that it seems to have support for sub-selects (https://github.com/exasol/row-level-security-lua/blob/8f0c15bfd4ff9fc7a6232df09436ec9b0b3f4b33/src/m...) This is great news because the lack of sub-select-pushdown was one of my pain-points when using virtual schemas.

What capability does a virtual schema developer need to list in the metadata in order for Exasol to push down sub-selects to a virtual schema framework?

Thanks in advance,

Peter

1 ACCEPTED SOLUTION

Accepted Solutions

exa-SebastianB
Team Exasol
Team Exasol

@PeterK , sorry that I have to disappoint you there. But only the query renderer supports sub-selects, no RLS as such. That would be way to dangerous. The reason for this is that you would need a complete SQL parser and interpreter in the Virtual Schema adapter to make sure you rewrite sub-selects in a secure way.

The reason the renderer supports sub-select is simply that the renderer will be used in the upcoming Exasol Virtual Schema based on Lua. So that part will move to a shared Lua module.

View solution in original post

2 REPLIES 2

exa-Chris
Community Manager
Community Manager

 Hi Peter,
let's nudge @exa-SebastianB our resident Lua Guru 😉

Rgds

Christian

Connecting Customers, Partners, Prospects and Exasolians is my passion. Apart from that I cycle, listen to music, and try to understand what all those technical discussions really mean...

exa-SebastianB
Team Exasol
Team Exasol

@PeterK , sorry that I have to disappoint you there. But only the query renderer supports sub-selects, no RLS as such. That would be way to dangerous. The reason for this is that you would need a complete SQL parser and interpreter in the Virtual Schema adapter to make sure you rewrite sub-selects in a secure way.

The reason the renderer supports sub-select is simply that the renderer will be used in the upcoming Exasol Virtual Schema based on Lua. So that part will move to a shared Lua module.

View solution in original post