[MDEV-11525] Assertion `cp + len <= buff + buff_size' failed in JOIN_CACHE::write_record_data Created: 2016-12-09  Updated: 2017-02-27  Resolved: 2017-02-27

Status: Closed
Project: MariaDB Server
Component/s: Optimizer, Virtual Columns
Affects Version/s: 5.5, 10.0, 10.1, 10.2
Fix Version/s: 5.5.55, 10.0.30, 10.1.22, 10.2.5

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None

Attachments: File bug-11525s.result    
Issue Links:
Relates
relates to MDEV-11640 gcol.gcol_select_myisam fails in buil... Closed
Sprint: 5.5.54, 5.5.55

 Description   

# IMPORTANT: On 5.5, the test case only works (and crashes) with XtraDB
 
--source include/have_innodb.inc
 
CREATE TABLE t1 (
        pk INTEGER AUTO_INCREMENT,
        col_int_nokey INTEGER NULL,
        col_int_key INTEGER AS (col_int_nokey * 2) PERSISTENT,
        col_date_key DATE AS (DATE_SUB(col_date_nokey, INTERVAL 1 DAY)) PERSISTENT,
        col_date_nokey DATE NULL,
        col_time_key TIME AS (TIME(col_time_nokey)) PERSISTENT,
        col_time_nokey TIME NULL,
        col_datetime_key DATETIME AS (DATE_ADD(col_datetime_nokey, INTERVAL 1 HOUR)) PERSISTENT,
        col_datetime_nokey DATETIME NULL,
        col_varchar_key VARCHAR(1) AS (CONCAT('virt-',col_varchar_nokey)) PERSISTENT,
        col_varchar_nokey VARCHAR(1) NULL,
        PRIMARY KEY (pk),
        KEY (col_varchar_key, col_int_key)
    ) ENGINE=InnoDB;
 
INSERT INTO t1 (
            col_int_key, col_int_nokey,
            col_date_key, col_date_nokey,
            col_time_key, col_time_nokey,
            col_datetime_key, col_datetime_nokey,
            col_varchar_key, col_varchar_nokey
        ) VALUES 
    (4, 8, '2002-01-03', '2002-01-03', '01:01:02.033918', '01:01:02.033918', NULL, NULL, 'c', 'c'),
    (5, 3, '2007-07-08', '2007-07-08', '03:22:30.013692', '03:22:30.013692', '2003-11-06 04:59:50.060815', '2003-11-06 04:59:50.060815', 'c', 'c'),
    (8, 3, '2000-08-02', '2000-08-02', '18:30:05.036576', '18:30:05.036576', '2007-08-13 00:00:00', '2007-08-13 00:00:00', 'q', 'q'),
    (4, NULL, '2000-03-06', '2000-03-06', '07:30:51.053695', '07:30:51.053695', '2007-07-23 22:15:05.039929', '2007-07-23 22:15:05.039929', 'g', 'g'),
    (48, 3, '2003-12-08', '2003-12-08', '00:50:58.018981', '00:50:58.018981', '2003-11-22 00:42:24.007216', '2003-11-22 00:42:24.007216', 'x', 'x'),
    (228, 210, '2006-06-01', '2006-06-01', '15:11:05.037254', '15:11:05.037254', '2009-05-06 15:57:54.046100', '2009-05-06 15:57:54.046100', 'x', 'x'),
    (3, 1, '2001-10-04', '2001-10-04', '17:56:53.016427', '17:56:53.016427', '2000-12-26 00:33:56.056159', '2000-12-26 00:33:56.056159', 'x', 'x'),
    (5, 2, '2004-11-16', '2004-11-16', '01:40:28.015719', '01:40:28.015719', '2002-03-12 00:00:00', '2002-03-12 00:00:00', 'l', 'l'),
    (39, 251, NULL, NULL, '01:21:50.043186', '01:21:50.043186', '2005-06-12 11:13:17.034994', '2005-06-12 11:13:17.034994', 'e', 'e'),
    (6, 4, '2005-06-22', '2005-06-22', '21:17:36.004741', '21:17:36.004741', '2009-06-10 00:00:00', '2009-06-10 00:00:00', 's', 's'),
    (8, 4, '2003-04-19', '2003-04-19', '09:16:37.022128', '09:16:37.022128', '2002-04-07 00:00:00', '2002-04-07 00:00:00', 'k', 'k'),
    (3, 9, '2006-03-23', '2006-03-23', '16:41:37.000305', '16:41:37.000305', '2002-08-01 01:33:30.032947', '2002-08-01 01:33:30.032947', 'm', 'm'),
    (NULL, 4, NULL, NULL, '03:13:46.009571', '03:13:46.009571', '2003-04-05 11:02:01.035782', '2003-04-05 11:02:01.035782', 'x', 'x'),
    (2, NULL, '2008-10-22', '2008-10-22', '17:27:08.029558', '17:27:08.029558', '2003-10-25 12:46:30.035123', '2003-10-25 12:46:30.035123', 's', 's'),
    (6, 4, '2009-04-04', '2009-04-04', '19:27:17.002465', '19:27:17.002465', '2007-08-10 00:00:00', '2007-08-10 00:00:00', 'h', 'h'),
    (3, NULL, NULL, NULL, '00:51:44.035596', '00:51:44.035596', '2002-07-12 19:18:28.007325', '2002-07-12 19:18:28.007325', 'u', 'u'),
    (1, 1, '2001-07-15', '2001-07-15', '10:57:22.061270', '10:57:22.061270', '2004-06-24 00:00:00', '2004-06-24 00:00:00', 'x', 'x'),
    (4, 6, '2004-09-25', '2004-09-25', '13:28:27.053467', '13:28:27.053467', '2009-06-10 09:54:42.024934', '2009-06-10 09:54:42.024934', 'l', 'l'),
    (3, 2, '2001-02-20', '2001-02-20', '06:40:59.047885', '06:40:59.047885', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'p', 'p'),
    (1, NULL, '1900-01-01', '1900-01-01', '22:56:45.062451', '22:56:45.062451', '2002-03-09 11:26:35.022784', '2002-03-09 11:26:35.022784', 'i', 'i'),
    (NULL, 4, '2004-08-02', '2004-08-02', '12:51:42.058226', '12:51:42.058226', '2004-02-22 21:45:20.001412', '2004-02-22 21:45:20.001412', 'u', 'u'),
    (97, 248, '2009-02-26', '2009-02-26', '01:52:32.022616', '01:52:32.022616', NULL, NULL, 'i', 'i'),
    (0, 4, '2002-11-23', '2002-11-23', '20:42:07.019441', '20:42:07.019441', '2000-08-12 00:00:00', '2000-08-12 00:00:00', 'i', 'i'),
    (0, 8, '2008-12-17', '2008-12-17', '12:53:30.021802', '12:53:30.021802', '2003-05-24 18:11:13.003533', '2003-05-24 18:11:13.003533', 'e', 'e'),
    (9, 4, '2005-08-26', '2005-08-26', '02:10:47.019184', '02:10:47.019184', '2000-12-21 15:20:30.054478', '2000-12-21 15:20:30.054478', 'h', 'h'),
    (5, 5, '2001-03-10', '2001-03-10', '02:13:00.039788', '02:13:00.039788', '2006-10-27 05:05:38.051899', '2006-10-27 05:05:38.051899', 'f', 'f'),
    (0, 2, '2003-08-04', '2003-08-04', '01:48:05.048577', '01:48:05.048577', '2006-11-03 00:00:00', '2006-11-03 00:00:00', 'p', 'p'),
    (2, 4, '2007-11-06', '2007-11-06', '00:00:00', '00:00:00', '2009-11-26 19:28:11.005115', '2009-11-26 19:28:11.005115', 'n', 'n'),
    (172, 211, '2009-04-23', '2009-04-23', '00:00:00', '00:00:00', '2000-12-07 10:17:40.013275', '2000-12-07 10:17:40.013275', 'h', 'h'),
    (NULL, 2, '2002-10-06', '2002-10-06', '00:50:49.017545', '00:50:49.017545', NULL, NULL, 'm', 'm'),
    (5, 4, '2008-02-12', '2008-02-12', NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'x', 'x'),
    (119, 125, '2007-09-18', '2007-09-18', NULL, NULL, '2007-11-27 00:00:00', '2007-11-27 00:00:00', 'd', 'd'),
    (1, 9, '2007-06-26', '2007-06-26', '07:26:24.062529', '07:26:24.062529', '2007-11-17 06:51:08.060652', '2007-11-17 06:51:08.060652', 'd', 'd'),
    (6, NULL, '2003-11-10', '2003-11-10', '00:00:00', '00:00:00', '2004-04-15 20:15:45.050577', '2004-04-15 20:15:45.050577', 'v', 'v'),
    (5, 8, '2009-02-19', '2009-02-19', '17:06:44.046549', '17:06:44.046549', '2005-04-19 21:52:38.017765', '2005-04-19 21:52:38.017765', 'u', 'u'),
    (5, 4, '2006-11-17', '2006-11-17', '18:47:54.003829', '18:47:54.003829', '2000-02-03 00:00:00', '2000-02-03 00:00:00', 'p', 'p'),
    (1, 8, '2000-02-23', '2000-02-23', '14:35:14.013323', '14:35:14.013323', '2002-06-10 17:21:09.045864', '2002-06-10 17:21:09.045864', 'o', 'o'),
    (7, NULL, '1900-01-01', '1900-01-01', '07:50:59.050471', '07:50:59.050471', NULL, NULL, 'v', 'v'),
    (2, 1, '2003-04-08', '2003-04-08', NULL, NULL, '2005-02-09 17:44:31.001526', '2005-02-09 17:44:31.001526', 'm', 'm'),
    (8, 3, '2006-07-08', '2006-07-08', '12:35:26.016053', '12:35:26.016053', '2002-12-19 09:51:49.003532', '2002-12-19 09:51:49.003532', 'x', 'x'),
    (9, 5, '2001-05-21', '2001-05-21', '05:30:51.057418', '05:30:51.057418', NULL, NULL, 'n', 'n'),
    (NULL, 8, NULL, NULL, '00:00:00', '00:00:00', '2005-06-27 07:34:53.063059', '2005-06-27 07:34:53.063059', 'b', 'b'),
    (3, 2, '2001-08-05', '2001-08-05', NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'r', 'r'),
    (172, NULL, '2000-11-01', '2000-11-01', '17:54:39.046453', '17:54:39.046453', '2003-07-08 10:33:13.028775', '2003-07-08 10:33:13.028775', 'v', 'v'),
    (NULL, 3, '2004-12-16', '2004-12-16', '17:47:16.019040', '17:47:16.019040', '2006-07-18 04:16:49.034600', '2006-07-18 04:16:49.034600', 'a', 'a'),
    (6, NULL, '2003-02-06', '2003-02-06', '00:15:18.053252', '00:15:18.053252', NULL, NULL, 'u', 'u'),
    (5, 1, '2005-12-20', '2005-12-20', '14:46:31.017448', '14:46:31.017448', NULL, NULL, 'b', 'b'),
    (4, 0, '2002-03-13', '2002-03-13', '17:05:47.020057', '17:05:47.020057', '2006-04-27 12:42:58.026518', '2006-04-27 12:42:58.026518', 's', 's'),
    (3, 0, NULL, NULL, '05:32:59.012082', '05:32:59.012082', '2007-06-12 00:00:00', '2007-06-12 00:00:00', 't', 't'),
    (2, 8, '2006-07-20', '2006-07-20', '13:41:32.043263', '13:41:32.043263', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'b', 'b'),
    (7, NULL, '2002-12-19', '2002-12-19', NULL, NULL, '2001-05-18 02:54:34.025888', '2001-05-18 02:54:34.025888', 'm', 'm'),
    (4, 9, '2001-07-09', '2001-07-09', '04:25:19.045271', '04:25:19.045271', '2008-06-07 08:08:32.056989', '2008-06-07 08:08:32.056989', 'v', 'v'),
    (6, 1, '2006-05-27', '2006-05-27', '07:51:52.025057', '07:51:52.025057', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'n', 'n'),
    (0, 9, '2007-02-26', '2007-02-26', '16:19:53.006682', '16:19:53.006682', '2005-05-11 00:00:00', '2005-05-11 00:00:00', 'j', 'j'),
    (8, 1, '2005-01-22', '2005-01-22', '09:04:17.013295', '09:04:17.013295', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'h', 'h'),
    (2, 9, '2006-04-25', '2006-04-25', '19:44:22.031201', '19:44:22.031201', NULL, NULL, 'k', 'k'),
    (9, 5, '2002-11-13', '2002-11-13', '00:00:00', '00:00:00', '2009-06-08 21:21:31.059876', '2009-06-08 21:21:31.059876', 'k', 'k'),
    (5, 6, '2003-06-16', '2003-06-16', '22:16:47.019207', '22:16:47.019207', '2009-10-17 23:46:36.026550', '2009-10-17 23:46:36.026550', 'n', 'n'),
    (7, 5, '2006-01-18', '2006-01-18', '06:12:32.043645', '06:12:32.043645', '2009-02-28 00:00:00', '2009-02-28 00:00:00', 'e', 'e'),
    (0, 2, '1900-01-01', '1900-01-01', NULL, NULL, '2004-04-14 13:27:34.062542', '2004-04-14 13:27:34.062542', 's', 's'),
    (4, 4, '2000-09-13', '2000-09-13', '02:38:48.001225', '02:38:48.001225', '2007-10-20 00:00:00', '2007-10-20 00:00:00', 'w', 'w'),
    (3, 0, '2003-01-26', '2003-01-26', '00:00:00', '00:00:00', '2007-11-11 20:10:29.001244', '2007-11-11 20:10:29.001244', 'y', 'y'),
    (1, 3, '2002-09-09', '2002-09-09', '02:02:49.060941', '02:02:49.060941', '2001-03-08 00:00:00', '2001-03-08 00:00:00', 'z', 'z'),
    (0, 0, '2001-09-06', '2001-09-06', '23:43:38.037436', '23:43:38.037436', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'b', 'b'),
    (6, 6, '2006-02-23', '2006-02-23', NULL, NULL, '2006-07-21 19:26:57.063604', '2006-07-21 19:26:57.063604', 'f', 'f'),
    (2, 1, '2004-06-21', '2004-06-21', '12:35:01.002238', '12:35:01.002238', NULL, NULL, 's', 's'),
    (NULL, 9, '2006-12-02', '2006-12-02', '00:18:04.035712', '00:18:04.035712', NULL, NULL, 'd', 'd'),
    (NULL, 9, '2001-12-27', '2001-12-27', '13:53:19.031137', '13:53:19.031137', '2002-08-16 00:00:00', '2002-08-16 00:00:00', 'd', 'd'),
    (NULL, 4, '2008-04-11', '2008-04-11', NULL, NULL, NULL, NULL, 'n', 'n'),
    (NULL, 1, '2000-09-24', '2000-09-24', '08:53:20.006718', '08:53:20.006718', '2005-09-09 12:56:20.057724', '2005-09-09 12:56:20.057724', 'i', 'i'),
    (7, 8, '2008-07-10', '2008-07-10', '22:27:36.021373', '22:27:36.021373', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'h', 'h'),
    (3, 1, '2007-08-14', '2007-08-14', '18:06:56.008989', '18:06:56.008989', '2009-01-21 23:43:07.004846', '2009-01-21 23:43:07.004846', 'd', 'd'),
    (5, 0, '2008-06-08', '2008-06-08', '03:44:30.021705', '03:44:30.021705', NULL, NULL, 'c', 'c'),
    (5, 2, '2001-07-26', '2001-07-26', '11:49:25.040600', '11:49:25.040600', '2007-09-06 20:49:33.054044', '2007-09-06 20:49:33.054044', 'i', 'i'),
    (1, 0, '2008-09-17', '2008-09-17', '22:16:07.029978', '22:16:07.029978', '2005-09-20 10:11:02.005667', '2005-09-20 10:11:02.005667', 't', 't'),
    (2, 1, NULL, NULL, '17:14:13.044120', '17:14:13.044120', '2007-10-11 00:00:00', '2007-10-11 00:00:00', 'g', 'g'),
    (1, 2, '2004-02-25', '2004-02-25', '14:49:31.012541', '14:49:31.012541', '2005-06-13 00:26:39.015322', '2005-06-13 00:26:39.015322', 'q', 'q'),
    (7, NULL, '2009-11-02', '2009-11-02', '00:27:36.065229', '00:27:36.065229', '2001-06-18 08:40:49.042917', '2001-06-18 08:40:49.042917', 'l', 'l'),
    (1, 3, '2001-12-14', '2001-12-14', '13:59:24.049387', '13:59:24.049387', '2006-06-07 00:00:00', '2006-06-07 00:00:00', 'n', 'n'),
    (9, 8, NULL, NULL, '01:48:46.042584', '01:48:46.042584', '2004-03-18 22:35:04.041716', '2004-03-18 22:35:04.041716', 'z', 'z'),
    (9, 4, '1900-01-01', '1900-01-01', NULL, NULL, NULL, NULL, 'n', 'n'),
    (8, 4, '2002-04-12', '2002-04-12', '11:07:46.040645', '11:07:46.040645', '2001-07-15 12:46:49.046948', '2001-07-15 12:46:49.046948', 'r', 'r'),
    (3, NULL, '2000-02-09', '2000-02-09', NULL, NULL, '2001-03-27 06:53:22.006663', '2001-03-27 06:53:22.006663', 'p', 'p') /* QNO 41 CON_ID 8 */;
 
CREATE TABLE t2 (
        pk INTEGER AUTO_INCREMENT,
        col_int_nokey INTEGER NULL,
        col_int_key INTEGER AS (col_int_nokey * 2) PERSISTENT,
        col_date_key DATE AS (DATE_SUB(col_date_nokey, INTERVAL 1 DAY)) PERSISTENT,
        col_date_nokey DATE NULL,
        col_time_key TIME AS (TIME(col_time_nokey)) PERSISTENT,
        col_time_nokey TIME NULL,
        col_datetime_key DATETIME AS (DATE_ADD(col_datetime_nokey, INTERVAL 1 HOUR)) PERSISTENT,
        col_datetime_nokey DATETIME NULL,
        col_varchar_key VARCHAR(1) AS (CONCAT('virt-',col_varchar_nokey)) PERSISTENT,
        col_varchar_nokey VARCHAR(1) NULL,
        PRIMARY KEY (pk),
        KEY (col_varchar_key, col_int_key)
    )  AUTO_INCREMENT=10 ENGINE=InnoDB;
 
INSERT INTO t2 (
            col_int_key, col_int_nokey,
            col_date_key, col_date_nokey,
            col_time_key, col_time_nokey,
            col_datetime_key, col_datetime_nokey,
            col_varchar_key, col_varchar_nokey
        ) VALUES 
    (1, 2, '2008-03-16', '2008-03-16', '12:35:21.015952', '12:35:21.015952', '2004-12-02 00:57:31.056351', '2004-12-02 00:57:31.056351', 'j', 'j'),
    (17, 36, '2003-12-19', '2003-12-19', '00:00:00', '00:00:00', '2002-03-12 09:48:05.033853', '2002-03-12 09:48:05.033853', 's', 's'),
    (4, 5, '2005-10-23', '2005-10-23', '20:46:34.003982', '20:46:34.003982', '2007-06-07 08:16:24.030171', '2007-06-07 08:16:24.030171', 'q', 'q'),
    (0, 6, '2008-03-04', '2008-03-04', '10:48:51.018074', '10:48:51.018074', '2006-08-20 11:54:04.031499', '2006-08-20 11:54:04.031499', 'l', 'l'),
    (1, 9, NULL, NULL, '07:06:12.019155', '07:06:12.019155', '2007-05-22 00:00:00', '2007-05-22 00:00:00', 'j', 'j'),
    (5, 6, '2004-05-19', '2004-05-19', '08:11:01.049319', '08:11:01.049319', '2009-02-28 11:00:47.051802', '2009-02-28 11:00:47.051802', 'y', 'y'),
    (NULL, 0, '2009-01-21', '2009-01-21', NULL, NULL, NULL, NULL, 'i', 'i'),
    (7, 7, '2004-07-16', '2004-07-16', '00:00:00', '00:00:00', '2006-04-09 11:38:17.004697', '2006-04-09 11:38:17.004697', 'x', 'x'),
    (5, 2, '1900-01-01', '1900-01-01', '09:05:46.049259', '09:05:46.049259', '2005-10-08 08:08:42.010058', '2005-10-08 08:08:42.010058', 'u', 'u'),
    (160, 146, NULL, NULL, '10:49:42.003572', '10:49:42.003572', '2003-03-15 00:00:00', '2003-03-15 00:00:00', 't', 't'),
    (7, 5, '2009-11-12', '2009-11-12', '16:39:08.052868', '16:39:08.052868', '2002-06-20 09:48:09.057405', '2002-06-20 09:48:09.057405', 'm', 'm'),
    (1, 4, '2003-12-03', '2003-12-03', '18:51:52.020034', '18:51:52.020034', NULL, NULL, 'x', 'x'),
    (8, 8, '1900-01-01', '1900-01-01', '13:52:22.063256', '13:52:22.063256', '2005-06-28 02:54:54.033897', '2005-06-28 02:54:54.033897', 'x', 'x'),
    (4, 6, '2005-09-20', '2005-09-20', '21:48:36.057283', '21:48:36.057283', '2002-08-17 00:57:41.045824', '2002-08-17 00:57:41.045824', 'v', 'v'),
    (1, 8, '2004-07-10', '2004-07-10', '10:59:28.034806', '10:59:28.034806', '2003-12-05 13:07:15.052162', '2003-12-05 13:07:15.052162', 'm', 'm'),
    (2, 4, NULL, NULL, NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'j', 'j'),
    (7, 8, '2009-08-17', '2009-08-17', '15:05:06.062377', '15:05:06.062377', '2001-02-03 05:31:15.058452', '2001-02-03 05:31:15.058452', 'z', 'z'),
    (2, 2, '2001-11-03', '2001-11-03', '15:42:01.052867', '15:42:01.052867', '2006-03-10 17:29:05.006607', '2006-03-10 17:29:05.006607', 'a', 'a'),
    (0, 9, '2009-06-11', '2009-06-11', NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'i', 'i'),
    (2, 4, '2002-09-27', '2002-09-27', '21:27:57.033453', '21:27:57.033453', '2007-01-12 11:18:49.002045', '2007-01-12 11:18:49.002045', 'g', 'g'),
    (4, 8, '2000-05-13', '2000-05-13', '00:00:00', '00:00:00', '2004-11-17 00:00:00', '2004-11-17 00:00:00', 'h', 'h'),
    (NULL, 1, '1900-01-01', '1900-01-01', '06:21:08.052509', '06:21:08.052509', '2001-11-05 15:19:40.050500', '2001-11-05 15:19:40.050500', 'p', 'p'),
    (6, 8, '2002-03-02', '2002-03-02', '10:17:54.019864', '10:17:54.019864', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'a', 'a'),
    (4, 0, '2000-06-14', '2000-06-14', '17:57:58.002639', '17:57:58.002639', NULL, NULL, 'x', 'x'),
    (3, 2, '2007-08-08', '2007-08-08', '06:58:38.000194', '06:58:38.000194', '2002-10-22 17:24:41.065056', '2002-10-22 17:24:41.065056', 's', 's'),
    (9, 6, '2008-10-02', '2008-10-02', '04:02:57.011013', '04:02:57.011013', '2002-02-11 22:03:47.002844', '2002-02-11 22:03:47.002844', 'k', 'k'),
    (7, 0, '2007-07-02', '2007-07-02', NULL, NULL, '2001-02-26 10:28:06.024465', '2001-02-26 10:28:06.024465', 'm', 'm'),
    (3, 6, '2003-01-25', '2003-01-25', NULL, NULL, '2000-08-07 15:19:01.063043', '2000-08-07 15:19:01.063043', NULL, NULL),
    (9, NULL, '2006-03-21', '2006-03-21', '18:27:23.060158', '18:27:23.060158', '2002-12-04 06:10:53.027755', '2002-12-04 06:10:53.027755', 'y', 'y'),
    (8, 7, '2003-04-15', '2003-04-15', '06:40:58.037841', '06:40:58.037841', '2008-08-03 00:00:00', '2008-08-03 00:00:00', 'd', 'd'),
    (4, 7, '2001-04-22', '2001-04-22', '16:21:50.042962', '16:21:50.042962', NULL, NULL, 'w', 'w'),
    (4, NULL, NULL, NULL, '00:00:00', '00:00:00', NULL, NULL, 'y', 'y'),
    (9, 9, '2005-08-20', '2005-08-20', '01:36:47.020532', '01:36:47.020532', '2007-01-05 14:23:21.063280', '2007-01-05 14:23:21.063280', 's', 's'),
    (8, 9, '2002-11-23', '2002-11-23', '00:00:00', '00:00:00', '2004-01-02 22:56:27.051360', '2004-01-02 22:56:27.051360', 'x', 'x'),
    (2, 6, '1900-01-01', '1900-01-01', '04:52:42.061600', '04:52:42.061600', '2001-12-13 19:09:03.035577', '2001-12-13 19:09:03.035577', 'l', 'l'),
    (8, 9, '1900-01-01', '1900-01-01', '10:52:49.017566', '10:52:49.017566', '2004-08-13 00:00:00', '2004-08-13 00:00:00', 'f', 'f'),
    (0, 8, '2005-11-23', '2005-11-23', '11:28:42.039525', '11:28:42.039525', '2001-09-22 08:32:34.025439', '2001-09-22 08:32:34.025439', 'x', 'x'),
    (1, 1, '2006-03-20', '2006-03-20', '19:34:47.010488', '19:34:47.010488', NULL, NULL, 'p', 'p'),
    (5, 7, '2003-05-11', '2003-05-11', '22:21:46.031300', '22:21:46.031300', '2002-08-06 08:47:23.055878', '2002-08-06 08:47:23.055878', 'y', 'y'),
    (4, 6, NULL, NULL, '00:00:00', '00:00:00', '2002-01-21 07:22:54.064410', '2002-01-21 07:22:54.064410', 'p', 'p'),
    (1, 1, '2002-08-17', '2002-08-17', '22:29:16.064947', '22:29:16.064947', '2000-09-08 00:00:00', '2000-09-08 00:00:00', 'g', 'g'),
    (0, 3, '2001-06-15', '2001-06-15', '22:49:28.048532', '22:49:28.048532', '2001-11-27 14:59:24.028725', '2001-11-27 14:59:24.028725', 'c', 'c'),
    (NULL, 5, '1900-01-01', '1900-01-01', '21:49:00.032147', '21:49:00.032147', '2001-04-19 09:35:37.027780', '2001-04-19 09:35:37.027780', 'h', 'h'),
    (7, 3, '2003-11-19', '2003-11-19', '18:30:23.004396', '18:30:23.004396', '2003-12-17 11:53:23.019811', '2003-12-17 11:53:23.019811', 'p', 'p'),
    (3, 2, '2004-04-23', '2004-04-23', '20:10:01.023785', '20:10:01.023785', NULL, NULL, 'b', 'b'),
    (9, NULL, NULL, NULL, '13:05:12.047909', '13:05:12.047909', '2008-09-06 14:21:25.041589', '2008-09-06 14:21:25.041589', NULL, NULL),
    (225, 121, '2002-03-02', '2002-03-02', NULL, NULL, NULL, NULL, NULL, NULL),
    (2, NULL, '1900-01-01', '1900-01-01', '11:58:30.020245', '11:58:30.020245', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'y', 'y'),
    (8, 7, '2009-09-12', '2009-09-12', '07:31:37.045737', '07:31:37.045737', '2005-08-02 00:50:41.045017', '2005-08-02 00:50:41.045017', 's', 's'),
    (9, 7, '2006-07-17', '2006-07-17', '10:52:59.018506', '10:52:59.018506', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'x', 'x'),
    (2, 6, '2000-07-07', '2000-07-07', '08:54:56.062434', '08:54:56.062434', NULL, NULL, 'i', 'i'),
    (4, 9, '2007-02-04', '2007-02-04', NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 't', 't'),
    (4, 5, NULL, NULL, '06:15:12.059342', '06:15:12.059342', '2003-11-05 09:01:58.046682', '2003-11-05 09:01:58.046682', 'j', 'j'),
    (6, 0, NULL, NULL, NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'u', 'u'),
    (7, 7, '2005-02-01', '2005-02-01', '08:12:54.047455', '08:12:54.047455', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'r', 'r'),
    (2, 2, '2003-10-16', '2003-10-16', '00:00:00', '00:00:00', '2003-01-08 06:50:59.023013', '2003-01-08 06:50:59.023013', 'x', 'x'),
    (2, 8, '2009-09-09', '2009-09-09', '16:21:16.061650', '16:21:16.061650', NULL, NULL, 'e', 'e'),
    (9, 8, '1900-01-01', '1900-01-01', '22:29:31.058874', '22:29:31.058874', '2003-07-01 19:38:23.047425', '2003-07-01 19:38:23.047425', 'i', 'i'),
    (198, NULL, '2000-08-08', '2000-08-08', '00:49:30.064187', '00:49:30.064187', NULL, NULL, 'q', 'q'),
    (9, 8, '2006-05-09', '2006-05-09', '20:22:47.037406', '20:22:47.037406', '2003-04-07 03:25:51.058231', '2003-04-07 03:25:51.058231', 'z', 'z'),
    (7, 3, '1900-01-01', '1900-01-01', '08:48:30.044928', '08:48:30.044928', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'k', 'k'),
    (99, 65, NULL, NULL, '00:00:00', '00:00:00', '1900-01-01 00:00:00', '1900-01-01 00:00:00', NULL, NULL) /* QNO 56 CON_ID 8 */;
 
CREATE TABLE t3 (x INT) ENGINE=InnoDB;
 
SELECT COUNT(*) FROM t1 INNER JOIN t2 ON ( t2.col_varchar_key = t1.col_varchar_key ) LEFT JOIN t3 ON ( t2.col_varchar_key = t1.col_varchar_key );

5.5 03dabfa84d6bc9a8197c8d9fbe80f2a7f6a5b6ac

mysqld: /data/src/5.5/sql/sql_join_cache.cc:1402: uint JOIN_CACHE::write_record_data(uchar*, bool*): Assertion `cp + len <= buff + buff_size' failed.
161213 19:07:32 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f3f988b5312 in __GI___assert_fail (assertion=0xd53b42 "cp + len <= buff + buff_size", file=0xd539e8 "/data/src/5.5/sql/sql_join_cache.cc", line=1402, function=0xd54000 <JOIN_CACHE::write_record_data(unsigned char*, bool*)::__PRETTY_FUNCTION__> "uint JOIN_CACHE::write_record_data(uchar*, bool*)") at assert.c:101
#8  0x000000000072cfda in JOIN_CACHE::write_record_data (this=0x7f3f89256928, link=0x0, is_full=0x7f3f9a9013e7) at /data/src/5.5/sql/sql_join_cache.cc:1402
#9  0x000000000072d61a in JOIN_CACHE::put_record (this=0x7f3f89256928) at /data/src/5.5/sql/sql_join_cache.cc:1564
#10 0x000000000065b202 in sub_select_cache (join=0x7f3f8918bc80, join_tab=0x7f3f890f7458, end_of_records=false) at /data/src/5.5/sql/sql_select.cc:16765
#11 0x000000000065bc25 in evaluate_join_record (join=0x7f3f8918bc80, join_tab=0x7f3f890f7138, error=0) at /data/src/5.5/sql/sql_select.cc:17187
#12 0x000000000065b719 in sub_select (join=0x7f3f8918bc80, join_tab=0x7f3f890f7138, end_of_records=false) at /data/src/5.5/sql/sql_select.cc:17007
#13 0x000000000065bc25 in evaluate_join_record (join=0x7f3f8918bc80, join_tab=0x7f3f890f6e18, error=0) at /data/src/5.5/sql/sql_select.cc:17187
#14 0x000000000065b719 in sub_select (join=0x7f3f8918bc80, join_tab=0x7f3f890f6e18, end_of_records=false) at /data/src/5.5/sql/sql_select.cc:17007
#15 0x000000000065adf3 in do_select (join=0x7f3f8918bc80, fields=0x7f3f8918c050, table=0x0, procedure=0x0) at /data/src/5.5/sql/sql_select.cc:16630
#16 0x0000000000639651 in JOIN::exec (this=0x7f3f8918bc80) at /data/src/5.5/sql/sql_select.cc:2873
#17 0x0000000000639e1c in mysql_select (thd=0x7f3f8b2cb060, rref_pointer_array=0x7f3f8b2cece0, tables=0x7f3f89191440, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7f3f89193010, unit=0x7f3f8b2ce390, select_lex=0x7f3f8b2cea70) at /data/src/5.5/sql/sql_select.cc:3094
#18 0x0000000000630702 in handle_select (thd=0x7f3f8b2cb060, lex=0x7f3f8b2ce2e0, result=0x7f3f89193010, setup_tables_done_option=0) at /data/src/5.5/sql/sql_select.cc:319
#19 0x0000000000609c69 in execute_sqlcom_select (thd=0x7f3f8b2cb060, all_tables=0x7f3f89191440) at /data/src/5.5/sql/sql_parse.cc:4689
#20 0x0000000000602fba in mysql_execute_command (thd=0x7f3f8b2cb060) at /data/src/5.5/sql/sql_parse.cc:2234
#21 0x000000000060c834 in mysql_parse (thd=0x7f3f8b2cb060, rawbuf=0x7f3f89191078 "SELECT COUNT(*) FROM t1 INNER JOIN t2 ON ( t2.col_varchar_key = t1.col_varchar_key ) LEFT JOIN t3 ON ( t2.col_varchar_key = t1.col_varchar_key )", length=144, parser_state=0x7f3f9a902650) at /data/src/5.5/sql/sql_parse.cc:5934
#22 0x0000000000600549 in dispatch_command (command=COM_QUERY, thd=0x7f3f8b2cb060, packet=0x7f3f94739061 "", packet_length=144) at /data/src/5.5/sql/sql_parse.cc:1079
#23 0x00000000005ff703 in do_command (thd=0x7f3f8b2cb060) at /data/src/5.5/sql/sql_parse.cc:793
#24 0x000000000070190f in do_handle_one_connection (thd_arg=0x7f3f8b2cb060) at /data/src/5.5/sql/sql_connect.cc:1270
#25 0x000000000070169c in handle_one_connection (arg=0x7f3f8b2cb060) at /data/src/5.5/sql/sql_connect.cc:1186
#26 0x000000000094409f in pfs_spawn_thread (arg=0x7f3f9473fde0) at /data/src/5.5/storage/perfschema/pfs.cc:1015
#27 0x00007f3f9a5490a4 in start_thread (arg=0x7f3f9a903700) at pthread_create.c:309
#28 0x00007f3f9896f87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111



 Comments   
