Fix joins and subqueries

This commit is contained in:
2022-01-22 21:49:08 +03:00
parent 1bdc2733a2
commit c43636731b
9 changed files with 69 additions and 29 deletions

View File

@@ -47,7 +47,8 @@ SELECT ARRAY(
class AuthorTGRMSearchService(TRGMSearchService):
MODEL_CLASS = Author
PREFETCH_RELATED = ["source", "annotations"]
SELECT_RELATED = ["source"]
PREFETCH_RELATED = ["annotations"]
GET_OBJECT_IDS_QUERY = GET_OBJECT_IDS_QUERY

View File

@@ -24,7 +24,8 @@ SELECT ARRAY(
class BookTGRMSearchService(TRGMSearchService):
MODEL_CLASS = BookDB
PREFETCH_RELATED = ["source", "authors", "translators", "annotations"]
SELECT_RELATED = ["source"]
PREFETCH_RELATED = ["authors", "translators", "annotations"]
GET_OBJECT_IDS_QUERY = GET_OBJECT_IDS_QUERY

View File

@@ -70,7 +70,7 @@ class TRGMSearchService(Generic[T]):
@classmethod
@property
def cache_prefix(cls) -> str:
return cls.CUSTOM_CACHE_PREFIX or cls.model.__class__.__name__
return cls.CUSTOM_CACHE_PREFIX or cls.model.Meta.tablename
@classmethod
def get_cache_key(cls, query_data: str, allowed_langs: list[str]) -> str:
@@ -90,7 +90,7 @@ class TRGMSearchService(Generic[T]):
data = await redis.get(key)
if data is None:
return data
return None
return orjson.loads(data)
except aioredis.RedisError as e:

View File

@@ -36,7 +36,7 @@ SELECT ARRAY (
class SequenceTGRMSearchService(TRGMSearchService):
MODEL_CLASS = Sequence
PREFETCH_RELATED = ["source"]
SELECT_RELATED = ["source"]
GET_OBJECT_IDS_QUERY = GET_OBJECT_IDS_QUERY

View File

@@ -48,5 +48,6 @@ SELECT ARRAY(
class TranslatorTGRMSearchService(TRGMSearchService):
MODEL_CLASS = Author
CUSTOM_CACHE_PREFIX = "translator"
PREFETCH_RELATED = ["source", "annotations"]
SELECT_RELATED = ["source"]
PREFETCH_RELATED = ["annotations"]
GET_OBJECT_IDS_QUERY = GET_OBJECT_IDS_QUERY