Adding a comment to remember where I'm at in debugging: So initially I thought it was conversion to a string that may be overwriting the record buffer, but it looks like the problem may be within table.cc: (gdb) c Continuing. Breakpoint 3, drizzled::Field_blob::val_str (this=0x2f1cfe8, val_ptr=0x2e4d668) at drizzled/field/blob.cc:325 325 memcpy(&blob,ptr+packlength,sizeof(char*)); (gdb) p this->ptr $13 = (unsigned char *) 0x2e4fcde "\023" (gdb) x/40xb 0x2e4fcde 0x2e4fcde: 0x13 0x00 0x00 0x00 0x56 0x00 0x13 0x03 0x2e4fce6: 0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x00 <-- 0x13 is the length of blob field 0x2e4fcee: 0x6a 0x00 0x13 0x03 0x00 0x00 0x00 0x00 0x2e4fcf6: 0x00 0x00 0xff 0x00 0x00 0x00 0x00 0x00 0x2e4fcfe: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 (gdb) watch *((int*)0x2e4fcea) Hardware watchpoint 4: *((int*)0x2e4fcea) (gdb) c Continuing. Breakpoint 2, drizzled::Item_func_hour::val_int (this=0x2e4d748) at drizzled/function/time/hour.cc:86 86 if (! temporal_datetime.from_string(res->c_ptr(), res->length())) (gdb) c Continuing. Hardware watchpoint 4: *((int*)0x2e4fcea) Old value = 19 New value = 0 memcpy () at ../sysdeps/x86_64/memcpy.S:120 120 ../sysdeps/x86_64/memcpy.S: No such file or directory. in ../sysdeps/x86_64/memcpy.S (gdb) list 115 in ../sysdeps/x86_64/memcpy.S (gdb) bt #0 memcpy () at ../sysdeps/x86_64/memcpy.S:120 #1 0x000000000081c89f in drizzled::Table::restoreRecordAsDefault ( this=0x2f1ac00) at drizzled/table.cc:1864 #2 0x000000000081c8c0 in drizzled::Table::emptyRecord (this=0x2f1ac00) at drizzled/table.cc:1873 #3 0x0000000000773fe6 in drizzled::ReadRecord::init_read_record ( this=0x2e2ba98, session_arg=0x2e4c1d0, table_arg=0x2f1ac00, select_arg=0x2e2bcb0, use_record_cache=1, print_error_arg=true) at drizzled/records.cc:89 #4 0x00000000007c5c83 in drizzled::join_init_read_record (tab=0x2e2ba10) at drizzled/sql_select.cc:3967 #5 0x00000000007c4ac0 in drizzled::sub_select (join=0x2e4da30, join_tab=0x2e2ba10, end_of_records=false) at drizzled/sql_select.cc:3563 #6 0x00000000007c46bf in drizzled::do_select (join=0x2e4da30, fields=0x2e4cf40, table=0x0) at drizzled/sql_select.cc:3333 #7 0x00000000006f2d0f in drizzled::Join::exec (this=0x2e4da30) at drizzled/join.cc:1695 #8 0x00000000007bd91b in drizzled::mysql_select (session=0x2e4c1d0, rref_pointer_array=0x2e4d000, tables=0x2e4d860, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, select_options=2147500032, result=0x2e4da10, unit=0x2e4cc48, select_lex=0x2e4ce48) at drizzled/sql_select.cc:427 #9 0x00000000007bd1f1 in drizzled::handle_select (session=0x2e4c1d0, lex=0x2e4cc28, result=0x2e4da10, setup_tables_done_option=0) at drizzled/sql_select.cc:146 #10 0x00000000007b98d8 in drizzled::execute_sqlcom_select (session=0x2e4c1d0, all_tables=0x2e4d860) at drizzled/sql_parse.cc:544 #11 0x0000000000812e7f in drizzled::statement::Select::execute (this=0x2e50080) at drizzled/statement/select.cc:32 #12 0x00000000007b9463 in mysql_execute_command (session=0x2e4c1d0) at drizzled/sql_parse.cc:479 #13 0x00000000007ba1b2 in drizzled::mysql_parse (session=0x2e4c1d0, inBuf=0x29a5038 "SELECT HOUR(blob_fld) FROM t1", length=29) at drizzled/sql_parse.cc:750 #14 0x00000000007b8dfd in drizzled::dispatch_command ( command=drizzled::COM_QUERY, session=0x2e4c1d0, packet=0x2f24ba1 "", packet_length=29) at drizzled/sql_parse.cc:224 #15 0x000000000077c7e1 in drizzled::Session::executeStatement (this=0x2e4c1d0) at drizzled/session.cc:666 #16 0x000000000077c0ab in drizzled::Session::run (this=0x2e4c1d0) at drizzled/session.cc:522 #17 0x00007ffff2e94b54 in MultiThreadScheduler::runSession (this=0x1956a00, session=0x2e4c1d0) at ./plugin/multi_thread/multi_thread.h:67 #18 0x00007ffff2e929e2 in session_thread (arg=0x2e4c1d0) at plugin/multi_thread/multi_thread.cc:52 #19 0x00007ffff5f369ca in start_thread (arg=) at pthread_create.c:300 #20 0x00007ffff5c936fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #21 0x0000000000000000 in ?? ()