Skip to content

Commit 79e63f2

Browse files
committed
[FIX] fix merge conflicts
1 parent a299d0d commit 79e63f2

File tree

4 files changed

+21
-560
lines changed

4 files changed

+21
-560
lines changed

parquet-variant/examples/variant_to_json_examples.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
2727
("Integer 42", Variant::Int8(42)),
2828
("Negative Integer", Variant::Int8(-123)),
2929
("String", Variant::String("Hello, World!")),
30-
("Short String", Variant::ShortString("Hi!")),
30+
("Short String", Variant::ShortString(parquet_variant::ShortString::try_new("Hi!").unwrap())),
3131
];
3232

3333
for (name, variant) in variants {

parquet-variant/src/to_json.rs

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -165,13 +165,20 @@ pub fn variant_to_json(json_buffer: &mut impl Write, variant: &Variant) -> Resul
165165
})?;
166166
write!(json_buffer, "{}", json_str)?;
167167
}
168-
Variant::String(s) | Variant::ShortString(s) => {
168+
Variant::String(s) => {
169169
// Use serde_json to properly escape the string
170170
let json_str = serde_json::to_string(s).map_err(|e| {
171171
ArrowError::InvalidArgumentError(format!("JSON encoding error: {}", e))
172172
})?;
173173
write!(json_buffer, "{}", json_str)?;
174174
}
175+
Variant::ShortString(s) => {
176+
// Use serde_json to properly escape the string
177+
let json_str = serde_json::to_string(s.as_str()).map_err(|e| {
178+
ArrowError::InvalidArgumentError(format!("JSON encoding error: {}", e))
179+
})?;
180+
write!(json_buffer, "{}", json_str)?;
181+
}
175182
Variant::Object(obj) => {
176183
convert_object_to_json(json_buffer, obj)?;
177184
}
@@ -187,10 +194,9 @@ fn convert_object_to_json(buffer: &mut impl Write, obj: &VariantObject) -> Resul
187194
write!(buffer, "{{")?;
188195

189196
// Get all fields from the object
190-
let fields = obj.fields()?;
191197
let mut first = true;
192198

193-
for (key, value) in fields {
199+
for (key, value) in obj.iter() {
194200
if !first {
195201
write!(buffer, ",")?;
196202
}
@@ -332,12 +338,12 @@ ArrowError::InvalidArgumentError("Invalid decimal value".to_string())
332338
Variant::TimestampMicros(ts) => Ok(Value::String(ts.to_rfc3339())),
333339
Variant::TimestampNtzMicros(ts) => Ok(Value::String(format_timestamp_ntz_string(ts))),
334340
Variant::Binary(bytes) => Ok(Value::String(format_binary_base64(bytes))),
335-
Variant::String(s) | Variant::ShortString(s) => Ok(Value::String(s.to_string())),
341+
Variant::String(s) => Ok(Value::String(s.to_string())),
342+
Variant::ShortString(s) => Ok(Value::String(s.to_string())),
336343
Variant::Object(obj) => {
337344
let mut map = serde_json::Map::new();
338-
let fields = obj.fields()?;
339345

340-
for (key, value) in fields {
346+
for (key, value) in obj.iter() {
341347
let json_value = variant_to_json_value(&value)?;
342348
map.insert(key.to_string(), json_value);
343349
}
@@ -659,7 +665,9 @@ mod tests {
659665

660666
#[test]
661667
fn test_short_string_to_json() -> Result<(), ArrowError> {
662-
let variant = Variant::ShortString("short");
668+
use crate::variant::ShortString;
669+
let short_string = ShortString::try_new("short")?;
670+
let variant = Variant::ShortString(short_string);
663671
let json = variant_to_json_string(&variant)?;
664672
assert_eq!(json, "\"short\"");
665673

@@ -696,6 +704,7 @@ mod tests {
696704

697705
#[test]
698706
fn test_comprehensive_type_coverage() -> Result<(), ArrowError> {
707+
use crate::variant::ShortString;
699708
// Test all supported types to ensure no compilation errors
700709
let test_variants = vec![
701710
Variant::Null,
@@ -728,7 +737,7 @@ mod tests {
728737
Variant::TimestampNtzMicros(DateTime::from_timestamp(0, 0).unwrap().naive_utc()),
729738
Variant::Binary(b"test"),
730739
Variant::String("test"),
731-
Variant::ShortString("test"),
740+
Variant::ShortString(ShortString::try_new("test")?),
732741
];
733742

734743
for variant in test_variants {

0 commit comments

Comments
 (0)