feat: Implement Type Casting and toString for Literals#206
Merged
Conversation
HeartLinked
force-pushed
the
feat/literal2
branch
from
September 3, 2025 09:36
b599a7a to
9dfc38a
Compare
nullccxsy
reviewed
Sep 4, 2025
HeartLinked
force-pushed
the
feat/literal2
branch
from
September 4, 2025 07:27
3f912eb to
59e57fc
Compare
wgtmac
requested changes
Sep 9, 2025
HeartLinked
force-pushed
the
feat/literal2
branch
2 times, most recently
from
September 10, 2025 06:26
cf43748 to
406a3f2
Compare
wgtmac
requested changes
Sep 11, 2025
wgtmac
reviewed
Sep 11, 2025
nullccxsy
reviewed
Sep 12, 2025
HeartLinked
force-pushed
the
feat/literal2
branch
from
September 12, 2025 06:45
406a3f2 to
9525400
Compare
HeartLinked
force-pushed
the
feat/literal2
branch
from
September 19, 2025 10:40
a62ac22 to
1e106ed
Compare
HuaHuaY
reviewed
Sep 23, 2025
HuaHuaY
reviewed
Sep 23, 2025
HuaHuaY
reviewed
Sep 23, 2025
HeartLinked
force-pushed
the
feat/literal2
branch
from
September 23, 2025 07:41
2beaf96 to
632ec79
Compare
wgtmac
reviewed
Sep 23, 2025
wgtmac
reviewed
Sep 24, 2025
wgtmac
requested changes
Sep 29, 2025
| case TypeId::kTimestamp: | ||
| case TypeId::kTimestampTz: { | ||
| throw IcebergError("Not implemented: ToString for " + type_->ToString()); | ||
| return std::to_string(std::get<int64_t>(value_)); |
Member
There was a problem hiding this comment.
I think these switch cases can be easily rewritten by return std::to_string(std::get<typename LiteralTraits<type_id>::ValueType>(value_)); once #185 is merged.
HeartLinked
force-pushed
the
feat/literal2
branch
2 times, most recently
from
October 10, 2025 03:53
a194923 to
0abbf84
Compare
wgtmac
approved these changes
Oct 10, 2025
Fokko
approved these changes
Oct 10, 2025
HeartLinked
force-pushed
the
feat/literal2
branch
2 times, most recently
from
October 11, 2025 02:46
56088c8 to
b10b3d9
Compare
Contributor
Author
|
@Fokko I have resolved the conflicts and now ready for merge. Thanks! |
Contributor
|
@HeartLinked It looks like more conflicts surfaced 😢 |
HeartLinked
force-pushed
the
feat/literal2
branch
from
October 13, 2025 08:28
b10b3d9 to
183c18b
Compare
Contributor
Author
This is due to the merge of #253 . I've fixed the conflicts again. |
Contributor
|
Thanks @HeartLinked ! |
gty404
pushed a commit
to gty404/iceberg-cpp
that referenced
this pull request
Oct 17, 2025
- Implements the complete type casting logic for `iceberg::Literal` in the `LiteralCaster` class to align with the Java reference implementation. This is critical for expression evaluation and predicate pushdown. - Add basic implementation for fixed type. - Updated `ToString()` to match Java's output format for better consistency (e.g., `X'...'` for binary). - Added comprehensive unit tests to validate all new casting logic and `ToString()` formatting.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
iceberg::Literalin theLiteralCasterclass to align with the Java reference implementation. This is critical for expression evaluation and predicate pushdown.ToString()to match Java's output format for better consistency (e.g.,X'...'for binary).ToString()formatting.