From 551e2123bcaf8eafee5cfcd6a6d3d25b3d26b52b Mon Sep 17 00:00:00 2001 From: Ankit Patial Date: Sun, 9 Nov 2025 22:43:24 +0530 Subject: [PATCH] new TsQuery related helper functions --- pgm.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/pgm.go b/pgm.go index 7664343..9ad95aa 100644 --- a/pgm.go +++ b/pgm.go @@ -10,6 +10,7 @@ import ( "context" "errors" "log/slog" + "strings" "sync/atomic" "time" @@ -106,3 +107,29 @@ func PgTime(t time.Time) pgtype.Timestamptz { func PgTimeNow() pgtype.Timestamptz { return pgtype.Timestamptz{Time: time.Now(), Valid: true} } + +func TsAndQuery(q string) string { + return strings.Join(strings.Fields(q), " & ") +} + +func TsPrefixAndQuery(q string) string { + return strings.Join(fieldsWithSufix(q, ":*"), " & ") +} + +func TsOrQuery(q string) string { + return strings.Join(strings.Fields(q), " | ") +} + +func TsPrefixOrQuery(q string) string { + return strings.Join(fieldsWithSufix(q, ":*"), " | ") +} + +func fieldsWithSufix(v, sufix string) []string { + fields := strings.Fields(v) + prefixed := make([]string, len(fields)) + for i, f := range fields { + prefixed[i] = f + sufix + } + + return prefixed +}