]> git.openstreetmap.org Git - osqa.git/commitdiff
verify the correct installation of fts triggers at startup
authorhernani <hernani@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Thu, 22 Apr 2010 15:15:38 +0000 (15:15 +0000)
committerhernani <hernani@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Thu, 22 Apr 2010 15:15:38 +0000 (15:15 +0000)
git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@63 0cfe37f9-358a-4d5e-be75-b63607b5c754

forum_modules/pgfulltext/pg_fts_install.sql
forum_modules/pgfulltext/startup.py

index 9ac5db9fef998183019a8144ecfb85e1800b5d7d..473085cf9ede6d3e8d6907a23190cf428a8bfb60 100644 (file)
            v :=(v || cv);
        END LOOP;
      END IF;
-     RAISE NOTICE '%', v;
 
      RETURN ts_rank_cd(v, plainto_tsquery('english', srch), 32);
   end
   $$ LANGUAGE plpgsql;
 
-select node_ranking(50, 'free');
-
-
-
   CREATE OR REPLACE FUNCTION set_node_tsv() RETURNS TRIGGER AS $$
   begin
       new.tsv :=
@@ -58,19 +53,20 @@ select node_ranking(50, 'free');
   end
   $$ LANGUAGE plpgsql;
 
-  CREATE OR REPLACE FUNCTION public.create_tsv_noderevision_column ()
-      RETURNS TEXT
-      AS $$
+  CREATE OR REPLACE FUNCTION public.create_tsv_noderevision_column () RETURNS TEXT AS $$
+  begin
           ALTER TABLE forum_noderevision ADD COLUMN tsv tsvector;
 
+          DROP TRIGGER IF EXISTS tsvectorupdate ON forum_noderevision;
+
           CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE
                ON forum_noderevision FOR EACH ROW EXECUTE PROCEDURE set_node_tsv();
 
              CREATE INDEX noderevision_tsv ON forum_noderevision USING gin(tsv);
 
-          SELECT 'tsv column created'::TEXT;
-      $$
-  LANGUAGE 'sql';
+          RETURN 'tsv column created'::TEXT;
+  end
+  $$ LANGUAGE plpgsql;
 
   SELECT CASE WHEN
      (SELECT true::BOOLEAN FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'forum_noderevision') AND attname = 'tsv')
index 14eea8e0b0048decab349f22da352858d48e717b..32a7992e76af23d6406cb261410e7719352e7d62 100644 (file)
@@ -3,7 +3,7 @@ from forum.models import KeyValue
 from django.db import connection, transaction\r
 \r
 KEY = 'PG_FTSTRIGGERS_VERSION'\r
-VERSION = 2\r
+VERSION = 3\r
 install = False\r
 \r
 try:\r
@@ -15,24 +15,27 @@ except:
 \r
 \r
 if install:\r
+    print 'install'\r
     f = open(os.path.join(os.path.dirname(__file__), 'pg_fts_install.sql'), 'r')\r
 \r
     try:\r
         cursor = connection.cursor()\r
         cursor.execute(f.read())\r
         transaction.commit_unless_managed()\r
-    except:\r
+\r
+        try:\r
+            kv = KeyValue.objects.get(key=KEY)\r
+        except:\r
+            kv = KeyValue(key=KEY)\r
+\r
+        kv.value = VERSION\r
+        kv.save()\r
+        \r
+    except Exception, e:\r
+        import sys, traceback\r
+        traceback.print_exc(file=sys.stdout)\r
         pass\r
     finally:\r
         cursor.close()\r
 \r
     f.close()\r
-\r
-    try:\r
-        kv = KeyValue.objects.get(key=KEY)\r
-    except:\r
-        kv = KeyValue(key=KEY)\r
-\r
-    kv.value = VERSION\r
-    kv.save()\r
-        
\ No newline at end of file