MCPcopy
hub / github.com/Masterminds/squirrel / TestSelectBuilderToSql

Function TestSelectBuilderToSql

select_test.go:13–60  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

11)
12
13func TestSelectBuilderToSql(t *testing.T) {
14 subQ := Select("aa", "bb").From("dd")
15 b := Select("a", "b").
16 Prefix("WITH prefix AS ?", 0).
17 Distinct().
18 Columns("c").
19 Column("IF(d IN ("+Placeholders(3)+"), 1, 0) as stat_column", 1, 2, 3).
20 Column(Expr("a > ?", 100)).
21 Column(Alias(Eq{"b": []int{101, 102, 103}}, "b_alias")).
22 Column(Alias(subQ, "subq")).
23 From("e").
24 JoinClause("CROSS JOIN j1").
25 Join("j2").
26 LeftJoin("j3").
27 RightJoin("j4").
28 InnerJoin("j5").
29 CrossJoin("j6").
30 Where("f = ?", 4).
31 Where(Eq{"g": 5}).
32 Where(map[string]interface{}{"h": 6}).
33 Where(Eq{"i": []int{7, 8, 9}}).
34 Where(Or{Expr("j = ?", 10), And{Eq{"k": 11}, Expr("true")}}).
35 GroupBy("l").
36 Having("m = n").
37 OrderByClause("? DESC", 1).
38 OrderBy("o ASC", "p DESC").
39 Limit(12).
40 Offset(13).
41 Suffix("FETCH FIRST ? ROWS ONLY", 14)
42
43 sql, args, err := b.ToSql()
44 assert.NoError(t, err)
45
46 expectedSql :=
47 "WITH prefix AS ? " +
48 "SELECT DISTINCT a, b, c, IF(d IN (?,?,?), 1, 0) as stat_column, a > ?, " +
49 "(b IN (?,?,?)) AS b_alias, " +
50 "(SELECT aa, bb FROM dd) AS subq " +
51 "FROM e " +
52 "CROSS JOIN j1 JOIN j2 LEFT JOIN j3 RIGHT JOIN j4 INNER JOIN j5 CROSS JOIN j6 " +
53 "WHERE f = ? AND g = ? AND h = ? AND i IN (?,?,?) AND (j = ? OR (k = ? AND true)) " +
54 "GROUP BY l HAVING m = n ORDER BY ? DESC, o ASC, p DESC LIMIT 12 OFFSET 13 " +
55 "FETCH FIRST ? ROWS ONLY"
56 assert.Equal(t, expectedSql, sql)
57
58 expectedArgs := []interface{}{0, 1, 2, 3, 100, 101, 102, 103, 4, 5, 6, 7, 8, 9, 10, 11, 1, 14}
59 assert.Equal(t, expectedArgs, args)
60}
61
62func TestSelectBuilderFromSelect(t *testing.T) {
63 subQ := Select("c").From("d").Where(Eq{"i": 0})

Callers

nothing calls this directly

Calls 15

SelectFunction · 0.85
PlaceholdersFunction · 0.85
ExprFunction · 0.85
AliasFunction · 0.85
OrderByClauseMethod · 0.80
HavingMethod · 0.80
GroupByMethod · 0.80
CrossJoinMethod · 0.80
InnerJoinMethod · 0.80
RightJoinMethod · 0.80
LeftJoinMethod · 0.80
JoinMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…