Remove dated config.gem
[gitorious:pkong23s-mainline.git] / vendor / plugins / ultrasphinx / lib / ultrasphinx / postgresql / concat_ws.sql
1
2 /* http://osdir.com/ml/db.postgresql.admIN/2003-08/msg00057.html */
3
4 CREATE OR REPLACE FUNCTION MAKE_CONCAT_WS() RETURNS text AS '
5 declare
6   v_args int := 32;
7   v_first text := ''CREATE OR REPLACE FUNCTION CONCAT_WS(text,text,text) RETURNS text AS ''''SELECT CASE WHEN $1 IS NULL THEN NULL WHEN $3 IS NULL THEN $2 ELSE $2 || $1 || $3 END'''' LANGUAGE sql IMMUTABLE'';
8   v_part1 text := ''CREATE OR REPLACE FUNCTION CONCAT_WS(text,text'';
9   v_part2 text := '') RETURNS text AS ''''SELECT CONCAT_WS($1,CONCAT_WS($1,$2'';
10   v_part3 text := '')'''' LANGUAGE sql IMMUTABLE'';  
11   v_sql text;
12   
13 BEGIN
14   EXECUTE v_first;
15   FOR i IN 4 .. v_args loop
16     v_sql := v_part1;
17     FOR j IN 3 .. i loop
18       v_sql := v_sql || '',text'';
19     END loop;
20
21     v_sql := v_sql || v_part2;
22
23     FOR j IN 3 .. i - 1 loop
24       v_sql := v_sql || '',$'' || j::text;
25     END loop;
26     v_sql := v_sql || ''),$'' || i::text;
27
28     v_sql := v_sql || v_part3;
29     EXECUTE v_sql;
30   END loop;
31   RETURN ''OK'';
32 END;
33 ' LANGUAGE 'plpgsql';
34
35 SELECT MAKE_CONCAT_WS();