Comment by Sergei Petrunia [ 2016-12-16 ]

varun, can you investigate? The first question, why does it crash only with XtraDB? Please check the difference with InnoDB vs with XtraDB.

Comment by Varun Gupta (Inactive) [ 2016-12-18 ]

EXPLAIN with XTRADB

Explain extended SELECT count(*) FROM t1 INNER JOIN t2 ON ( t2.col_varchar_key = t1.col_varchar_key ) LEFT JOIN t3 ON ( t2.col_varchar_key = t1.col_varchar_key );
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
1       SIMPLE  t2      index   col_varchar_key col_varchar_key 9       NULL    62      100.00  Using where; Using index
1       SIMPLE  t1      ref     col_varchar_key col_varchar_key 4       test.t2.col_varchar_key 1       100.00  Using index
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    1       100.00  Using where; Using join buffer (flat, BNL join)

Comment by Varun Gupta (Inactive) [ 2016-12-18 ]

EXPLAIN with INNODB

Explain extended SELECT count(*) FROM t1 INNER JOIN t2 ON ( t2.col_varchar_key = t1.col_varchar_key ) LEFT JOIN t3 ON ( t2.col_varchar_key = t1.col_varchar_key );
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
1       SIMPLE  t2      index   col_varchar_key col_varchar_key 9       NULL    62      100.00  Using where; Using index
1       SIMPLE  t1      ref     col_varchar_key col_varchar_key 4       test.t2.col_varchar_key 1       100.00  Using index
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    1       100.00  Using where; Using join buffer (flat, BNL join)

