use chrono::Utc;
use pg2any_lib::{types::ChangeEvent, Transaction};
use pg_walstream::ColumnValue;
pub fn wrap_in_transaction(event: ChangeEvent) -> Transaction {
let mut tx = Transaction::new(1, Utc::now());
tx.add_event(event);
tx
}
pub fn format_column_value(value: &ColumnValue) -> String {
match value {
ColumnValue::Null => "NULL".to_string(),
ColumnValue::Text(_) => match value.as_str() {
Some("t") => "1".to_string(),
Some("f") => "0".to_string(),
Some(s) => {
format!("'{}'", s.replace('\'', "''"))
}
None => "NULL".to_string(),
},
ColumnValue::Binary(b) => {
format!(
"X'{}'",
b.iter()
.map(|byte| format!("{:02x}", byte))
.collect::<String>()
)
}
}
}