fix repository bugs and make text searching work more like it did in the past.
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -3,7 +3,7 @@ SELECT * FROM story_chapter WHERE id=$1::TEXT LIMIT 1;
|
||||
|
||||
-- name: SelectChapters :many
|
||||
SELECT * FROM story_chapter
|
||||
WHERE (sqlx.arg(story_id)::TEXT == '' OR story_id = @story_id::TEXT)
|
||||
WHERE (@story_id::TEXT = '' OR story_id = @story_id::TEXT)
|
||||
ORDER BY created_date
|
||||
LIMIT NULLIF(@limit_size::INT, 0);
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
-- name: SelectCharacterByID :one
|
||||
SELECT * FROM data_character WHERE id = @id::text;
|
||||
SELECT id, nicks, name, short_name, author, description FROM data_character WHERE id = @id::text;
|
||||
|
||||
-- name: SelectCharacterByNick :one
|
||||
SELECT * FROM data_character WHERE nicks <@ ARRAY[@nick::text];
|
||||
SELECT id, nicks, name, short_name, author, description FROM data_character WHERE nicks <@ ARRAY[@nick::text];
|
||||
|
||||
-- name: SelectCharacterByName :one
|
||||
SELECT * FROM data_character WHERE name = @name::text;
|
||||
SELECT id, nicks, name, short_name, author, description FROM data_character WHERE name = @name::text;
|
||||
|
||||
-- name: SelectCharacters :many
|
||||
SELECT * FROM data_character
|
||||
SELECT id, nicks, name, short_name, author, description FROM data_character
|
||||
WHERE (@filter_id::bool = false OR id = ANY(@ids::text[]))
|
||||
AND (@filter_name::bool = false OR name = ANY(@names::text[]))
|
||||
AND (@filter_nick::bool = false OR nicks && (@nicks::text[]))
|
||||
|
||||
@@ -5,4 +5,4 @@ INSERT INTO core_counter (id, value) VALUES (@id::text, 0) ON CONFLICT DO NOTHIN
|
||||
UPDATE core_counter SET value = value + 1 WHERE id = @id::text RETURNING value::int;
|
||||
|
||||
-- name: BumpCounter :exec
|
||||
UPDATE core_counter SET value = value + 1 WHERE id = @id::text AND value <= @value::int;
|
||||
UPDATE core_counter SET value = @value::int WHERE id = @id::text AND value <= @value::int;
|
||||
@@ -1,16 +1,17 @@
|
||||
-- name: SelectLog :one
|
||||
SELECT * FROM log WHERE id=$1 OR short_id=$1 LIMIT 1;
|
||||
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 * FROM log
|
||||
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_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)
|
||||
ORDER BY date
|
||||
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
|
||||
@@ -28,5 +29,16 @@ SET title = @title,
|
||||
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;
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
-- name: SelectPost :one
|
||||
SELECT * FROM log_post WHERE id=$1 LIMIT 1;
|
||||
SELECT id, log_short_id, time, kind, nick, text, position FROM log_post WHERE id=$1 LIMIT 1;
|
||||
|
||||
-- name: SelectLogIDsFromPostSearch :many
|
||||
SELECT DISTINCT(log_short_id) FROM log_post WHERE "ts_vector" @@ to_tsquery(@search::TEXT);
|
||||
|
||||
-- name: SelectPostsByPositionRange :many
|
||||
SELECT * FROM log_post WHERE log_short_id = @log_short_id AND position >= @from_position AND position = @to_position;
|
||||
SELECT id, log_short_id, time, kind, nick, text, position FROM log_post WHERE log_short_id = @log_short_id AND position >= @from_position AND position <= @to_position;
|
||||
|
||||
-- name: SelectPositionsByLogShortID :many
|
||||
SELECT position FROM log_post WHERE log_short_id = $1 ORDER BY position;
|
||||
|
||||
-- name: SelectPosts :many
|
||||
SELECT * FROM log_post
|
||||
SELECT id, log_short_id, time, kind, nick, text, position FROM log_post
|
||||
WHERE (@filter_ids::BOOL = false OR id = ANY(@ids::TEXT[]))
|
||||
AND (@filter_kinds::BOOL = false OR kind = ANY(@kinds::TEXT[]))
|
||||
AND (@filter_log_short_id::BOOL = false OR log_short_id = @log_short_id)
|
||||
@@ -20,13 +23,13 @@ LIMIT NULLIF(@limit_size::INT, 0);
|
||||
INSERT INTO log_post (id, log_short_id, time, kind, nick, text, position, ts_vector)
|
||||
SELECT @id, @log_short_id, @time, @kind, @nick, @text, COALESCE(MAX(position), 0)+1, to_tsvector(@nick || ' ' || @text)
|
||||
FROM log_post
|
||||
WHERE log_short_id=@log_short_id
|
||||
WHERE log_short_id = @log_short_id
|
||||
RETURNING position;
|
||||
|
||||
-- name: InsertPosts :one
|
||||
INSERT INTO log_post (id, log_short_id, time, kind, nick, text, position, ts_vector)
|
||||
SELECT UNNEST(@ids::TEXT[]), @log_short_id, UNNEST(@times::TIMESTAMP[]), UNNEST(@kinds::TEXT[]),
|
||||
UNNEST(@nicks::TEXT[]), UNNEST(@texts::TEXT[]), COALESCE(MAX(position), 1) + UNNEST(@offsets::INT[]),
|
||||
UNNEST(@nicks::TEXT[]), UNNEST(@texts::TEXT[]), COALESCE(MAX(position), 0) + UNNEST(@offsets::INT[]),
|
||||
to_tsvector(UNNEST(@nicks::TEXT[]) || ' ' || UNNEST(@texts::TEXT[]))
|
||||
FROM log_post
|
||||
WHERE log_short_id = @log_short_id
|
||||
|
||||
@@ -4,13 +4,13 @@ SELECT * FROM story WHERE id = $1 LIMIT 1;
|
||||
-- name: SelectStories :many
|
||||
SELECT * FROM story
|
||||
WHERE (@filter_id::bool = false OR id = ANY(@ids::text[]))
|
||||
AND (@filter_author::bool = false OR name = @author::text)
|
||||
AND (@filter_author::bool = false OR author = @author::text)
|
||||
AND (@filter_earlist_fictional_date::bool = false OR fictional_date >= @earliest_fictional_date::timestamp)
|
||||
AND (@filter_lastest_fictional_date::bool = false OR fictional_date <= @latest_fictional_date::timestamp)
|
||||
AND (@filter_category::bool = false OR category = @category::text)
|
||||
AND (@filter_open::bool = false OR open = @open::bool)
|
||||
AND (@filter_unlisted::bool = false OR unlisted = @unlisted::bool)
|
||||
ORDER BY updated_date
|
||||
AND (@filter_listed::bool = false OR listed = @listed::bool)
|
||||
ORDER BY updated_date DESC
|
||||
LIMIT NULLIF(@limit_size::INT, 0);
|
||||
|
||||
-- name: InsertStory :exec
|
||||
|
||||
@@ -53,7 +53,7 @@ SELECT * FROM common_tag WHERE tag = @tag_name::text ORDER BY tag;
|
||||
SELECT * FROM common_tag WHERE tag = ANY(@tag_names::text[]) ORDER BY tag;
|
||||
|
||||
-- name: SelectTargetsByTags :many
|
||||
SELECT DISTINCT(target_id) FROM common_tag WHERE tag = ANY(@tag_names::text[]) AND target_kind = @target_kind::text ORDER BY tag;
|
||||
SELECT DISTINCT target_id FROM common_tag WHERE tag = ANY(@tag_names::text[]) AND target_kind = @target_kind::text;
|
||||
|
||||
-- name: SelectTagsByTarget :many
|
||||
SELECT * FROM common_tag WHERE target_kind = @target_kind AND target_id = @target_id::text ORDER BY tag;
|
||||
|
||||
Reference in New Issue
Block a user