refac: search chat postgres
Some checks are pending
Create and publish Docker images with specific build args / build-slim-image (linux/amd64, ubuntu-latest) (push) Waiting to run
Create and publish Docker images with specific build args / build-slim-image (linux/arm64, ubuntu-24.04-arm) (push) Waiting to run
Create and publish Docker images with specific build args / merge-cuda-images (push) Blocked by required conditions
Create and publish Docker images with specific build args / merge-cuda126-images (push) Blocked by required conditions
Create and publish Docker images with specific build args / merge-ollama-images (push) Blocked by required conditions
Create and publish Docker images with specific build args / merge-slim-images (push) Blocked by required conditions
Python CI / Format Backend (push) Waiting to run
Deploy to HuggingFace Spaces / check-secret (push) Waiting to run
Deploy to HuggingFace Spaces / deploy (push) Blocked by required conditions
Create and publish Docker images with specific build args / build-main-image (linux/amd64, ubuntu-latest) (push) Waiting to run
Create and publish Docker images with specific build args / build-main-image (linux/arm64, ubuntu-24.04-arm) (push) Waiting to run
Create and publish Docker images with specific build args / merge-main-images (push) Blocked by required conditions
Create and publish Docker images with specific build args / build-cuda-image (linux/amd64, ubuntu-latest) (push) Waiting to run
Create and publish Docker images with specific build args / build-cuda-image (linux/arm64, ubuntu-24.04-arm) (push) Waiting to run
Create and publish Docker images with specific build args / build-cuda126-image (linux/amd64, ubuntu-latest) (push) Waiting to run
Create and publish Docker images with specific build args / build-cuda126-image (linux/arm64, ubuntu-24.04-arm) (push) Waiting to run
Create and publish Docker images with specific build args / build-ollama-image (linux/amd64, ubuntu-latest) (push) Waiting to run
Create and publish Docker images with specific build args / build-ollama-image (linux/arm64, ubuntu-24.04-arm) (push) Waiting to run
Frontend Build / Format & Build Frontend (push) Waiting to run
Frontend Build / Frontend Unit Tests (push) Waiting to run

This commit is contained in:
Timothy Jaeryang Baek 2025-11-21 18:31:03 -05:00
parent 8f2812d394
commit b32f7815b8

View file

@ -794,18 +794,19 @@ class ChatTable:
elif dialect_name == "postgresql": elif dialect_name == "postgresql":
# PostgreSQL doesn't allow null bytes in text. We filter those out by checking # PostgreSQL doesn't allow null bytes in text. We filter those out by checking
# the JSON representation for \u0000 before attempting text extraction # the JSON representation for \u0000 before attempting text extraction
postgres_content_sql = ( postgres_content_sql = """
"EXISTS (" EXISTS (
" SELECT 1 " SELECT 1
" FROM json_array_elements(Chat.chat->'messages') AS message " FROM json_array_elements(Chat.chat->'messages') AS message
" WHERE message->'content' IS NOT NULL " WHERE message->>'content' IS NOT NULL
" AND (message->'content')::text NOT LIKE '%\\u0000%' " AND LOWER(replace(message->>'content', E'\\x00', '')) LIKE '%' || :content_key || '%'
" AND LOWER(message->>'content') LIKE '%' || :content_key || '%'" )
")" """
)
postgres_content_clause = text(postgres_content_sql) postgres_content_clause = text(postgres_content_sql)
# Also filter out chats with null bytes in title # Also filter out chats with null bytes in title
query = query.filter(text("Chat.title::text NOT LIKE '%\\x00%'")) query = query.filter(
text("replace(Chat.title, E'\\x00', '') ILIKE :title_key")
)
query = query.filter( query = query.filter(
or_( or_(
Chat.title.ilike(bindparam("title_key")), Chat.title.ilike(bindparam("title_key")),