use spg_engine::{Engine, QueryResult, testkit};
const MICROS: i64 = 1_749_988_800_000_000;
fn one_cell(e: &mut Engine, sql: &str) -> String {
match e.execute(sql).unwrap_or_else(|err| panic!("{sql}: {err}")) {
QueryResult::Rows { rows, .. } => spg_engine::eval::value_to_text(&rows[0].values[0]),
other => panic!("{sql}: {other:?}"),
}
}
#[test]
fn fixed_clock_guc_pins_current_date() {
let cfg = testkit::EnvConfig::builder()
.fixed_clock_micros(MICROS)
.build();
let mut e = Engine::new().with_env_cfg(cfg);
assert_eq!(one_cell(&mut e, "SELECT CURRENT_DATE"), "2025-06-15");
}
#[test]
fn unset_guc_leaves_the_clock_alone() {
let cfg = testkit::EnvConfig::builder().build();
let mut e = Engine::new().with_env_cfg(cfg);
let err = e
.execute("SELECT CURRENT_DATE")
.expect_err("clockless engine must not answer CURRENT_DATE");
assert!(
format!("{err}").contains("current_date"),
"unexpected error: {err}"
);
}