Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0.19
-
None
-
Windows 8.1
Description
ERROR_FOR_DIVISION_BY_ZERO doesn't appear to be honored.
Welcome to the MariaDB monitor. Commands end with ; or \g.
|
Your MariaDB connection id is 1043
|
Server version: 10.0.19-MariaDB mariadb.org binary distribution
|
|
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
|
|
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
|
|
MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_mode';
|
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
| Variable_name | Value |
|
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
| sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
|
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
1 row in set (0.00 sec)
|
|
MariaDB [(none)]> SELECT 1/0;
|
+------+
|
| 1/0 |
|
+------+
|
| NULL |
|
+------+
|
1 row in set, 1 warning (0.00 sec)
|
|
MariaDB [(none)]> show warnings;
|
+---------+------+---------------+
|
| Level | Code | Message |
|
+---------+------+---------------+
|
| Warning | 1365 | Division by 0 |
|
+---------+------+---------------+
|
1 row in set (0.00 sec)
|
There is a warning, but according to https://mariadb.com/kb/en/mariadb/sql_mode/ it should "Return a 1365 'Division by 0' error (instead of a warning)"
According to this: https://dev.mysql.com/doc/refman/5.6/en/sql-mode.html#sqlmode_error_for_division_by_zero
It looks like the warning would almost suffice: "If this mode is enabled, division by zero inserts NULL and produces a warning."
Which is the behavior we see.
However, "If this mode and strict mode are enabled, division by zero produces an error,..." which was the previously documented outcome.
Either is fine with me. It doesn't affect my program at all. I was just tightening up my server after switching from MySql and noticed that this mode wasn't the same as the documentation.