This is an automated email from the ASF dual-hosted git repository.
isapego pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new d279c36a49 IGNITE-19409 Fix bytes load offsets in
binary_tuple_parser::get_period(). Some compiler warnings fixed. (#2022)
d279c36a49 is described below
commit d279c36a49ee4ef27fc659223dbad9312d56f2da
Author: Dmitriy Zabotlin <[email protected]>
AuthorDate: Thu May 4 14:52:09 2023 +0300
IGNITE-19409 Fix bytes load offsets in binary_tuple_parser::get_period().
Some compiler warnings fixed. (#2022)
---
.../cpp/ignite/tuple/binary_tuple_parser.cpp | 24 +++++++++++-----------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/modules/platforms/cpp/ignite/tuple/binary_tuple_parser.cpp
b/modules/platforms/cpp/ignite/tuple/binary_tuple_parser.cpp
index f501a99562..c55ae3e392 100644
--- a/modules/platforms/cpp/ignite/tuple/binary_tuple_parser.cpp
+++ b/modules/platforms/cpp/ignite/tuple/binary_tuple_parser.cpp
@@ -46,7 +46,7 @@ ignite_date load_date(bytes_view bytes) {
ignite_time load_time(bytes_view bytes) {
std::uint64_t time = load_little<std::uint32_t>(bytes);
- std::int32_t nano;
+ std::int32_t nano = 0;
switch (bytes.size()) {
case 4:
nano = ((std::int32_t) time & ((1 << 10) - 1)) * 1000 * 1000;
@@ -309,20 +309,20 @@ ignite_period binary_tuple_parser::get_period(bytes_view
bytes) {
case 0:
return {};
case 3: {
- auto years = load_little<std::int8_t>(bytes, 8);
- auto months = load_little<std::int8_t>(bytes, 8);
- auto days = load_little<std::int8_t>(bytes, 8);
+ auto years = load_little<std::int8_t>(bytes);
+ auto months = load_little<std::int8_t>(bytes, 1);
+ auto days = load_little<std::int8_t>(bytes, 2);
return {years, months, days};
}
case 6: {
- auto years = load_little<std::int16_t>(bytes, 8);
- auto months = load_little<std::int16_t>(bytes, 8);
- auto days = load_little<std::int16_t>(bytes, 8);
+ auto years = load_little<std::int16_t>(bytes);
+ auto months = load_little<std::int16_t>(bytes, 2);
+ auto days = load_little<std::int16_t>(bytes, 4);
return {years, months, days};
}
case 12: {
- auto years = load_little<std::int32_t>(bytes, 8);
- auto months = load_little<std::int32_t>(bytes, 8);
+ auto years = load_little<std::int32_t>(bytes);
+ auto months = load_little<std::int32_t>(bytes, 4);
auto days = load_little<std::int32_t>(bytes, 8);
return {years, months, days};
}
@@ -334,15 +334,15 @@ ignite_period binary_tuple_parser::get_period(bytes_view
bytes) {
ignite_duration binary_tuple_parser::get_duration(bytes_view bytes) {
switch (bytes.size()) {
case 0:
- return ignite_duration();
+ return {};
case 8: {
auto seconds = load_little<std::int64_t>(bytes);
- return ignite_duration(seconds, 0);
+ return {seconds, 0};
}
case 12: {
auto seconds = load_little<std::int64_t>(bytes);
auto nanos = load_little<std::int32_t>(bytes, 8);
- return ignite_duration(seconds, nanos);
+ return {seconds, nanos};
}
default:
throw std::out_of_range("Bad element size");