| 101 | } |
| 102 | |
| 103 | StringVal DateFunctions::LongDayName(FunctionContext* context, const DateVal& d_val) { |
| 104 | if (d_val.is_null) return StringVal::null(); |
| 105 | DateValue dv = DateValue::FromDateVal(d_val); |
| 106 | |
| 107 | // CCTZ has 0 = Monday and 6 = Sunday. |
| 108 | int wday = dv.WeekDay(); |
| 109 | if (wday == -1) return StringVal::null(); |
| 110 | |
| 111 | DCHECK_GE(wday, 0); |
| 112 | DCHECK_LE(wday, 6); |
| 113 | wday = (wday + 1) % 7; |
| 114 | const string& day_name = |
| 115 | TimestampFunctions::DAY_NAMES[TimestampFunctions::CAPITALIZED][wday]; |
| 116 | return StringVal(reinterpret_cast<uint8_t*>(const_cast<char*>(day_name.data())), |
| 117 | day_name.size()); |
| 118 | } |
| 119 | |
| 120 | StringVal DateFunctions::LongMonthName(FunctionContext* context, const DateVal& d_val) { |
| 121 | if (d_val.is_null) return StringVal::null(); |