44 lines
No EOL
1.6 KiB
PL/PgSQL
44 lines
No EOL
1.6 KiB
PL/PgSQL
-- Add tsvector column to MantisIssue for title and description
|
|
ALTER TABLE "MantisIssue" ADD COLUMN "fts" tsvector;
|
|
|
|
-- Create function to update MantisIssue fts column
|
|
CREATE OR REPLACE FUNCTION update_mantisissue_fts() RETURNS trigger AS $$
|
|
BEGIN
|
|
NEW.fts := to_tsvector('english', coalesce(NEW.title, '') || ' ' || coalesce(NEW.description, ''));
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
-- Create trigger to update MantisIssue fts column on insert or update
|
|
CREATE TRIGGER mantisissue_fts_update
|
|
BEFORE INSERT OR UPDATE ON "MantisIssue"
|
|
FOR EACH ROW EXECUTE FUNCTION update_mantisissue_fts();
|
|
|
|
-- Update existing rows in MantisIssue
|
|
UPDATE "MantisIssue" SET fts = to_tsvector('english', coalesce(title, '') || ' ' || coalesce(description, ''));
|
|
|
|
-- Create index on MantisIssue fts column
|
|
CREATE INDEX mantisissue_fts_idx ON "MantisIssue" USING gin(fts);
|
|
|
|
|
|
-- Add tsvector column to MantisComment for comment text
|
|
ALTER TABLE "MantisComment" ADD COLUMN "fts" tsvector;
|
|
|
|
-- Create function to update MantisComment fts column
|
|
CREATE OR REPLACE FUNCTION update_mantiscomment_fts() RETURNS trigger AS $$
|
|
BEGIN
|
|
NEW.fts := to_tsvector('english', coalesce(NEW.comment, ''));
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
-- Create trigger to update MantisComment fts column on insert or update
|
|
CREATE TRIGGER mantiscomment_fts_update
|
|
BEFORE INSERT OR UPDATE ON "MantisComment"
|
|
FOR EACH ROW EXECUTE FUNCTION update_mantiscomment_fts();
|
|
|
|
-- Update existing rows in MantisComment
|
|
UPDATE "MantisComment" SET fts = to_tsvector('english', coalesce(comment, ''));
|
|
|
|
-- Create index on MantisComment fts column
|
|
CREATE INDEX mantiscomment_fts_idx ON "MantisComment" USING gin(fts); |