mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
dialect/sql: fix predicate builder on join
Summary: Pull Request resolved: https://github.com/facebookincubator/ent/pull/143 Reviewed By: idoshveki Differential Revision: D18346652 fbshipit-source-id: e8c5d7eb3cefc16f52090de0d121e82cae058fc2
This commit is contained in:
committed by
Facebook Github Bot
parent
7a6d1ce9dc
commit
53cfcb6e8b
@@ -731,6 +731,9 @@ func P() *Predicate { return &Predicate{} }
|
||||
//
|
||||
func Or(preds ...*Predicate) *Predicate {
|
||||
return P().append(func(b *Builder) {
|
||||
if len(preds) > 1 {
|
||||
b.WriteString("(")
|
||||
}
|
||||
for i := range preds {
|
||||
if i > 0 {
|
||||
b.WriteString(" OR ")
|
||||
@@ -739,6 +742,9 @@ func Or(preds ...*Predicate) *Predicate {
|
||||
b.Join(preds[i])
|
||||
})
|
||||
}
|
||||
if len(preds) > 1 {
|
||||
b.WriteString(")")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1317,6 +1323,19 @@ func (s *Selector) Where(p *Predicate) *Selector {
|
||||
return s
|
||||
}
|
||||
|
||||
// P returns the predicate of a selector.
|
||||
func (s *Selector) P() *Predicate {
|
||||
return s.where
|
||||
}
|
||||
|
||||
// SetP sets explicitly the predicate function for the selector and clear its previous state.
|
||||
func (s *Selector) SetP(p *Predicate) *Selector {
|
||||
s.where = p
|
||||
s.or = false
|
||||
s.not = false
|
||||
return s
|
||||
}
|
||||
|
||||
// FromSelect copies the predicate from a selector.
|
||||
func (s *Selector) FromSelect(s2 *Selector) *Selector {
|
||||
s.where = s2.where
|
||||
|
||||
Reference in New Issue
Block a user