fix: 搜索页 filter-options 500 — nlm_subsets @> ARRAY[...] 补 ::varchar[] cast(varchar[] vs text[] 类型不匹配)
CI / backend (push) Waiting to run
CI / frontend (push) Waiting to run

This commit is contained in:
34047007@qq.com
2026-08-10 18:06:27 +08:00
parent 7f95084d76
commit ab64d2aa0a
+1 -1
View File
@@ -206,7 +206,7 @@ async def _load_filter_options(db: AsyncSession) -> dict:
# 3. nlm_subsets(单次 JOIN + COUNT FILTER,代替 8 次独立查询) # 3. nlm_subsets(单次 JOIN + COUNT FILTER,代替 8 次独立查询)
# 注:code 来自上方 NLM_SUBSET_LABELS 硬编码常量,无注入风险 # 注:code 来自上方 NLM_SUBSET_LABELS 硬编码常量,无注入风险
subset_filter_cols = ", ".join( subset_filter_cols = ", ".join(
f'COUNT(*) FILTER (WHERE j.nlm_subsets @> ARRAY[\'{code}\']) AS "{code}"' f'COUNT(*) FILTER (WHERE j.nlm_subsets @> ARRAY[\'{code}\']::varchar[]) AS "{code}"'
for code in NLM_SUBSET_LABELS for code in NLM_SUBSET_LABELS
) )
subset_row = (await db.execute(text(f""" subset_row = (await db.execute(text(f"""