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 :=
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')
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
\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