-
-
Notifications
You must be signed in to change notification settings - Fork 267
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge from main into 'better-fmt-patch-calls'
Conflicts: bookwyrm/tests/test_book_search.py
- Loading branch information
Showing
85 changed files
with
8,321 additions
and
2,352 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
0.7.2 | ||
0.7.3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Generated by Django 3.2.20 on 2023-11-24 17:11 | ||
|
||
from django.db import migrations | ||
|
||
|
||
class Migration(migrations.Migration): | ||
dependencies = [ | ||
("bookwyrm", "0188_theme_loads"), | ||
] | ||
|
||
operations = [ | ||
migrations.RemoveIndex( | ||
model_name="author", | ||
name="bookwyrm_au_search__b050a8_gin", | ||
), | ||
] |
76 changes: 76 additions & 0 deletions
76
bookwyrm/migrations/0191_migrate_search_vec_triggers_to_pgtriggers.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# Generated by Django 3.2.20 on 2023-11-25 00:47 | ||
|
||
from importlib import import_module | ||
import re | ||
|
||
from django.db import migrations | ||
import pgtrigger.compiler | ||
import pgtrigger.migrations | ||
|
||
trigger_migration = import_module("bookwyrm.migrations.0077_auto_20210623_2155") | ||
|
||
# it's _very_ convenient for development that this migration be reversible | ||
search_vector_trigger = trigger_migration.Migration.operations[4] | ||
author_search_vector_trigger = trigger_migration.Migration.operations[5] | ||
|
||
|
||
assert re.search(r"\bCREATE TRIGGER search_vector_trigger\b", search_vector_trigger.sql) | ||
assert re.search( | ||
r"\bCREATE TRIGGER author_search_vector_trigger\b", | ||
author_search_vector_trigger.sql, | ||
) | ||
|
||
|
||
class Migration(migrations.Migration): | ||
dependencies = [ | ||
("bookwyrm", "0190_book_search_updates"), | ||
] | ||
|
||
operations = [ | ||
pgtrigger.migrations.AddTrigger( | ||
model_name="book", | ||
trigger=pgtrigger.compiler.Trigger( | ||
name="update_search_vector_on_book_edit", | ||
sql=pgtrigger.compiler.UpsertTriggerSql( | ||
func="new.search_vector := setweight(coalesce(nullif(to_tsvector('english', new.title), ''), to_tsvector('simple', new.title)), 'A') || setweight(to_tsvector('english', coalesce(new.subtitle, '')), 'B') || (SELECT setweight(to_tsvector('simple', coalesce(array_to_string(array_agg(bookwyrm_author.name), ' '), '')), 'C') FROM bookwyrm_author LEFT JOIN bookwyrm_book_authors ON bookwyrm_author.id = bookwyrm_book_authors.author_id WHERE bookwyrm_book_authors.book_id = new.id ) || setweight(to_tsvector('english', coalesce(new.series, '')), 'D');RETURN NEW;", | ||
hash="77d6399497c0a89b0bf09d296e33c396da63705c", | ||
operation='INSERT OR UPDATE OF "title", "subtitle", "series", "search_vector"', | ||
pgid="pgtrigger_update_search_vector_on_book_edit_bec58", | ||
table="bookwyrm_book", | ||
when="BEFORE", | ||
), | ||
), | ||
), | ||
pgtrigger.migrations.AddTrigger( | ||
model_name="author", | ||
trigger=pgtrigger.compiler.Trigger( | ||
name="reset_search_vector_on_author_edit", | ||
sql=pgtrigger.compiler.UpsertTriggerSql( | ||
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", | ||
when="AFTER", | ||
), | ||
), | ||
), | ||
migrations.RunSQL( | ||
sql="""DROP TRIGGER IF EXISTS search_vector_trigger ON bookwyrm_book; | ||
DROP FUNCTION IF EXISTS book_trigger; | ||
""", | ||
reverse_sql=search_vector_trigger.sql, | ||
), | ||
migrations.RunSQL( | ||
sql="""DROP TRIGGER IF EXISTS author_search_vector_trigger ON bookwyrm_author; | ||
DROP FUNCTION IF EXISTS author_trigger; | ||
""", | ||
reverse_sql=author_search_vector_trigger.sql, | ||
), | ||
migrations.RunSQL( | ||
# Recalculate book search vector for any missed author name changes | ||
# due to bug in JOIN in the old trigger. | ||
sql="UPDATE bookwyrm_book SET search_vector = NULL;", | ||
reverse_sql=migrations.RunSQL.noop, | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Generated by Django 3.2.23 on 2024-03-18 00:48 | ||
|
||
from django.db import migrations | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
("bookwyrm", "0191_migrate_search_vec_triggers_to_pgtriggers"), | ||
("bookwyrm", "0195_alter_user_preferred_language"), | ||
] | ||
|
||
operations = [] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# Generated by Django 3.2.25 on 2024-03-20 15:15 | ||
|
||
import django.contrib.postgres.indexes | ||
from django.db import migrations | ||
import pgtrigger.compiler | ||
import pgtrigger.migrations | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
("bookwyrm", "0196_merge_pr3134_into_main"), | ||
] | ||
|
||
operations = [ | ||
migrations.AddIndex( | ||
model_name="author", | ||
index=django.contrib.postgres.indexes.GinIndex( | ||
fields=["search_vector"], name="bookwyrm_au_search__b050a8_gin" | ||
), | ||
), | ||
pgtrigger.migrations.AddTrigger( | ||
model_name="author", | ||
trigger=pgtrigger.compiler.Trigger( | ||
name="update_search_vector_on_author_edit", | ||
sql=pgtrigger.compiler.UpsertTriggerSql( | ||
func="new.search_vector := setweight(to_tsvector('simple', new.name), 'A') || setweight(to_tsvector('simple', coalesce(array_to_string(new.aliases, ' '), '')), 'B');RETURN NEW;", | ||
hash="b97919016236d74d0ade51a0769a173ea269da64", | ||
operation='INSERT OR UPDATE OF "name", "aliases", "search_vector"', | ||
pgid="pgtrigger_update_search_vector_on_author_edit_c61cb", | ||
table="bookwyrm_author", | ||
when="BEFORE", | ||
), | ||
), | ||
), | ||
migrations.RunSQL( | ||
# Calculate search vector for all Authors. | ||
sql="UPDATE bookwyrm_author SET search_vector = NULL;", | ||
reverse_sql="UPDATE bookwyrm_author SET search_vector = NULL;", | ||
), | ||
] |
57 changes: 57 additions & 0 deletions
57
bookwyrm/migrations/0198_book_search_vector_author_aliases.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# Generated by Django 3.2.25 on 2024-03-20 15:52 | ||
|
||
from django.db import migrations | ||
import pgtrigger.compiler | ||
import pgtrigger.migrations | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
("bookwyrm", "0197_author_search_vector"), | ||
] | ||
|
||
operations = [ | ||
pgtrigger.migrations.RemoveTrigger( | ||
model_name="author", | ||
name="reset_search_vector_on_author_edit", | ||
), | ||
pgtrigger.migrations.RemoveTrigger( | ||
model_name="book", | ||
name="update_search_vector_on_book_edit", | ||
), | ||
pgtrigger.migrations.AddTrigger( | ||
model_name="author", | ||
trigger=pgtrigger.compiler.Trigger( | ||
name="reset_book_search_vector_on_author_edit", | ||
sql=pgtrigger.compiler.UpsertTriggerSql( | ||
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="68422c0f29879c5802b82159dde45297eff53e73", | ||
operation='UPDATE OF "name", "aliases"', | ||
pgid="pgtrigger_reset_book_search_vector_on_author_edit_a50c7", | ||
table="bookwyrm_author", | ||
when="AFTER", | ||
), | ||
), | ||
), | ||
pgtrigger.migrations.AddTrigger( | ||
model_name="book", | ||
trigger=pgtrigger.compiler.Trigger( | ||
name="update_search_vector_on_book_edit", | ||
sql=pgtrigger.compiler.UpsertTriggerSql( | ||
func="WITH author_names AS (SELECT array_to_string(bookwyrm_author.name || bookwyrm_author.aliases, ' ') AS name_and_aliases FROM bookwyrm_author LEFT JOIN bookwyrm_book_authors ON bookwyrm_author.id = bookwyrm_book_authors.author_id WHERE bookwyrm_book_authors.book_id = new.id ) SELECT setweight(coalesce(nullif(to_tsvector('english', new.title), ''), to_tsvector('simple', new.title)), 'A') || setweight(to_tsvector('english', coalesce(new.subtitle, '')), 'B') || (SELECT setweight(to_tsvector('simple', coalesce(array_to_string(array_agg(name_and_aliases), ' '), '')), 'C') FROM author_names) || setweight(to_tsvector('english', coalesce(new.series, '')), 'D') INTO new.search_vector;RETURN NEW;", | ||
hash="9324f5ca76a6f5e63931881d62d11da11f595b2c", | ||
operation='INSERT OR UPDATE OF "title", "subtitle", "series", "search_vector"', | ||
pgid="pgtrigger_update_search_vector_on_book_edit_bec58", | ||
table="bookwyrm_book", | ||
when="BEFORE", | ||
), | ||
), | ||
), | ||
migrations.RunSQL( | ||
# Recalculate search vector for all Books because it now includes | ||
# Author aliases. | ||
sql="UPDATE bookwyrm_book SET search_vector = NULL;", | ||
reverse_sql="UPDATE bookwyrm_book SET search_vector = NULL;", | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.