]> git.openstreetmap.org Git - osqa.git/blobdiff - forum_modules/pgfulltext/pg_fts_install.sql
revert previous commit
[osqa.git] / forum_modules / pgfulltext / pg_fts_install.sql
index ddc48a1b8f63e52f22b18c050e71c02746c384b5..c0468706bb5abd9707c8745fd77da20f4faa8e85 100644 (file)
@@ -59,10 +59,10 @@ begin
       setweight(to_tsvector('english', coalesce(body,'')), 'C') INTO doc
       FROM forum_node WHERE id = root_id;
 
-    SELECT count(*)::int INTO rcount FROM forum_node WHERE abs_parent_id = root_id AND deleted_id IS NULL;
+    SELECT count(*)::int INTO rcount FROM forum_node WHERE abs_parent_id = root_id AND (NOT state_string LIKE '%%deleted%%');
 
     IF rcount > 0 THEN
-       FOR cv in SELECT setweight(to_tsvector('english', coalesce(body,'')), 'C') FROM forum_node WHERE abs_parent_id = root_id  AND deleted_id IS NULL LOOP
+       FOR cv in SELECT setweight(to_tsvector('english', coalesce(body,'')), 'C') FROM forum_node WHERE abs_parent_id = root_id  AND (NOT state_string LIKE '%%deleted%%') LOOP
            doc :=(doc || cv);
        END LOOP;
      END IF;
@@ -105,4 +105,25 @@ select case when public.doc_table_exists()=0 then public.build_doc_table()end;
 drop function build_doc_table();
 drop function doc_table_exists();
 
-UPDATE forum_noderevision SET id = id WHERE TRUE;
+CREATE OR REPLACE FUNCTION rank_exact_matches(rank float) RETURNS float AS $$
+begin
+       IF rank = 0 THEN
+               return 1;
+       ELSE
+               return rank;
+       END IF;
+
+end
+$$ LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION public.rebuild_index() RETURNS VOID as $$
+       DECLARE
+               r integer;
+       BEGIN
+               FOR r IN SELECT active_revision_id FROM forum_node WHERE node_type = 'question' LOOP
+                       UPDATE forum_noderevision SET id = id WHERE id = r;
+               END LOOP;
+       END
+$$ LANGUAGE 'plpgsql';
+
+SELECT rebuild_index();