drop table if exists t1; create table `t1` (a int primary key auto_increment)engine=myisam; insert into t1 values (),(),(); select 1 from t1 order by ( select 1 from t1 group by greatest(last_insert_id(),`t1`.`a`) asc limit 1); E:\builds\5.1.21-win-src\sql\debug>mysqld --console --skip-grant-tables 070922 16:46:13 InnoDB: Started; log sequence number 0 48276 070922 16:46:13 [ERROR] Column count of mysql.event is wrong. Expected 22, found 18. Created with MySQL 50119, now running 50122. Ple 070922 16:46:13 [ERROR] Event Scheduler: An error occurred when initializing system tables. 070922 16:46:13 [Note] mysqld: ready for connections. Version: '5.1.22-beta-debug' socket: '' port: 3306 Source distribution Assertion failed: table->key_read == 0, file .\sql_base.cc, line 1266 mysqld.exe!_NMSG_WRITE(int rterrnum=0x0000000a) Line 198 C mysqld.exe!abort() Line 59 + 0x7 bytes C mysqld.exe!_wassert(const wchar_t * expr=0x00b4c558, const wchar_t * filename=0x00b4c53c, unsigned int lineno=0x000004f2) Line 212 C mysqld.exe!close_thread_table(THD * thd=0x02c21540, st_table * * table_ptr=0x02c21580) Line 1266 + 0x22 bytes C++ mysqld.exe!close_thread_tables(THD * thd=0x02c21540, int lock_in_use=0x00000000, int skip_derived=0x00000000) Line 1229 + 0x10 bytes C++ mysqld.exe!dispatch_command(enum_server_command command=COM_QUERY, THD * thd=0x02c21540, char * packet=0x02c48ac9, unsigned int packet_length=0x00000067) Line 1306 + 0xd bytes C++ mysqld.exe!do_command(THD * thd=0x02c21540) Line 712 + 0x31 bytes C++ mysqld.exe!handle_one_connection(void * arg=0x02c21540) Line 1094 + 0x9 bytes C++ mysqld.exe!pthread_start(void * param=0x02c3a0e8) Line 62 + 0x9 bytes C mysqld.exe!_callthreadstart() Line 293 + 0xf bytes C mysqld.exe!_threadstart(void * ptd=0x02c3e818) Line 277 C kernel32.dll!FlsSetValue() + 0x136 bytes [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] /* move one table to free list */ bool close_thread_table(THD *thd, TABLE **table_ptr) { bool found_old_table= 0; TABLE *table= *table_ptr; DBUG_ENTER("close_thread_table"); DBUG_ASSERT(table->key_read == 0); <----------crash DBUG_ASSERT(!table->file || table->file->inited == handler::NONE); + thd 0x02c21540 {rli_fake=0x00000000 net={...} warn_root={...} ...} THD * + table_ptr 0x02c21580 st_table * * + _db_func_ 0x00b4c45c "close_thread_tables" const char * - table 0x02c4dbd0 {s=0x02c38e18 file=0x02c58b78 next=0x02c57c60 ...} st_table * + s 0x02c38e18 {table_category=TABLE_CATEGORY_USER name_hash={...} mem_root={...} ...} st_table_share * + file 0x02c58b78 {file=0x02c4e1b0 int_table_flags=0x0000000d14626d91 data_file_name=0x00000000 ...} handler * + next 0x02c57c60 {s=0x02c38e18 file=0x02c586b0 next=0x00000000 ...} st_table * + prev 0x00000000 {s=??? file=??? next=??? ...} st_table * + in_use 0x02c21540 {rli_fake=0x00000000 net={...} warn_root={...} ...} THD * + field 0x02c58cb8 Field * * + record 0x02c4dbe8 unsigned char * [2] + write_row_record 0x00000000 unsigned char * + insert_values 0x00000000 unsigned char * + covering_keys {map=0x0000000000000001 } Bitmap<64> + quick_keys {map=0x0000000000000000 } Bitmap<64> + merge_keys {map=0x0000000000000001 } Bitmap<64> + keys_in_use_for_query {map=0x0000000000000001 } Bitmap<64> + keys_in_use_for_group_by {map=0x0000000000000001 } Bitmap<64> + keys_in_use_for_order_by {map=0x0000000000000001 } Bitmap<64> + key_info 0x02c58d28 {key_length=0x00000004 flags=0x00000001 key_parts=0x00000001 ...} st_key * + next_number_field 0x00000000 {ptr=??? null_ptr=??? table=??? ...} Field * + found_next_number_field 0x02c58cc0 Field * + timestamp_field 0x00000000 Field_timestamp * + triggers 0x00000000 {bodies=0x00000000 trigger_fields=0x00000018 record1_field=??? ...} Table_triggers_list * + pos_in_table_list 0x02c51490 {next_local=0x00000000 next_global=0x00000000 prev_global=0x02c50d4c ...} TABLE_LIST * + group 0x00000000 {next=??? item=??? item_ptr=??? ...} st_order * + alias 0x02c3ebe0 "t1" const char * + null_flags 0x02c58ca8 "¥" unsigned char * + bitmap_init_value 0x00000000 unsigned int * + def_read_set {bitmap=0x02c58d78 n_bits=0x00000001 last_word_mask=0xfffffffe ...} st_bitmap + def_write_set {bitmap=0x02c58d7c n_bits=0x00000001 last_word_mask=0xfffffffe ...} st_bitmap + tmp_set {bitmap=0x02c58d80 n_bits=0x00000001 last_word_mask=0xfffffffe ...} st_bitmap + read_set 0x02c4dc50 {bitmap=0x02c58d78 n_bits=0x00000001 last_word_mask=0xfffffffe ...} st_bitmap * + write_set 0x02c4dc64 {bitmap=0x02c58d7c n_bits=0x00000001 last_word_mask=0xfffffffe ...} st_bitmap * query_id 0x0000000000000000 unsigned __int64 + quick_rows 0x02c4dca0 unsigned long [64] + const_key_parts 0x02c4dda0 unsigned long [64] + quick_key_parts 0x02c4dea0 unsigned int [64] + quick_n_ranges 0x02c4dfa0 unsigned int [64] quick_condition_rows 0x00000003 unsigned long timestamp_field_type TIMESTAMP_NO_AUTO_SET timestamp_auto_set_type map 0x0000000000000001 unsigned __int64 lock_position 0x00000001 unsigned int lock_data_start 0x00000001 unsigned int lock_count 0x00000001 unsigned int tablenr 0x00000000 unsigned int used_fields 0x00000001 unsigned int temp_pool_slot 0x00000000 unsigned int status 0x00000001 unsigned int db_stat 0x00000027 unsigned int derived_select_number 0x00000000 unsigned int current_lock 0x00000000 int copy_blobs 0x00 char maybe_null 0x00000000 unsigned int null_row 0x00 char force_index 0x00 char distinct 0x00 char const_table 0x00 char no_rows 0x00 char key_read 0x01 '?' char no_keyread 0x00 char open_placeholder 0x00 char locked_by_logger 0x00 char no_replicate 0x00 char locked_by_name 0x00 char fulltext_searched 0x00 char no_cache 0x00 char clear_query_id 0x00 char auto_increment_field_not_null 0x00 char insert_or_update 0x00 char alias_name_used 0x00 char get_fields_in_item_tree 0x00 char + reginfo {join_tab=0x02c526b0 lock_type=TL_READ not_exists_optimize=0x00000000 ...} st_reginfo + mem_root {free=0x02c58b68 used=0x00000000 pre_alloc=0x00000000 ...} st_mem_root + grant {grant_table=0x00000000 version=0x00000000 privilege=0x00000001 ...} st_grant_info + sort {io_cache=0x00000000 sort_keys=0x00000000 buffpek=0x00000000 ...} st_filesort_info + part_info 0x00000000 {partitions={...} temp_partitions={...} part_field_list={...} ...} partition_info * no_partitions_used 0x00000000 int found_old_table 0x00000000 int _db_level_ 0x00000003 unsigned int + _db_framep_ 0xcccccccc char * * + _db_file_ 0x00b4c44c ".\sql_base.cc" const char *