This is an automated email from the ASF dual-hosted git repository.
changchen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git
The following commit(s) were added to refs/heads/main by this push:
new 8dbca6cfe [GLUTEN-5009][CH] Fix TPCDS q9 failed with debug build
(#5015)
8dbca6cfe is described below
commit 8dbca6cfe979d12e775b07e7096f169420e36480
Author: exmy <[email protected]>
AuthorDate: Wed Mar 20 09:34:42 2024 +0800
[GLUTEN-5009][CH] Fix TPCDS q9 failed with debug build (#5015)
---
cpp-ch/local-engine/Parser/CHColumnToSparkRow.cpp | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/cpp-ch/local-engine/Parser/CHColumnToSparkRow.cpp
b/cpp-ch/local-engine/Parser/CHColumnToSparkRow.cpp
index c48cd84e9..c3ff32a97 100644
--- a/cpp-ch/local-engine/Parser/CHColumnToSparkRow.cpp
+++ b/cpp-ch/local-engine/Parser/CHColumnToSparkRow.cpp
@@ -696,6 +696,12 @@ int64_t VariableLengthDataWriter::writeArray(size_t
row_idx, const DB::Array & a
writer.unsafeWrite(
reinterpret_cast<const char *>(&v), buffer_address +
offset + start + 8 + len_null_bitmap + i * elem_size);
}
+ else if (writer.getWhichDataType().isFloat64())
+ {
+ // Fix 'Invalid Field get from type Float64 to type Int64'
in debug build.
+ auto v = elem.get<Float64>();
+ writer.unsafeWrite(reinterpret_cast<const char *>(&v),
buffer_address + offset + start + 8 + len_null_bitmap + i * elem_size);
+ }
else
writer.unsafeWrite(
reinterpret_cast<const char *>(&elem.get<char>()),
@@ -808,6 +814,12 @@ int64_t VariableLengthDataWriter::writeStruct(size_t
row_idx, const DB::Tuple &
auto v = static_cast<Float32>(field_value.get<Float32>());
writer.unsafeWrite(reinterpret_cast<const char *>(&v),
buffer_address + offset + start + len_null_bitmap + i * 8);
}
+ else if (writer.getWhichDataType().isFloat64())
+ {
+ // Fix 'Invalid Field get from type Float64 to type Int64' in
debug build.
+ auto v = field_value.get<Float64>();
+ writer.unsafeWrite(reinterpret_cast<const char *>(&v),
buffer_address + offset + start + len_null_bitmap + i * 8);
+ }
else
writer.unsafeWrite(
reinterpret_cast<const char *>(&field_value.get<char>()),
buffer_address + offset + start + len_null_bitmap + i * 8);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]