MCPcopy
hub / github.com/Masterminds/squirrel / ToSql

Method ToSql

case.go:63–92  ·  view source on GitHub ↗

ToSql implements Sqlizer

()

Source from the content-addressed store, hash-verified

61
62// ToSql implements Sqlizer
63func (d *caseData) ToSql() (sqlStr string, args []interface{}, err error) {
64 if len(d.WhenParts) == 0 {
65 err = errors.New("case expression must contain at lease one WHEN clause")
66
67 return
68 }
69
70 sql := sqlizerBuffer{}
71
72 sql.WriteString("CASE ")
73 if d.What != nil {
74 sql.WriteSql(d.What)
75 }
76
77 for _, p := range d.WhenParts {
78 sql.WriteString("WHEN ")
79 sql.WriteSql(p.when)
80 sql.WriteString("THEN ")
81 sql.WriteSql(p.then)
82 }
83
84 if d.Else != nil {
85 sql.WriteString("ELSE ")
86 sql.WriteSql(d.Else)
87 }
88
89 sql.WriteString("END")
90
91 return sql.ToSql()
92}
93
94// CaseBuilder builds SQL CASE construct which could be used as parts of queries.
95type CaseBuilder builder.Builder

Callers

nothing calls this directly

Calls 2

WriteSqlMethod · 0.95
ToSqlMethod · 0.95

Tested by

no test coverage detected