Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-2800

LP:611625 - Assertion `*item' failed in Expression_cache_tmptable::init()

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      Description

      This query

      SELECT (
      SELECT `col_int_nokey`
      FROM D
      WHERE table1 .`col_varchar_nokey` ) field13
      FROM BB table1 JOIN C table2 ON table2 .`pk`
      ORDER BY field13
      ;

      crashes as follows:

      /lib/libc.so.6(__assert_fail+0xf8) [0x897de8]
      /home/philips/bzr/maria-5.3/sql/mysqld(Expression_cache_tmptable::init()+0x1ac) [0x8496f34]
      /home/philips/bzr/maria-5.3/sql/mysqld(Expression_cache_tmptable::check_value(Item**)+0x51) [0x84974a3]
      /home/philips/bzr/maria-5.3/sql/mysqld(Item_cache_wrapper::check_cache()+0x5e) [0x81c85a6]
      /home/philips/bzr/maria-5.3/sql/mysqld(Item_cache_wrapper::val_int()+0xa2) [0x81c87fe]
      /home/philips/bzr/maria-5.3/sql/mysqld(Item::send(Protocol*, String*)+0x16f) [0x81c60a7]
      /home/philips/bzr/maria-5.3/sql/mysqld(Item_cache_wrapper::send(Protocol*, String*)+0x47) [0x81d15b1]
      /home/philips/bzr/maria-5.3/sql/mysqld(select_send::send_data(List<Item>&)+0x106) [0x8267b7a]
      /home/philips/bzr/maria-5.3/sql/mysqld() [0x831fab2]
      /home/philips/bzr/maria-5.3/sql/mysqld() [0x831dfa6]
      /home/philips/bzr/maria-5.3/sql/mysqld(sub_select(JOIN*, st_join_table*, bool)+0x1ee) [0x831d94d]
      /home/philips/bzr/maria-5.3/sql/mysqld() [0x831cd4c]
      /home/philips/bzr/maria-5.3/sql/mysqld(JOIN::exec()+0x26f1) [0x83031b7]
      /home/philips/bzr/maria-5.3/sql/mysqld(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*)+0x34a) [0x83038ea]
      /home/philips/bzr/maria-5.3/sql/mysqld(handle_select(THD*, st_lex*, select_result*, unsigned long)+0x1cf) [0x82fbfb7]
      /home/philips/bzr/maria-5.3/sql/mysqld() [0x829a6d8]
      /home/philips/bzr/maria-5.3/sql/mysqld(mysql_execute_command(THD*)+0x881) [0x82910b8]
      /home/philips/bzr/maria-5.3/sql/mysqld(mysql_parse(THD*, char const*, unsigned int, char const**)+0x248) [0x829c8b9]
      /home/philips/bzr/maria-5.3/sql/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0x8c3) [0x828eaea]
      /home/philips/bzr/maria-5.3/sql/mysqld(do_command(THD*)+0x273) [0x828df90]
      /home/philips/bzr/maria-5.3/sql/mysqld(handle_one_connection+0x152) [0x828b0f0]

      EXPLAIN:

      id select_type table type possible_keys key key_len ref rows Extra
      1 PRIMARY table1 system NULL NULL NULL NULL 1
      1 PRIMARY table2 index NULL PRIMARY 4 NULL 20 Using where; Using index
      2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            philipstoev Philip Stoev added a comment -

            Re: Assertion `*item' failed in Expression_cache_tmptable::init()
            Test case:

            CREATE TABLE `C` (
            `pk` int(11) NOT NULL AUTO_INCREMENT,
            `col_int_nokey` int(11) DEFAULT NULL,
            `col_varchar_nokey` varchar(1) DEFAULT NULL,
            PRIMARY KEY (`pk`)
            ) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
            INSERT INTO `C` VALUES (1,NULL,'w');
            INSERT INTO `C` VALUES (2,7,'m');
            INSERT INTO `C` VALUES (3,9,'m');
            INSERT INTO `C` VALUES (4,7,'k');
            INSERT INTO `C` VALUES (5,4,'r');
            INSERT INTO `C` VALUES (6,2,'t');
            INSERT INTO `C` VALUES (7,6,'j');
            INSERT INTO `C` VALUES (8,8,'u');
            INSERT INTO `C` VALUES (9,NULL,'h');
            INSERT INTO `C` VALUES (10,5,'o');
            INSERT INTO `C` VALUES (11,NULL,NULL);
            INSERT INTO `C` VALUES (12,6,'k');
            INSERT INTO `C` VALUES (13,188,'e');
            INSERT INTO `C` VALUES (14,2,'n');
            INSERT INTO `C` VALUES (15,1,'t');
            INSERT INTO `C` VALUES (16,1,'c');
            INSERT INTO `C` VALUES (17,0,'m');
            INSERT INTO `C` VALUES (18,9,'y');
            INSERT INTO `C` VALUES (19,NULL,'f');
            INSERT INTO `C` VALUES (20,4,'d');
            CREATE TABLE `D` (
            `pk` int(11) NOT NULL AUTO_INCREMENT,
            `col_int_nokey` int(11) DEFAULT NULL,
            `col_varchar_nokey` varchar(1) DEFAULT NULL,
            PRIMARY KEY (`pk`)
            ) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=latin1;
            INSERT INTO `D` VALUES (1,6,'r');
            INSERT INTO `D` VALUES (2,8,'c');
            INSERT INTO `D` VALUES (3,6,'o');
            INSERT INTO `D` VALUES (4,6,'c');
            INSERT INTO `D` VALUES (5,3,'d');
            INSERT INTO `D` VALUES (6,9,'v');
            INSERT INTO `D` VALUES (7,2,'m');
            INSERT INTO `D` VALUES (8,1,'j');
            INSERT INTO `D` VALUES (9,8,'f');
            INSERT INTO `D` VALUES (10,0,'n');
            INSERT INTO `D` VALUES (11,9,'z');
            INSERT INTO `D` VALUES (12,8,'h');
            INSERT INTO `D` VALUES (13,NULL,'q');
            INSERT INTO `D` VALUES (14,0,'w');
            INSERT INTO `D` VALUES (15,5,'z');
            INSERT INTO `D` VALUES (16,1,'j');
            INSERT INTO `D` VALUES (17,1,'a');
            INSERT INTO `D` VALUES (18,6,'m');
            INSERT INTO `D` VALUES (19,6,'n');
            INSERT INTO `D` VALUES (20,1,'e');
            INSERT INTO `D` VALUES (21,8,'u');
            INSERT INTO `D` VALUES (22,1,'s');
            INSERT INTO `D` VALUES (23,0,'u');
            INSERT INTO `D` VALUES (24,4,'r');
            INSERT INTO `D` VALUES (25,9,'g');
            INSERT INTO `D` VALUES (26,8,'o');
            INSERT INTO `D` VALUES (27,5,'w');
            INSERT INTO `D` VALUES (28,9,'b');
            INSERT INTO `D` VALUES (29,5,NULL);
            INSERT INTO `D` VALUES (30,NULL,'y');
            INSERT INTO `D` VALUES (31,NULL,'y');
            INSERT INTO `D` VALUES (32,105,'u');
            INSERT INTO `D` VALUES (33,0,'p');
            INSERT INTO `D` VALUES (34,3,'s');
            INSERT INTO `D` VALUES (35,1,'e');
            INSERT INTO `D` VALUES (36,75,'d');
            INSERT INTO `D` VALUES (37,9,'d');
            INSERT INTO `D` VALUES (38,7,'c');
            INSERT INTO `D` VALUES (39,NULL,'b');
            INSERT INTO `D` VALUES (40,NULL,'t');
            INSERT INTO `D` VALUES (41,4,NULL);
            INSERT INTO `D` VALUES (42,0,'y');
            INSERT INTO `D` VALUES (43,204,'c');
            INSERT INTO `D` VALUES (44,0,'d');
            INSERT INTO `D` VALUES (45,9,'x');
            INSERT INTO `D` VALUES (46,8,'p');
            INSERT INTO `D` VALUES (47,7,'e');
            INSERT INTO `D` VALUES (48,8,'g');
            INSERT INTO `D` VALUES (49,NULL,'x');
            INSERT INTO `D` VALUES (50,6,'s');
            INSERT INTO `D` VALUES (51,5,'e');
            INSERT INTO `D` VALUES (52,2,'l');
            INSERT INTO `D` VALUES (53,3,'p');
            INSERT INTO `D` VALUES (54,7,'h');
            INSERT INTO `D` VALUES (55,NULL,'m');
            INSERT INTO `D` VALUES (56,145,'n');
            INSERT INTO `D` VALUES (57,0,'v');
            INSERT INTO `D` VALUES (58,1,'b');
            INSERT INTO `D` VALUES (59,7,'x');
            INSERT INTO `D` VALUES (60,3,'r');
            INSERT INTO `D` VALUES (61,NULL,'t');
            INSERT INTO `D` VALUES (62,2,'w');
            INSERT INTO `D` VALUES (63,2,'w');
            INSERT INTO `D` VALUES (64,2,'k');
            INSERT INTO `D` VALUES (65,8,'a');
            INSERT INTO `D` VALUES (66,6,'t');
            INSERT INTO `D` VALUES (67,1,'z');
            INSERT INTO `D` VALUES (68,NULL,'e');
            INSERT INTO `D` VALUES (69,1,'q');
            INSERT INTO `D` VALUES (70,0,'e');
            INSERT INTO `D` VALUES (71,4,'v');
            INSERT INTO `D` VALUES (72,1,'d');
            INSERT INTO `D` VALUES (73,1,'u');
            INSERT INTO `D` VALUES (74,27,'o');
            INSERT INTO `D` VALUES (75,4,'b');
            INSERT INTO `D` VALUES (76,6,'c');
            INSERT INTO `D` VALUES (77,2,'q');
            INSERT INTO `D` VALUES (78,248,NULL);
            INSERT INTO `D` VALUES (79,NULL,'h');
            INSERT INTO `D` VALUES (80,9,'d');
            INSERT INTO `D` VALUES (81,75,'w');
            INSERT INTO `D` VALUES (82,2,'m');
            INSERT INTO `D` VALUES (83,9,'i');
            INSERT INTO `D` VALUES (84,4,'w');
            INSERT INTO `D` VALUES (85,0,'f');
            INSERT INTO `D` VALUES (86,0,'k');
            INSERT INTO `D` VALUES (87,1,'v');
            INSERT INTO `D` VALUES (88,119,'c');
            INSERT INTO `D` VALUES (89,1,'y');
            INSERT INTO `D` VALUES (90,7,'h');
            INSERT INTO `D` VALUES (91,2,NULL);
            INSERT INTO `D` VALUES (92,7,'t');
            INSERT INTO `D` VALUES (93,2,'l');
            INSERT INTO `D` VALUES (94,6,'a');
            INSERT INTO `D` VALUES (95,4,'r');
            INSERT INTO `D` VALUES (96,5,'s');
            INSERT INTO `D` VALUES (97,7,'z');
            INSERT INTO `D` VALUES (98,1,'j');
            INSERT INTO `D` VALUES (99,7,'c');
            INSERT INTO `D` VALUES (100,2,'f');
            CREATE TABLE `BB` (
            `pk` int(11) NOT NULL AUTO_INCREMENT,
            `col_int_nokey` int(11) DEFAULT NULL,
            `col_varchar_nokey` varchar(1) DEFAULT NULL,
            PRIMARY KEY (`pk`)
            ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
            INSERT INTO `BB` VALUES (10,8,NULL);

            SELECT (
            SELECT `col_int_nokey`
            FROM D
            WHERE table1 .`col_varchar_nokey` ) field13
            FROM BB table1 JOIN C table2 ON table2 .`pk`
            ORDER BY field13;

            Show
            philipstoev Philip Stoev added a comment - Re: Assertion `*item' failed in Expression_cache_tmptable::init() Test case: CREATE TABLE `C` ( `pk` int(11) NOT NULL AUTO_INCREMENT, `col_int_nokey` int(11) DEFAULT NULL, `col_varchar_nokey` varchar(1) DEFAULT NULL, PRIMARY KEY (`pk`) ) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1; INSERT INTO `C` VALUES (1,NULL,'w'); INSERT INTO `C` VALUES (2,7,'m'); INSERT INTO `C` VALUES (3,9,'m'); INSERT INTO `C` VALUES (4,7,'k'); INSERT INTO `C` VALUES (5,4,'r'); INSERT INTO `C` VALUES (6,2,'t'); INSERT INTO `C` VALUES (7,6,'j'); INSERT INTO `C` VALUES (8,8,'u'); INSERT INTO `C` VALUES (9,NULL,'h'); INSERT INTO `C` VALUES (10,5,'o'); INSERT INTO `C` VALUES (11,NULL,NULL); INSERT INTO `C` VALUES (12,6,'k'); INSERT INTO `C` VALUES (13,188,'e'); INSERT INTO `C` VALUES (14,2,'n'); INSERT INTO `C` VALUES (15,1,'t'); INSERT INTO `C` VALUES (16,1,'c'); INSERT INTO `C` VALUES (17,0,'m'); INSERT INTO `C` VALUES (18,9,'y'); INSERT INTO `C` VALUES (19,NULL,'f'); INSERT INTO `C` VALUES (20,4,'d'); CREATE TABLE `D` ( `pk` int(11) NOT NULL AUTO_INCREMENT, `col_int_nokey` int(11) DEFAULT NULL, `col_varchar_nokey` varchar(1) DEFAULT NULL, PRIMARY KEY (`pk`) ) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=latin1; INSERT INTO `D` VALUES (1,6,'r'); INSERT INTO `D` VALUES (2,8,'c'); INSERT INTO `D` VALUES (3,6,'o'); INSERT INTO `D` VALUES (4,6,'c'); INSERT INTO `D` VALUES (5,3,'d'); INSERT INTO `D` VALUES (6,9,'v'); INSERT INTO `D` VALUES (7,2,'m'); INSERT INTO `D` VALUES (8,1,'j'); INSERT INTO `D` VALUES (9,8,'f'); INSERT INTO `D` VALUES (10,0,'n'); INSERT INTO `D` VALUES (11,9,'z'); INSERT INTO `D` VALUES (12,8,'h'); INSERT INTO `D` VALUES (13,NULL,'q'); INSERT INTO `D` VALUES (14,0,'w'); INSERT INTO `D` VALUES (15,5,'z'); INSERT INTO `D` VALUES (16,1,'j'); INSERT INTO `D` VALUES (17,1,'a'); INSERT INTO `D` VALUES (18,6,'m'); INSERT INTO `D` VALUES (19,6,'n'); INSERT INTO `D` VALUES (20,1,'e'); INSERT INTO `D` VALUES (21,8,'u'); INSERT INTO `D` VALUES (22,1,'s'); INSERT INTO `D` VALUES (23,0,'u'); INSERT INTO `D` VALUES (24,4,'r'); INSERT INTO `D` VALUES (25,9,'g'); INSERT INTO `D` VALUES (26,8,'o'); INSERT INTO `D` VALUES (27,5,'w'); INSERT INTO `D` VALUES (28,9,'b'); INSERT INTO `D` VALUES (29,5,NULL); INSERT INTO `D` VALUES (30,NULL,'y'); INSERT INTO `D` VALUES (31,NULL,'y'); INSERT INTO `D` VALUES (32,105,'u'); INSERT INTO `D` VALUES (33,0,'p'); INSERT INTO `D` VALUES (34,3,'s'); INSERT INTO `D` VALUES (35,1,'e'); INSERT INTO `D` VALUES (36,75,'d'); INSERT INTO `D` VALUES (37,9,'d'); INSERT INTO `D` VALUES (38,7,'c'); INSERT INTO `D` VALUES (39,NULL,'b'); INSERT INTO `D` VALUES (40,NULL,'t'); INSERT INTO `D` VALUES (41,4,NULL); INSERT INTO `D` VALUES (42,0,'y'); INSERT INTO `D` VALUES (43,204,'c'); INSERT INTO `D` VALUES (44,0,'d'); INSERT INTO `D` VALUES (45,9,'x'); INSERT INTO `D` VALUES (46,8,'p'); INSERT INTO `D` VALUES (47,7,'e'); INSERT INTO `D` VALUES (48,8,'g'); INSERT INTO `D` VALUES (49,NULL,'x'); INSERT INTO `D` VALUES (50,6,'s'); INSERT INTO `D` VALUES (51,5,'e'); INSERT INTO `D` VALUES (52,2,'l'); INSERT INTO `D` VALUES (53,3,'p'); INSERT INTO `D` VALUES (54,7,'h'); INSERT INTO `D` VALUES (55,NULL,'m'); INSERT INTO `D` VALUES (56,145,'n'); INSERT INTO `D` VALUES (57,0,'v'); INSERT INTO `D` VALUES (58,1,'b'); INSERT INTO `D` VALUES (59,7,'x'); INSERT INTO `D` VALUES (60,3,'r'); INSERT INTO `D` VALUES (61,NULL,'t'); INSERT INTO `D` VALUES (62,2,'w'); INSERT INTO `D` VALUES (63,2,'w'); INSERT INTO `D` VALUES (64,2,'k'); INSERT INTO `D` VALUES (65,8,'a'); INSERT INTO `D` VALUES (66,6,'t'); INSERT INTO `D` VALUES (67,1,'z'); INSERT INTO `D` VALUES (68,NULL,'e'); INSERT INTO `D` VALUES (69,1,'q'); INSERT INTO `D` VALUES (70,0,'e'); INSERT INTO `D` VALUES (71,4,'v'); INSERT INTO `D` VALUES (72,1,'d'); INSERT INTO `D` VALUES (73,1,'u'); INSERT INTO `D` VALUES (74,27,'o'); INSERT INTO `D` VALUES (75,4,'b'); INSERT INTO `D` VALUES (76,6,'c'); INSERT INTO `D` VALUES (77,2,'q'); INSERT INTO `D` VALUES (78,248,NULL); INSERT INTO `D` VALUES (79,NULL,'h'); INSERT INTO `D` VALUES (80,9,'d'); INSERT INTO `D` VALUES (81,75,'w'); INSERT INTO `D` VALUES (82,2,'m'); INSERT INTO `D` VALUES (83,9,'i'); INSERT INTO `D` VALUES (84,4,'w'); INSERT INTO `D` VALUES (85,0,'f'); INSERT INTO `D` VALUES (86,0,'k'); INSERT INTO `D` VALUES (87,1,'v'); INSERT INTO `D` VALUES (88,119,'c'); INSERT INTO `D` VALUES (89,1,'y'); INSERT INTO `D` VALUES (90,7,'h'); INSERT INTO `D` VALUES (91,2,NULL); INSERT INTO `D` VALUES (92,7,'t'); INSERT INTO `D` VALUES (93,2,'l'); INSERT INTO `D` VALUES (94,6,'a'); INSERT INTO `D` VALUES (95,4,'r'); INSERT INTO `D` VALUES (96,5,'s'); INSERT INTO `D` VALUES (97,7,'z'); INSERT INTO `D` VALUES (98,1,'j'); INSERT INTO `D` VALUES (99,7,'c'); INSERT INTO `D` VALUES (100,2,'f'); CREATE TABLE `BB` ( `pk` int(11) NOT NULL AUTO_INCREMENT, `col_int_nokey` int(11) DEFAULT NULL, `col_varchar_nokey` varchar(1) DEFAULT NULL, PRIMARY KEY (`pk`) ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1; INSERT INTO `BB` VALUES (10,8,NULL); SELECT ( SELECT `col_int_nokey` FROM D WHERE table1 .`col_varchar_nokey` ) field13 FROM BB table1 JOIN C table2 ON table2 .`pk` ORDER BY field13;
            Hide
            ratzpo Rasmus Johansson added a comment -

            Launchpad bug id: 611625

            Show
            ratzpo Rasmus Johansson added a comment - Launchpad bug id: 611625

              People

              • Assignee:
                sanja Oleksandr Byelkin
                Reporter:
                philipstoev Philip Stoev
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: