1234567891011121314151617181920212223242526272829303132333435363738 |
- package clause
- const (
- LockingStrengthUpdate = "UPDATE"
- LockingStrengthShare = "SHARE"
- LockingOptionsSkipLocked = "SKIP LOCKED"
- LockingOptionsNoWait = "NOWAIT"
- )
- type Locking struct {
- Strength string
- Table Table
- Options string
- }
- // Name where clause name
- func (locking Locking) Name() string {
- return "FOR"
- }
- // Build build where clause
- func (locking Locking) Build(builder Builder) {
- builder.WriteString(locking.Strength)
- if locking.Table.Name != "" {
- builder.WriteString(" OF ")
- builder.WriteQuoted(locking.Table)
- }
- if locking.Options != "" {
- builder.WriteByte(' ')
- builder.WriteString(locking.Options)
- }
- }
- // MergeClause merge order by clauses
- func (locking Locking) MergeClause(clause *Clause) {
- clause.Expression = locking
- }
|