(t *testing.T)
| 1537 | } |
| 1538 | |
| 1539 | func TestSelector_SelectExpr(t *testing.T) { |
| 1540 | query, args := SelectExpr( |
| 1541 | Expr("?", "a"), |
| 1542 | ExprFunc(func(b *Builder) { |
| 1543 | b.Ident("first_name").WriteOp(OpAdd).Ident("last_name") |
| 1544 | }), |
| 1545 | ExprFunc(func(b *Builder) { |
| 1546 | b.WriteString("COALESCE(").Ident("age").Comma().Arg(0).WriteByte(')') |
| 1547 | }), |
| 1548 | Expr("?", "b"), |
| 1549 | ).From(Table("users")).Query() |
| 1550 | require.Equal(t, "SELECT ?, `first_name` + `last_name`, COALESCE(`age`, ?), ? FROM `users`", query) |
| 1551 | require.Equal(t, []any{"a", 0, "b"}, args) |
| 1552 | |
| 1553 | query, args = Dialect(dialect.Postgres). |
| 1554 | Select("name"). |
| 1555 | AppendSelectExpr( |
| 1556 | Expr("age + $1", 1), |
| 1557 | ExprFunc(func(b *Builder) { |
| 1558 | b.Wrap(func(b *Builder) { |
| 1559 | b.WriteString("similarity(").Ident("name").Comma().Arg("A").WriteByte(')') |
| 1560 | b.WriteOp(OpAdd) |
| 1561 | b.WriteString("similarity(").Ident("desc").Comma().Arg("D").WriteByte(')') |
| 1562 | }) |
| 1563 | b.WriteString(" AS s") |
| 1564 | }), |
| 1565 | Expr("rank + $4", 10), |
| 1566 | ). |
| 1567 | From(Table("users")). |
| 1568 | Query() |
| 1569 | require.Equal(t, `SELECT "name", age + $1, (similarity("name", $2) + similarity("desc", $3)) AS s, rank + $4 FROM "users"`, query) |
| 1570 | require.Equal(t, []any{1, "A", "D", 10}, args) |
| 1571 | } |
| 1572 | |
| 1573 | func TestSelector_Union(t *testing.T) { |
| 1574 | query, args := Dialect(dialect.Postgres). |
nothing calls this directly
no test coverage detected
searching dependent graphs…