[MDEV-15927] MEDIUMINT returns a wrong length on conversion to string Created: 2018-04-19  Updated: 2019-11-18

Status: Open
Project: MariaDB Server
Component/s: Data types
Affects Version/s: 5.5, 10.0, 10.1, 10.2, 10.3
Fix Version/s: 10.4

Type: Bug Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-13232 Assertion `(&(&share->intern_lock)->m... Closed
Epic Link: Data type cleanups

 Description   

I run a script which makes a few implicit conversions MEDIUMINT to string:

CREATE OR REPLACE TABLE t1 (a MEDIUMINT, b MEDIUMINT UNSIGNED);
CREATE OR REPLACE TABLE t2 AS SELECT
  CONCAT(a),
  CONCAT(b),
  COALESCE(a,''),
  COALESCE(b,'')
FROM t1;
DESC t2;

+----------------+------------+------+-----+---------+-------+
| Field          | Type       | Null | Key | Default | Extra |
+----------------+------------+------+-----+---------+-------+
| CONCAT(a)      | varchar(9) | YES  |     | NULL    |       |
| CONCAT(b)      | varchar(8) | YES  |     | NULL    |       |
| COALESCE(a,'') | varchar(9) | YES  |     | NULL    |       |
| COALESCE(b,'') | varchar(8) | YES  |     | NULL    |       |
+----------------+------------+------+-----+---------+-------+

The data types of the t2 columns corresponding to signed columns in t1 is wrong: 9 is too excessive. All columns in t2 must have length of 8.


Generated at Thu Feb 08 08:25:04 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.