MCPcopy Index your code
hub / github.com/upper/db / TestSelect

Function TestSelect

internal/sqlbuilder/builder_test.go:205–1090  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

203}
204
205func TestSelect(t *testing.T) {
206 b := &sqlBuilder{t: newTemplateWithUtils(&testTemplate)}
207 assert := assert.New(t)
208
209 assert.Equal(
210 `SELECT DATE()`,
211 b.Select(db.Func("DATE")).String(),
212 )
213
214 assert.Equal(
215 `SELECT DATE() FOR UPDATE`,
216 b.Select(db.Func("DATE")).Amend(func(query string) string {
217 return query + " FOR UPDATE"
218 }).String(),
219 )
220
221 assert.Equal(
222 `SELECT * FROM "artist"`,
223 b.SelectFrom("artist").String(),
224 )
225
226 assert.Equal(
227 `SELECT DISTINCT "bcolor" FROM "artist"`,
228 b.Select().Distinct("bcolor").From("artist").String(),
229 )
230
231 assert.Equal(
232 `SELECT DISTINCT * FROM "artist"`,
233 b.Select().Distinct().From("artist").String(),
234 )
235
236 assert.Equal(
237 `SELECT DISTINCT ON("col1"), "col2" FROM "artist"`,
238 b.Select().Distinct(db.Raw(`ON("col1")`), "col2").From("artist").String(),
239 )
240
241 assert.Equal(
242 `SELECT DISTINCT ON("col1") AS col1, "col2" FROM "artist"`,
243 b.Select().Distinct(db.Raw(`ON("col1") AS col1`)).Distinct("col2").From("artist").String(),
244 )
245
246 assert.Equal(
247 `SELECT DISTINCT ON("col1") AS col1, "col2", "col3", "col4", "col5" FROM "artist"`,
248 b.Select().Distinct(db.Raw(`ON("col1") AS col1`)).Columns("col2", "col3").Distinct("col4", "col5").From("artist").String(),
249 )
250
251 assert.Equal(
252 `SELECT DISTINCT ON(SELECT foo FROM bar) col1, "col2", "col3", "col4", "col5" FROM "artist"`,
253 b.Select().Distinct(db.Raw(`ON(?) col1`, db.Raw(`SELECT foo FROM bar`))).Columns("col2", "col3").Distinct("col4", "col5").From("artist").String(),
254 )
255
256 {
257 q0 := b.Select("foo").From("bar")
258 assert.Equal(
259 `SELECT DISTINCT ON (SELECT "foo" FROM "bar") col1, "col2", "col3", "col4", "col5" FROM "artist"`,
260 b.Select().Distinct(db.Raw(`ON ? col1`, q0)).Columns("col2", "col3").Distinct("col4", "col5").From("artist").String(),
261 )
262 }

Callers

nothing calls this directly

Calls 15

SelectMethod · 0.95
SelectFromMethod · 0.95
newTemplateWithUtilsFunction · 0.85
PreprocessFunction · 0.85
stripWhitespaceFunction · 0.85
RawMethod · 0.80
OrMethod · 0.80
NewMethod · 0.65
StringMethod · 0.65
AmendMethod · 0.65
FromMethod · 0.65
DistinctMethod · 0.65

Tested by

no test coverage detected