CREATE INDEX file_episode_rel_fid_fk ON file_episode_rel USING btree (fid);
CREATE TABLE file_location (
- fid integer NOT NULL,
- host_id integer NOT NULL,
- path text,
- renamed timestamp without time zone
+ fid integer NOT NULL,
+ host_id character varying(100),
+ path text,
+ renamed timestamp without time zone,
+ failed_rename boolean NOT NULL DEFAULT false,
+ CONSTRAINT file_location_pk PRIMARY KEY (fid )
);
CREATE TABLE unknown_file (
log_id serial NOT NULL,
type integer,
log text,
+ log_time timestamp without time zone NOT NULL DEFAULT now(),
CONSTRAINT log_pk PRIMARY KEY (log_id)
);
CREATE VIEW file_data AS
SELECT f.fid, f.eid, f.aid, f.gid, f.anidb_update, f.entry_update, f.my_update, f.ed2k, f.size, f.length, f.extension, f.group_name, f.group_name_short, f.crc, f.release_date, f.version, f.censored, f.type, f.quality_id, f.quality, f.resolution, f.video_codec, f.audio_codec, f.audio_language, f.subtitle_language, f.aspect_ratio, f.my_watched, f.my_state, f.my_file_state, f.my_storage, f.my_source, f.my_other, a.title_romaji AS atitle, e.title_english AS eptitle FROM ((file f LEFT JOIN anime a ON ((f.aid = a.aid))) LEFT JOIN episode e ON ((f.eid = e.eid)));
+CREATE VIEW rename_data AS
+ SELECT f.fid, f.eid, f.aid, f.gid, a.anidb_update AS anime_anidb_update, a.entry_update AS anime_entry_update, a.my_update AS anime_my_update, a.title_english AS anime_title_english, a.title_romaji AS anime_title_romaji, a.title_kanji AS anime_title_kanji, a.description, a.year, a.start_date, a.end_date, a.type AS anime_type, a.rating AS anime_rating, a.votes AS anime_votes, a.temp_rating, a.temp_votes, a.my_vote AS anime_my_vote, a.my_vote_date AS anime_my_vote_date, a.my_temp_vote, a.my_temp_vote_date, ( SELECT count(episode.eid) AS count FROM episode WHERE episode.aid = f.aid) AS episode_count, e.anidb_update AS episode_anidb_update, e.entry_update AS episode_entry_update, e.my_update AS episode_my_update, e.epno, e.title_english AS episode_title_english, e.title_romaji AS episode_title_romaji, e.title_kanji AS episode_title_kanji, e.length AS episode_length, e.airdate, e.state, e.special, e.recap, e.opening, e.ending, e.rating, e.votes, e.my_vote, e.my_vote_date, f.anidb_update, f.entry_update, f.my_update, f.ed2k, f.size, f.length, f.extension, f.group_name, f.group_name_short, f.crc, f.release_date, f.version, f.censored, f.type, f.quality_id, f.quality, f.resolution, f.video_codec, f.audio_codec, f.audio_language, f.subtitle_language, f.aspect_ratio, f.my_watched, f.my_state, f.my_file_state, f.my_storage, f.my_source, f.my_other, fl.host_id, fl.path, fl.renamed, fl.failed_rename
+ FROM file f
+ JOIN anime a ON a.aid = f.aid
+ JOIN episode e ON e.eid = f.eid
+ JOIN file_location fl ON fl.fid = f.fid
+ WHERE fl.renamed IS NULL AND fl.failed_rename = false;
CREATE RULE config_updated_rule AS ON UPDATE TO config DO NOTIFY config_changed;
COMMENT ON RULE file_episode_rel_ignore_duplicate ON file_episode_rel IS 'Entries to this table are duplicated in exports';
CREATE RULE file_location_ignore_duplicate AS ON INSERT TO file_location WHERE (EXISTS (SELECT 1 FROM file_location WHERE (file_location.fid = new.fid))) DO INSTEAD NOTHING;
+CREATE RULE file_location_update_rule AS ON UPDATE TO file_location DO NOTIFY rename_data_changed;
+CREATE RULE new_file_location_rule AS ON INSERT TO file_location DO NOTIFY rename_data_changed;
CREATE RULE new_pending_request_rule AS ON INSERT TO pending_request DO NOTIFY new_pending_request;