parseMainStatementAfterWith parses the main statement after WITH clause. It supports SELECT, INSERT, UPDATE, and DELETE statements, routing them to the appropriate parsers while preserving set operation support for SELECT statements.
()
| 225 | // It supports SELECT, INSERT, UPDATE, and DELETE statements, routing them to the appropriate |
| 226 | // parsers while preserving set operation support for SELECT statements. |
| 227 | func (p *Parser) parseMainStatementAfterWith() (ast.Statement, error) { |
| 228 | if p.isType(models.TokenTypeSelect) { |
| 229 | p.advance() // Consume SELECT |
| 230 | return p.parseSelectWithSetOperations() |
| 231 | } else if p.isType(models.TokenTypeInsert) { |
| 232 | p.advance() // Consume INSERT |
| 233 | return p.parseInsertStatement() |
| 234 | } else if p.isType(models.TokenTypeUpdate) { |
| 235 | p.advance() // Consume UPDATE |
| 236 | return p.parseUpdateStatement() |
| 237 | } else if p.isType(models.TokenTypeDelete) { |
| 238 | p.advance() // Consume DELETE |
| 239 | return p.parseDeleteStatement() |
| 240 | } |
| 241 | return nil, p.expectedError("SELECT, INSERT, UPDATE, or DELETE after WITH") |
| 242 | } |
no test coverage detected