Support PostgreSQL INTERVAL, TIMETZ, BYTEA, and BIT types in Live Migration and expand IT coverage - #4095
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4095 +/- ##
============================================
+ Coverage 56.13% 56.19% +0.05%
- Complexity 6872 7341 +469
============================================
Files 1126 1126
Lines 68655 68766 +111
Branches 7765 7785 +20
============================================
+ Hits 38542 38645 +103
- Misses 27621 27626 +5
- Partials 2492 2495 +3
🚀 New features to boost your workflow:
|
3111d70 to
57e40ec
Compare
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances the Datastream-to-Spanner live migration tool by introducing support for several complex PostgreSQL data types. By refining binary data serialization and broadening the integration test suite, these changes ensure more robust and accurate data mapping during the migration process. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces support for formatting timeTz and interval Datastream record types to JSON, and updates byte array serialization to use hex encoding instead of base64. It also expands integration tests to cover various PostgreSQL-to-Spanner type mappings. Feedback on the changes highlights two key issues: first, a bug in the interval formatting logic that incorrectly handles negative durations and mixed-sign intervals, potentially producing invalid ISO-8601 strings; second, a potential NullPointerException when extracting time and offset fields from the Datastream record without null-safety checks.
cad3436 to
8cbcf59
Compare
shreyakhajanchi
left a comment
There was a problem hiding this comment.
Can you please check that the type behaviour is consistent between bulk and live migration templates?
ee8a231 to
5a8b039
Compare
* Replaced hardcoded hex strings with readable inline conversions in ITs.
…me ITs, and document 24:00:00 wrapping bug
ba1c687 to
7c6a0c3
Compare
…SQLDatastreamToSpannerDataTypesIT, and postgresql-data-types.sql
…arbit/bit varying
Adds Datastream-to-Spanner live migration support for PostgreSQL
INTERVAL,TIMETZ,BYTEA,BITandVARBITstring data types, and expands end-to-end integration test coverage for already supported PostgreSQL data types.Data Type Support & Behavior Changes:
Additional Changes