locking.go 610 B

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