get.go 1.96 KB
Newer Older
Vladimir Barsukov's avatar
Vladimir Barsukov committed
1
2
package zdb

Vladimir Barsukov's avatar
Vladimir Barsukov committed
3
4
5
import (
	"github.com/georgysavva/scany/v2/pgxscan"
)
Vladimir Barsukov's avatar
Vladimir Barsukov committed
6
7
8
9
10

func (d *Pool) WGet(dst any, sql string, args ...any) error {
	return d.qGet(d.SrvMaster, dst, sql, args...)
}
func (d *Pool) WGetNamed(dst any, sql string, args map[string]any) error {
Vladimir Barsukov's avatar
Vladimir Barsukov committed
11
12
	newSql, newArgs := d.prepare(sql, args)

Vladimir Barsukov's avatar
Vladimir Barsukov committed
13
	return d.qGet(d.SrvMaster, dst, newSql, newArgs...)
Vladimir Barsukov's avatar
Vladimir Barsukov committed
14
15
16
}
func (d *Pool) WGetOpts(dst any, opts Opts) error {
	sql, args := opts.Opts()
Vladimir Barsukov's avatar
Vladimir Barsukov committed
17
	newSql, newArgs := d.prepare(sql, args)
Vladimir Barsukov's avatar
Vladimir Barsukov committed
18

Vladimir Barsukov's avatar
Vladimir Barsukov committed
19
	return d.qGet(d.SrvMaster, dst, newSql, newArgs...)
Vladimir Barsukov's avatar
Vladimir Barsukov committed
20
21
22
23
24
25
26
27
28
}

func (d *Pool) Get(dst any, sql string, args ...any) error {
	return d.execWrapper(ConnModeSync, dst, func(q *Conn, dst1 any) error {
		return d.qGet(q, dst1, sql, args...)
	})
}
func (d *Pool) GetNamed(dst any, sql string, args map[string]any) error {
	return d.execWrapper(ConnModeSync, dst, func(q *Conn, dst1 any) error {
Vladimir Barsukov's avatar
Vladimir Barsukov committed
29
30
31
		newSql, newArgs := d.prepare(sql, args)

		return d.qGet(q, dst1, newSql, newArgs...)
Vladimir Barsukov's avatar
Vladimir Barsukov committed
32
33
34
35
	})
}
func (d *Pool) GetOpts(dst any, opts Opts) error {
	sql, args := opts.Opts()
Vladimir Barsukov's avatar
Vladimir Barsukov committed
36
	newSql, newArgs := d.prepare(sql, args)
Vladimir Barsukov's avatar
Vladimir Barsukov committed
37
38

	return d.execWrapper(ConnModeSync, dst, func(q *Conn, dst1 any) error {
Vladimir Barsukov's avatar
Vladimir Barsukov committed
39
		return d.qGet(q, dst1, newSql, newArgs...)
Vladimir Barsukov's avatar
Vladimir Barsukov committed
40
41
42
43
44
45
46
47
48
49
	})
}

func (d *Pool) GetAsync(dst any, sql string, args ...any) error {
	return d.execWrapper(ConnModeAsync, dst, func(q *Conn, dst1 any) error {
		return d.qGet(q, dst1, sql, args...)
	})
}
func (d *Pool) GetAsyncNamed(dst any, sql string, args map[string]any) error {
	return d.execWrapper(ConnModeAsync, dst, func(q *Conn, dst1 any) error {
Vladimir Barsukov's avatar
Vladimir Barsukov committed
50
51
		newSql, newArgs := d.prepare(sql, args)

Vladimir Barsukov's avatar
Vladimir Barsukov committed
52
		return d.qGet(q, dst1, newSql, newArgs...)
Vladimir Barsukov's avatar
Vladimir Barsukov committed
53
54
55
56
	})
}
func (d *Pool) GetAsyncOpts(dst any, opts Opts) error {
	sql, args := opts.Opts()
Vladimir Barsukov's avatar
Vladimir Barsukov committed
57
	newSql, newArgs := d.prepare(sql, args)
Vladimir Barsukov's avatar
Vladimir Barsukov committed
58
59

	return d.execWrapper(ConnModeAsync, dst, func(q *Conn, dst1 any) error {
Vladimir Barsukov's avatar
Vladimir Barsukov committed
60

Vladimir Barsukov's avatar
Vladimir Barsukov committed
61
		return d.qGet(q, dst1, newSql, newArgs...)
Vladimir Barsukov's avatar
Vladimir Barsukov committed
62
63
64
65
66
67
	})
}

func (d *Pool) qGet(q pgxscan.Querier, dst any, sql string, args ...any) error {
	return pgxscan.Get(d.ctx, q, dst, sql, args...)
}