mysql_warning_count неправильно возвращает 0 предупреждений после обновления с MySQL 5.6 до MariaDB 10.3 - PullRequest
1 голос
/ 07 января 2020

Я использую «MySQL Connector для C v6.1.11» для подключения к MySQL 5.6.35 серверу.

Когда я использую mysql_real_query() для выполнения запроса, подобного SELECT MAKETIME(-1000,57,33), mysql_warning_count() правильно возвращает 1 предупреждение (SHOW WARNINGS скажет «Усеченное неверное значение времени: -1000: 57: 33»).

Недавно я заменил вставку вместо MySQL 5.6. 35 сервер с MariaDB 10.3.13. mysql_warning_count() того же запроса теперь возвращает 0 предупреждений . Однако SHOW WARNINGS будет по-прежнему перечислять предупреждение (как и ожидалось).

Я попытался заменить мою старую библиотеку MySQL Connector последней версией MariaDB Connector / C (v3.1.6) ), но проблема сохраняется.

Что может привести к тому, что предупреждения о запросах не будут отображаться? Нужно ли где-то устанавливать флаг или применять некоторые параметры совместимости?

SQL Используется режим по умолчанию, а именно: Для MySQL 5.6: NO_ENGINE_SUBSTITUTION Для MariaDB 10.3: STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO , NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION

Единственные флаги клиента, переданные mysql_real_connect(): CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS (оба для MySQL и MariaDB)

...