For me, the problem started with WP 4.1.4.
I was looking at the changes and it seems the get_col_length() function (wp-includes\wp-db.php) is where I am seeing the problem.
There is a check here if this is a MySQL database, but since Azure / SQL is using the wp-db-abstraction plugin, the is_mysql variable is still set to null, and thus not skipping the code block following the MySQL check.
I haven’t done a ton of WP programming to fully vet out all of the implications of my change, especially since this was likely added as part of XSS hardening, but the following code change in 2 places fixes my problem…
FROM:
if ( false === $this->is_mysql ) {
return false;
}
TO:
if ( false === $this->is_mysql || empty( $this->is_mysql ) ) {
return false;
}
Of course this will likely break each time things are updated… But if someone more familiar with this code area can chime in, would definitely appreciate it.