Fix authors search

This commit is contained in:
2022-02-06 13:35:08 +03:00
parent d50728d100
commit c759e0edc0
3 changed files with 21 additions and 35 deletions

View File

@@ -17,11 +17,9 @@ SELECT ARRAY(
) as sml, ) as sml,
( (
SELECT count(*) FROM book_authors SELECT count(*) FROM book_authors
LEFT JOIN books LEFT JOIN books ON (books.id = book)
ON (books.id = book AND WHERE author = authors.id AND books.is_deleted = 'f'
books.is_deleted = 'f' AND AND books.lang = ANY(:langs ::text[])
books.lang = ANY(:langs ::text[]))
WHERE author = authors.id
) as books_count ) as books_count
FROM authors FROM authors
WHERE ( WHERE (
@@ -31,11 +29,9 @@ SELECT ARRAY(
) AND ) AND
EXISTS ( EXISTS (
SELECT * FROM book_authors SELECT * FROM book_authors
LEFT JOIN books LEFT JOIN books ON (books.id = book)
ON (books.id = book AND WHERE author = authors.id AND books.is_deleted = 'f'
books.is_deleted = 'f' AND AND books.lang = ANY(:langs ::text[])
books.lang = ANY(:langs ::text[]))
WHERE author = authors.id
) )
) )
SELECT fauthors.id FROM filtered_authors as fauthors SELECT fauthors.id FROM filtered_authors as fauthors
@@ -57,11 +53,9 @@ WITH filtered_authors AS (
SELECT id FROM authors SELECT id FROM authors
WHERE EXISTS ( WHERE EXISTS (
SELECT * FROM book_authors SELECT * FROM book_authors
LEFT JOIN books LEFT JOIN books ON (books.id = book)
ON (books.id = book AND WHERE author = authors.id AND books.is_deleted = 'f'
books.is_deleted = 'f' AND AND books.lang = ANY(:langs ::text[])
books.lang = ANY(:langs ::text[]))
WHERE author = authors.id
) )
) )
SELECT id FROM filtered_authors SELECT id FROM filtered_authors

View File

@@ -10,21 +10,17 @@ SELECT ARRAY (
similarity(name, :query) as sml, similarity(name, :query) as sml,
( (
SELECT count(*) FROM book_sequences SELECT count(*) FROM book_sequences
LEFT JOIN books LEFT JOIN books ON (books.id = book)
ON (books.id = book AND WHERE sequence = sequences.id AND books.is_deleted = 'f'
books.is_deleted = 'f' AND AND books.lang = ANY(:langs ::text[])
books.lang = ANY(:langs ::text[]))
WHERE sequence = sequences.id
) as books_count ) as books_count
FROM sequences FROM sequences
WHERE name % :query AND WHERE name % :query AND
EXISTS ( EXISTS (
SELECT * FROM book_sequences SELECT * FROM book_sequences
LEFT JOIN books LEFT JOIN books ON (books.id = book)
ON (books.id = book AND WHERE sequence = sequences.id AND books.is_deleted = 'f' AND
books.is_deleted = 'f' AND books.lang = ANY(:langs ::text[])
books.lang = ANY(:langs ::text[]))
WHERE sequence = sequences.id
) )
) )
SELECT fsequences.id FROM filtered_sequences as fsequences SELECT fsequences.id FROM filtered_sequences as fsequences

View File

@@ -17,11 +17,9 @@ SELECT ARRAY(
) as sml, ) as sml,
( (
SELECT count(*) FROM translations SELECT count(*) FROM translations
LEFT JOIN books LEFT JOIN books ON (books.id = book)
ON (books.id = book AND WHERE author = authors.id AND books.is_deleted = 'f' AND
books.is_deleted = 'f' AND books.lang = ANY(:langs ::text[])
books.lang = ANY(:langs ::text[]))
WHERE author = authors.id
) as books_count ) as books_count
FROM authors FROM authors
WHERE ( WHERE (
@@ -31,11 +29,9 @@ SELECT ARRAY(
) AND ) AND
EXISTS ( EXISTS (
SELECT * FROM translations SELECT * FROM translations
LEFT JOIN books LEFT JOIN books ON (books.id = book)
ON (books.id = book AND WHERE author = authors.id AND books.is_deleted = 'f' AND
books.is_deleted = 'f' AND books.lang = ANY(:langs ::text[])
books.lang = ANY(:langs ::text[]))
WHERE author = authors.id
) )
) )
SELECT fauthors.id FROM filtered_authors as fauthors SELECT fauthors.id FROM filtered_authors as fauthors