Comment by Varun Gupta (Inactive) [ 2016-12-19 ]

1367	  for ( ; copy < copy_end; copy++)
(gdb) 
1369	    Field *field= copy->field;
(gdb) 
1370	    if (field && field->maybe_null() && field->is_null())
(gdb) p *field
$128 = {<Value_source> = {<No data fields>}, _vptr$Field = 0x100eed3a8, 
  ptr = 0x10c6613ae "\217\217\245\245\245\245\245\245\245\245\377\377", '\245' <repeats 46 times>, "H\024f\f\001", null_ptr = 0x10c661389 "", 
  table = 0x10c6dde70, orig_table = 0x10c6dde70, table_name = 0x10c6ddf58, field_name = 0x10c6605f2 "col_varchar_nokey", option_list = 0x0, 
  option_struct = 0x0, comment = {str = 0x100df9f10 "", length = 0}, key_start = {map = 0}, part_of_key = {map = 0}, part_of_key_not_clustered = {
    map = 0}, part_of_sortkey = {map = 0}, unireg_check = Field::NONE, field_length = 1, flags = 134217728, field_index = 10, null_bit = 2 '\002', 
  is_created_from_null_item = false, is_stat_field = false, cond_selectivity = 1, next_equal_field = 0x0, read_stats = 0x0, collected_stats = 0x0, 
  vcol_info = 0x0, stored_in_db = true}
