| 30 | ) |
| 31 | |
| 32 | func (n *LockingClause) Format(buf *TrackedBuffer, d format.Dialect) { |
| 33 | if n == nil { |
| 34 | return |
| 35 | } |
| 36 | buf.WriteString("FOR ") |
| 37 | switch n.Strength { |
| 38 | case LockClauseStrengthForKeyShare: |
| 39 | buf.WriteString("KEY SHARE") |
| 40 | case LockClauseStrengthForShare: |
| 41 | buf.WriteString("SHARE") |
| 42 | case LockClauseStrengthForNoKeyUpdate: |
| 43 | buf.WriteString("NO KEY UPDATE") |
| 44 | case LockClauseStrengthForUpdate: |
| 45 | buf.WriteString("UPDATE") |
| 46 | } |
| 47 | if items(n.LockedRels) { |
| 48 | buf.WriteString(" OF ") |
| 49 | buf.join(n.LockedRels, d, ", ") |
| 50 | } |
| 51 | switch n.WaitPolicy { |
| 52 | case LockWaitPolicySkip: |
| 53 | buf.WriteString(" SKIP LOCKED") |
| 54 | case LockWaitPolicyError: |
| 55 | buf.WriteString(" NOWAIT") |
| 56 | } |
| 57 | } |