-- name: SelectLog :one SELECT id, short_id, character_ids, date, channel_name, event_name, title, description, open FROM log WHERE id=$1 OR short_id=$1 LIMIT 1; -- name: SelectLogs :many SELECT id, short_id, character_ids, date, channel_name, event_name, title, description, open FROM log WHERE (@filter_short_id::BOOL = false OR short_id = ANY(@short_ids::TEXT[])) AND (@filter_character_id::BOOL = false OR character_ids @> (@character_ids::TEXT[])) AND (@filter_channel_name::BOOL = false OR channel_name = ANY(@channel_names::TEXT[])) AND (@filter_event_name::BOOL = false OR event_name = ANY(@event_names::TEXT[])) AND (@filter_open::BOOL = false OR open = @open::BOOL) AND (@filter_earlist_date::BOOL = false OR date >= @earliest_date::TIMESTAMP) AND (@filter_lastest_date::BOOL = false OR date <= @latest_date::TIMESTAMP) AND (@filter_search::BOOL = false OR "ts_vector" @@ to_tsquery(@search::TEXT)) ORDER BY date DESC LIMIT NULLIF(@limit_size::INT, 0); -- name: InsertLog :exec INSERT INTO log (id, short_id, character_ids, date, channel_name, event_name, title, description, open) VALUES ( @id, @short_id, @character_ids, @date, @channel_name, @event_name, @title, @description, @open ); -- name: UpdateLog :exec UPDATE log SET title = @title, event_name = @event_name, description = @description, open = @open, character_ids = @character_ids WHERE id = @id; -- name: GenerateLogTSVector :exec UPDATE log SET "ts_vector" = ( SELECT TO_TSVECTOR( immutable_array_to_string(array_agg(text), '\n\n') ) FROM log_post WHERE log_short_id = @short_id ) WHERE short_id = @short_id; -- name: DeleteLog :exec DELETE FROM log WHERE id=$1;