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

Function nodeSelectExprs

server/ast/select.go:183–203  ·  view source on GitHub ↗

nodeSelectExprs handles tree.SelectExprs nodes.

(ctx *Context, node tree.SelectExprs)

Source from the content-addressed store, hash-verified

181
182// nodeSelectExprs handles tree.SelectExprs nodes.
183func nodeSelectExprs(ctx *Context, node tree.SelectExprs) (vitess.SelectExprs, error) {
184 if len(node) == 0 {
185 return nil, nil
186 }
187 selectExprs := make(vitess.SelectExprs, len(node))
188 for i := range node {
189 var err error
190 // Unaliased string literals use Postgres's ?column? placeholder as the column name.
191 // We use a unique indexed sentinel rather than "?column?" directly to avoid GMS's alias
192 // scope map conflating multiple unnamed columns in the same SELECT clause; the handler
193 // translates the sentinel back to "?column?" on the wire.
194 if _, isStrVal := node[i].Expr.(*tree.StrVal); isStrVal && node[i].As == "" {
195 node[i].As = tree.UnrestrictedName(fmt.Sprintf("%s%d", UnknownColSentinelPrefix, i))
196 }
197 selectExprs[i], err = nodeSelectExpr(ctx, node[i])
198 if err != nil {
199 return nil, err
200 }
201 }
202 return selectExprs, nil
203}
204
205// nodeExprToSelectExpr handles tree.Expr nodes and returns the result as a vitess.SelectExpr.
206func nodeExprToSelectExpr(ctx *Context, node tree.Expr) (vitess.SelectExpr, error) {

Callers 4

nodeSelectClauseFunction · 0.85
nodeUpdateFunction · 0.85
nodeDeleteFunction · 0.85
nodeInsertFunction · 0.85

Calls 2

UnrestrictedNameTypeAlias · 0.92
nodeSelectExprFunction · 0.85

Tested by

no test coverage detected