Search, chat and research over parliamentary speeches and documents
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

176 lines
9.4 KiB

-- ROLLBACK: restore the Swedish schema
--
-- Generated by scripts/generate_rename_migration.py from _postgres/rename_map.py.
-- Do not edit by hand; edit the map and regenerate.
--
-- ALTER TABLE ... RENAME is catalog-only in PostgreSQL: no table rewrite, no data
-- movement, no index rebuild. Wall time is milliseconds regardless of row count,
-- and the HNSW vector indexes are not touched.
--
-- Guarded by an existence check, so this is a no-op on a database created from the
-- current schema.sql and does the work on one created before the rename. One file
-- serves both a fresh install and an existing deployment.
BEGIN;
SET LOCAL lock_timeout = '5s';
SET LOCAL statement_timeout = 0;
DO $rename$
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.columns
WHERE table_schema = 'public' AND table_name = 'speeches'
AND column_name = 'text') THEN
-- indexes
ALTER INDEX IF EXISTS speeches_search_idx RENAME TO talks_search_idx;
ALTER INDEX IF EXISTS speeches_debate_idx RENAME TO talks_debate_idx;
ALTER INDEX IF EXISTS speeches_party_idx RENAME TO talks_parti_idx;
ALTER INDEX IF EXISTS speeches_date_idx RENAME TO talks_datum_idx;
ALTER INDEX IF EXISTS speeches_year_idx RENAME TO talks_year_idx;
ALTER INDEX IF EXISTS speeches_person_idx RENAME TO talks_intressent_idx;
ALTER INDEX IF EXISTS speeches_speaker_idx RENAME TO talks_talare_idx;
ALTER INDEX IF EXISTS speeches_source_doc_idx RENAME TO talks_dok_id_idx;
ALTER INDEX IF EXISTS speeches_summary_embedding_idx RENAME TO talks_summary_embedding_idx;
ALTER INDEX IF EXISTS speech_chunks_speech_idx RENAME TO chunks_talk_idx;
ALTER INDEX IF EXISTS speech_chunks_embedding_idx RENAME TO chunks_embedding_idx;
ALTER INDEX IF EXISTS debates_date_idx RENAME TO debates_datum_idx;
ALTER INDEX IF EXISTS documents_search_idx RENAME TO motions_search_idx;
ALTER INDEX IF EXISTS documents_date_idx RENAME TO motions_datum_idx;
ALTER INDEX IF EXISTS documents_session_year_idx RENAME TO motions_year_idx;
ALTER INDEX IF EXISTS documents_committee_idx RENAME TO motions_organ_idx;
ALTER INDEX IF EXISTS documents_parties_idx RENAME TO motions_parties_idx;
ALTER INDEX IF EXISTS document_authors_person_idx RENAME TO motion_authors_intressent_idx;
ALTER INDEX IF EXISTS document_chunks_doc_idx RENAME TO motion_chunks_motion_idx;
ALTER INDEX IF EXISTS document_chunks_embedding_idx RENAME TO motion_chunks_embedding_idx;
ALTER INDEX IF EXISTS document_proposals_doc_idx RENAME TO motion_yrkanden_dok_idx;
ALTER INDEX IF EXISTS document_proposals_embedding_idx RENAME TO motion_yrkanden_embedding_idx;
-- tables
ALTER TABLE documents DROP COLUMN IF EXISTS doc_type;
ALTER TABLE speeches RENAME TO talks;
ALTER TABLE speech_chunks RENAME TO chunks;
ALTER TABLE documents RENAME TO motions;
ALTER TABLE document_chunks RENAME TO motion_chunks;
ALTER TABLE document_authors RENAME TO motion_authors;
ALTER TABLE document_proposals RENAME TO motion_yrkanden;
-- columns
ALTER TABLE people RENAME COLUMN person_id TO intressent_id;
ALTER TABLE people RENAME COLUMN source_record_id TO hangar_id;
ALTER TABLE people RENAME COLUMN source_record_guid TO hangar_guid;
ALTER TABLE people RENAME COLUMN source_id TO sourceid;
ALTER TABLE people RENAME COLUMN birth_year TO fodd_ar;
ALTER TABLE people RENAME COLUMN gender TO kon;
ALTER TABLE people RENAME COLUMN last_name TO efternamn;
ALTER TABLE people RENAME COLUMN first_name TO tilltalsnamn;
ALTER TABLE people RENAME COLUMN sort_name TO sorteringsnamn;
ALTER TABLE people RENAME COLUMN home_town TO iort;
ALTER TABLE people RENAME COLUMN party TO parti;
ALTER TABLE people RENAME COLUMN constituency TO valkrets;
ALTER TABLE people RENAME COLUMN source_url TO person_url_xml;
ALTER TABLE people RENAME COLUMN image_url_small TO bild_url_80;
ALTER TABLE people RENAME COLUMN image_url_medium TO bild_url_192;
ALTER TABLE people RENAME COLUMN image_url_large TO bild_url_max;
ALTER TABLE people RENAME COLUMN assignments TO personuppdrag;
ALTER TABLE people RENAME COLUMN contact_details TO personuppgift;
ALTER TABLE people RENAME COLUMN name TO namn;
ALTER TABLE people RENAME COLUMN active TO aktiv;
ALTER TABLE talks RENAME COLUMN source_speech_id TO anforande_id;
ALTER TABLE talks RENAME COLUMN text TO anforandetext;
ALTER TABLE talks RENAME COLUMN section_title TO avsnittsrubrik;
ALTER TABLE talks RENAME COLUMN sequence TO anforande_nummer;
ALTER TABLE talks RENAME COLUMN activity_type TO kammaraktivitet;
ALTER TABLE talks RENAME COLUMN speaker_name TO talare;
ALTER TABLE talks RENAME COLUMN party TO parti;
ALTER TABLE talks RENAME COLUMN person_id TO intressent_id;
ALTER TABLE talks RENAME COLUMN date TO datum;
ALTER TABLE talks RENAME COLUMN source_datetime TO dok_datum;
ALTER TABLE talks RENAME COLUMN session_year TO period;
ALTER TABLE talks RENAME COLUMN related_doc_id TO rel_dok_id;
ALTER TABLE talks RENAME COLUMN source_doc_number TO dok_nummer;
ALTER TABLE talks RENAME COLUMN source_record_id TO hangar_id;
ALTER TABLE talks RENAME COLUMN source_doc_id TO dok_id;
ALTER TABLE talks RENAME COLUMN title TO titel;
ALTER TABLE talks RENAME COLUMN debate_id TO debate;
ALTER TABLE talks RENAME COLUMN is_reply TO replik;
ALTER TABLE talks RENAME COLUMN url_video TO debateurl;
ALTER TABLE talks RENAME COLUMN url_audio_file TO audiofileurl;
ALTER TABLE talks RENAME COLUMN audio_start_seconds TO startpos;
ALTER TABLE chunks RENAME COLUMN speech_id TO talk_id;
ALTER TABLE debates RENAME COLUMN id TO debate;
ALTER TABLE debates RENAME COLUMN date TO datum;
ALTER TABLE motions RENAME COLUMN doc_id TO dok_id;
ALTER TABLE motions RENAME COLUMN source_record_id TO hangar_id;
ALTER TABLE motions RENAME COLUMN session_label TO rm;
ALTER TABLE motions RENAME COLUMN designation TO beteckning;
ALTER TABLE motions RENAME COLUMN subtype TO subtyp;
ALTER TABLE motions RENAME COLUMN committee TO organ;
ALTER TABLE motions RENAME COLUMN date TO datum;
ALTER TABLE motions RENAME COLUMN source_updated_at TO systemdatum;
ALTER TABLE motions RENAME COLUMN published_at TO publicerad;
ALTER TABLE motions RENAME COLUMN session_year TO year;
ALTER TABLE motions RENAME COLUMN title TO titel;
ALTER TABLE motions RENAME COLUMN subtitle TO undertitel;
ALTER TABLE motions RENAME COLUMN proposals_text TO forslag_text;
ALTER TABLE motions RENAME COLUMN url_text TO dokument_url_text;
ALTER TABLE motions RENAME COLUMN url_html TO dokument_url_html;
ALTER TABLE motions RENAME COLUMN url_pdf TO pdf_url;
ALTER TABLE motions RENAME COLUMN proposals_raw TO forslag;
ALTER TABLE motions RENAME COLUMN attachments TO bilagor;
ALTER TABLE motions RENAME COLUMN num_proposals TO num_yrkanden;
ALTER TABLE motion_authors RENAME COLUMN doc_id TO dok_id;
ALTER TABLE motion_authors RENAME COLUMN person_id TO intressent_id;
ALTER TABLE motion_authors RENAME COLUMN name TO namn;
ALTER TABLE motion_authors RENAME COLUMN party TO partibet;
ALTER TABLE motion_authors RENAME COLUMN role TO roll;
ALTER TABLE motion_chunks RENAME COLUMN doc_id TO motion_id;
ALTER TABLE motion_yrkanden RENAME COLUMN doc_id TO dok_id;
ALTER TABLE motion_yrkanden RENAME COLUMN number TO nummer;
ALTER TABLE motion_yrkanden RENAME COLUMN text TO lydelse;
ALTER TABLE motion_yrkanden RENAME COLUMN committee_recommendation TO utskottet;
ALTER TABLE motion_yrkanden RENAME COLUMN chamber_decision TO kammaren;
ALTER TABLE motion_yrkanden RENAME COLUMN handled_in TO behandlas_i;
ALTER TABLE chat_sessions RENAME COLUMN person_id TO intressent_id;
ALTER TABLE chat_sessions RENAME COLUMN initial_speech_id TO initial_talk_id;
ALTER TABLE chat_snapshots RENAME COLUMN person_id TO intressent_id;
ALTER TABLE chat_snapshots RENAME COLUMN initial_speech_id TO initial_talk_id;
END IF;
END
$rename$;
-- Restore the original trigger functions.
DROP TRIGGER IF EXISTS speeches_search_vector_trigger ON talks;
DROP FUNCTION IF EXISTS speeches_search_vector_update();
CREATE OR REPLACE FUNCTION talks_search_vector_update() RETURNS TRIGGER AS $fn$
BEGIN
NEW.search_vector := to_tsvector('swedish', coalesce(NEW.anforandetext, ''));
RETURN NEW;
END;
$fn$ LANGUAGE plpgsql;
DROP TRIGGER IF EXISTS talks_search_vector_trigger ON talks;
CREATE TRIGGER talks_search_vector_trigger
BEFORE INSERT OR UPDATE OF anforandetext ON talks
FOR EACH ROW EXECUTE FUNCTION talks_search_vector_update();
DROP TRIGGER IF EXISTS documents_search_vector_trigger ON motions;
DROP FUNCTION IF EXISTS documents_search_vector_update();
CREATE OR REPLACE FUNCTION motions_search_vector_update() RETURNS TRIGGER AS $fn$
BEGIN
NEW.search_vector :=
setweight(to_tsvector('swedish', coalesce(NEW.titel, '')), 'A') ||
setweight(to_tsvector('swedish', coalesce(NEW.forslag_text, '')), 'B') ||
setweight(to_tsvector('swedish', coalesce(NEW.undertitel, '')), 'C') ||
setweight(to_tsvector('swedish', coalesce(NEW.text, '')), 'D');
RETURN NEW;
END;
$fn$ LANGUAGE plpgsql;
DROP TRIGGER IF EXISTS motions_search_vector_trigger ON motions;
CREATE TRIGGER motions_search_vector_trigger
BEFORE INSERT OR UPDATE OF titel, undertitel, text, forslag_text ON motions
FOR EACH ROW EXECUTE FUNCTION motions_search_vector_update();
COMMIT;