Details
Description
==5586== Conditional jump or move depends on uninitialised value(s) ==5586== at 0x99843B: ha_innobase::store_key_val_for_row(unsigned int, char*, unsigned int, unsigned char const*) (ha_innodb.cc:5334) ==5586== by 0x99C6DA: ha_innobase::position(unsigned char const*) (ha_innodb.cc:7506) ==5586== by 0x66C16B: sub_select(JOIN*, st_join_table*, bool) (sql_select.cc:16302) ==5586== by 0x66BA38: do_select(JOIN*, List<Item>*, TABLE*, Procedure*) (sql_select.cc:15973) ==5586== by 0x64B51E: JOIN::exec() (sql_select.cc:2834) ==5586== by 0x64BD1C: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:3054) ==5586== by 0x64273F: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:318) ==5586== by 0x61A7DF: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:4646) ==5586== by 0x613225: mysql_execute_command(THD*) (sql_parse.cc:2200) ==5586== by 0x61D07F: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5764) ==5586== by 0x610756: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1071) ==5586== by 0x60F966: do_command(THD*) (sql_parse.cc:794) ==5586== by 0x71BD32: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==5586== by 0x71B719: handle_one_connection (sql_connect.cc:1181) ==5586== by 0x9787AD: pfs_spawn_thread (pfs.cc:1015) ==5586== by 0x545AE99: start_thread (pthread_create.c:308) ==5586== Conditional jump or move depends on uninitialised value(s) ==5586== at 0x9984B5: ha_innobase::store_key_val_for_row(unsigned int, char*, unsigned int, unsigned char const*) (ha_innodb.cc:5346) ==5586== by 0x99C6DA: ha_innobase::position(unsigned char const*) (ha_innodb.cc:7506) ==5586== by 0x66C16B: sub_select(JOIN*, st_join_table*, bool) (sql_select.cc:16302) ==5586== by 0x66BA38: do_select(JOIN*, List<Item>*, TABLE*, Procedure*) (sql_select.cc:15973) ==5586== by 0x64B51E: JOIN::exec() (sql_select.cc:2834) ==5586== by 0x64BD1C: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:3054) ==5586== by 0x64273F: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:318) ==5586== by 0x61A7DF: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:4646) ==5586== by 0x613225: mysql_execute_command(THD*) (sql_parse.cc:2200) ==5586== by 0x61D07F: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5764) ==5586== by 0x610756: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1071) ==5586== by 0x60F966: do_command(THD*) (sql_parse.cc:794) ==5586== by 0x71BD32: do_handle_one_connection(THD*) (sql_connect.cc:1266) ==5586== by 0x71B719: handle_one_connection (sql_connect.cc:1181) ==5586== by 0x9787AD: pfs_spawn_thread (pfs.cc:1015) ==5586== by 0x545AE99: start_thread (pthread_create.c:308)
5331: /* For multi byte character sets we need to calculate
5332: the true length of the key */
5333:
5334: if (len > 0 && cs->mbmaxlen > 1) {
5335: true_len = (ulint) cs->cset->well_formed_len(cs,
5336: (const char *) data,
5337: (const char *) data + len,
5338: (uint) (key_len /
5339: cs->mbmaxlen),
5340: &error);
5341: }
5342:
5343: /* In a column prefix index, we may need to truncate
5344: the stored value: */
bzr version-info
revision-id: psergey@askmonty.org-20130711111250-ako2z33co7o9tl5x revno: 3827 branch-nick: 5.5
Reproducible with XtraDB and InnoDB (stack trace above is with XtraDB).
Minimal optimizer_switch: semijoin=on
Test case:
--source include/have_innodb.inc SET optimizer_switch = 'semijoin=on'; CREATE TABLE t1 ( t1_pk1 varchar(3), t1_pk2 varchar(52), PRIMARY KEY (t1_pk1,t1_pk2)) ENGINE=InnoDB; INSERT INTO t1 VALUES ('CHN','Chinese'),('USA','English'); CREATE TABLE t2 ( t2_i int(11), t2_c varchar(52)) ENGINE=InnoDB; INSERT INTO t2 VALUES (86,'English'); CREATE TABLE t3 ( t3_i int(11), t3_c varchar(35)) ENGINE=InnoDB; INSERT INTO t3 VALUES (3989,'Abilene'),(3873,'Akron'); SELECT * FROM t1, t3 WHERE t3_c IN ( SELECT t1_pk2 FROM t1, t2 WHERE t2_c = t1_pk2 AND t2_i >= t3_i ) AND ( t1_pk1 = 'POL' );
EXPLAIN:
id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 ref PRIMARY PRIMARY 5 const 1 100.00 Using where; Using index 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Start temporary; Using join buffer (flat, BNL join) 1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join) 1 PRIMARY t1 index NULL PRIMARY 59 NULL 2 100.00 Using where; Using index; End temporary; Using join buffer (incremental, BNL join) Warnings: Note 1276 Field or reference 'test.t3.t3_i' of SELECT #2 was resolved in SELECT #1 Note 1003 select `test`.`t1`.`t1_pk1` AS `t1_pk1`,`test`.`t1`.`t1_pk2` AS `t1_pk2`,`test`.`t3`.`t3_i` AS `t3_i`,`test`.`t3`.`t3_c` AS `t3_c` from `test`.`t1` semi join (`test`.`t1` join `test`.`t2`) join `test`.`t3` where ((`test`.`t1`.`t1_pk1` = 'POL') and (`test`.`t1`.`t1_pk2` = `test`.`t2`.`t2_c`) and (`test`.`t2`.`t2_i` >= `test`.`t3`.`t3_i`) and (`test`.`t3`.`t3_c` = `test`.`t2`.`t2_c`))
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions