[Koha-bugs] [Bug 5366] Koha does not work right with MariaDB
bugzilla-daemon at bugs.koha-community.org
bugzilla-daemon at bugs.koha-community.org
Wed Jun 19 20:57:30 CEST 2013
http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=5366
--- Comment #18 from Galen Charlton <gmcharlt at gmail.com> ---
As a data point, I'm currently running MariaDB 5.5.31, using mariadb.org's
Debian Wheezy package.
So far, I am *not* running into any glitches with inserting into tables that
don't set explicit defaults for non-NULL columns. Here's an example session:
MariaDB [koha]> CREATE TABLE foo (
-> id INTEGER auto_increment,
-> field1 VARCHAR(50) NOT NULL,
-> field2 TEXT NOT NULL,
-> PRIMARY KEY (id)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.06 sec)
MariaDB [koha]> INSERT INTO foo (field1) VALUES ('field1 set, field2 not');
Query OK, 1 row affected, 1 warning (0.00 sec)
MariaDB [koha]> show warnings;
+---------+------+---------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------+
| Warning | 1364 | Field 'field2' doesn't have a default value |
+---------+------+---------------------------------------------+
1 row in set (0.00 sec)
MariaDB [koha]> INSERT INTO foo (field2) VALUES ('field2 set, field1 not');
Query OK, 1 row affected, 1 warning (0.03 sec)
MariaDB [koha]> show warnings ;
+---------+------+---------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------+
| Warning | 1364 | Field 'field1' doesn't have a default value |
+---------+------+---------------------------------------------+
1 row in set (0.00 sec)
MariaDB [koha]> select * from foo;
+----+------------------------+------------------------+
| id | field1 | field2 |
+----+------------------------+------------------------+
| 1 | field1 set, field2 not | |
| 2 | | field2 set, field1 not |
+----+------------------------+------------------------+
2 rows in set (0.00 sec)
MariaDB [koha]> select * from foo where field2 is null;
Empty set (0.00 sec)
MariaDB [koha]> select * from foo where field2 = '';
+----+------------------------+--------+
| id | field1 | field2 |
+----+------------------------+--------+
| 1 | field1 set, field2 not | |
+----+------------------------+--------+
1 row in set (0.00 sec)
I wonder if, back when this was originally tested, whether MariaDB was shipping
with a default value of SQL_MODE that included 'STRICT_TRANS_TABLES':
ariaDB [koha]> SET SESSION sql_mode = 'STRICT_TRANS_TABLES';
Query OK, 0 rows affected (0.00 sec)
MariaDB [koha]> INSERT INTO foo (field2) VALUES ('field2 set, field1 not');
ERROR 1364 (HY000): Field 'field1' doesn't have a default value
If that's the case, perhaps a solution is to set SQL_MODE explicitly whenever
Koha makes a database connection. The initial value would almost certainly
have to be '', for compatibility reasons, but it would be a very worthy code to
then start tightening the screws and work our way up to setting SQL_MODE to
TRADITIONAL or the like -- and this would be an improvement regardless of
whether any given Koha site uses MariaDB or MySQL.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are watching all bug changes.
More information about the Koha-bugs
mailing list