...
1 package exp
2
3 type (
4 InsertClauses interface {
5 CommonTables() []CommonTableExpression
6 CommonTablesAppend(cte CommonTableExpression) InsertClauses
7
8 HasInto() bool
9 clone() *insertClauses
10
11 Cols() ColumnListExpression
12 HasCols() bool
13 ColsAppend(cols ColumnListExpression) InsertClauses
14 SetCols(cols ColumnListExpression) InsertClauses
15
16 Into() Expression
17 SetInto(cl Expression) InsertClauses
18
19 Returning() ColumnListExpression
20 HasReturning() bool
21 SetReturning(cl ColumnListExpression) InsertClauses
22
23 From() AppendableExpression
24 HasFrom() bool
25 SetFrom(ae AppendableExpression) InsertClauses
26
27 Rows() []interface{}
28 HasRows() bool
29 SetRows(rows []interface{}) InsertClauses
30
31 HasAlias() bool
32 Alias() IdentifierExpression
33 SetAlias(ie IdentifierExpression) InsertClauses
34
35 Vals() [][]interface{}
36 HasVals() bool
37 SetVals(vals [][]interface{}) InsertClauses
38 ValsAppend(vals [][]interface{}) InsertClauses
39
40 OnConflict() ConflictExpression
41 SetOnConflict(expression ConflictExpression) InsertClauses
42 }
43 insertClauses struct {
44 commonTables []CommonTableExpression
45 cols ColumnListExpression
46 into Expression
47 returning ColumnListExpression
48 alias IdentifierExpression
49 rows []interface{}
50 values [][]interface{}
51 from AppendableExpression
52 conflict ConflictExpression
53 }
54 )
55
56 func NewInsertClauses() InsertClauses {
57 return &insertClauses{}
58 }
59
60 func (ic *insertClauses) HasInto() bool {
61 return ic.into != nil
62 }
63
64 func (ic *insertClauses) clone() *insertClauses {
65 return &insertClauses{
66 commonTables: ic.commonTables,
67 cols: ic.cols,
68 into: ic.into,
69 returning: ic.returning,
70 alias: ic.alias,
71 rows: ic.rows,
72 values: ic.values,
73 from: ic.from,
74 conflict: ic.conflict,
75 }
76 }
77
78 func (ic *insertClauses) CommonTables() []CommonTableExpression {
79 return ic.commonTables
80 }
81
82 func (ic *insertClauses) CommonTablesAppend(cte CommonTableExpression) InsertClauses {
83 ret := ic.clone()
84 ret.commonTables = append(ret.commonTables, cte)
85 return ret
86 }
87
88 func (ic *insertClauses) Cols() ColumnListExpression {
89 return ic.cols
90 }
91
92 func (ic *insertClauses) HasCols() bool {
93 return ic.cols != nil && !ic.cols.IsEmpty()
94 }
95
96 func (ic *insertClauses) ColsAppend(cl ColumnListExpression) InsertClauses {
97 ret := ic.clone()
98 ret.cols = ret.cols.Append(cl.Columns()...)
99 return ret
100 }
101
102 func (ic *insertClauses) SetCols(cl ColumnListExpression) InsertClauses {
103 ret := ic.clone()
104 ret.cols = cl
105 return ret
106 }
107
108 func (ic *insertClauses) Into() Expression {
109 return ic.into
110 }
111
112 func (ic *insertClauses) SetInto(into Expression) InsertClauses {
113 ret := ic.clone()
114 ret.into = into
115 return ret
116 }
117
118 func (ic *insertClauses) Returning() ColumnListExpression {
119 return ic.returning
120 }
121
122 func (ic *insertClauses) HasReturning() bool {
123 return ic.returning != nil && !ic.returning.IsEmpty()
124 }
125
126 func (ic *insertClauses) HasAlias() bool {
127 return ic.alias != nil
128 }
129
130 func (ic *insertClauses) Alias() IdentifierExpression {
131 return ic.alias
132 }
133
134 func (ic *insertClauses) SetAlias(ie IdentifierExpression) InsertClauses {
135 ret := ic.clone()
136 ret.alias = ie
137 return ret
138 }
139
140 func (ic *insertClauses) SetReturning(cl ColumnListExpression) InsertClauses {
141 ret := ic.clone()
142 ret.returning = cl
143 return ret
144 }
145
146 func (ic *insertClauses) From() AppendableExpression {
147 return ic.from
148 }
149
150 func (ic *insertClauses) HasFrom() bool {
151 return ic.from != nil
152 }
153
154 func (ic *insertClauses) SetFrom(ae AppendableExpression) InsertClauses {
155 ret := ic.clone()
156 ret.from = ae
157 return ret
158 }
159
160 func (ic *insertClauses) Rows() []interface{} {
161 return ic.rows
162 }
163
164 func (ic *insertClauses) HasRows() bool {
165 return ic.rows != nil && len(ic.rows) > 0
166 }
167
168 func (ic *insertClauses) SetRows(rows []interface{}) InsertClauses {
169 ret := ic.clone()
170 ret.rows = rows
171 return ret
172 }
173
174 func (ic *insertClauses) Vals() [][]interface{} {
175 return ic.values
176 }
177
178 func (ic *insertClauses) HasVals() bool {
179 return ic.values != nil && len(ic.values) > 0
180 }
181
182 func (ic *insertClauses) SetVals(vals [][]interface{}) InsertClauses {
183 ret := ic.clone()
184 ret.values = vals
185 return ret
186 }
187
188 func (ic *insertClauses) ValsAppend(vals [][]interface{}) InsertClauses {
189 ret := ic.clone()
190 newVals := make([][]interface{}, 0, len(ic.values)+len(vals))
191 newVals = append(newVals, ic.values...)
192 newVals = append(newVals, vals...)
193 ret.values = newVals
194 return ret
195 }
196
197 func (ic *insertClauses) OnConflict() ConflictExpression {
198 return ic.conflict
199 }
200
201 func (ic *insertClauses) SetOnConflict(expression ConflictExpression) InsertClauses {
202 ret := ic.clone()
203 ret.conflict = expression
204 return ret
205 }
206
View as plain text