MCPcopy Create free account
hub / github.com/cockscomb/cel2sql / callExtractFromTimestamp

Method callExtractFromTimestamp

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

Source from the content-addressed store, hash-verified

353}
354
355func (con *converter) callExtractFromTimestamp(function string, target *exprpb.Expr, args []*exprpb.Expr) error {
356 con.str.WriteString("EXTRACT(")
357 switch function {
358 case overloads.TimeGetFullYear:
359 con.str.WriteString("YEAR")
360 case overloads.TimeGetMonth:
361 con.str.WriteString("MONTH")
362 case overloads.TimeGetDate:
363 con.str.WriteString("DAY")
364 case overloads.TimeGetHours:
365 con.str.WriteString("HOUR")
366 case overloads.TimeGetMinutes:
367 con.str.WriteString("MINUTE")
368 case overloads.TimeGetSeconds:
369 con.str.WriteString("SECOND")
370 case overloads.TimeGetMilliseconds:
371 con.str.WriteString("MILLISECOND")
372 case overloads.TimeGetDayOfYear:
373 con.str.WriteString("DAYOFYEAR")
374 case overloads.TimeGetDayOfMonth:
375 con.str.WriteString("DAY")
376 case overloads.TimeGetDayOfWeek:
377 con.str.WriteString("DAYOFWEEK")
378 }
379 con.str.WriteString(" FROM ")
380 if err := con.visit(target); err != nil {
381 return err
382 }
383 if isTimestampType(con.getType(target)) && len(args) == 1 {
384 con.str.WriteString(" AT ")
385 if err := con.visit(args[0]); err != nil {
386 return err
387 }
388 }
389 con.str.WriteString(")")
390 if function == overloads.TimeGetMonth || function == overloads.TimeGetDayOfYear || function == overloads.TimeGetDayOfMonth || function == overloads.TimeGetDayOfWeek {
391 con.str.WriteString(" - 1")
392 }
393 return nil
394}
395
396func (con *converter) callCasting(function string, target *exprpb.Expr, args []*exprpb.Expr) error {
397 arg := args[0]

Callers 1

visitCallFuncMethod · 0.95

Calls 3

visitMethod · 0.95
getTypeMethod · 0.95
isTimestampTypeFunction · 0.85

Tested by

no test coverage detected