mirror of
https://github.com/ent/ent.git
synced 2026-05-22 09:31:45 +03:00
dialect/sql: make WriteOp chainable (#710)
This commit is contained in:
@@ -1915,10 +1915,11 @@ var ops = [...]string{
|
||||
}
|
||||
|
||||
// WriteOp writes an operator to the builder.
|
||||
func (b *Builder) WriteOp(op Op) {
|
||||
func (b *Builder) WriteOp(op Op) *Builder {
|
||||
if op >= OpEQ && op <= OpLike {
|
||||
b.Pad().WriteString(ops[op]).Pad()
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
// JSONOption allows for calling database JSON paths with functional options.
|
||||
|
||||
@@ -1249,6 +1249,16 @@ WHERE
|
||||
wantQuery: `SELECT * FROM "users" WHERE CAST("a"->'b'->'c'->1->'d' AS int) = $1`,
|
||||
wantArgs: []interface{}{1},
|
||||
},
|
||||
{
|
||||
input: Dialect(dialect.Postgres).
|
||||
Select("*").
|
||||
From(Table("test")).
|
||||
Where(P(func(b *Builder) {
|
||||
b.WriteString("nlevel(").Ident("path").WriteByte(')').WriteOp(OpGT).Arg(1)
|
||||
})),
|
||||
wantQuery: `SELECT * FROM "test" WHERE nlevel("path") > $1`,
|
||||
wantArgs: []interface{}{1},
|
||||
},
|
||||
}
|
||||
for i, tt := range tests {
|
||||
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user