[MDEV-31836] mysqldump against MYSQL server 8 creates invalid dump Created: 2023-08-03  Updated: 2023-08-07  Resolved: 2023-08-07

Status: Closed
Project: MariaDB Server
Component/s: Scripts & Clients
Affects Version/s: 10.11, 11.0, 11.1
Fix Version/s: 10.11.5, 11.0.3, 11.1.2

Type: Bug Priority: Critical
Reporter: M Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: MySQL8, mysqldump


 Description   

Running the following command against MYSQL Server v8.0.32

mysqldump -h ... -u ... -p --opt --single-transaction --no-tablespaces the_database > dump.sql

creates a dump without error messages, which look like this:

CREATE TABLE foo (
  uid INT ...,
  tstamp INT ...,
  something VARCHAR(22) ...,
  ...
  PRIMARY KEY uid
);
 
INSERT INTO foo VALUES ('',153246345,1),('',1567246333,2),...;

As one can see the VALUES part uses an incorrect order of columns. Trying to import such a dump, obviously, fails directly with "DUPLICATE KEY".

Observation: The order of the VALUES is the alphabetical order of the column names not the one specified in the CREATE TABLE statement.

(Note: Running the same command using mysqldump from mysql works flawlessly)



 Comments   
Comment by M [ 2023-08-03 ]

I forgot to mention the version of mysqldump (alias mariadb-dump)

> mysqldump Ver 10.19 Distrib 10.11.3-MariaDB, for debian-linux-gnu (x86_64)

Generated at Thu Feb 08 10:26:50 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.