...

Source file src/github.com/doug-martin/goqu/v9/exp/delete_clauses.go

Documentation: github.com/doug-martin/goqu/v9/exp

     1  package exp
     2  
     3  type (
     4  	DeleteClauses interface {
     5  		HasFrom() bool
     6  		clone() *deleteClauses
     7  
     8  		CommonTables() []CommonTableExpression
     9  		CommonTablesAppend(cte CommonTableExpression) DeleteClauses
    10  
    11  		From() IdentifierExpression
    12  		SetFrom(table IdentifierExpression) DeleteClauses
    13  
    14  		Where() ExpressionList
    15  		ClearWhere() DeleteClauses
    16  		WhereAppend(expressions ...Expression) DeleteClauses
    17  
    18  		Order() ColumnListExpression
    19  		HasOrder() bool
    20  		ClearOrder() DeleteClauses
    21  		SetOrder(oes ...OrderedExpression) DeleteClauses
    22  		OrderAppend(...OrderedExpression) DeleteClauses
    23  		OrderPrepend(...OrderedExpression) DeleteClauses
    24  
    25  		Limit() interface{}
    26  		HasLimit() bool
    27  		ClearLimit() DeleteClauses
    28  		SetLimit(limit interface{}) DeleteClauses
    29  
    30  		Returning() ColumnListExpression
    31  		HasReturning() bool
    32  		SetReturning(cl ColumnListExpression) DeleteClauses
    33  	}
    34  	deleteClauses struct {
    35  		commonTables []CommonTableExpression
    36  		from         IdentifierExpression
    37  		where        ExpressionList
    38  		order        ColumnListExpression
    39  		limit        interface{}
    40  		returning    ColumnListExpression
    41  	}
    42  )
    43  
    44  func NewDeleteClauses() DeleteClauses {
    45  	return &deleteClauses{}
    46  }
    47  
    48  func (dc *deleteClauses) HasFrom() bool {
    49  	return dc.from != nil
    50  }
    51  
    52  func (dc *deleteClauses) clone() *deleteClauses {
    53  	return &deleteClauses{
    54  		commonTables: dc.commonTables,
    55  		from:         dc.from,
    56  
    57  		where:     dc.where,
    58  		order:     dc.order,
    59  		limit:     dc.limit,
    60  		returning: dc.returning,
    61  	}
    62  }
    63  
    64  func (dc *deleteClauses) CommonTables() []CommonTableExpression {
    65  	return dc.commonTables
    66  }
    67  
    68  func (dc *deleteClauses) CommonTablesAppend(cte CommonTableExpression) DeleteClauses {
    69  	ret := dc.clone()
    70  	ret.commonTables = append(ret.commonTables, cte)
    71  	return ret
    72  }
    73  
    74  func (dc *deleteClauses) From() IdentifierExpression {
    75  	return dc.from
    76  }
    77  
    78  func (dc *deleteClauses) SetFrom(table IdentifierExpression) DeleteClauses {
    79  	ret := dc.clone()
    80  	ret.from = table
    81  	return ret
    82  }
    83  
    84  func (dc *deleteClauses) Where() ExpressionList {
    85  	return dc.where
    86  }
    87  
    88  func (dc *deleteClauses) ClearWhere() DeleteClauses {
    89  	ret := dc.clone()
    90  	ret.where = nil
    91  	return ret
    92  }
    93  
    94  func (dc *deleteClauses) WhereAppend(expressions ...Expression) DeleteClauses {
    95  	if len(expressions) == 0 {
    96  		return dc
    97  	}
    98  	ret := dc.clone()
    99  	if ret.where == nil {
   100  		ret.where = NewExpressionList(AndType, expressions...)
   101  	} else {
   102  		ret.where = ret.where.Append(expressions...)
   103  	}
   104  	return ret
   105  }
   106  
   107  func (dc *deleteClauses) Order() ColumnListExpression {
   108  	return dc.order
   109  }
   110  
   111  func (dc *deleteClauses) HasOrder() bool {
   112  	return dc.order != nil
   113  }
   114  
   115  func (dc *deleteClauses) ClearOrder() DeleteClauses {
   116  	ret := dc.clone()
   117  	ret.order = nil
   118  	return ret
   119  }
   120  
   121  func (dc *deleteClauses) SetOrder(oes ...OrderedExpression) DeleteClauses {
   122  	ret := dc.clone()
   123  	ret.order = NewOrderedColumnList(oes...)
   124  	return ret
   125  }
   126  
   127  func (dc *deleteClauses) OrderAppend(oes ...OrderedExpression) DeleteClauses {
   128  	if dc.order == nil {
   129  		return dc.SetOrder(oes...)
   130  	}
   131  	ret := dc.clone()
   132  	ret.order = ret.order.Append(NewOrderedColumnList(oes...).Columns()...)
   133  	return ret
   134  }
   135  
   136  func (dc *deleteClauses) OrderPrepend(oes ...OrderedExpression) DeleteClauses {
   137  	if dc.order == nil {
   138  		return dc.SetOrder(oes...)
   139  	}
   140  	ret := dc.clone()
   141  	ret.order = NewOrderedColumnList(oes...).Append(ret.order.Columns()...)
   142  	return ret
   143  }
   144  
   145  func (dc *deleteClauses) Limit() interface{} {
   146  	return dc.limit
   147  }
   148  
   149  func (dc *deleteClauses) HasLimit() bool {
   150  	return dc.limit != nil
   151  }
   152  
   153  func (dc *deleteClauses) ClearLimit() DeleteClauses {
   154  	ret := dc.clone()
   155  	ret.limit = nil
   156  	return ret
   157  }
   158  
   159  func (dc *deleteClauses) SetLimit(limit interface{}) DeleteClauses {
   160  	ret := dc.clone()
   161  	ret.limit = limit
   162  	return ret
   163  }
   164  
   165  func (dc *deleteClauses) Returning() ColumnListExpression {
   166  	return dc.returning
   167  }
   168  
   169  func (dc *deleteClauses) HasReturning() bool {
   170  	return dc.returning != nil && !dc.returning.IsEmpty()
   171  }
   172  
   173  func (dc *deleteClauses) SetReturning(cl ColumnListExpression) DeleteClauses {
   174  	ret := dc.clone()
   175  	ret.returning = cl
   176  	return ret
   177  }
   178  

View as plain text