schemas/_regproc.mysql.sql
author Alexandre Fayolle <alexandre.fayolle@logilab.fr>
Tue, 25 Jan 2011 12:09:59 +0100
branchstable
changeset 6889 37668bf302f5
parent 3928 2ced335a9b55
permissions -rw-r--r--
improve massive deletion performance change hooks.integrity._DelayedDeleteOp implementation to give it a chance of processing the entities by chunks of reasonnable size (500 entities at a time) adapt ssplanner.DeleteEntitiesStep to call a variant of glob_delete_entity with several entities. That variant calls all the before_delete_entities hooks in one go, then performs the deletion, and then calls all the after_delete_entities hooks. The deletion is performed by grouping together entities by etype and by source. adapt the HooksManager to call the hooks on a list of entities instead of on a single entity. adapt the sources to be able to delete several entities of the same etype at once. changed the source fti_(un)index_entity methods to fti_(un)index_entities taking a collection of entities.

/* -*- sql -*- 

   mysql specific registered procedures, 

*/

/* XXX limit_size version dealing with format as postgres version does.
   XXX mysql doesn't support overloading, each function should have a different name
       
   NOTE: fulltext renamed since it cause a mysql name conflict
 */

CREATE FUNCTION text_limit_size(vfulltext TEXT, maxsize INT)
RETURNS TEXT
NO SQL
BEGIN
    IF LENGTH(vfulltext) < maxsize THEN
       RETURN vfulltext;
    ELSE
       RETURN SUBSTRING(vfulltext from 1 for maxsize) || '...';
    END IF;
END ;;