Details
-
Bug
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Fixed
-
10.2(EOL)
-
None
-
GNU/Linux
Description
SHOW CREATE TABLE test\G; |
MariaDB server 10.0:
`link` tinyint(1) NOT NULL DEFAULT '1',
|
MariaDB server 10.2:
`link` tinyint(1) NOT NULL DEFAULT 1,
|
I believe this change was intentional - not to quote integers. But both MySQL and MariaDB (prior to 10.2) had been behaving opposite on this - e.g. always quoted DEFAULT values. And now if some app relies on those outputs - it produces bad results across older vs. latest MariaDB server versions. I agree that it is bad to rely on such statements at first place in your app - but in our legacy app that was exactly the case.
I doubt there is a flag to get back the old behavior?
Note that this https://mariadb.com/kb/en/library/show-create-table/ is totally unrelated - that's for column names quotes, not DEFAULT values.
Attachments
Issue Links
- includes
-
MDEV-15394 DEFAULT current_timestamp() discrepancy
-
- Closed
-
- relates to
-
MDEV-15407 DEFAULT NULL forced when no DEFAULT set on NULL-able column
-
- Closed
-
-
MDEV-15519 CHECKSUM TABLE gives different results across MariaDB 10.0 and 10.2
-
- Confirmed
-
The change was intentional, introduced by this commit:
commit 6820bf9ca9c5992a7e9d382aa8aaabff6751fd46
Author: Sergei Golubchik <serg@mariadb.org>
Date: Tue Jul 19 11:18:58 2016 +0200
do not quote numbers in the DEFAULT clause in SHOW CREATE
There is no flag to revert to the old behavior.
Maybe the change deserves mentioning in documentation, assigning to greenman to decide.