(t *testing.T)
| 203 | } |
| 204 | |
| 205 | func 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 | } |
nothing calls this directly
no test coverage detected