From 802f192dc0f9eaa54979d156a377d168a4b04238 Mon Sep 17 00:00:00 2001 From: LordMathis Date: Tue, 25 Feb 2025 21:36:55 +0100 Subject: [PATCH] Implement returning clause --- server/internal/db/query.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/server/internal/db/query.go b/server/internal/db/query.go index e9526a4..a552a8e 100644 --- a/server/internal/db/query.go +++ b/server/internal/db/query.go @@ -227,6 +227,18 @@ func (q *Query) EndGroup() *Query { return q } +// Returning adds a RETURNING clause for both PostgreSQL and SQLite (3.35.0+) +func (q *Query) Returning(columns ...string) *Query { + q.Write(" RETURNING ") + if len(columns) == 1 && columns[0] == "*" { + q.Write("*") + } else { + q.Write(strings.Join(columns, ", ")) + } + + return q +} + // Write adds a string to the query func (q *Query) Write(s string) *Query { q.builder.WriteString(s)