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

Method TestNonTrivialSubqueries

adapter/postgresql/postgresql_test.go:1315–1403  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1313}
1314
1315func (s *AdapterTests) TestNonTrivialSubqueries() {
1316 sess := s.Session()
1317
1318 // Creating test data
1319 artist := sess.Collection("artist")
1320
1321 artistNames := []string{"Ozzie", "Flea", "Slash", "Chrono"}
1322 for _, artistName := range artistNames {
1323 _, err := artist.Insert(map[string]string{
1324 "name": artistName,
1325 })
1326 s.NoError(err)
1327 }
1328
1329 {
1330 q, err := sess.SQL().Query(`WITH test AS (?) ?`,
1331 sess.SQL().Select("id AS foo").From("artist"),
1332 sess.SQL().Select("foo").From("test").Where("foo > ?", 0),
1333 )
1334
1335 s.NoError(err)
1336 s.NotNil(q)
1337
1338 s.True(q.Next())
1339
1340 var number int
1341 s.NoError(q.Scan(&number))
1342
1343 s.Equal(1, number)
1344 s.NoError(q.Close())
1345 }
1346
1347 {
1348 builder := sess.SQL()
1349 row, err := builder.QueryRow(`WITH test AS (?) ?`,
1350 builder.Select("id AS foo").From("artist"),
1351 builder.Select("foo").From("test").Where("foo > ?", 0),
1352 )
1353
1354 s.NoError(err)
1355 s.NotNil(row)
1356
1357 var number int
1358 s.NoError(row.Scan(&number))
1359
1360 s.Equal(1, number)
1361 }
1362
1363 {
1364 res, err := sess.SQL().Exec(
1365 `UPDATE artist a1 SET id = ?`,
1366 sess.SQL().Select(db.Raw("id + 5")).
1367 From("artist a2").
1368 Where("a2.id = a1.id"),
1369 )
1370
1371 s.NoError(err)
1372 s.NotNil(res)

Callers

nothing calls this directly

Calls 15

RawMethod · 0.80
SessionMethod · 0.65
CollectionMethod · 0.65
InsertMethod · 0.65
QueryMethod · 0.65
SQLMethod · 0.65
FromMethod · 0.65
SelectMethod · 0.65
WhereMethod · 0.65
NextMethod · 0.65
ScanMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected