MCPcopy
hub / github.com/ent/ent / setTableColumns

Method setTableColumns

dialect/sql/sqlgraph/graph.go:1308–1343  ·  view source on GitHub ↗

setTableColumns sets the table columns and foreign_keys used in insert.

(update *sql.UpdateBuilder, addEdges, clearEdges map[Rel][]*EdgeSpec)

Source from the content-addressed store, hash-verified

1306
1307// setTableColumns sets the table columns and foreign_keys used in insert.
1308func (u *updater) setTableColumns(update *sql.UpdateBuilder, addEdges, clearEdges map[Rel][]*EdgeSpec) error {
1309 // Avoid multiple assignments to the same column.
1310 setEdges := make(map[string]bool)
1311 for _, e := range addEdges[M2O] {
1312 setEdges[e.Columns[0]] = true
1313 }
1314 for _, e := range addEdges[O2O] {
1315 if e.Inverse || e.Bidi {
1316 setEdges[e.Columns[0]] = true
1317 }
1318 }
1319 for _, fi := range u.Fields.Clear {
1320 update.SetNull(fi.Column)
1321 }
1322 for _, e := range clearEdges[M2O] {
1323 if col := e.Columns[0]; !setEdges[col] {
1324 update.SetNull(col)
1325 }
1326 }
1327 for _, e := range clearEdges[O2O] {
1328 col := e.Columns[0]
1329 if (e.Inverse || e.Bidi) && !setEdges[col] {
1330 update.SetNull(col)
1331 }
1332 }
1333 err := setTableColumns(u.Fields.Set, addEdges, func(column string, value driver.Value) {
1334 update.Set(column, value)
1335 })
1336 if err != nil {
1337 return err
1338 }
1339 for _, fi := range u.Fields.Add {
1340 update.Add(fi.Column, fi.Value)
1341 }
1342 return nil
1343}
1344
1345func (u *updater) scan(rows *sql.Rows) error {
1346 defer rows.Close()

Callers 2

nodeMethod · 0.95
nodesMethod · 0.95

Calls 4

setTableColumnsFunction · 0.85
SetNullMethod · 0.45
SetMethod · 0.45
AddMethod · 0.45

Tested by

no test coverage detected