I recently had an interesting conversation with a member of Simba's ODBC/JDBC/ADO.NET driver SDK team about how flexible and tailorable our ODBC driver SDK is. It has particularly cool capability to pass down calculations to our ISV customer's data source. This allows query execution in collaboration with the data source, in order to take most advantage of the particular data source's capabilities. Normally our ISV customers use this when things like table filters, joins and aggregations can be executed most optimally by the data source.
What was interesting in this conversation was to find out that this passdown capability can also be used for something completely different. It can even be used to take advantage of indexing that might already exist in the data source. Though our SDK has and will offer other ways of leveraging a data source's innate indexing, I thought this was an interesting illustration of the flexibility of our SDK.
The SimbaEngine SDK is able to delegate any part of a SQL query to the data source. If the ISV's customized implementation chooses to grab a particular part of our query execution tree, SimbaEngine gets out of the way. If not, our components handle that part. This flexibility optimizes the cooperation between Simba's components and our ISV customer's components resulting in reduced calculation and data movement, which in turn improves performance. You can get an introduction to how our components and our customer's components collaborate via each query's execution tree in our technical white paper, and the full SDK documentation set is also available online.