aboutsummaryrefslogtreecommitdiff
path: root/internal/database
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2022-04-11 13:12:03 -0400
committerGopher Robot <gobot@golang.org>2022-04-11 21:55:57 +0000
commit8ea409f829091208d2d0ba4d81ecbe83b0fee9bb (patch)
tree0c0d0f5d753b722533b3bba32e3e23d4aa3059cd /internal/database
parent7ca74fe938640d7c9e378dc8e5821b58313cdd68 (diff)
downloadgo-x-pkgsite-8ea409f829091208d2d0ba4d81ecbe83b0fee9bb.tar.xz
all: gofmt
Gofmt to update doc comments to the new formatting. For golang/go#51082. Change-Id: Ia9e71e7ecac75822ff43d6c7e60f512442a5fa50 Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/399617 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: kokoro <noreply+kokoro@google.com> Auto-Submit: Russ Cox <rsc@golang.org> Reviewed-by: Jonathan Amsterdam <jba@google.com>
Diffstat (limited to 'internal/database')
-rw-r--r--internal/database/database.go7
-rw-r--r--internal/database/reflect.go28
2 files changed, 20 insertions, 15 deletions
diff --git a/internal/database/database.go b/internal/database/database.go
index e90bfbe6..b636375e 100644
--- a/internal/database/database.go
+++ b/internal/database/database.go
@@ -321,7 +321,9 @@ const OnConflictDoNothing = "ON CONFLICT DO NOTHING"
// BulkInsert constructs and executes a multi-value insert statement. The
// query is constructed using the format:
-// INSERT INTO <table> (<columns>) VALUES (<placeholders-for-each-item-in-values>)
+//
+// INSERT INTO <table> (<columns>) VALUES (<placeholders-for-each-item-in-values>)
+//
// If conflictAction is not empty, it is appended to the statement.
//
// The query is executed using a PREPARE statement with the provided values.
@@ -478,7 +480,8 @@ var maxBulkUpdateArrayLen = 10000
// the values of the first column.
//
// Types holds the database type of each column. For example,
-// []string{"INT", "TEXT"}
+//
+// []string{"INT", "TEXT"}
//
// Values contains one slice of values per column. (Note that this is unlike BulkInsert, which
// takes a single slice of interleaved values.)
diff --git a/internal/database/reflect.go b/internal/database/reflect.go
index c48aaaf0..e057d069 100644
--- a/internal/database/reflect.go
+++ b/internal/database/reflect.go
@@ -26,16 +26,17 @@ import (
// to a struct.
//
// Example:
-// type Player struct { Name string; Score int }
-// playerScanArgs := database.StructScanner(Player{})
-// err := db.RunQuery(ctx, "SELECT name, score FROM players", func(rows *sql.Rows) error {
-// var p Player
-// if err := rows.Scan(playerScanArgs(&p)...); err != nil {
-// return err
-// }
-// // use p
-// return nil
-// })
+//
+// type Player struct { Name string; Score int }
+// playerScanArgs := database.StructScanner(Player{})
+// err := db.RunQuery(ctx, "SELECT name, score FROM players", func(rows *sql.Rows) error {
+// var p Player
+// if err := rows.Scan(playerScanArgs(&p)...); err != nil {
+// return err
+// }
+// // use p
+// return nil
+// })
func StructScanner[T any]() func(p *T) []interface{} {
return structScannerForType[T]()
}
@@ -121,9 +122,10 @@ func (n nullPtr) Value() (driver.Value, error) {
// CollectStructs scans the the rows from the query into structs and returns a slice of them.
// Example:
-// type Player struct { Name string; Score int }
-// var players []Player
-// err := db.CollectStructs(ctx, &players, "SELECT name, score FROM players")
+//
+// type Player struct { Name string; Score int }
+// var players []Player
+// err := db.CollectStructs(ctx, &players, "SELECT name, score FROM players")
func CollectStructs[T any](ctx context.Context, db *DB, query string, args ...interface{}) ([]T, error) {
scanner := structScannerForType[T]()
var ts []T