MCPcopy Index your code
hub / github.com/cockscomb/cel2sql / callCasting

Method callCasting

cel2sql.go:396–427  ·  view source on GitHub ↗
(function string, target *exprpb.Expr, args []*exprpb.Expr)

Source from the content-addressed store, hash-verified

394}
395
396func (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
429func (con *converter) visitCallFunc(expr *exprpb.Expr) error {
430 c := expr.GetCallExpr()

Callers 1

visitCallFuncMethod · 0.95

Calls 3

getTypeMethod · 0.95
visitMethod · 0.95
isTimestampTypeFunction · 0.85

Tested by

no test coverage detected