Skip to content

Commit

Permalink
Plain old string objects for json, without requiring RawString
Browse files Browse the repository at this point in the history
  • Loading branch information
miguelff committed Nov 7, 2023
1 parent 18ad27d commit e06ca3d
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 21 deletions.
16 changes: 8 additions & 8 deletions query-engine/driver-adapters/src/conversion/mysql.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const TIME_FORMAT: &str = "%H:%M:%S";
pub fn value_to_js_arg(value: &quaint::Value) -> serde_json::Result<JSArg> {
let res = match &value.typed {
quaint::ValueType::Numeric(Some(bd)) => JSArg::Value(JsonValue::String(bd.to_string())),
quaint::ValueType::Json(Some(s)) => JSArg::Value(s.to_owned()),
quaint::ValueType::Json(Some(s)) => JSArg::Value(JsonValue::String(serde_json::to_string(s)?)),
quaint::ValueType::Bytes(Some(bytes)) => JSArg::Buffer(bytes.to_vec()),
quaint::ValueType::Date(Some(d)) => JSArg::Value(JsonValue::String(d.format(DATE_FORMAT).to_string())),
quaint::ValueType::DateTime(Some(dt)) => JSArg::Value(JsonValue::String(dt.format(DATETIME_FORMAT).to_string())),
Expand Down Expand Up @@ -47,39 +47,39 @@ mod test {
),
(
ValueType::Numeric(None),
JSArg::Value(serde_json::Value::Null)
JSArg::Value(JsonValue::Null)
),
(
ValueType::Json(Some(serde_json::json!({"a": 1}))),
JSArg::Value(serde_json::json!({"a": 1}))
JSArg::Value(JsonValue::String("{\"a\":1}".to_string()))
),
(
ValueType::Json(None),
JSArg::Value(serde_json::Value::Null)
JSArg::Value(JsonValue::Null)
),
(
ValueType::Date(Some(NaiveDate::from_ymd_opt(2020, 2, 29).unwrap())),
JSArg::Value(JsonValue::String("2020-02-29".to_string()))
),
(
ValueType::Date(None),
JSArg::Value(serde_json::Value::Null)
JSArg::Value(JsonValue::Null)
),
(
ValueType::DateTime(Some(Utc.with_ymd_and_hms(2020, 1, 1, 23, 13, 1).unwrap())),
JSArg::Value(JsonValue::String("2020-01-01 23:13:01".to_string()))
),
(
ValueType::DateTime(None),
JSArg::Value(serde_json::Value::Null)
JSArg::Value(JsonValue::Null)
),
(
ValueType::Time(Some(NaiveTime::from_hms_opt(23, 13, 1).unwrap())),
JSArg::Value(JsonValue::String("23:13:01".to_string()))
),
(
ValueType::Time(None),
JSArg::Value(serde_json::Value::Null)
JSArg::Value(JsonValue::Null)
),
(
ValueType::Array(Some(vec!(
Expand All @@ -89,7 +89,7 @@ mod test {
))),
JSArg::Array(vec!(
JSArg::Value(JsonValue::String("1".to_string())),
JSArg::Value(serde_json::Value::Null),
JSArg::Value(JsonValue::Null),
JSArg::Value(JsonValue::String("23:13:01".to_string()))
))
),
Expand Down
25 changes: 12 additions & 13 deletions query-engine/driver-adapters/src/conversion/postgres.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ pub fn value_to_js_arg(value: &quaint::Value) -> serde_json::Result<JSArg> {
(quaint::ValueType::DateTime(Some(dt)), Some("TIME")) => JSArg::Value(JsonValue::String(dt.time().to_string())),
(quaint::ValueType::DateTime(Some(dt)), Some("TIMETZ")) => JSArg::Value(JsonValue::String(dt.time().format_with_items(TIME_FMT.clone()).to_string())),
(quaint::ValueType::DateTime(Some(dt)), _) => JSArg::Value(JsonValue::String(dt.naive_utc().to_string())),
(quaint::ValueType::Json(Some(s)), _) => JSArg::Value(s.to_owned()),
(quaint::ValueType::Json(Some(s)), _) => JSArg::Value(JsonValue::String(serde_json::to_string(s)?)),
(quaint::ValueType::Bytes(Some(bytes)), _) => JSArg::Buffer(bytes.to_vec()),
(quaint::ValueType::Numeric(Some(bd)), _) => JSArg::Value(JsonValue::String(bd.to_string())),
(quaint::ValueType::Array(Some(items)), _) => JSArg::Array(
Expand All @@ -33,7 +33,6 @@ mod test {
use bigdecimal::BigDecimal;
use chrono::*;
use quaint::ValueType;
use serde_json::Value;
use std::str::FromStr;

#[test]
Expand All @@ -50,23 +49,23 @@ mod test {
),
(
ValueType::Numeric(None).into_value(),
JSArg::Value(Value::Null)
JSArg::Value(JsonValue::Null)
),
(
ValueType::Json(Some(serde_json::json!({"a": 1}))).into_value(),
JSArg::Value(serde_json::json!({"a": 1}))
JSArg::Value(JsonValue::String("{\"a\":1}".to_string()))
),
(
ValueType::Json(None).into_value(),
JSArg::Value(Value::Null)
JSArg::Value(JsonValue::Null)
),
(
ValueType::Date(Some(NaiveDate::from_ymd_opt(2020, 2, 29).unwrap())).into_value(),
JSArg::Value(Value::String("2020-02-29".to_string()))
JSArg::Value(JsonValue::String("2020-02-29".to_string()))
),
(
ValueType::Date(None).into_value(),
JSArg::Value(Value::Null)
JSArg::Value(JsonValue::Null)
),
(
ValueType::DateTime(Some(Utc.with_ymd_and_hms(2020, 1, 1, 23, 13, 1).unwrap())).into_value().with_native_column_type(Some("DATE")),
Expand All @@ -82,15 +81,15 @@ mod test {
),
(
ValueType::DateTime(None).into_value(),
JSArg::Value(Value::Null)
JSArg::Value(JsonValue::Null)
),
(
ValueType::Time(Some(NaiveTime::from_hms_opt(23, 13, 1).unwrap())).into_value(),
JSArg::Value(Value::String("23:13:01".to_string()))
JSArg::Value(JsonValue::String("23:13:01".to_string()))
),
(
ValueType::Time(None).into_value(),
JSArg::Value(Value::Null)
JSArg::Value(JsonValue::Null)
),
(
ValueType::Array(Some(vec!(
Expand All @@ -101,9 +100,9 @@ mod test {
))).into_value(),
JSArg::Array(vec!(
JSArg::Value(JsonValue::String("1".to_string())),
JSArg::Value(Value::Null),
JSArg::Value(Value::String("23:13:01".to_string())),
JSArg::Value(Value::Null),
JSArg::Value(JsonValue::Null),
JSArg::Value(JsonValue::String("23:13:01".to_string())),
JSArg::Value(JsonValue::Null),
))
),
];
Expand Down

0 comments on commit e06ca3d

Please sign in to comment.