Ok, let me wrap up this discussion. We are in agreement for the need to support multiple database platforms. In another thread @Patrick_Ryan outlined the steps that need to be taken to make sure we can deal with the increased complexity this brings. I fully support those steps, and I know people have been tasked to move them forward.
In this thread, I mentioned that some people proposed a complementary strategy of splitting the code per database platform. I’ve outlined arguments against, and haven’t seen my arguments invalided, so that proposal is off the table (for now).
I think through DatabaseConnector and SqlRender we’ve reached a maximum decoupling between query logic and technological platform we can achieve for our kind of software. We do advanced analytics, and offload a lot of those analytics to the database server, so many database interactions are complex and unique for that analytic purpose. One key component of Patrick’s plan is defining the minimum requirements a platform should meet for us to support it, and this is essential because those requirements will define the limit of our analytics. And I don’t want to sacrifice fidelity of analytics simply to support more tech.