github.com/systematiccaos/gorm@v1.22.6/clause/locking.go (about)

     1  package clause
     2  
     3  type Locking struct {
     4  	Strength string
     5  	Table    Table
     6  	Options  string
     7  }
     8  
     9  // Name where clause name
    10  func (locking Locking) Name() string {
    11  	return "FOR"
    12  }
    13  
    14  // Build build where clause
    15  func (locking Locking) Build(builder Builder) {
    16  	builder.WriteString(locking.Strength)
    17  	if locking.Table.Name != "" {
    18  		builder.WriteString(" OF ")
    19  		builder.WriteQuoted(locking.Table)
    20  	}
    21  
    22  	if locking.Options != "" {
    23  		builder.WriteByte(' ')
    24  		builder.WriteString(locking.Options)
    25  	}
    26  }
    27  
    28  // MergeClause merge order by clauses
    29  func (locking Locking) MergeClause(clause *Clause) {
    30  	clause.Expression = locking
    31  }