diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2019-06-23 23:22:43 +0800 |
---|---|---|
committer | Lauris BH <lauris@nix.lv> | 2019-06-23 18:22:43 +0300 |
commit | aa7c34cf86081b71f796f6e5da60e62a3cda43ce (patch) | |
tree | c9e4b4f1490b43e942fa71b37748072d3fe441e8 /vendor/xorm.io/builder/cond_between.go | |
parent | baefea311f1a66a97f9a2779ad3342f4f8167d28 (diff) | |
download | gitea-aa7c34cf86081b71f796f6e5da60e62a3cda43ce.tar.gz gitea-aa7c34cf86081b71f796f6e5da60e62a3cda43ce.zip |
Fix error log when loading issues caused by a xorm bug (#7271)
* fix error log when loading issues caused by a xorm bug
* upgrade packages
* fix fmt
* fix Consistency
* fix tests
Diffstat (limited to 'vendor/xorm.io/builder/cond_between.go')
-rw-r--r-- | vendor/xorm.io/builder/cond_between.go | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/vendor/xorm.io/builder/cond_between.go b/vendor/xorm.io/builder/cond_between.go new file mode 100644 index 0000000000..10e0b83152 --- /dev/null +++ b/vendor/xorm.io/builder/cond_between.go @@ -0,0 +1,65 @@ +// Copyright 2016 The Xorm Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package builder + +import "fmt" + +// Between implmentes between condition +type Between struct { + Col string + LessVal interface{} + MoreVal interface{} +} + +var _ Cond = Between{} + +// WriteTo write data to Writer +func (between Between) WriteTo(w Writer) error { + if _, err := fmt.Fprintf(w, "%s BETWEEN ", between.Col); err != nil { + return err + } + if lv, ok := between.LessVal.(expr); ok { + if err := lv.WriteTo(w); err != nil { + return err + } + } else { + if _, err := fmt.Fprint(w, "?"); err != nil { + return err + } + w.Append(between.LessVal) + } + + if _, err := fmt.Fprint(w, " AND "); err != nil { + return err + } + + if mv, ok := between.MoreVal.(expr); ok { + if err := mv.WriteTo(w); err != nil { + return err + } + } else { + if _, err := fmt.Fprint(w, "?"); err != nil { + return err + } + w.Append(between.MoreVal) + } + + return nil +} + +// And implments And with other conditions +func (between Between) And(conds ...Cond) Cond { + return And(between, And(conds...)) +} + +// Or implments Or with other conditions +func (between Between) Or(conds ...Cond) Cond { + return Or(between, Or(conds...)) +} + +// IsValid tests if the condition is valid +func (between Between) IsValid() bool { + return len(between.Col) > 0 +} |