# HG changeset patch # User Nicolas Chauvat # Date 1259333025 -3600 # Node ID 2ced335a9b550aaac0b067c3d8058aa64916e40e # Parent b2a6c25b8429f460389e6f91cf790dc8d336fc68 rename sql script to make cw3.5.6 happy diff -r b2a6c25b8429 -r 2ced335a9b55 schemas/_regproc.mysql.sql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schemas/_regproc.mysql.sql Fri Nov 27 15:43:45 2009 +0100 @@ -0,0 +1,22 @@ +/* -*- 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 ;; diff -r b2a6c25b8429 -r 2ced335a9b55 schemas/_regproc.postgres.sql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schemas/_regproc.postgres.sql Fri Nov 27 15:43:45 2009 +0100 @@ -0,0 +1,47 @@ +/* -*- sql -*- + + postgres specific registered procedures, + require the plpgsql language installed + +*/ + +CREATE FUNCTION comma_join (anyarray) RETURNS text AS $$ + SELECT array_to_string($1, ', ') +$$ LANGUAGE SQL;; + +CREATE AGGREGATE group_concat ( + basetype = anyelement, + sfunc = array_append, + stype = anyarray, + finalfunc = comma_join, + initcond = '{}' +);; + + + +CREATE FUNCTION limit_size (fulltext text, format text, maxsize integer) RETURNS text AS $$ +DECLARE + plaintext text; +BEGIN + IF char_length(fulltext) < maxsize THEN + RETURN fulltext; + END IF; + IF format = 'text/html' OR format = 'text/xhtml' OR format = 'text/xml' THEN + plaintext := regexp_replace(fulltext, '<[\\w/][^>]+>', '', 'g'); + ELSE + plaintext := fulltext; + END IF; + IF char_length(plaintext) < maxsize THEN + RETURN plaintext; + ELSE + RETURN substring(plaintext from 1 for maxsize) || '...'; + END IF; +END +$$ LANGUAGE plpgsql;; + + +CREATE FUNCTION text_limit_size (fulltext text, maxsize integer) RETURNS text AS $$ +BEGIN + RETURN limit_size(fulltext, 'text/plain', maxsize); +END +$$ LANGUAGE plpgsql;; diff -r b2a6c25b8429 -r 2ced335a9b55 schemas/_regproc.sql.mysql --- a/schemas/_regproc.sql.mysql Fri Nov 27 10:24:13 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -/* -*- 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 ;; diff -r b2a6c25b8429 -r 2ced335a9b55 schemas/_regproc.sql.postgres --- a/schemas/_regproc.sql.postgres Fri Nov 27 10:24:13 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -*- sql -*- - - postgres specific registered procedures, - require the plpgsql language installed - -*/ - -CREATE FUNCTION comma_join (anyarray) RETURNS text AS $$ - SELECT array_to_string($1, ', ') -$$ LANGUAGE SQL;; - -CREATE AGGREGATE group_concat ( - basetype = anyelement, - sfunc = array_append, - stype = anyarray, - finalfunc = comma_join, - initcond = '{}' -);; - - - -CREATE FUNCTION limit_size (fulltext text, format text, maxsize integer) RETURNS text AS $$ -DECLARE - plaintext text; -BEGIN - IF char_length(fulltext) < maxsize THEN - RETURN fulltext; - END IF; - IF format = 'text/html' OR format = 'text/xhtml' OR format = 'text/xml' THEN - plaintext := regexp_replace(fulltext, '<[\\w/][^>]+>', '', 'g'); - ELSE - plaintext := fulltext; - END IF; - IF char_length(plaintext) < maxsize THEN - RETURN plaintext; - ELSE - RETURN substring(plaintext from 1 for maxsize) || '...'; - END IF; -END -$$ LANGUAGE plpgsql;; - - -CREATE FUNCTION text_limit_size (fulltext text, maxsize integer) RETURNS text AS $$ -BEGIN - RETURN limit_size(fulltext, 'text/plain', maxsize); -END -$$ LANGUAGE plpgsql;;