MOD-11358 integrate ijson to the json module#1394
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1394 +/- ##
==========================================
- Coverage 79.28% 78.09% -1.19%
==========================================
Files 15 16 +1
Lines 3707 3908 +201
==========================================
+ Hits 2939 3052 +113
- Misses 768 856 +88 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@AvivDavid23 what happens to the coverage? |
d8e4be1 to
06d0a2d
Compare
d2037f3 to
6b30a0a
Compare
|
Whats our status? |
ae81ba1 to
274a91e
Compare
* initial, but tests fails * change all to clone for testing * Revert "change all to clone for testing" This reverts commit 5af50a4. * Revert "Revert "change all to clone for testing"" This reverts commit 852a223. * Revert "Revert "Revert "change all to clone for testing""" This reverts commit 4252d45. * complies, tests are failing * better macro * debug * fix values set for arrays * Revert "debug" This reverts commit d3e8e5518fea0aa0fcde5e781f7f68c9bffbc1ea. * remove print * Revert "Revert "debug"" This reverts commit 3056dfc5b907eca917267dee636facfcfab82102. * fix tests * Revert "Revert "Revert "debug""" This reverts commit cd40fd7aa2db86ca51e82a0604f215f8fbcc5ade. * c_api impl * cargo fmt * register c_api ver 6 * add another test * test * fix * more coverage * more coverage * more coverage * test also integer + float numerics * remove get_at c api * bump ijson * update c_api * fix * CR * cargo fmt * c_api * fmt * free data * c_api * header fix * cr * add benchmark * c_api * refine test * refine test * add json_api_get_value_from_ptr * fix c_api * fmt * fix bench * move is_equal of select values * fix (cherry picked from commit 9a5f051)
* initial, but tests fails * change all to clone for testing * Revert "change all to clone for testing" This reverts commit 5af50a4. * Revert "Revert "change all to clone for testing"" This reverts commit 852a223. * Revert "Revert "Revert "change all to clone for testing""" This reverts commit 4252d45. * complies, tests are failing * better macro * debug * fix values set for arrays * Revert "debug" This reverts commit d3e8e5518fea0aa0fcde5e781f7f68c9bffbc1ea. * remove print * Revert "Revert "debug"" This reverts commit 3056dfc5b907eca917267dee636facfcfab82102. * fix tests * Revert "Revert "Revert "debug""" This reverts commit cd40fd7aa2db86ca51e82a0604f215f8fbcc5ade. * c_api impl * cargo fmt * register c_api ver 6 * add another test * test * fix * more coverage * more coverage * more coverage * test also integer + float numerics * remove get_at c api * bump ijson * update c_api * fix * CR * cargo fmt * c_api * fmt * free data * c_api * header fix * cr * add benchmark * c_api * refine test * refine test * add json_api_get_value_from_ptr * fix c_api * fmt * fix bench * move is_equal of select values * fix (cherry picked from commit 9a5f051)
| )); | ||
|
|
||
| for v in 1..6 { | ||
| for v in 1..7 { |
There was a problem hiding this comment.
We should not register API versions we can't supply
| for v in 1..7 { | |
| for v in 6..=6 { |
There was a problem hiding this comment.
i don't understand. we're not supplying v7 nor are we claiming to. ranges are defined to be half open. 1..7 has 6 elements; {1, 2, 3, 4, 5, 6}
There was a problem hiding this comment.
The =6 is a nitpick, I think it's clearer than 7
But I'm talking about the minimal API - the module cannot supply v1-v5 anymore.
Currently, a module can register to any of 1-5 and crash the first time it uses it. If you only expose v6 now, outdated modules will simply not link to JSON and behave as if it's missing.
The range in this for loop should only include 1 element - {6}
Note
Refactors JSON path/value handling to support borrowed/owned values, adds typed numeric-array operations, and upgrades the C API to V6 with new allocation and access patterns, alongside dependency bumps and tests/benchmarks.
ValueRefto return either borrowed or owned values; updateSelectValuetrait methods (values,items,get_key,get_index) and equality viais_equal.PathCalculator/results to useValueRef; add helper macros to traverseValueRef; adjust filter, scan, and iterator logic.calc_once/public APIs and CLI output to handleValueRef.ivalue_manager(e.g., i8/u8/i16/u16/f16/bf16/i32/u32/f32/i64/u64/f64) forNUMINCRBY,ARRINSERT,ARRTRIM, etc.allocJson/freeJson, changegetAtandnextKeyValueto write via pointers and return status; wrap values withValueWrapperto manage ownership; export new symbols.KeyValue, type checks, RESP3 serialization) toValueRef; use sharedis_equal.ijsonrevision; addhalf(and transitivecrunchy,paste).homogeneous_integer_arrays.jsondataset andjson_set_homogeneous_integer_arrays.ymlbenchmark.Written by Cursor Bugbot for commit 7576f5e. This will update automatically on new commits. Configure here.