(t *testing.T)
| 11 | ) |
| 12 | |
| 13 | func 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 | |
| 62 | func TestSelectBuilderFromSelect(t *testing.T) { |
| 63 | subQ := Select("c").From("d").Where(Eq{"i": 0}) |
nothing calls this directly
no test coverage detected
searching dependent graphs…