diff --git a/core/datetime.rs b/core/datetime.rs index afa2ae728..6747e27bd 100644 --- a/core/datetime.rs +++ b/core/datetime.rs @@ -2,7 +2,8 @@ use crate::types::OwnedValue; use crate::Result; use chrono::{DateTime, NaiveDate, NaiveDateTime, NaiveTime, Timelike, Utc}; -pub fn get_date_from_time_value(time_value: &OwnedValue) -> Result { +/// Implementation of the date() SQL function. +pub fn exec_date(time_value: &OwnedValue) -> Result { let dt = parse_naive_date_time(time_value); match dt { Some(dt) => Ok(get_date_from_naive_datetime(dt)), @@ -363,7 +364,7 @@ mod tests { for (input, expected) in test_cases { assert_eq!( - get_date_from_time_value(&input).unwrap(), + exec_date(&input).unwrap(), expected, "Failed for input: {:?}", input @@ -402,7 +403,7 @@ mod tests { ]; for case in invalid_cases.iter() { - let result = get_date_from_time_value(case); + let result = exec_date(case); assert!( result.is_ok(), "Error encountered while parsing time value {}: {}", diff --git a/core/vdbe/mod.rs b/core/vdbe/mod.rs index 4fa6c6d71..d24f0feab 100644 --- a/core/vdbe/mod.rs +++ b/core/vdbe/mod.rs @@ -21,7 +21,7 @@ pub mod builder; pub mod explain; pub mod sorter; -use crate::datetime::{get_date_from_time_value, get_time_from_datetime_value}; +use crate::datetime::{exec_date, get_time_from_datetime_value}; use crate::error::LimboError; use crate::function::{AggFunc, ScalarFunc}; use crate::pseudo::PseudoCursor; @@ -1277,13 +1277,13 @@ impl Program { } ScalarFunc::Date => { if *start_reg == 0 { - let date_str = get_date_from_time_value(&OwnedValue::Text(Rc::new( + let date_str = exec_date(&OwnedValue::Text(Rc::new( "now".to_string(), )))?; state.registers[*dest] = OwnedValue::Text(Rc::new(date_str)); } else { let time_value = &state.registers[*start_reg]; - let date_str = get_date_from_time_value(time_value); + let date_str = exec_date(time_value); match date_str { Ok(date) => { state.registers[*dest] = OwnedValue::Text(Rc::new(date))