This is an automated email from the ASF dual-hosted git repository.
gangwu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-cpp.git
The following commit(s) were added to refs/heads/main by this push:
new f8690039 chore: change return type of TimePointMsFromUnix* functions
(#507)
f8690039 is described below
commit f8690039d9cf582f0167acce3c765e64cba2dafd
Author: Junwang Zhao <[email protected]>
AuthorDate: Tue Jan 13 13:48:30 2026 +0800
chore: change return type of TimePointMsFromUnix* functions (#507)
---
src/iceberg/json_internal.cc | 15 ++++++---------
src/iceberg/table_scan.cc | 3 +--
src/iceberg/test/json_internal_test.cc | 4 ++--
src/iceberg/test/metadata_io_test.cc | 2 +-
src/iceberg/test/metadata_serde_test.cc | 22 +++++++++++-----------
src/iceberg/test/snapshot_test.cc | 8 ++++----
src/iceberg/util/timepoint.cc | 4 ++--
src/iceberg/util/timepoint.h | 5 ++---
8 files changed, 29 insertions(+), 34 deletions(-)
diff --git a/src/iceberg/json_internal.cc b/src/iceberg/json_internal.cc
index 4cd2f03f..7e2652d6 100644
--- a/src/iceberg/json_internal.cc
+++ b/src/iceberg/json_internal.cc
@@ -645,9 +645,8 @@ Result<std::unique_ptr<Snapshot>> SnapshotFromJson(const
nlohmann::json& json) {
ICEBERG_ASSIGN_OR_RAISE(auto snapshot_id, GetJsonValue<int64_t>(json,
kSnapshotId));
ICEBERG_ASSIGN_OR_RAISE(auto sequence_number,
GetJsonValueOptional<int64_t>(json,
kSequenceNumber));
- ICEBERG_ASSIGN_OR_RAISE(
- auto timestamp_ms,
- GetJsonValue<int64_t>(json,
kTimestampMs).and_then(TimePointMsFromUnixMs));
+ ICEBERG_ASSIGN_OR_RAISE(auto unix_ms, GetJsonValue<int64_t>(json,
kTimestampMs));
+ auto timestamp_ms = TimePointMsFromUnixMs(unix_ms);
ICEBERG_ASSIGN_OR_RAISE(auto manifest_list,
GetJsonValue<std::string>(json, kManifestList));
@@ -781,9 +780,8 @@ nlohmann::json ToJson(const SnapshotLogEntry&
snapshot_log_entry) {
Result<SnapshotLogEntry> SnapshotLogEntryFromJson(const nlohmann::json& json) {
SnapshotLogEntry snapshot_log_entry;
- ICEBERG_ASSIGN_OR_RAISE(
- snapshot_log_entry.timestamp_ms,
- GetJsonValue<int64_t>(json,
kTimestampMs).and_then(TimePointMsFromUnixMs));
+ ICEBERG_ASSIGN_OR_RAISE(auto unix_ms, GetJsonValue<int64_t>(json,
kTimestampMs));
+ snapshot_log_entry.timestamp_ms = TimePointMsFromUnixMs(unix_ms);
ICEBERG_ASSIGN_OR_RAISE(snapshot_log_entry.snapshot_id,
GetJsonValue<int64_t>(json, kSnapshotId));
return snapshot_log_entry;
@@ -798,9 +796,8 @@ nlohmann::json ToJson(const MetadataLogEntry&
metadata_log_entry) {
Result<MetadataLogEntry> MetadataLogEntryFromJson(const nlohmann::json& json) {
MetadataLogEntry metadata_log_entry;
- ICEBERG_ASSIGN_OR_RAISE(
- metadata_log_entry.timestamp_ms,
- GetJsonValue<int64_t>(json,
kTimestampMs).and_then(TimePointMsFromUnixMs));
+ ICEBERG_ASSIGN_OR_RAISE(auto unix_ms, GetJsonValue<int64_t>(json,
kTimestampMs));
+ metadata_log_entry.timestamp_ms = TimePointMsFromUnixMs(unix_ms);
ICEBERG_ASSIGN_OR_RAISE(metadata_log_entry.metadata_file,
GetJsonValue<std::string>(json, kMetadataFile));
return metadata_log_entry;
diff --git a/src/iceberg/table_scan.cc b/src/iceberg/table_scan.cc
index 12410270..05d44d90 100644
--- a/src/iceberg/table_scan.cc
+++ b/src/iceberg/table_scan.cc
@@ -307,8 +307,7 @@ TableScanBuilder& TableScanBuilder::UseRef(const
std::string& ref) {
}
TableScanBuilder& TableScanBuilder::AsOfTime(int64_t timestamp_millis) {
- ICEBERG_BUILDER_ASSIGN_OR_RETURN(auto time_point_ms,
- TimePointMsFromUnixMs(timestamp_millis));
+ auto time_point_ms = TimePointMsFromUnixMs(timestamp_millis);
ICEBERG_BUILDER_ASSIGN_OR_RETURN(
auto snapshot_id, SnapshotUtil::SnapshotIdAsOfTime(*metadata_,
time_point_ms));
return UseSnapshot(snapshot_id);
diff --git a/src/iceberg/test/json_internal_test.cc
b/src/iceberg/test/json_internal_test.cc
index 33ed03b9..0b5f4f59 100644
--- a/src/iceberg/test/json_internal_test.cc
+++ b/src/iceberg/test/json_internal_test.cc
@@ -211,7 +211,7 @@ TEST(JsonInternalTest, Snapshot) {
Snapshot snapshot{.snapshot_id = 1234567890,
.parent_snapshot_id = 9876543210,
.sequence_number = 99,
- .timestamp_ms =
TimePointMsFromUnixMs(1234567890123).value(),
+ .timestamp_ms = TimePointMsFromUnixMs(1234567890123),
.manifest_list = "/path/to/manifest_list",
.summary = summary,
.schema_id = 42};
@@ -403,7 +403,7 @@ TEST(JsonInternalTest, TableUpdateAddSnapshot) {
Snapshot{.snapshot_id = 123456789,
.parent_snapshot_id = 987654321,
.sequence_number = 5,
- .timestamp_ms = TimePointMsFromUnixMs(1234567890000).value(),
+ .timestamp_ms = TimePointMsFromUnixMs(1234567890000),
.manifest_list = "/path/to/manifest-list.avro",
.summary = {{SnapshotSummaryFields::kOperation,
DataOperation::kAppend}},
.schema_id = 1});
diff --git a/src/iceberg/test/metadata_io_test.cc
b/src/iceberg/test/metadata_io_test.cc
index 7b11cf47..16661235 100644
--- a/src/iceberg/test/metadata_io_test.cc
+++ b/src/iceberg/test/metadata_io_test.cc
@@ -74,7 +74,7 @@ class MetadataIOTest : public TempFileTestBase {
.snapshots = {std::make_shared<Snapshot>(Snapshot{
.snapshot_id = 3051729675574597004,
.sequence_number = 0,
- .timestamp_ms =
TimePointMsFromUnixMs(1515100955770).value(),
+ .timestamp_ms =
TimePointMsFromUnixMs(1515100955770),
.manifest_list = "s3://a/b/1.avro",
.summary = {{"operation", "append"}},
})},
diff --git a/src/iceberg/test/metadata_serde_test.cc
b/src/iceberg/test/metadata_serde_test.cc
index 3668817e..0d3b5959 100644
--- a/src/iceberg/test/metadata_serde_test.cc
+++ b/src/iceberg/test/metadata_serde_test.cc
@@ -111,7 +111,7 @@ TEST(MetadataSerdeTest, DeserializeV1Valid) {
.table_uuid = "d20125c8-7284-442c-9aea-15fee620737c",
.location = "s3://bucket/test/location",
.last_sequence_number = 0,
- .last_updated_ms = TimePointMsFromUnixMs(1602638573874).value(),
+ .last_updated_ms = TimePointMsFromUnixMs(1602638573874),
.last_column_id = 3,
.schemas = {expected_schema},
.current_schema_id = Schema::kInitialSchemaId,
@@ -170,7 +170,7 @@ TEST(MetadataSerdeTest, DeserializeV2Valid) {
auto expected_snapshot_1 = std::make_shared<Snapshot>(Snapshot{
.snapshot_id = 3051729675574597004,
.sequence_number = 0,
- .timestamp_ms = TimePointMsFromUnixMs(1515100955770).value(),
+ .timestamp_ms = TimePointMsFromUnixMs(1515100955770),
.manifest_list = "s3://a/b/1.avro",
.summary = {{"operation", "append"}},
});
@@ -179,7 +179,7 @@ TEST(MetadataSerdeTest, DeserializeV2Valid) {
.snapshot_id = 3055729675574597004,
.parent_snapshot_id = 3051729675574597004,
.sequence_number = 1,
- .timestamp_ms = TimePointMsFromUnixMs(1555100955770).value(),
+ .timestamp_ms = TimePointMsFromUnixMs(1555100955770),
.manifest_list = "s3://a/b/2.avro",
.summary = {{"operation", "append"}},
.schema_id = 1,
@@ -190,7 +190,7 @@ TEST(MetadataSerdeTest, DeserializeV2Valid) {
.table_uuid = "9c12d441-03fe-4693-9a96-a0705ddf69c1",
.location = "s3://bucket/test/location",
.last_sequence_number = 34,
- .last_updated_ms = TimePointMsFromUnixMs(1602638573590).value(),
+ .last_updated_ms = TimePointMsFromUnixMs(1602638573590),
.last_column_id = 3,
.schemas = {expected_schema_1, expected_schema_2},
.current_schema_id = 1,
@@ -200,10 +200,10 @@ TEST(MetadataSerdeTest, DeserializeV2Valid) {
.current_snapshot_id = 3055729675574597004,
.snapshots = {expected_snapshot_1, expected_snapshot_2},
.snapshot_log = {SnapshotLogEntry{
- .timestamp_ms =
TimePointMsFromUnixMs(1515100955770).value(),
+ .timestamp_ms =
TimePointMsFromUnixMs(1515100955770),
.snapshot_id = 3051729675574597004},
SnapshotLogEntry{
- .timestamp_ms =
TimePointMsFromUnixMs(1555100955770).value(),
+ .timestamp_ms =
TimePointMsFromUnixMs(1555100955770),
.snapshot_id = 3055729675574597004}},
.sort_orders = {expected_sort_order},
.default_sort_order_id = 3,
@@ -260,7 +260,7 @@ TEST(MetadataSerdeTest, DeserializeV2ValidMinimal) {
.table_uuid = "9c12d441-03fe-4693-9a96-a0705ddf69c1",
.location = "s3://bucket/test/location",
.last_sequence_number = 34,
- .last_updated_ms = TimePointMsFromUnixMs(1602638573590).value(),
+ .last_updated_ms = TimePointMsFromUnixMs(1602638573590),
.last_column_id = 3,
.schemas = {expected_schema},
.current_schema_id = 0,
@@ -298,7 +298,7 @@ TEST(MetadataSerdeTest, DeserializeStatisticsFiles) {
auto expected_snapshot = std::make_shared<Snapshot>(Snapshot{
.snapshot_id = 3055729675574597004,
.sequence_number = 1,
- .timestamp_ms = TimePointMsFromUnixMs(1555100955770).value(),
+ .timestamp_ms = TimePointMsFromUnixMs(1555100955770),
.manifest_list = "s3://a/b/2.avro",
.summary = {{"operation", "append"}},
.schema_id = 0,
@@ -326,7 +326,7 @@ TEST(MetadataSerdeTest, DeserializeStatisticsFiles) {
.table_uuid = "9c12d441-03fe-4693-9a96-a0705ddf69c1",
.location = "s3://bucket/test/location",
.last_sequence_number = 34,
- .last_updated_ms = TimePointMsFromUnixMs(1602638573590).value(),
+ .last_updated_ms = TimePointMsFromUnixMs(1602638573590),
.last_column_id = 3,
.schemas = {expected_schema},
.current_schema_id = 0,
@@ -361,7 +361,7 @@ TEST(MetadataSerdeTest,
DeserializePartitionStatisticsFiles) {
.table_uuid = "9c12d441-03fe-4693-9a96-a0705ddf69c1",
.location = "s3://bucket/test/location",
.last_sequence_number = 34,
- .last_updated_ms = TimePointMsFromUnixMs(1602638573590).value(),
+ .last_updated_ms = TimePointMsFromUnixMs(1602638573590),
.last_column_id = 3,
.schemas = {std::make_shared<Schema>(
std::vector<SchemaField>{SchemaField(/*field_id=*/1, "x", int64(),
@@ -376,7 +376,7 @@ TEST(MetadataSerdeTest,
DeserializePartitionStatisticsFiles) {
.snapshots = {std::make_shared<Snapshot>(Snapshot{
.snapshot_id = 3055729675574597004,
.sequence_number = 1,
- .timestamp_ms = TimePointMsFromUnixMs(1555100955770).value(),
+ .timestamp_ms = TimePointMsFromUnixMs(1555100955770),
.manifest_list = "s3://a/b/2.avro",
.summary = {{"operation", "append"}},
.schema_id = 0,
diff --git a/src/iceberg/test/snapshot_test.cc
b/src/iceberg/test/snapshot_test.cc
index e7a657fb..2be6a198 100644
--- a/src/iceberg/test/snapshot_test.cc
+++ b/src/iceberg/test/snapshot_test.cc
@@ -85,7 +85,7 @@ TEST_F(SnapshotTest, ConstructionAndFieldAccess) {
Snapshot snapshot{.snapshot_id = 12345,
.parent_snapshot_id = 54321,
.sequence_number = 1,
- .timestamp_ms =
TimePointMsFromUnixMs(1615569200000).value(),
+ .timestamp_ms = TimePointMsFromUnixMs(1615569200000),
.manifest_list = "s3://example/manifest_list.avro",
.summary = summary1,
.schema_id = 10};
@@ -107,13 +107,13 @@ TEST_F(SnapshotTest, ConstructionAndFieldAccess) {
TEST_F(SnapshotTest, EqualityComparison) {
// Test the == and != operators
- Snapshot snapshot1(12345, {}, 1,
TimePointMsFromUnixMs(1615569200000).value(),
+ Snapshot snapshot1(12345, {}, 1, TimePointMsFromUnixMs(1615569200000),
"s3://example/manifest_list.avro", summary1, {});
- Snapshot snapshot2(12345, {}, 1,
TimePointMsFromUnixMs(1615569200000).value(),
+ Snapshot snapshot2(12345, {}, 1, TimePointMsFromUnixMs(1615569200000),
"s3://example/manifest_list.avro", summary2, {});
- Snapshot snapshot3(67890, {}, 1,
TimePointMsFromUnixMs(1615569200000).value(),
+ Snapshot snapshot3(67890, {}, 1, TimePointMsFromUnixMs(1615569200000),
"s3://example/manifest_list.avro", summary3, {});
EXPECT_EQ(snapshot1, snapshot2);
diff --git a/src/iceberg/util/timepoint.cc b/src/iceberg/util/timepoint.cc
index ed52dddf..4fc17ae9 100644
--- a/src/iceberg/util/timepoint.cc
+++ b/src/iceberg/util/timepoint.cc
@@ -25,7 +25,7 @@
namespace iceberg {
-Result<TimePointMs> TimePointMsFromUnixMs(int64_t unix_ms) {
+TimePointMs TimePointMsFromUnixMs(int64_t unix_ms) {
return TimePointMs{std::chrono::milliseconds(unix_ms)};
}
@@ -35,7 +35,7 @@ int64_t UnixMsFromTimePointMs(TimePointMs time_point_ms) {
.count();
}
-Result<TimePointNs> TimePointNsFromUnixNs(int64_t unix_ns) {
+TimePointNs TimePointNsFromUnixNs(int64_t unix_ns) {
return TimePointNs{std::chrono::nanoseconds(unix_ns)};
}
diff --git a/src/iceberg/util/timepoint.h b/src/iceberg/util/timepoint.h
index ed303e1f..34ffedfc 100644
--- a/src/iceberg/util/timepoint.h
+++ b/src/iceberg/util/timepoint.h
@@ -22,7 +22,6 @@
#include <chrono>
#include "iceberg/iceberg_export.h"
-#include "iceberg/result.h"
namespace iceberg {
@@ -35,13 +34,13 @@ using TimePointNs =
std::chrono::time_point<std::chrono::system_clock,
std::chrono::nanoseconds>;
/// \brief Returns a TimePointMs from a Unix timestamp in milliseconds
-ICEBERG_EXPORT Result<TimePointMs> TimePointMsFromUnixMs(int64_t unix_ms);
+ICEBERG_EXPORT TimePointMs TimePointMsFromUnixMs(int64_t unix_ms);
/// \brief Returns a Unix timestamp in milliseconds from a TimePointMs
ICEBERG_EXPORT int64_t UnixMsFromTimePointMs(TimePointMs time_point_ms);
/// \brief Returns a TimePointNs from a Unix timestamp in nanoseconds
-ICEBERG_EXPORT Result<TimePointNs> TimePointNsFromUnixNs(int64_t unix_ns);
+ICEBERG_EXPORT TimePointNs TimePointNsFromUnixNs(int64_t unix_ns);
/// \brief Returns a Unix timestamp in nanoseconds from a TimePointNs
ICEBERG_EXPORT int64_t UnixNsFromTimePointNs(TimePointNs time_point_ns);