| 19 | const yymmTimeLayout = "0601" |
| 20 | |
| 21 | func LoadAllBuiltins() { |
| 22 | loadOnce.Do(func() { |
| 23 | |
| 24 | // math |
| 25 | expr.FuncAdd("sqrt", &Sqrt{}) |
| 26 | expr.FuncAdd("pow", &Pow{}) |
| 27 | |
| 28 | // aggregate ops |
| 29 | expr.FuncAdd("count", &Count{}) |
| 30 | expr.FuncAdd("avg", &Avg{}) |
| 31 | expr.FuncAdd("sum", &Sum{}) |
| 32 | |
| 33 | // logical |
| 34 | expr.FuncAdd("gt", &Gt{}) |
| 35 | expr.FuncAdd("ge", &Ge{}) |
| 36 | expr.FuncAdd("ne", &Ne{}) |
| 37 | expr.FuncAdd("le", &Le{}) |
| 38 | expr.FuncAdd("lt", &Lt{}) |
| 39 | expr.FuncAdd("eq", &Eq{}) |
| 40 | expr.FuncAdd("not", &Not{}) |
| 41 | expr.FuncAdd("exists", &Exists{}) |
| 42 | expr.FuncAdd("any", &Any{}) |
| 43 | expr.FuncAdd("all", &All{}) |
| 44 | |
| 45 | // Map |
| 46 | expr.FuncAdd("map", &MapFunc{}) |
| 47 | |
| 48 | // Date/Time functions |
| 49 | expr.FuncAdd("todate", &ToDate{}) |
| 50 | expr.FuncAdd("totimestamp", &ToTimestamp{}) |
| 51 | expr.FuncAdd("todatein", &ToDateIn{}) |
| 52 | expr.FuncAdd("now", &Now{}) |
| 53 | expr.FuncAdd("yy", &Yy{}) |
| 54 | expr.FuncAdd("yymm", &YyMm{}) |
| 55 | expr.FuncAdd("mm", &Mm{}) |
| 56 | expr.FuncAdd("monthofyear", &Mm{}) |
| 57 | expr.FuncAdd("dayofweek", &DayOfWeek{}) |
| 58 | expr.FuncAdd("hourofday", &HourOfDay{}) |
| 59 | expr.FuncAdd("hourofweek", &HourOfWeek{}) |
| 60 | expr.FuncAdd("seconds", &TimeSeconds{}) |
| 61 | expr.FuncAdd("maptime", &MapTime{}) |
| 62 | expr.FuncAdd("extract", &StrFromTime{}) |
| 63 | expr.FuncAdd("strftime", &StrFromTime{}) |
| 64 | expr.FuncAdd("unixtrunc", &TimeTrunc{}) |
| 65 | |
| 66 | // Casting and Type Coercion |
| 67 | expr.FuncAdd("tostring", &ToString{}) |
| 68 | expr.FuncAdd("tobool", &ToBool{}) |
| 69 | expr.FuncAdd("toint", &ToInt{}) |
| 70 | expr.FuncAdd("tonumber", &ToNumber{}) |
| 71 | expr.FuncAdd("unsign", &Unsign{}) |
| 72 | |
| 73 | // String Functions |
| 74 | expr.FuncAdd("contains", &Contains{}) |
| 75 | expr.FuncAdd("tolower", &LowerCase{}) |
| 76 | expr.FuncAdd("string.index", &StringIndex{}) |
| 77 | expr.FuncAdd("string.lowercase", &LowerCase{}) |
| 78 | expr.FuncAdd("string.uppercase", &UpperCase{}) |