1
- package squirrel
1
+ package pgq
2
2
3
3
import (
4
4
"bytes"
@@ -11,23 +11,23 @@ func init() {
11
11
builder .Register (CaseBuilder {}, caseData {})
12
12
}
13
13
14
- // sqlizerBuffer is a helper that allows to write many Sqlizers one by one
15
- // without constant checks for errors that may come from Sqlizer
14
+ // sqlizerBuffer is a helper that allows to write many SQLizers one by one
15
+ // without constant checks for errors that may come from SQLizer
16
16
type sqlizerBuffer struct {
17
17
bytes.Buffer
18
- args []interface {}
18
+ args []any
19
19
err error
20
20
}
21
21
22
- // WriteSql converts Sqlizer to SQL strings and writes it to buffer
23
- func (b * sqlizerBuffer ) WriteSql (item Sqlizer ) {
22
+ // WriteSql converts SQLizer to SQL strings and writes it to buffer
23
+ func (b * sqlizerBuffer ) WriteSql (item SQLizer ) {
24
24
if b .err != nil {
25
25
return
26
26
}
27
27
28
28
var str string
29
- var args []interface {}
30
- str , args , b .err = nestedToSql (item )
29
+ var args []any
30
+ str , args , b .err = nestedSQL (item )
31
31
32
32
if b .err != nil {
33
33
return
@@ -38,29 +38,29 @@ func (b *sqlizerBuffer) WriteSql(item Sqlizer) {
38
38
b .args = append (b .args , args ... )
39
39
}
40
40
41
- func (b * sqlizerBuffer ) ToSql () (string , []interface {} , error ) {
41
+ func (b * sqlizerBuffer ) SQL () (string , []any , error ) {
42
42
return b .String (), b .args , b .err
43
43
}
44
44
45
45
// whenPart is a helper structure to describe SQLs "WHEN ... THEN ..." expression
46
46
type whenPart struct {
47
- when Sqlizer
48
- then Sqlizer
47
+ when SQLizer
48
+ then SQLizer
49
49
}
50
50
51
- func newWhenPart (when interface {} , then interface {} ) whenPart {
51
+ func newWhenPart (when any , then any ) whenPart {
52
52
return whenPart {newPart (when ), newPart (then )}
53
53
}
54
54
55
55
// caseData holds all the data required to build a CASE SQL construct
56
56
type caseData struct {
57
- What Sqlizer
57
+ What SQLizer
58
58
WhenParts []whenPart
59
- Else Sqlizer
59
+ Else SQLizer
60
60
}
61
61
62
- // ToSql implements Sqlizer
63
- func (d * caseData ) ToSql () (sqlStr string , args []interface {} , err error ) {
62
+ // SQL implements SQLizer
63
+ func (d * caseData ) SQL () (sqlStr string , args []any , err error ) {
64
64
if len (d .WhenParts ) == 0 {
65
65
err = errors .New ("case expression must contain at lease one WHEN clause" )
66
66
@@ -88,41 +88,41 @@ func (d *caseData) ToSql() (sqlStr string, args []interface{}, err error) {
88
88
89
89
sql .WriteString ("END" )
90
90
91
- return sql .ToSql ()
91
+ return sql .SQL ()
92
92
}
93
93
94
94
// CaseBuilder builds SQL CASE construct which could be used as parts of queries.
95
95
type CaseBuilder builder.Builder
96
96
97
- // ToSql builds the query into a SQL string and bound args.
98
- func (b CaseBuilder ) ToSql () (string , []interface {} , error ) {
97
+ // SQL builds the query into a SQL string and bound args.
98
+ func (b CaseBuilder ) SQL () (string , []any , error ) {
99
99
data := builder .GetStruct (b ).(caseData )
100
- return data .ToSql ()
100
+ return data .SQL ()
101
101
}
102
102
103
103
// MustSql builds the query into a SQL string and bound args.
104
104
// It panics if there are any errors.
105
- func (b CaseBuilder ) MustSql () (string , []interface {} ) {
106
- sql , args , err := b .ToSql ()
105
+ func (b CaseBuilder ) MustSQL () (string , []any ) {
106
+ sql , args , err := b .SQL ()
107
107
if err != nil {
108
108
panic (err )
109
109
}
110
110
return sql , args
111
111
}
112
112
113
113
// what sets optional value for CASE construct "CASE [value] ..."
114
- func (b CaseBuilder ) what (expr interface {} ) CaseBuilder {
114
+ func (b CaseBuilder ) what (expr any ) CaseBuilder {
115
115
return builder .Set (b , "What" , newPart (expr )).(CaseBuilder )
116
116
}
117
117
118
118
// When adds "WHEN ... THEN ..." part to CASE construct
119
- func (b CaseBuilder ) When (when interface {} , then interface {} ) CaseBuilder {
119
+ func (b CaseBuilder ) When (when any , then any ) CaseBuilder {
120
120
// TODO: performance hint: replace slice of WhenPart with just slice of parts
121
121
// where even indices of the slice belong to "when"s and odd indices belong to "then"s
122
122
return builder .Append (b , "WhenParts" , newWhenPart (when , then )).(CaseBuilder )
123
123
}
124
124
125
125
// What sets optional "ELSE ..." part for CASE construct
126
- func (b CaseBuilder ) Else (expr interface {} ) CaseBuilder {
126
+ func (b CaseBuilder ) Else (expr any ) CaseBuilder {
127
127
return builder .Set (b , "Else" , newPart (expr )).(CaseBuilder )
128
128
}
0 commit comments