We had posted a message or two here about a handler error. We have over 10,000 products that are cross-linked in categories so much that the sql query on mysql 4.0 crapped out and gave a false 1028 table handler error. I think larger stores will see this in the future. The fix is here.

In categories.php, change this:

$products_query = tep_db_query("select p.products_ship_price, p.products_id, p.products_model, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p2c.categories_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and pd.products_name like '%" . tep_db_input($search) . "%' or p.products_model like '%" . tep_db_input($search) . "%' order by pd.products_name");

to this:

$products_query = tep_db_query("select p.products_ship_price, p.products_id, p.products_model, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p2c.categories_id
from " . TABLE_PRODUCTS . " p
INNER JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd ON p.products_id = pd.products_id
INNER JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c ON p.products_id = p2c.products_id
where pd.language_id = '" . (int)$languages_id . "'
and pd.products_name like '%" . tep_db_input($search) . "%' or
p.products_model like '%" . tep_db_input($search) . "%' order by pd.products_name");

This will prevent categories admin page searches from timing out or filling up the /tmp directory and giving 1028 error.

Thanks to Eric!