MCPcopy
hub / github.com/sqlc-dev/sqlc / convertCase

Method convertCase

internal/engine/sqlite/convert.go:1221–1241  ·  view source on GitHub ↗
(n *parser.Expr_caseContext)

Source from the content-addressed store, hash-verified

1219}
1220
1221func (c *cc) convertCase(n *parser.Expr_caseContext) ast.Node {
1222 e := &ast.CaseExpr{
1223 Args: &ast.List{},
1224 }
1225 es := n.AllExpr()
1226 if n.ELSE_() != nil {
1227 e.Defresult = c.convert(es[len(es)-1])
1228 es = es[:len(es)-1]
1229 }
1230 if len(es)%2 == 1 {
1231 e.Arg = c.convert(es[0])
1232 es = es[1:]
1233 }
1234 for i := 0; i < len(es); i += 2 {
1235 e.Args.Items = append(e.Args.Items, &ast.CaseWhen{
1236 Expr: c.convert(es[i+0]),
1237 Result: c.convert(es[i+1]),
1238 })
1239 }
1240 return e
1241}
1242
1243func (c *cc) convert(node node) ast.Node {
1244 switch n := node.(type) {

Callers 1

convertMethod · 0.95

Calls 3

convertMethod · 0.95
AllExprMethod · 0.65
ELSE_Method · 0.65

Tested by

no test coverage detected