MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / parseReturningColumns

Method parseReturningColumns

pkg/sql/parser/dml_insert.go:234–259  ·  view source on GitHub ↗

parseReturningColumns parses the columns in a RETURNING clause Supports: column names, *, qualified names (table.column), expressions

()

Source from the content-addressed store, hash-verified

232// parseReturningColumns parses the columns in a RETURNING clause
233// Supports: column names, *, qualified names (table.column), expressions
234func (p *Parser) parseReturningColumns() ([]ast.Expression, error) {
235 var columns []ast.Expression
236
237 for {
238 // Check for * (return all columns)
239 if p.isType(models.TokenTypeMul) {
240 columns = append(columns, &ast.Identifier{Name: "*"})
241 p.advance()
242 } else {
243 // Parse expression (can be column name, qualified name, or expression)
244 expr, err := p.parseExpression()
245 if err != nil {
246 return nil, fmt.Errorf("failed to parse RETURNING column: %w", err)
247 }
248 columns = append(columns, expr)
249 }
250
251 // Check for comma to continue parsing more columns
252 if !p.isType(models.TokenTypeComma) {
253 break
254 }
255 p.advance() // Consume comma
256 }
257
258 return columns, nil
259}
260
261// parseOnConflictClause parses the ON CONFLICT clause (PostgreSQL UPSERT)
262// Syntax: ON CONFLICT [(columns)] | ON CONSTRAINT name DO NOTHING | DO UPDATE SET ...

Callers 3

parseDeleteStatementMethod · 0.95
parseUpdateStatementMethod · 0.95
parseInsertStatementMethod · 0.95

Calls 4

isTypeMethod · 0.95
advanceMethod · 0.95
parseExpressionMethod · 0.95
ErrorfMethod · 0.65

Tested by

no test coverage detected