Further simplify bookwyrm_author trigger

This commit is contained in:
Adeodato Simó 2023-11-25 18:13:05 -03:00
parent 8df408e07e
commit 9bcb5b80ea
No known key found for this signature in database
GPG key ID: CDF447845F1A986F
2 changed files with 8 additions and 12 deletions

View file

@ -46,8 +46,8 @@ class Migration(migrations.Migration):
trigger=pgtrigger.compiler.Trigger(
name="reset_search_vector_on_author_edit",
sql=pgtrigger.compiler.UpsertTriggerSql(
func="WITH book AS (SELECT bookwyrm_book.id AS row_id FROM bookwyrm_author LEFT OUTER JOIN bookwyrm_book_authors ON bookwyrm_book_authors.author_id = bookwyrm_author.id LEFT OUTER JOIN bookwyrm_book ON bookwyrm_book.id = bookwyrm_book_authors.book_id WHERE bookwyrm_author.id = new.id ) UPDATE bookwyrm_book SET search_vector = '' FROM book WHERE id = book.row_id;RETURN NEW;",
hash="abc8ea76fa1bf02a0f56aaae390c1b970bef1278",
func="WITH updated_books AS (SELECT book_id FROM bookwyrm_book_authors WHERE author_id = new.id ) UPDATE bookwyrm_book SET search_vector = '' FROM updated_books WHERE id = updated_books.book_id;RETURN NEW;",
hash="e7bbf08711ff3724c58f4d92fb7a082ffb3d7826",
operation='UPDATE OF "name"',
pgid="pgtrigger_reset_search_vector_on_author_edit_a447c",
table="bookwyrm_author",

View file

@ -77,19 +77,15 @@ class Author(BookDataModel):
when=pgtrigger.After,
operation=pgtrigger.UpdateOf("name"),
func=format_trigger(
"""WITH book AS (
SELECT bookwyrm_book.id AS row_id
FROM bookwyrm_author
LEFT OUTER JOIN bookwyrm_book_authors
ON bookwyrm_book_authors.author_id = bookwyrm_author.id
LEFT OUTER JOIN bookwyrm_book
ON bookwyrm_book.id = bookwyrm_book_authors.book_id
WHERE bookwyrm_author.id = new.id
"""WITH updated_books AS (
SELECT book_id
FROM bookwyrm_book_authors
WHERE author_id = new.id
)
UPDATE bookwyrm_book
SET search_vector = ''
FROM book
WHERE id = book.row_id;
FROM updated_books
WHERE id = updated_books.book_id;
RETURN new;
"""
),