fix(settings): search_provider_id NULL scan failure

The ::text cast on search_providers.id prevented sqlc from inferring
nullability via LEFT JOIN, generating a non-nullable string field that
crashes when the bot has no search provider bound.
This commit is contained in:
BBQ
2026-02-16 02:11:16 +08:00
parent 95b63188b2
commit 75904022c0
3 changed files with 11 additions and 8 deletions
+5 -2
View File
@@ -7,6 +7,7 @@ import (
"log/slog"
"strings"
"github.com/google/uuid"
"github.com/jackc/pgx/v5/pgtype"
"github.com/memohai/memoh/internal/db"
@@ -175,13 +176,15 @@ func normalizeBotSettingsFields(
chatModelID pgtype.Text,
memoryModelID pgtype.Text,
embeddingModelID pgtype.Text,
searchProviderID string,
searchProviderID pgtype.UUID,
) Settings {
settings := normalizeBotSetting(maxContextLoadTime, language, allowGuest)
settings.ChatModelID = strings.TrimSpace(chatModelID.String)
settings.MemoryModelID = strings.TrimSpace(memoryModelID.String)
settings.EmbeddingModelID = strings.TrimSpace(embeddingModelID.String)
settings.SearchProviderID = strings.TrimSpace(searchProviderID)
if searchProviderID.Valid {
settings.SearchProviderID = uuid.UUID(searchProviderID.Bytes).String()
}
return settings
}