(function string, target *exprpb.Expr, args []*exprpb.Expr)
| 394 | } |
| 395 | |
| 396 | func (con *converter) callCasting(function string, target *exprpb.Expr, args []*exprpb.Expr) error { |
| 397 | arg := args[0] |
| 398 | if function == overloads.TypeConvertInt && isTimestampType(con.getType(arg)) { |
| 399 | con.str.WriteString("UNIX_SECONDS(") |
| 400 | if err := con.visit(arg); err != nil { |
| 401 | return err |
| 402 | } |
| 403 | con.str.WriteString(")") |
| 404 | return nil |
| 405 | } |
| 406 | con.str.WriteString("CAST(") |
| 407 | if err := con.visit(arg); err != nil { |
| 408 | return err |
| 409 | } |
| 410 | con.str.WriteString(" AS ") |
| 411 | switch function { |
| 412 | case overloads.TypeConvertBool: |
| 413 | con.str.WriteString("BOOL") |
| 414 | case overloads.TypeConvertBytes: |
| 415 | con.str.WriteString("BYTES") |
| 416 | case overloads.TypeConvertDouble: |
| 417 | con.str.WriteString("FLOAT64") |
| 418 | case overloads.TypeConvertInt: |
| 419 | con.str.WriteString("INT64") |
| 420 | case overloads.TypeConvertString: |
| 421 | con.str.WriteString("STRING") |
| 422 | case overloads.TypeConvertUint: |
| 423 | con.str.WriteString("INT64") |
| 424 | } |
| 425 | con.str.WriteString(")") |
| 426 | return nil |
| 427 | } |
| 428 | |
| 429 | func (con *converter) visitCallFunc(expr *exprpb.Expr) error { |
| 430 | c := expr.GetCallExpr() |
no test coverage detected