(expr chast.Expression)
| 328 | } |
| 329 | |
| 330 | func (c *cc) convertExpr(expr chast.Expression) ast.Node { |
| 331 | if expr == nil { |
| 332 | return nil |
| 333 | } |
| 334 | |
| 335 | switch e := expr.(type) { |
| 336 | case *chast.Identifier: |
| 337 | return c.convertIdentifier(e) |
| 338 | case *chast.Literal: |
| 339 | return c.convertLiteral(e) |
| 340 | case *chast.BinaryExpr: |
| 341 | return c.convertBinaryExpr(e) |
| 342 | case *chast.FunctionCall: |
| 343 | return c.convertFunctionCall(e) |
| 344 | case *chast.AliasedExpr: |
| 345 | return c.convertExpr(e.Expr) |
| 346 | case *chast.Parameter: |
| 347 | return c.convertParameter(e) |
| 348 | case *chast.Asterisk: |
| 349 | return c.convertAsterisk(e) |
| 350 | case *chast.CaseExpr: |
| 351 | return c.convertCaseExpr(e) |
| 352 | case *chast.CastExpr: |
| 353 | return c.convertCastExpr(e) |
| 354 | case *chast.BetweenExpr: |
| 355 | return c.convertBetweenExpr(e) |
| 356 | case *chast.InExpr: |
| 357 | return c.convertInExpr(e) |
| 358 | case *chast.IsNullExpr: |
| 359 | return c.convertIsNullExpr(e) |
| 360 | case *chast.LikeExpr: |
| 361 | return c.convertLikeExpr(e) |
| 362 | case *chast.Subquery: |
| 363 | return c.convertSubquery(e) |
| 364 | case *chast.ArrayAccess: |
| 365 | return c.convertArrayAccess(e) |
| 366 | case *chast.UnaryExpr: |
| 367 | return c.convertUnaryExpr(e) |
| 368 | case *chast.Lambda: |
| 369 | // Lambda expressions are ClickHouse-specific, return as-is for now |
| 370 | return &ast.TODO{} |
| 371 | default: |
| 372 | return &ast.TODO{} |
| 373 | } |
| 374 | } |
| 375 | |
| 376 | func (c *cc) convertIdentifier(n *chast.Identifier) *ast.ColumnRef { |
| 377 | fields := &ast.List{} |
no test coverage detected