External_query validation

Hello. When we working with dremio we use external query.
As far as I understand, dremio uses sabot-kernel based on calcite when building the request. In our code to connect to dremio, we use a custom jdbc driver, which also uses calcite to validate requests.

When I call external_query on a Postgress source from Dremio and use the Recursive keyword inside the external_query request, Dremio works correctly.
When I try to parse the same expression on the driver side using the standard calcite parser \ implementation from sabot, it returns an error.

In this regard, the question: when parsing the contents of external_query, sabot \ calcite is used to build a syntax tree (as well as validation, etc.). Or are all external_query just passed to the driver without any processing?
I tried to change external_query in Dremio using a incorrect sql query and the error was returned from PostgressJDBC.

In an external query, the contents of the query are passed as-is to the jdbc driver. Dremio does no parsing, processing, or validation of the query.

1 Like