We are using a professional tool that supports ODBC connectivity to multiple database providers. Their software makes use of client-side filtering, rather than server-side filtering for certain use cases. They say this is done for performance reasons (presumably allowing their client to cache the complete results and then filter them multiple ways without hitting the server again.)
This method works for MSSQL and PostgreSQL databases, but it doesn't work for MySQL. (Sniffing the IP traffic that is sent to the server, the SELECT statement is missing the WHERE keyword, so it is rejected and returns no results.) They claim the problem lies with the ODBC implementation for MySQL, that it does not properly support client-side filtering. They will not make any changes to their software to work around this issue. This cripples the tool when using MySQL as the DB, since we cannot perform any filtering operations on our large database.
Does MySQL ODBC Connector in fact support client side filtering? If so, can you point me to an example of usage? If not, how difficult would it be to add such a feature? If that's not possible, is it feasible for them to implement this filtering through the ODBC API differently for MySQL than they do when using other ODBC providers?
I'm not familiar with ODBC internals, but I believe this reference is what they are referring to:
https://docs.microsoft.com/en-us/cpp/data/odbc/recordset-filtering-records-odbc
Thank you,
Brian