forked from DebaucheryLibrarian/traxxx
Added search to tags.
This commit is contained in:
@@ -1396,6 +1396,8 @@ exports.up = knex => Promise.resolve()
|
||||
.then(() => { // eslint-disable-line arrow-body-style
|
||||
// allow vim fold
|
||||
return knex.raw(`
|
||||
CREATE EXTENSION pg_trgm;
|
||||
|
||||
CREATE FUNCTION current_user_id() RETURNS INTEGER AS $$
|
||||
/* if the user ID is undefined, the adapter will pass it as a string, which cannot be cast as NULL by ::integer */
|
||||
SELECT NULLIF(current_setting('user.id', true), '')::integer;
|
||||
@@ -1437,18 +1439,20 @@ exports.up = knex => Promise.resolve()
|
||||
CREATE FUNCTION search_actors(search text, min_length smallint DEFAULT 2) RETURNS SETOF actors AS $$
|
||||
SELECT * FROM actors
|
||||
WHERE length(search) >= min_length
|
||||
AND name ILIKE ('%' || TRIM(search) || '%')
|
||||
AND CASE
|
||||
WHEN length(search) > 1
|
||||
THEN name ILIKE ('%' || TRIM(search) || '%')
|
||||
ELSE name ILIKE (TRIM(search) || '%')
|
||||
END
|
||||
$$ LANGUAGE SQL STABLE;
|
||||
|
||||
CREATE FUNCTION search_tags(search text, min_length smallint DEFAULT 2, is_primary boolean DEFAULT true) RETURNS SETOF tags AS $$
|
||||
SELECT * FROM tags
|
||||
WHERE length(search) >= min_length
|
||||
AND name ILIKE ('%' || TRIM(search) || '%')
|
||||
AND CASE
|
||||
WHEN is_primary
|
||||
THEN tags.alias_for IS NULL
|
||||
ELSE true
|
||||
END
|
||||
CREATE FUNCTION search_tags(query text, min_length smallint DEFAULT 2) RETURNS SETOF tags AS $$
|
||||
SELECT aliases.* FROM tags
|
||||
LEFT JOIN tags AS aliases ON aliases.id = tags.alias_for OR (tags.alias_for IS NULL AND aliases.id = tags.id)
|
||||
WHERE length(query) >= min_length
|
||||
AND tags.name ILIKE ('%' || TRIM(query) || '%')
|
||||
GROUP BY aliases.id
|
||||
ORDER BY similarity(aliases.slug, query) DESC, slug ASC
|
||||
$$ LANGUAGE SQL STABLE;
|
||||
|
||||
CREATE FUNCTION actors_tags(actor actors, selectable_tags text[]) RETURNS SETOF tags AS $$
|
||||
@@ -1822,6 +1826,7 @@ exports.down = (knex) => { // eslint-disable-line arrow-body-style
|
||||
DROP FUNCTION IF EXISTS search_sites;
|
||||
DROP FUNCTION IF EXISTS search_entities;
|
||||
DROP FUNCTION IF EXISTS search_actors;
|
||||
DROP FUNCTION IF EXISTS search_movies;
|
||||
DROP FUNCTION IF EXISTS search_tags;
|
||||
DROP FUNCTION IF EXISTS get_random_sfw_media_id;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user