function ftsearch_refresh_all_cache_desc()
{
    $rs = sql('SELECT `cache_desc`.`id` FROM `cache_desc` INNER JOIN `caches` ON `caches`.`cache_id`=`cache_desc`.`cache_id` LEFT JOIN `search_index_times` ON `cache_desc`.`id`=`search_index_times`.`object_id` AND 3=`search_index_times`.`object_type` WHERE `caches`.`status`!=5 AND ISNULL(`search_index_times`.`object_id`) UNION DISTINCT SELECT `cache_desc`.`id` FROM `cache_desc` INNER JOIN `caches` ON `caches`.`cache_id`=`cache_desc`.`cache_id` INNER JOIN `search_index_times` ON `search_index_times`.`object_type`=3 AND `cache_desc`.`id`=`search_index_times`.`object_id` WHERE `cache_desc`.`last_modified`>`search_index_times`.`last_refresh` AND `caches`.`status`!=5');
    while ($r = sql_fetch_assoc($rs)) {
        ftsearch_refresh_cache_desc($r['id']);
    }
    sql_free_result($rs);
}
function ftsearch_refresh_all_cache_desc()
{
    $rs = XDb::xSql('SELECT `cache_desc`.`id`
            FROM `cache_desc`
                INNER JOIN `caches` ON `caches`.`cache_id`=`cache_desc`.`cache_id`
                LEFT JOIN `search_index_times` ON `cache_desc`.`id`=`search_index_times`.`object_id`
                    AND 3=`search_index_times`.`object_type`
            WHERE `caches`.`status`!=5 AND `caches`.`status`!=6
                AND `caches`.`status`!= 4 AND ISNULL(`search_index_times`.`object_id`)
            UNION DISTINCT
                SELECT `cache_desc`.`id`
                FROM `cache_desc`
                    INNER JOIN `caches` ON `caches`.`cache_id`=`cache_desc`.`cache_id`
                    INNER JOIN `search_index_times` ON `search_index_times`.`object_type`=3
                        AND `cache_desc`.`id`=`search_index_times`.`object_id`
                WHERE `cache_desc`.`last_modified`>`search_index_times`.`last_refresh`
                    AND `caches`.`status`!=5 AND `caches`.`status`!=6
                    AND `caches`.`status`!= 4');
    while ($r = XDb::xFetchArray($rs)) {
        ftsearch_refresh_cache_desc($r['id']);
    }
    XDb::xFreeResults($rs);
}