MCPcopy Create free account
hub / github.com/apache/devlake / buildTx

Function buildTx

backend/impls/dalgorm/dalgorm.go:83–136  ·  view source on GitHub ↗
(tx *gorm.DB, clauses []dal.Clause)

Source from the content-addressed store, hash-verified

81}
82
83func buildTx(tx *gorm.DB, clauses []dal.Clause) *gorm.DB {
84 for _, c := range clauses {
85 t := c.Type
86 d := c.Data
87 switch t {
88 case dal.JoinClause:
89 tx = tx.Joins(d.(dal.DalClause).Expr, transformParams(d.(dal.DalClause).Params)...)
90 case dal.WhereClause:
91 tx = tx.Where(d.(dal.DalClause).Expr, transformParams(d.(dal.DalClause).Params)...)
92 case dal.OrderbyClause:
93 tx = tx.Order(d.(string))
94 case dal.LimitClause:
95 tx = tx.Limit(d.(int))
96 case dal.OffsetClause:
97 tx = tx.Offset(d.(int))
98 case dal.FromClause:
99 switch dd := d.(type) {
100 case string:
101 tx = tx.Table(dd)
102 case dal.DalClause:
103 tx = tx.Table(dd.Expr, transformParams(dd.Params)...)
104 case dal.ClauseTable:
105 tx = tx.Table(" ? ", clause.Table{
106 Name: dd.Name,
107 Alias: dd.Alias,
108 Raw: dd.Raw,
109 })
110 case models.DynamicTabler:
111 tx = tx.Table(dd.TableName())
112 default:
113 tx = tx.Model(d)
114 }
115 case dal.SelectClause:
116 tx = tx.Select(d.(dal.DalClause).Expr, transformParams(d.(dal.DalClause).Params)...)
117 case dal.GroupbyClause:
118 tx = tx.Group(d.(string))
119 case dal.HavingClause:
120 tx = tx.Having(d.(dal.DalClause).Expr, transformParams(d.(dal.DalClause).Params)...)
121 case dal.LockClause:
122 locking := clause.Locking{}
123 params := d.([]bool)
124 write := params[0]
125 if write {
126 locking.Strength = "UPDATE"
127 }
128 nowait := params[1]
129 if nowait {
130 locking.Options = "NOWAIT"
131 }
132 tx = tx.Clauses(locking)
133 }
134 }
135 return tx
136}
137
138var _ dal.Dal = (*Dalgorm)(nil)
139

Callers 15

AutoMigrateMethod · 0.85
CursorMethod · 0.85
CursorTxMethod · 0.85
AllMethod · 0.85
FirstMethod · 0.85
CountMethod · 0.85
PluckMethod · 0.85
CreateMethod · 0.85
CreateWithMapMethod · 0.85
UpdateMethod · 0.85
CreateOrUpdateMethod · 0.85
CreateIfNotExistMethod · 0.85

Calls 2

transformParamsFunction · 0.85
TableNameMethod · 0.65

Tested by

no test coverage detected