Skip to main content

This week at Dozer #7

ยท 5 min read
Abhishek

๐ŸŒŸ Welcome to this week's update on Dozer! We are thrilled to announce the release of version v0.1.20 which brings a range of new features and improvements. Our team has been working diligently to enhance the overall functionality, and we are eager for you to experience all the new additions. Here are the updates for this week.

We're excited to share with you the latest developments and progress that we have made with Dozer v0.1.20. But first, let's have a quick look at the previous release v0.1.19 highlights.

๐Ÿ”ฅ Glimpse of v0.1.19 Release ๐Ÿ”ฅโ€‹

The v0.1.19 release brought some significant improvements and fixes. Some key updates included:

  1. Configurable disabling of gRPC & REST APIs (#1441) - This feature allows users to disable gRPC and REST APIs via config settings, offering more flexibility and control.
  2. Fixes to Snowflake connector (#1462) - The Snowflake connector received important fixes, enhancing its reliability like adding custom snowflake role etc.
  3. Implementation of NOW() function(#1467) - The NOW() function was added, providing an easy way to obtain the current date and time in SQL queries.
  4. JSON & JSONB and their array type support for PostgreSQL connector (#1200) - This update brought support for JSON and JSONB data types, along with their array type counterparts, enhancing the way JSON data is handled.
  5. Introduction of the cloud feature flag (#1513) - This feature flag allows developers to control the availability of the cloud-related features in the build.

๐ŸŒŸ New Contributors for v0.1.19:

We would like to extend a warm welcome to our new contributor @universalmind303 who made their first contribution in their first contribution in #1441. Thank you for your valuable contributions to Dozer!

We appreciate your support and look forward to your future contributions! Check out the v0.1.19 release notes here.


Now, let's dive into the details of our latest release, v0.1.20.

๐Ÿš€ Release v0.1.20 Highlights ๐Ÿš€โ€‹

โณ Record Lifetime and Expression Support in TTL (#1453, #1529) Dozer now allows users to define the lifetime of records, and you can even use expressions in the Time to Live (TTL) configurations. This feature helps maintain cleaner, more efficient databases by automatically managing the lifecycle of records.

๐Ÿ”„ Run Migration Only When Necessary (#1515, #1530) Dozer now intelligently runs migrations only when needed. This enhancement minimizes unnecessary migrations and improves overall system performance. In addition, Dozer allows starting the API on a selected migration number.

๐Ÿ“Š JSON_VALUE() & JSON_QUERY() SQL Support (#1526) This release introduces support for JSON_VALUE() and JSON_QUERY() SQL functions, allowing users to query JSON data more effectively and efficiently.

{
"test_jsonb": {"bar": {"1": 1, "2": 2, "3": 3}, "baz": null, "foo": [1, 2, 3]},
"test_json": [{"digit": 30, "letter": "A"}, {"digit": 31, "letter": "B"}]
}
select
JSON_QUERY(test_jsonb,'$.bar') AS bar,
JSON_VALUE(test_jsonb,'$.baz') AS baz,
JSON_QUERY(test_jsonb,'$.foo') AS foo,
JSON_VALUE(test_json,'$[0].letter') AS first_letter,
JSON_QUERY(test_json) AS all
into test_uuid_test
from test_uuid;

select
JSON_QUERY(test_json,'$[*].digit') AS all_digits
into test_uuid_res
from test_uuid;
Result
"bar": {
"struct_value": {
"fields": [
{
"key": "1",
"value": {
"number_value": 1
}
},
{
"key": "2",
"value": {
"number_value": 2
}
},
{
"key": "3",
"value": {
"number_value": 3
}
}
]
}
},
"baz": {
"null_value": "NULL_VALUE"
},
"foo": {
"list_value": {
"values": [
{
"number_value": 1
},
{
"number_value": 2
},
{
"number_value": 3
}
]
}
},
"first_letter": {
"list_value": {
"values": [
{
"string_value": "A"
}
]
}
},
"all": {
"list_value": {
"values": [
{
"list_value": {
"values": [
{
"struct_value": {
"fields": [
{
"key": "letter",
"value": {
"string_value": "A"
}
},
{
"key": "digit",
"value": {
"number_value": 30
}
}
]
}
},
{
"struct_value": {
"fields": [
{
"key": "letter",
"value": {
"string_value": "B"
}
},
{
"key": "digit",
"value": {
"number_value": 31
}
}
]
}
}
]
}
}
]
}
}
"all_digits": {
"list_value": {
"values": [
{
"number_value": 30
},
{
"number_value": 31
}
]
}
}

๐Ÿ†• Deltalake Upgrade and Arrow Conversion Function (#1531, #1532) We've upgraded the Deltalake to version 0.8.0, and refactored the Arrow conversion function, providing better compatibility and performance in data processing.

We're proud of the progress we've made with both v0.1.19 and the latest v0.1.20 release. Our team is continually working to improve Dozer, and we're grateful for the feedback and contributions from our amazing community, including our new contributors. Keep the ideas coming, and let's keep building together! ๐Ÿš€

Dozer v0.1.20 is available now. Check out the release notes here.

Looking Forward ๐ŸŒˆโ€‹

As we continue to make strides in improving Dozer, we remain committed to enhancing its features and functionality. Your feedback is invaluable to us, so please don't hesitate to reach out with any suggestions or ideas. You can always open an issue for feature request OR start a discusisuon thread under our GitHub Q&A category. Together, we can make Dozer the best it can be! โœจ ๐Ÿง™โ€โ™€๏ธ

Dozer Crosses 1k Stars on GitHub ๐ŸŽ‰โ€‹

We are thrilled to announce that Dozer has crossed 1,000 stars on GitHub! We are grateful for the support and contributions from our community. Thank you! ๐Ÿ™Œ

Full Changelog:โ€‹

Contact us ๐Ÿ“ฌโ€‹