Bug #41686 | PROCESSLIST : Data too long for column 'STATE' | ||
---|---|---|---|
Submitted: | 22 Dec 2008 23:19 | Modified: | 23 Dec 2008 23:31 |
Reporter: | Serdar S. Kacar | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: Information schema | Severity: | S3 (Non-critical) |
Version: | 5.1.30, 6.1 bzr | OS: | Any (Solaris 10u6, Linux) |
Assigned to: | CPU Architecture: | Any |
[22 Dec 2008 23:19]
Serdar S. Kacar
[23 Dec 2008 9:29]
Sveta Smirnova
Thank you for the report. I can not repeat this error on Solaris platform. Please paste exact error message you get and indicate hardware (SPARC or x86) you run Solaris on.
[23 Dec 2008 10:53]
Serdar S. Kacar
configuration file
Attachment: my.cnf (text/plain), 2.55 KiB.
[23 Dec 2008 10:57]
Serdar S. Kacar
Solaris hardware is X86. bash-3.00# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.1.30-log MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> DROP TABLE IF EXISTS `test`.`dbgproc`; Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE `test`.`dbgproc` ( -> `LBL` varchar(32) NOT NULL DEFAULT '', -> `UPDDT` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -> `ID` bigint(4) NOT NULL DEFAULT '0', -> `USER` varchar(16) NOT NULL DEFAULT '', -> `HOST` varchar(64) NOT NULL DEFAULT '', -> `DB` varchar(64) DEFAULT NULL, -> `COMMAND` varchar(16) NOT NULL DEFAULT '', -> `TIME` bigint(7) NOT NULL DEFAULT '0', -> `STATE` varchar(64) DEFAULT NULL, -> PRIMARY KEY (`LBL`) -> ) ENGINE=MEMORY DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.02 sec) mysql> mysql> mysql> DROP TABLE IF EXISTS `test`.`a`; Query OK, 0 rows affected (0.00 sec) mysql> CREATE TABLE `test`.`a` ( -> `ID` int(10) unsigned NOT NULL AUTO_INCREMENT, -> `VL` int(10) unsigned NOT NULL, -> `X` int(10) unsigned NOT NULL, -> PRIMARY KEY (`ID`) -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.01 sec) mysql> mysql> delimiter $$ mysql> mysql> DROP TRIGGER IF EXISTS test.`a_AFTER_INSERT` $$ Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> CREATE TRIGGER test.`a_AFTER_INSERT` AFTER INSERT ON test.`a` -> FOR EACH ROW -> REPLACE dbgproc SELECT 'test.a' AS LBL, NOW(), A.`ID`, -> A.`USER`, A.`HOST`, A.`DB`, A.`COMMAND`, A.`TIME`, A.`STATE` -> FROM information_schema.`PROCESSLIST` A -> WHERE A.`ID` = CONNECTION_ID(); -> $$ Query OK, 0 rows affected (0.01 sec) mysql> mysql> delimiter ; mysql> mysql> INSERT INTO test.a VALUES (NULL, 2, 2); ERROR 1406 (22001): Data too long for column 'STATE' at row 1
[23 Dec 2008 10:59]
Sveta Smirnova
Thank you for the feedback. Could you also send output of SELECT * FROM information_schema.`PROCESSLIST` where id=CONNECTION_ID();, so we can be sure there is nothing unusual in it.
[23 Dec 2008 11:04]
Serdar S. Kacar
Here is the strange version where there is no explicit reference to column STATE : bash-3.00# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.1.30-log MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> DROP TABLE IF EXISTS `test`.`dbgproc`; Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE `test`.`dbgproc` ( -> `LBL` varchar(32) NOT NULL DEFAULT '', -> `UPDDT` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -> `ID` bigint(4) NOT NULL DEFAULT '0', -> `USER` varchar(16) NOT NULL DEFAULT '', -> `HOST` varchar(64) NOT NULL DEFAULT '', -> `DB` varchar(64) DEFAULT NULL, -> `COMMAND` varchar(16) NOT NULL DEFAULT '', -> `TIME` bigint(7) NOT NULL DEFAULT '0', -> `STATE` varchar(64) DEFAULT NULL, -> PRIMARY KEY (`LBL`) -> ) ENGINE=MEMORY DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.01 sec) mysql> mysql> mysql> DROP TABLE IF EXISTS `test`.`a`; Query OK, 0 rows affected (0.00 sec) mysql> CREATE TABLE `test`.`a` ( -> `ID` int(10) unsigned NOT NULL AUTO_INCREMENT, -> `VL` int(10) unsigned NOT NULL, -> `X` int(10) unsigned NOT NULL, -> PRIMARY KEY (`ID`) -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.02 sec) mysql> mysql> delimiter $$ mysql> mysql> DROP TRIGGER IF EXISTS test.`a_AFTER_INSERT` $$ Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> CREATE TRIGGER test.`a_AFTER_INSERT` AFTER INSERT ON test.`a` -> FOR EACH ROW -> REPLACE dbgproc SELECT 'test.a' AS LBL, NOW(), A.`ID`, -> A.`USER`, A.`HOST`, A.`DB`, A.`COMMAND`, A.`TIME`, -> '' AS DUMMYSTATE -- we do not refer to column A.`STATE` in this case .. -> FROM information_schema.`PROCESSLIST` A -> WHERE A.`ID` = CONNECTION_ID(); -> $$ Query OK, 0 rows affected (0.01 sec) mysql> mysql> delimiter ; mysql> mysql> INSERT INTO test.a VALUES (NULL, 2, 2); ERROR 1406 (22001): Data too long for column 'STATE' at row 1
[23 Dec 2008 11:09]
Serdar S. Kacar
mysql> SELECT * FROM information_schema.`PROCESSLIST` A WHERE A.`ID` = CONNECTION_ID() \G *************************** 1. row *************************** ID: 9 USER: root HOST: localhost DB: test COMMAND: Query TIME: 0 STATE: executing INFO: SELECT * FROM information_schema.`PROCESSLIST` A WHERE A.`ID` = CONNECTION_ID() 1 row in set (0.00 sec) mysql>
[23 Dec 2008 23:31]
Sveta Smirnova
Thank you for the report. Verified as described with version 6.0. With version 5.1 bug is not repeatable for me. Cause is replication. Strange if replace --source include/master-slave.inc with --source include/have_log_bin.inc in the test file error is not repeatable.
[26 Jan 2010 13:45]
Nancy Boyle
I'm having the same problem with importing a csv file. It has an error on a column I'm trying to import. If I remove that column, then it picks another column. But, I don't see what the problem is. Here is my code. The error is at the very end after I created the table and imported the csv file (ERROR 1366 (HY000): Incorrect integer value: '' for column 'listID' at row 1). Any help with this would be much appreciated. I'm a graphic designer trying to learn this and I'm running out of time. Enter password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 5.1.42-community MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +-------------------------+ | Database | +-------------------------+ | information_schema | | fortasample | | mysql | | ne_vineyardsinfo | | newengland_vineyardinfo | | sampleemployee | | test | +-------------------------+ 7 rows in set (0.00 sec) mysql> use ne_vineyardsinfo; Database changed mysql> drop table if exists vininfo_data; Query OK, 0 rows affected (0.07 sec) mysql> CREATE TABLE vininfo_data -> ( -> vin_id int unsigned not null auto_increment primary key, -> listID integer, -> featurelink char(50), -> photolink char(50), -> reviewlink char(50), -> maplink char(50), -> triplink char(50), -> sitelink char(50), -> vineyard char(50), -> town char(30), -> state varchar(2), -> zip int(11), -> phone char(30), -> fax char(60), -> email varchar(60), -> contact_fname char(50), -> contact_lname char(50) -> ); Query OK, 0 rows affected (0.13 sec) mysql> describe vininfo_data; +---------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+------------------+------+-----+---------+----------------+ | vin_id | int(10) unsigned | NO | PRI | NULL | auto_increment | | listID | int(11) | YES | | NULL | | | featurelink | char(50) | YES | | NULL | | | photolink | char(50) | YES | | NULL | | | reviewlink | char(50) | YES | | NULL | | | maplink | char(50) | YES | | NULL | | | triplink | char(50) | YES | | NULL | | | sitelink | char(50) | YES | | NULL | | | vineyard | char(50) | YES | | NULL | | | town | char(30) | YES | | NULL | | | state | varchar(2) | YES | | NULL | | | zip | int(11) | YES | | NULL | | | phone | char(30) | YES | | NULL | | | fax | char(60) | YES | | NULL | | | email | varchar(60) | YES | | NULL | | | contact_fname | char(50) | YES | | NULL | | | contact_lname | char(50) | YES | | NULL | | +---------------+------------------+------+-----+---------+----------------+ 17 rows in set (0.05 sec) mysql> LOAD DATA INFILE 'vineyardInfoFileRev.csv' -> INTO TABLE vininfo_data -> FIELDS TERMINATED BY ',' -> LINES TERMINATED BY '\n' -> (listID,featurelink,photolink,reviewlink,maplink,triplink,sitelink,vineya rd,town,state,zip,phone,fax,email,contact_fname,contact_lname); ERROR 1366 (HY000): Incorrect integer value: '' for column 'listID' at row 1 mysql>