master
go 36 lines 1019 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package postgres
4
5 import (
6 "context"
7 "database/sql"
8
9 "github.com/netdata/netdata/go/plugins/plugin/go.d/pkg/sqlquery"
10 )
11
12 func (c *Collector) doQueryRow(query string, v any) error {
13 ctx, cancel := context.WithTimeout(context.Background(), c.Timeout.Duration())
14 defer cancel()
15
16 return c.db.QueryRowContext(ctx, query).Scan(v)
17 }
18
19 func (c *Collector) doDBQueryRow(db *sql.DB, query string, v any) error {
20 ctx, cancel := context.WithTimeout(context.Background(), c.Timeout.Duration())
21 defer cancel()
22
23 return db.QueryRowContext(ctx, query).Scan(v)
24 }
25
26 func (c *Collector) doQuery(query string, assign func(column, value string, rowEnd bool)) error {
27 return c.doDBQuery(c.db, query, assign)
28 }
29
30 func (c *Collector) doDBQuery(db *sql.DB, query string, assign func(column, value string, rowEnd bool)) error {
31 ctx, cancel := context.WithTimeout(context.Background(), c.Timeout.Duration())
32 defer cancel()
33
34 _, err := sqlquery.QueryRows(ctx, db, query, assign)
35 return err
36 }