diff -Naru ../tritonn-1.0.10-mysql-5.0.51a.embed-pkey/sql/ha_myisam.cc ./sql/ha_myisam.cc --- ../tritonn-1.0.10-mysql-5.0.51a.embed-pkey/sql/ha_myisam.cc 2008-11-04 07:44:57.000000000 +0900 +++ ./sql/ha_myisam.cc 2008-11-04 08:29:47.000000000 +0900 @@ -166,6 +166,21 @@ } return 0; } + +static int senna_check_abort(void *) +{ + return current_thd->killed == THD::KILL_CONNECTION; +} + +static void senna_set_abort_handler(MYISAM_SHARE *share) +{ + for (uint i = 0; i < (uint)share->state.header.keys; i++) { + if (share->keyinfo[i].senna != NULL) { + sen_index_set_abort_callback(share->keyinfo[i].senna, senna_check_abort, + NULL); + } + } +} #endif /* ENABLE_SENNA */ /* @@ -705,6 +720,7 @@ int_table_flags|=HA_REC_NOT_IN_SEQ; if (file->s->options & (HA_OPTION_CHECKSUM | HA_OPTION_COMPRESS_RECORD)) int_table_flags|=HA_HAS_CHECKSUM; + senna_set_abort_handler(file->s); return (0); }