MCPcopy Create free account
hub / github.com/dolthub/doltgresql / buildJoinTableExpressionTree

Function buildJoinTableExpressionTree

server/ast/update.go:98–114  ·  view source on GitHub ↗

buildJoinTableExpressionTree returns an expression tree of JoinTableExprs with |tableExprs| as the leaf nodes. If |tableExprs| is empty or nil, then nil is returned.

(ctx *Context, tableExprs vitess.TableExprs)

Source from the content-addressed store, hash-verified

96// buildJoinTableExpressionTree returns an expression tree of JoinTableExprs with |tableExprs| as the
97// leaf nodes. If |tableExprs| is empty or nil, then nil is returned.
98func buildJoinTableExpressionTree(ctx *Context, tableExprs vitess.TableExprs) vitess.TableExpr {
99 switch len(tableExprs) {
100 case 0:
101 return nil
102 case 1:
103 return tableExprs[0]
104 case 2:
105 return &vitess.JoinTableExpr{
106 Join: vitess.JoinStr,
107 LeftExpr: tableExprs[0],
108 RightExpr: tableExprs[1],
109 }
110 default:
111 subtree := buildJoinTableExpressionTree(ctx, tableExprs[0:2])
112 return buildJoinTableExpressionTree(ctx, append(tableExprs[2:], subtree))
113 }
114}

Callers 1

nodeUpdateFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected