2012-11-29 4 views
1

내가 현재 PostgreSQL 데이터베이스에서 전체 텍스트 검색을 설정 : 여기PostgreSQL의 중첩 SELECT 문이

CREATE FUNCTION fts_update() RETURNS trigger AS $$ 
begin 
    new.tsv := 
     to_tsvector('pg_catalog.english', coalesce(new.title,'')) || 
     to_tsvector('pg_catalog.english', coalesce(new.description,'')) || 
     to_tsvector('pg_catalog.english', 
     SELECT array_to_string(array_accum(name), ' ') FROM agencies where id = new.agency_id 
     ); 
    return new; 
end 
$$ LANGUAGE plpgsql; 
CREATE TRIGGER ftsupdate_trigger BEFORE INSERT OR UPDATE ON camps FOR EACH ROW EXECUTE PROCEDURE fts_update()" 

내가 : http://www.postgresql.org/docs/9.0/static/textsearch-tables.html

현재 나는이 문을 나왔다 다른 테이블의 일부 필드를 색인에 추가해야하지만 Postgresql은 나를 허용하지 않습니다.

PG::Error: ERROR: syntax error at or near "SELECT" 
LINE 9:   SELECT array_to_string(array_accum(name), ' ') FROM ... 

이 문제가 해결 되었습니까?

답변

1

당신이해야 할 일은 선택 사항을 대괄호 안에 감싸는 것입니다.

select to_tsvector('english',(select array_to_string(array['one','two','three'],' ')));