(gdb) p *copy
$129 = {str = 0x10c6613ae "\217\217\245\245\245\245\245\245\245\245\377\377", '\245' <repeats 46 times>, "H\024f\f\001", length = 2, field = 0x10c662e20, 
  type = 3, referenced_field_no = 0, blob_length = 2779096485, offset = 2779096485}
(gdb) n
1377	    if (copy->referenced_field_no)
(gdb) 
1380	    if (copy->type == CACHE_BLOB)
(gdb) 
1404	      switch (copy->type) {
(gdb) 
1407	        len= (uint) copy->str[0] + 1;
(gdb) n
1408	        DBUG_ASSERT(cp + len <= buff + buff_size);
(gdb) p len
$130 = 144
(gdb) p cp + len <= buff + buff_size
$131 = false
(gdb) p rem
$132 = 80
(gdb) p cp-rec_ptr_len
No symbol "rec_ptr_len" in current context.
(gdb) p records
$133 = 921
 
set cp+=len
(gdb) p  cp-rec_len_ptr
$137 = 152
(gdb) p  cp-rec_len_ptr-size_rec_ptr
No symbol "size_rec_ptr" in current context.
(gdb) p  cp-rec_len_ptr-size_of_rec_len
$138 = 151
(gdb) p rem
$139 = 80

Here rem denotes the size remaining in the buffer
[1287]size_t rem= rem_space();

Comment by Varun Gupta (Inactive) [ 2016-12-19 ]

The test runs when the same data is inserted into the tables(normal columns are used instead of computed columns). So we can conclude that the test fails as there is some issue with computed columns

Test and result without computed columns added

CREATE TABLE t1 (
pk INTEGER AUTO_INCREMENT,
col_int_nokey INTEGER NULL,
col_int_key INTEGER ,
col_date_key DATE ,
col_date_nokey DATE NULL,
col_time_key TIME ,
col_time_nokey TIME NULL,
col_datetime_key DATETIME ,
col_datetime_nokey DATETIME NULL,
col_varchar_key VARCHAR(1) ,
col_varchar_nokey VARCHAR(1) NULL,
PRIMARY KEY (pk),
KEY (col_varchar_key, col_int_key)
)engine=InnoDB ;
INSERT INTO t1 (
col_int_key, col_int_nokey,
col_date_key, col_date_nokey,
col_time_key, col_time_nokey,
col_datetime_key, col_datetime_nokey,
col_varchar_key, col_varchar_nokey
) VALUES 
(4, 8, '2002-01-03', '2002-01-03', '01:01:02.033918', '01:01:02.033918', NULL, NULL, 'c', 'c'),
(5, 3, '2007-07-08', '2007-07-08', '03:22:30.013692', '03:22:30.013692', '2003-11-06 04:59:50.060815', '2003-11-06 04:59:50.060815', 'v', 'c'),
(8, 3, '2000-08-02', '2000-08-02', '18:30:05.036576', '18:30:05.036576', '2007-08-13 00:00:00', '2007-08-13 00:00:00', 'v', 'q'),
(4, NULL, '2000-03-06', '2000-03-06', '07:30:51.053695', '07:30:51.053695', '2007-07-23 22:15:05.039929', '2007-07-23 22:15:05.039929', 'v', 'g'),
(48, 3, '2003-12-08', '2003-12-08', '00:50:58.018981', '00:50:58.018981', '2003-11-22 00:42:24.007216', '2003-11-22 00:42:24.007216', 'v', 'x'),
(228, 210, '2006-06-01', '2006-06-01', '15:11:05.037254', '15:11:05.037254', '2009-05-06 15:57:54.046100', '2009-05-06 15:57:54.046100', 'v', 'x'),
(3, 1, '2001-10-04', '2001-10-04', '17:56:53.016427', '17:56:53.016427', '2000-12-26 00:33:56.056159', '2000-12-26 00:33:56.056159', 'v', 'x'),
(5, 2, '2004-11-16', '2004-11-16', '01:40:28.015719', '01:40:28.015719', '2002-03-12 00:00:00', '2002-03-12 00:00:00', 'v', 'l'),
(39, 251, NULL, NULL, '01:21:50.043186', '01:21:50.043186', '2005-06-12 11:13:17.034994', '2005-06-12 11:13:17.034994', 'v', 'e'),
(6, 4, '2005-06-22', '2005-06-22', '21:17:36.004741', '21:17:36.004741', '2009-06-10 00:00:00', '2009-06-10 00:00:00', 'v', 's'),
(8, 4, '2003-04-19', '2003-04-19', '09:16:37.022128', '09:16:37.022128', '2002-04-07 00:00:00', '2002-04-07 00:00:00', 'v', 'k'),
(3, 9, '2006-03-23', '2006-03-23', '16:41:37.000305', '16:41:37.000305', '2002-08-01 01:33:30.032947', '2002-08-01 01:33:30.032947', 'v', 'm'),
(NULL, 4, NULL, NULL, '03:13:46.009571', '03:13:46.009571', '2003-04-05 11:02:01.035782', '2003-04-05 11:02:01.035782', 'v', 'x'),
(2, NULL, '2008-10-22', '2008-10-22', '17:27:08.029558', '17:27:08.029558', '2003-10-25 12:46:30.035123', '2003-10-25 12:46:30.035123', 'v', 's'),
(6, 4, '2009-04-04', '2009-04-04', '19:27:17.002465', '19:27:17.002465', '2007-08-10 00:00:00', '2007-08-10 00:00:00', 'v', 'h'),
(3, NULL, NULL, NULL, '00:51:44.035596', '00:51:44.035596', '2002-07-12 19:18:28.007325', '2002-07-12 19:18:28.007325', 'v', 'u'),
(1, 1, '2001-07-15', '2001-07-15', '10:57:22.061270', '10:57:22.061270', '2004-06-24 00:00:00', '2004-06-24 00:00:00', 'v', 'x'),
(4, 6, '2004-09-25', '2004-09-25', '13:28:27.053467', '13:28:27.053467', '2009-06-10 09:54:42.024934', '2009-06-10 09:54:42.024934', 'v', 'l'),
(3, 2, '2001-02-20', '2001-02-20', '06:40:59.047885', '06:40:59.047885', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'p'),
(1, NULL, '1900-01-01', '1900-01-01', '22:56:45.062451', '22:56:45.062451', '2002-03-09 11:26:35.022784', '2002-03-09 11:26:35.022784', 'v', 'i'),
(NULL, 4, '2004-08-02', '2004-08-02', '12:51:42.058226', '12:51:42.058226', '2004-02-22 21:45:20.001412', '2004-02-22 21:45:20.001412', 'v', 'u'),
(97, 248, '2009-02-26', '2009-02-26', '01:52:32.022616', '01:52:32.022616', NULL, NULL, 'v', 'i'),
(0, 4, '2002-11-23', '2002-11-23', '20:42:07.019441', '20:42:07.019441', '2000-08-12 00:00:00', '2000-08-12 00:00:00', 'v', 'i'),
(0, 8, '2008-12-17', '2008-12-17', '12:53:30.021802', '12:53:30.021802', '2003-05-24 18:11:13.003533', '2003-05-24 18:11:13.003533', 'v', 'e'),
(9, 4, '2005-08-26', '2005-08-26', '02:10:47.019184', '02:10:47.019184', '2000-12-21 15:20:30.054478', '2000-12-21 15:20:30.054478', 'v', 'h'),
(5, 5, '2001-03-10', '2001-03-10', '02:13:00.039788', '02:13:00.039788', '2006-10-27 05:05:38.051899', '2006-10-27 05:05:38.051899', 'v', 'f'),
(0, 2, '2003-08-04', '2003-08-04', '01:48:05.048577', '01:48:05.048577', '2006-11-03 00:00:00', '2006-11-03 00:00:00', 'v', 'p'),
(2, 4, '2007-11-06', '2007-11-06', '00:00:00', '00:00:00', '2009-11-26 19:28:11.005115', '2009-11-26 19:28:11.005115', 'v', 'n'),
(172, 211, '2009-04-23', '2009-04-23', '00:00:00', '00:00:00', '2000-12-07 10:17:40.013275', '2000-12-07 10:17:40.013275', 'v', 'h'),
(NULL, 2, '2002-10-06', '2002-10-06', '00:50:49.017545', '00:50:49.017545', NULL, NULL, 'v', 'm'),
(5, 4, '2008-02-12', '2008-02-12', NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'x'),
(119, 125, '2007-09-18', '2007-09-18', NULL, NULL, '2007-11-27 00:00:00', '2007-11-27 00:00:00', 'v', 'd'),
(1, 9, '2007-06-26', '2007-06-26', '07:26:24.062529', '07:26:24.062529', '2007-11-17 06:51:08.060652', '2007-11-17 06:51:08.060652', 'v', 'd'),
(6, NULL, '2003-11-10', '2003-11-10', '00:00:00', '00:00:00', '2004-04-15 20:15:45.050577', '2004-04-15 20:15:45.050577', 'v', 'v'),
(5, 8, '2009-02-19', '2009-02-19', '17:06:44.046549', '17:06:44.046549', '2005-04-19 21:52:38.017765', '2005-04-19 21:52:38.017765', 'v', 'u'),
(5, 4, '2006-11-17', '2006-11-17', '18:47:54.003829', '18:47:54.003829', '2000-02-03 00:00:00', '2000-02-03 00:00:00', 'v', 'p'),
(1, 8, '2000-02-23', '2000-02-23', '14:35:14.013323', '14:35:14.013323', '2002-06-10 17:21:09.045864', '2002-06-10 17:21:09.045864', 'v', 'o'),
(7, NULL, '1900-01-01', '1900-01-01', '07:50:59.050471', '07:50:59.050471', NULL, NULL, 'v', 'v'),
(2, 1, '2003-04-08', '2003-04-08', NULL, NULL, '2005-02-09 17:44:31.001526', '2005-02-09 17:44:31.001526', 'v', 'm'),
(8, 3, '2006-07-08', '2006-07-08', '12:35:26.016053', '12:35:26.016053', '2002-12-19 09:51:49.003532', '2002-12-19 09:51:49.003532', 'v', 'x'),
(9, 5, '2001-05-21', '2001-05-21', '05:30:51.057418', '05:30:51.057418', NULL, NULL, 'v', 'n'),
(NULL, 8, NULL, NULL, '00:00:00', '00:00:00', '2005-06-27 07:34:53.063059', '2005-06-27 07:34:53.063059', 'v', 'b'),
(3, 2, '2001-08-05', '2001-08-05', NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'r'),
(172, NULL, '2000-11-01', '2000-11-01', '17:54:39.046453', '17:54:39.046453', '2003-07-08 10:33:13.028775', '2003-07-08 10:33:13.028775', 'v', 'v'),
(NULL, 3, '2004-12-16', '2004-12-16', '17:47:16.019040', '17:47:16.019040', '2006-07-18 04:16:49.034600', '2006-07-18 04:16:49.034600', 'v', 'a'),
(6, NULL, '2003-02-06', '2003-02-06', '00:15:18.053252', '00:15:18.053252', NULL, NULL, 'v', 'u'),
(5, 1, '2005-12-20', '2005-12-20', '14:46:31.017448', '14:46:31.017448', NULL, NULL, 'v', 'b'),
(4, 0, '2002-03-13', '2002-03-13', '17:05:47.020057', '17:05:47.020057', '2006-04-27 12v:42:58.026518', '2006-04-27 12:42:58.026518', 'v', 's'),
(3, 0, NULL, NULL, '05:32:59.012082', '05:32:59.012082', '2007-06-12 00:00:00', '2007-06-12 00:00:00', 'v', 't'),
(2, 8, '2006-07-20', '2006-07-20', '13:41:32.043263', '13:41:32.043263', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'b'),
(7, NULL, '2002-12-19', '2002-12-19', NULL, NULL, '2001-05-18 02:54:34.025888', '2001-05-18 02:54:34.025888', 'v', 'm'),
(4, 9, '2001-07-09', '2001-07-09', '04:25:19.045271', '04:25:19.045271', '2008-06-07 08:08:32.056989', '2008-06-07 08:08:32.056989', 'v', 'v'),
(6, 1, '2006-05-27', '2006-05-27', '07:51:52.025057', '07:51:52.025057', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'n'),
(0, 9, '2007-02-26', '2007-02-26', '16:19:53.006682', '16:19:53.006682', '2005-05-11 00:00:00', '2005-05-11 00:00:00', 'v', 'j'),
(8, 1, '2005-01-22', '2005-01-22', '09:04:17.013295', '09:04:17.013295', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'h'),
(2, 9, '2006-04-25', '2006-04-25', '19:44:22.031201', '19:44:22.031201', NULL, NULL, 'v', 'k'),
(9, 5, '2002-11-13', '2002-11-13', '00:00:00', '00:00:00', '2009-06-08 21:21:31.059876', '2009-06-08 21:21:31.059876', 'v', 'k'),
(5, 6, '2003-06-16', '2003-06-16', '22:16:47.019207', '22:16:47.019207', '2009-10-17 23:46:36.026550', '2009-10-17 23:46:36.026550', 'v', 'n'),
(7, 5, '2006-01-18', '2006-01-18', '06:12:32.043645', '06:12:32.043645', '2009-02-28 00:00:00', '2009-02-28 00:00:00', 'v', 'e'),
(0, 2, '1900-01-01', '1900-01-01', NULL, NULL, '2004-04-14 13:27:34.062542', '2004-04-14 13:27:34.062542', 'v', 's'),
(4, 4, '2000-09-13', '2000-09-13', '02:38:48.001225', '02:38:48.001225', '2007-10-20 00:00:00', '2007-10-20 00:00:00', 'v', 'w'),
(3, 0, '2003-01-26', '2003-01-26', '00:00:00', '00:00:00', '2007-11-11 20:10:29.001244', '2007-11-11 20:10:29.001244', 'v', 'y'),
(1, 3, '2002-09-09', '2002-09-09', '02:02:49.060941', '02:02:49.060941', '2001-03-08 00:00:00', '2001-03-08 00:00:00', 'v', 'z'),
(0, 0, '2001-09-06', '2001-09-06', '23:43:38.037436', '23:43:38.037436', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'b'),
(6, 6, '2006-02-23', '2006-02-23', NULL, NULL, '2006-07-21 19:26:57.063604', '2006-07-21 19:26:57.063604', 'v', 'f'),
(2, 1, '2004-06-21', '2004-06-21', '12:35:01.002238', '12:35:01.002238', NULL, NULL, 'v', 's'),
(NULL, 9, '2006-12-02', '2006-12-02', '00:18:04.035712', '00:18:04.035712', NULL, NULL, 'v', 'd'),
(NULL, 9, '2001-12-27', '2001-12-27', '13:53:19.031137', '13:53:19.031137', '2002-08-16 00:00:00', '2002-08-16 00:00:00', 'v', 'd'),
(NULL, 4, '2008-04-11', '2008-04-11', NULL, NULL, NULL, NULL, 'v', 'n'),
(NULL, 1, '2000-09-24', '2000-09-24', '08:53:20.006718', '08:53:20.006718', '2005-09-09 12:56:20.057724', '2005-09-09 12:56:20.057724', 'v', 'i'),
(7, 8, '2008-07-10', '2008-07-10', '22:27:36.021373', '22:27:36.021373', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'h'),
(3, 1, '2007-08-14', '2007-08-14', '18:06:56.008989', '18:06:56.008989', '2009-01-21 23:43:07.004846', '2009-01-21 23:43:07.004846', 'v', 'd'),
(5, 0, '2008-06-08', '2008-06-08', '03:44:30.021705', '03:44:30.021705', NULL, NULL, 'v', 'c'),
(5, 2, '2001-07-26', '2001-07-26', '11:49:25.040600', '11:49:25.040600', '2007-09-06 20:49:33.054044', '2007-09-06 20:49:33.054044', 'v', 'i'),
(1, 0, '2008-09-17', '2008-09-17', '22:16:07.029978', '22:16:07.029978', '2005-09-20 10:11:02.005667', '2005-09-20 10:11:02.005667', 'v', 't'),
(2, 1, NULL, NULL, '17:14:13.044120', '17:14:13.044120', '2007-10-11 00:00:00', '2007-10-11 00:00:00', 'v', 'g'),
(1, 2, '2004-02-25', '2004-02-25', '14:49:31.012541', '14:49:31.012541', '2005-06-13 00:26:39.015322', '2005-06-13 00:26:39.015322', 'v', 'q'),
(7, NULL, '2009-11-02', '2009-11-02', '00:27:36.065229', '00:27:36.065229', '2001-06-18 08:40:49.042917', '2001-06-18 08:40:49.042917', 'v', 'l'),
(1, 3, '2001-12-14', '2001-12-14', '13:59:24.049387', '13:59:24.049387', '2006-06-07 00:00:00', '2006-06-07 00:00:00', 'v', 'n'),
(9, 8, NULL, NULL, '01:48:46.042584', '01:48:46.042584', '2004-03-18 22:35:04.041716', '2004-03-18 22:35:04.041716', 'v', 'z'),
(9, 4, '1900-01-01', '1900-01-01', NULL, NULL, NULL, NULL, 'v', 'n'),
(8, 4, '2002-04-12', '2002-04-12', '11:07:46.040645', '11:07:46.040645', '2001-07-15 12:46:49.046948', '2001-07-15 12:46:49.046948', 'v', 'r'),
(3, NULL, '2000-02-09', '2000-02-09', NULL, NULL, '2001-03-27 06:53:22.006663', '2001-03-27 06:53:22.006663', 'v', 'p') /* QNO 41 CON_ID 8 */;
Warnings:
Warning	1265	Data truncated for column 'col_datetime_key' at row 48
CREATE TABLE t2 (
pk INTEGER AUTO_INCREMENT,
col_int_nokey INTEGER NULL,
col_int_key INTEGER   ,
col_date_key DATE ,
col_date_nokey DATE NULL,
col_time_key TIME ,
col_time_nokey TIME NULL,
col_datetime_key DATETIME ,
col_datetime_nokey DATETIME NULL,
col_varchar_key VARCHAR(1) ,
col_varchar_nokey VARCHAR(1) NULL,
PRIMARY KEY (pk),
KEY (col_varchar_key, col_int_key)
) engine= InnoDB AUTO_INCREMENT=10 ;
INSERT INTO t2 (
col_int_key, col_int_nokey,
col_date_key, col_date_nokey,
col_time_key, col_time_nokey,
col_datetime_key, col_datetime_nokey,
col_varchar_key, col_varchar_nokey
) VALUES 
(1, 2, '2008-03-16', '2008-03-16', '12:35:21.015952', '12:35:21.015952', '2004-12-02 00:57:31.056351', '2004-12-02 00:57:31.056351', 'v', 'j'),
(17, 36, '2003-12-19', '2003-12-19', '00:00:00', '00:00:00', '2002-03-12 09:48:05.033853', '2002-03-12 09:48:05.033853', 'v', 's'),
(4, 5, '2005-10-23', '2005-10-23', '20:46:34.003982', '20:46:34.003982', '2007-06-07 08:16:24.030171', '2007-06-07 08:16:24.030171', 'v', 'q'),
(0, 6, '2008-03-04', '2008-03-04', '10:48:51.018074', '10:48:51.018074', '2006-08-20 11:54:04.031499', '2006-08-20 11:54:04.031499', 'v', 'l'),
(1, 9, NULL, NULL, '07:06:12.019155', '07:06:12.019155', '2007-05-22 00:00:00', '2007-05-22 00:00:00', 'v', 'j'),
(5, 6, '2004-05-19', '2004-05-19', '08:11:01.049319', '08:11:01.049319', '2009-02-28 11:00:47.051802', '2009-02-28 11:00:47.051802', 'v', 'y'),
(NULL, 0, '2009-01-21', '2009-01-21', NULL, NULL, NULL, NULL, 'v', 'i'),
(7, 7, '2004-07-16', '2004-07-16', '00:00:00', '00:00:00', '2006-04-09 11:38:17.004697', '2006-04-09 11:38:17.004697', 'v', 'x'),
(5, 2, '1900-01-01', '1900-01-01', '09:05:46.049259', '09:05:46.049259', '2005-10-08 08:08:42.010058', '2005-10-08 08:08:42.010058', 'v', 'u'),
(160, 146, NULL, NULL, '10:49:42.003572', '10:49:42.003572', '2003-03-15 00:00:00', '2003-03-15 00:00:00', 'v', 't'),
(7, 5, '2009-11-12', '2009-11-12', '16:39:08.052868', '16:39:08.052868', '2002-06-20 09:48:09.057405', '2002-06-20 09:48:09.057405', 'v', 'm'),
(1, 4, '2003-12-03', '2003-12-03', '18:51:52.020034', '18:51:52.020034', NULL, NULL, 'v', 'x'),
(8, 8, '1900-01-01', '1900-01-01', '13:52:22.063256', '13:52:22.063256', '2005-06-28 02:54:54.033897', '2005-06-28 02:54:54.033897', 'v', 'x'),
(4, 6, '2005-09-20', '2005-09-20', '21:48:36.057283', '21:48:36.057283', '2002-08-17 00:57:41.045824', '2002-08-17 00:57:41.045824', 'v', 'v'),
(1, 8, '2004-07-10', '2004-07-10', '10:59:28.034806', '10:59:28.034806', '2003-12-05 13:07:15.052162', '2003-12-05 13:07:15.052162', 'v', 'm'),
(2, 4, NULL, NULL, NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'j'),
(7, 8, '2009-08-17', '2009-08-17', '15:05:06.062377', '15:05:06.062377', '2001-02-03 05:31:15.058452', '2001-02-03 05:31:15.058452', 'v', 'z'),
(2, 2, '2001-11-03', '2001-11-03', '15:42:01.052867', '15:42:01.052867', '2006-03-10 17:29:05.006607', '2006-03-10 17:29:05.006607', 'v', 'a'),
(0, 9, '2009-06-11', '2009-06-11', NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'i'),
(2, 4, '2002-09-27', '2002-09-27', '21:27:57.033453', '21:27:57.033453', '2007-01-12 11:18:49.002045', '2007-01-12 11:18:49.002045', 'v', 'g'),
(4, 8, '2000-05-13', '2000-05-13', '00:00:00', '00:00:00', '2004-11-17 00:00:00', '2004-11-17 00:00:00', 'v', 'h'),
(NULL, 1, '1900-01-01', '1900-01-01', '06:21:08.052509', '06:21:08.052509', '2001-11-05 15:19:40.050500', '2001-11-05 15:19:40.050500', 'v', 'p'),
(6, 8, '2002-03-02', '2002-03-02', '10:17:54.019864', '10:17:54.019864', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'a'),
(4, 0, '2000-06-14', '2000-06-14', '17:57:58.002639', '17:57:58.002639', NULL, NULL, 'v', 'x'),
(3, 2, '2007-08-08', '2007-08-08', '06:58:38.000194', '06:58:38.000194', '2002-10-22 17:24:41.065056', '2002-10-22 17:24:41.065056', 'v', 's'),
(9, 6, '2008-10-02', '2008-10-02', '04:02:57.011013', '04:02:57.011013', '2002-02-11 22:03:47.002844', '2002-02-11 22:03:47.002844', 'v', 'k'),
(7, 0, '2007-07-02', '2007-07-02', NULL, NULL, '2001-02-26 10:28:06.024465', '2001-02-26 10:28:06.024465', 'v', 'm'),
(3, 6, '2003-01-25', '2003-01-25', NULL, NULL, '2000-08-07 15:19:01.063043', '2000-08-07 15:19:01.063043', NULL, NULL),
(9, NULL, '2006-03-21', '2006-03-21', '18:27:23.060158', '18:27:23.060158', '2002-12-04 06:10:53.027755', '2002-12-04 06:10:53.027755', 'v', 'y'),
(8, 7, '2003-04-15', '2003-04-15', '06:40:58.037841', '06:40:58.037841', '2008-08-03 00:00:00', '2008-08-03 00:00:00', 'v', 'd'),
(4, 7, '2001-04-22', '2001-04-22', '16:21:50.042962', '16:21:50.042962', NULL, NULL, 'v', 'w'),
(4, NULL, NULL, NULL, '00:00:00', '00:00:00', NULL, NULL, 'v', 'y'),
(9, 9, '2005-08-20', '2005-08-20', '01:36:47.020532', '01:36:47.020532', '2007-01-05 14:23:21.063280', '2007-01-05 14:23:21.063280', 'v', 's'),
(8, 9, '2002-11-23', '2002-11-23', '00:00:00', '00:00:00', '2004-01-02 22:56:27.051360', '2004-01-02 22:56:27.051360', 'v', 'x'),
(2, 6, '1900-01-01', '1900-01-01', '04:52:42.061600', '04:52:42.061600', '2001-12-13 19:09:03.035577', '2001-12-13 19:09:03.035577', 'v', 'l'),
(8, 9, '1900-01-01', '1900-01-01', '10:52:49.017566', '10:52:49.017566', '2004-08-13 00:00:00', '2004-08-13 00:00:00', 'v', 'f'),
(0, 8, '2005-11-23', '2005-11-23', '11:28:42.039525', '11:28:42.039525', '2001-09-22 08:32:34.025439', '2001-09-22 08:32:34.025439', 'v', 'x'),
(1, 1, '2006-03-20', '2006-03-20', '19:34:47.010488', '19:34:47.010488', NULL, NULL, 'v', 'p'),
(5, 7, '2003-05-11', '2003-05-11', '22:21:46.031300', '22:21:46.031300', '2002-08-06 08:47:23.055878', '2002-08-06 08:47:23.055878', 'v', 'y'),
(4, 6, NULL, NULL, '00:00:00', '00:00:00', '2002-01-21 07:22:54.064410', '2002-01-21 07:22:54.064410', 'v', 'p'),
(1, 1, '2002-08-17', '2002-08-17', '22:29:16.064947', '22:29:16.064947', '2000-09-08 00:00:00', '2000-09-08 00:00:00', 'v', 'g'),
(0, 3, '2001-06-15', '2001-06-15', '22:49:28.048532', '22:49:28.048532', '2001-11-27 14:59:24.028725', '2001-11-27 14:59:24.028725', 'v', 'c'),
(NULL, 5, '1900-01-01', '1900-01-01', '21:49:00.032147', '21:49:00.032147', '2001-04-19 09:35:37.027780', '2001-04-19 09:35:37.027780', 'v', 'h'),
(7, 3, '2003-11-19', '2003-11-19', '18:30:23.004396', '18:30:23.004396', '2003-12-17 11:53:23.019811', '2003-12-17 11:53:23.019811', 'v', 'p'),
(3, 2, '2004-04-23', '2004-04-23', '20:10:01.023785', '20:10:01.023785', NULL, NULL, 'v', 'b'),
(9, NULL, NULL, NULL, '13:05:12.047909', '13:05:12.047909', '2008-09-06 14:21:25.041589', '2008-09-06 14:21:25.041589', NULL, NULL),
(225, 121, '2002-03-02', '2002-03-02', NULL, NULL, NULL, NULL, NULL, NULL),
(2, NULL, '1900-01-01', '1900-01-01', '11:58:30.020245', '11:58:30.020245', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'y'),
(8, 7, '2009-09-12', '2009-09-12', '07:31:37.045737', '07:31:37.045737', '2005-08-02 00:50:41.045017', '2005-08-02 00:50:41.045017', 'v', 's'),
(9, 7, '2006-07-17', '2006-07-17', '10:52:59.018506', '10:52:59.018506', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'x'),
(2, 6, '2000-07-07', '2000-07-07', '08:54:56.062434', '08:54:56.062434', NULL, NULL, 'v', 'i'),
(4, 9, '2007-02-04', '2007-02-04', NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 't'),
(4, 5, NULL, NULL, '06:15:12.059342', '06:15:12.059342', '2003-11-05 09:01:58.046682', '2003-11-05 09:01:58.046682', 'v', 'j'),
(6, 0, NULL, NULL, NULL, NULL, '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'u'),
(7, 7, '2005-02-01', '2005-02-01', '08:12:54.047455', '08:12:54.047455', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'r'),
(2, 2, '2003-10-16', '2003-10-16', '00:00:00', '00:00:00', '2003-01-08 06:50:59.023013', '2003-01-08 06:50:59.023013', 'v', 'x'),
(2, 8, '2009-09-09', '2009-09-09', '16:21:16.061650', '16:21:16.061650', NULL, NULL, 'v', 'e'),
(9, 8, '1900-01-01', '1900-01-01', '22:29:31.058874', '22:29:31.058874', '2003-07-01 19:38:23.047425', '2003-07-01 19:38:23.047425', 'v', 'i'),
(198, NULL, '2000-08-08', '2000-08-08', '00:49:30.064187', '00:49:30.064187', NULL, NULL, 'v', 'q'),
(9, 8, '2006-05-09', '2006-05-09', '20:22:47.037406', '20:22:47.037406', '2003-04-07 03:25:51.058231', '2003-04-07 03:25:51.058231', 'v', 'z'),
(7, 3, '1900-01-01', '1900-01-01', '08:48:30.044928', '08:48:30.044928', '1900-01-01 00:00:00', '1900-01-01 00:00:00', 'v', 'k'),
(99, 65, NULL, NULL, '00:00:00', '00:00:00', '1900-01-01 00:00:00', '1900-01-01 00:00:00', NULL, NULL) /* QNO 56 CON_ID 8 */;
CREATE TABLE t3 (x INT) engine=InnoDB;
show create table t3;
Table	Create Table
t3	CREATE TABLE `t3` (
  `x` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SELECT count(*) FROM t1 INNER JOIN t2 ON ( t2.col_varchar_key = t1.col_varchar_key ) LEFT JOIN t3 ON ( t2.col_varchar_key = t1.col_varchar_key );
count(*)
4756
drop table t1,t2,t3;

Comment by Varun Gupta (Inactive) [ 2016-12-20 ]

For the first record, field is col_varchar_no_key of table t1;

(gdb) p *field
$6 = {<Value_source> = {<No data fields>}, _vptr$Field = 0x100eed3a8, 
  ptr = 0x10cc595ae "\217\217\245\245\245\245\245\245\245\245\377\377", '\245' <repeats 46 times>, "H\226\305\f\001", 
  null_ptr = 0x10cc59589 "\376", '\217' <repeats 34 times>, "\001v\217\217\245\245\245\245\245\245\245\245\377\377", '\245' <repeats 46 times>, "H\226\305\f\001", table = 0x10ccb1070, orig_table = 0x10ccb1070, table_name = 0x10ccb1158, field_name = 0x10cc591f2 "col_varchar_nokey", option_list = 0x0, 
  option_struct = 0x0, comment = {str = 0x100df9f10 "", length = 0}, key_start = {map = 0}, part_of_key = {map = 0}, part_of_key_not_clustered = {
    map = 0}, part_of_sortkey = {map = 0}, unireg_check = Field::NONE, field_length = 1, flags = 134217728, field_index = 10, null_bit = 2 '\002', 
  is_created_from_null_item = false, is_stat_field = false, cond_selectivity = 1, next_equal_field = 0x0, read_stats = 0x0, collected_stats = 0x0, 
  vcol_info = 0x0, stored_in_db = true}
(gdb) n
1372	      if (copy->referenced_field_no)
(gdb) p field->null_ptr
$7 = (uchar *) 0x10cc59589 "\376", '\217' <repeats 34 times>, "\001v\217\217\245\245\245\245\245\245\245\245\377\377", '\245' <repeats 46 times>, "H\226\305\f\001"
(gdb) p field->null_ptr[0]
$8 = 254 '\376'
(gdb) p field->null_ptr[0] & field->null_bit
$9 = 2

For the next row,same field

(gdb) p *field
$13 = {<Value_source> = {<No data fields>}, _vptr$Field = 0x100eed3a8, 
  ptr = 0x10cc595ae "\217\217\245\245\245\245\245\245\245\245\377\377", '\245' <repeats 46 times>, "H\226\305\f\001", null_ptr = 0x10cc59589 "", 
  table = 0x10ccb1070, orig_table = 0x10ccb1070, table_name = 0x10ccb1158, field_name = 0x10cc591f2 "col_varchar_nokey", option_list = 0x0, 
  option_struct = 0x0, comment = {str = 0x100df9f10 "", length = 0}, key_start = {map = 0}, part_of_key = {map = 0}, part_of_key_not_clustered = {
    map = 0}, part_of_sortkey = {map = 0}, unireg_check = Field::NONE, field_length = 1, flags = 134217728, field_index = 10, null_bit = 2 '\002', 
  is_created_from_null_item = false, is_stat_field = false, cond_selectivity = 1, next_equal_field = 0x0, read_stats = 0x0, collected_stats = 0x0, 
  vcol_info = 0x0, stored_in_db = true}
(gdb) n
1377	    if (copy->referenced_field_no)
(gdb) 
1380	    if (copy->type == CACHE_BLOB)
(gdb) 
1404	      switch (copy->type) {
(gdb) p field->null_ptr
$14 = (uchar *) 0x10cc59589 ""
(gdb) p field->null_ptr[0]
$15 = 0 '\000'

Due to this field->is_null() returns false and the len = 144 is added to the record length, which looks like some garbage value.
Normally the record length should be 10, this happens only with the first record. Others return 154.

Comment by Sergei Golubchik [ 2017-02-08 ]

That's the same as MDEV-11640 that I fixed in 10.2, but with stored columns, so applicable even to 5.5

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