...

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

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

     1  package exp
     2  
     3  type (
     4  	InsertClauses interface {
     5  		CommonTables() []CommonTableExpression
     6  		CommonTablesAppend(cte CommonTableExpression) InsertClauses
     7  
     8  		HasInto() bool
     9  		clone() *insertClauses
    10  
    11  		Cols() ColumnListExpression
    12  		HasCols() bool
    13  		ColsAppend(cols ColumnListExpression) InsertClauses
    14  		SetCols(cols ColumnListExpression) InsertClauses
    15  
    16  		Into() Expression
    17  		SetInto(cl Expression) InsertClauses
    18  
    19  		Returning() ColumnListExpression
    20  		HasReturning() bool
    21  		SetReturning(cl ColumnListExpression) InsertClauses
    22  
    23  		From() AppendableExpression
    24  		HasFrom() bool
    25  		SetFrom(ae AppendableExpression) InsertClauses
    26  
    27  		Rows() []interface{}
    28  		HasRows() bool
    29  		SetRows(rows []interface{}) InsertClauses
    30  
    31  		HasAlias() bool
    32  		Alias() IdentifierExpression
    33  		SetAlias(ie IdentifierExpression) InsertClauses
    34  
    35  		Vals() [][]interface{}
    36  		HasVals() bool
    37  		SetVals(vals [][]interface{}) InsertClauses
    38  		ValsAppend(vals [][]interface{}) InsertClauses
    39  
    40  		OnConflict() ConflictExpression
    41  		SetOnConflict(expression ConflictExpression) InsertClauses
    42  	}
    43  	insertClauses struct {
    44  		commonTables []CommonTableExpression
    45  		cols         ColumnListExpression
    46  		into         Expression
    47  		returning    ColumnListExpression
    48  		alias        IdentifierExpression
    49  		rows         []interface{}
    50  		values       [][]interface{}
    51  		from         AppendableExpression
    52  		conflict     ConflictExpression
    53  	}
    54  )
    55  
    56  func NewInsertClauses() InsertClauses {
    57  	return &insertClauses{}
    58  }
    59  
    60  func (ic *insertClauses) HasInto() bool {
    61  	return ic.into != nil
    62  }
    63  
    64  func (ic *insertClauses) clone() *insertClauses {
    65  	return &insertClauses{
    66  		commonTables: ic.commonTables,
    67  		cols:         ic.cols,
    68  		into:         ic.into,
    69  		returning:    ic.returning,
    70  		alias:        ic.alias,
    71  		rows:         ic.rows,
    72  		values:       ic.values,
    73  		from:         ic.from,
    74  		conflict:     ic.conflict,
    75  	}
    76  }
    77  
    78  func (ic *insertClauses) CommonTables() []CommonTableExpression {
    79  	return ic.commonTables
    80  }
    81  
    82  func (ic *insertClauses) CommonTablesAppend(cte CommonTableExpression) InsertClauses {
    83  	ret := ic.clone()
    84  	ret.commonTables = append(ret.commonTables, cte)
    85  	return ret
    86  }
    87  
    88  func (ic *insertClauses) Cols() ColumnListExpression {
    89  	return ic.cols
    90  }
    91  
    92  func (ic *insertClauses) HasCols() bool {
    93  	return ic.cols != nil && !ic.cols.IsEmpty()
    94  }
    95  
    96  func (ic *insertClauses) ColsAppend(cl ColumnListExpression) InsertClauses {
    97  	ret := ic.clone()
    98  	ret.cols = ret.cols.Append(cl.Columns()...)
    99  	return ret
   100  }
   101  
   102  func (ic *insertClauses) SetCols(cl ColumnListExpression) InsertClauses {
   103  	ret := ic.clone()
   104  	ret.cols = cl
   105  	return ret
   106  }
   107  
   108  func (ic *insertClauses) Into() Expression {
   109  	return ic.into
   110  }
   111  
   112  func (ic *insertClauses) SetInto(into Expression) InsertClauses {
   113  	ret := ic.clone()
   114  	ret.into = into
   115  	return ret
   116  }
   117  
   118  func (ic *insertClauses) Returning() ColumnListExpression {
   119  	return ic.returning
   120  }
   121  
   122  func (ic *insertClauses) HasReturning() bool {
   123  	return ic.returning != nil && !ic.returning.IsEmpty()
   124  }
   125  
   126  func (ic *insertClauses) HasAlias() bool {
   127  	return ic.alias != nil
   128  }
   129  
   130  func (ic *insertClauses) Alias() IdentifierExpression {
   131  	return ic.alias
   132  }
   133  
   134  func (ic *insertClauses) SetAlias(ie IdentifierExpression) InsertClauses {
   135  	ret := ic.clone()
   136  	ret.alias = ie
   137  	return ret
   138  }
   139  
   140  func (ic *insertClauses) SetReturning(cl ColumnListExpression) InsertClauses {
   141  	ret := ic.clone()
   142  	ret.returning = cl
   143  	return ret
   144  }
   145  
   146  func (ic *insertClauses) From() AppendableExpression {
   147  	return ic.from
   148  }
   149  
   150  func (ic *insertClauses) HasFrom() bool {
   151  	return ic.from != nil
   152  }
   153  
   154  func (ic *insertClauses) SetFrom(ae AppendableExpression) InsertClauses {
   155  	ret := ic.clone()
   156  	ret.from = ae
   157  	return ret
   158  }
   159  
   160  func (ic *insertClauses) Rows() []interface{} {
   161  	return ic.rows
   162  }
   163  
   164  func (ic *insertClauses) HasRows() bool {
   165  	return ic.rows != nil && len(ic.rows) > 0
   166  }
   167  
   168  func (ic *insertClauses) SetRows(rows []interface{}) InsertClauses {
   169  	ret := ic.clone()
   170  	ret.rows = rows
   171  	return ret
   172  }
   173  
   174  func (ic *insertClauses) Vals() [][]interface{} {
   175  	return ic.values
   176  }
   177  
   178  func (ic *insertClauses) HasVals() bool {
   179  	return ic.values != nil && len(ic.values) > 0
   180  }
   181  
   182  func (ic *insertClauses) SetVals(vals [][]interface{}) InsertClauses {
   183  	ret := ic.clone()
   184  	ret.values = vals
   185  	return ret
   186  }
   187  
   188  func (ic *insertClauses) ValsAppend(vals [][]interface{}) InsertClauses {
   189  	ret := ic.clone()
   190  	newVals := make([][]interface{}, 0, len(ic.values)+len(vals))
   191  	newVals = append(newVals, ic.values...)
   192  	newVals = append(newVals, vals...)
   193  	ret.values = newVals
   194  	return ret
   195  }
   196  
   197  func (ic *insertClauses) OnConflict() ConflictExpression {
   198  	return ic.conflict
   199  }
   200  
   201  func (ic *insertClauses) SetOnConflict(expression ConflictExpression) InsertClauses {
   202  	ret := ic.clone()
   203  	ret.conflict = expression
   204  	return ret
   205  }
   206  

View as plain text