12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // Copyright 2022 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 (
- "errors"
- "io"
- )
- type condNotExists struct {
- subQuery *Builder
- }
- var _ Cond = condNotExists{}
- // NotExists returns Cond via condition
- func NotExists(subQuery *Builder) Cond {
- return &condNotExists{
- subQuery: subQuery,
- }
- }
- func (condNotExists condNotExists) WriteTo(w Writer) error {
- if !condNotExists.IsValid() {
- return errors.New("exists condition is nov valid")
- }
- if _, err := io.WriteString(w, "NOT EXISTS ("); err != nil {
- return err
- }
- if err := condNotExists.subQuery.WriteTo(w); err != nil {
- return err
- }
- _, err := io.WriteString(w, ")")
- return err
- }
- func (condNotExists condNotExists) And(conds ...Cond) Cond {
- return And(condNotExists, And(conds...))
- }
- func (condNotExists condNotExists) Or(conds ...Cond) Cond {
- return Or(condNotExists, Or(conds...))
- }
- func (condNotExists condNotExists) IsValid() bool {
- return condNotExists.subQuery != nil
- }
|