All Versions
27
Latest Version
Avg Release Cycle
62 days
Latest Release
540 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v0.10.0 Changes
August 13, 2020C++ API queries and model classes for more feature-rich generated code.
โก๏ธ C-API cleanup & docs updates, including the following changes (some of them breaking, mostly due to renames):Misc
- ๐ new property type: DateNano for datetime with nanosecond precision
- new store options obx_opt_*()
- validate_on_open - to validate the database during openining
- put_padding_mode - configure the padding used by your flatbuffers implementation
- use_previous_commit - roll-back the database to the previously committed version
- read_only - open the database in the read only mode
- debug_flags - configure debug logging
Cursor
- remove obx_cursor2(), use obx_cursor() in combination with obx_store_entity_id()
- rename obx_cursor_put_mode() to obx_cursor_put4()
- obx_cursor_put() drops the last parameter
checkForPreviousValue
and introduced a complementary obx_cursor_put_new() - remove obx_cursor_put_padded()
- rename obx_cursor_backlink_bytes() to obx_cursor_backlinks()
- rename obx_cursor_ts_limits() to obx_cursor_ts_min_max()
- rename obx_cursor_ts_limits_range() to obx_cursor_ts_min_max_range()
Box
- rename obx_box_put() to obx_box_put5()
- rename obx_box_put_object() to obx_box_put_object4()
- change obx_box_put_many to fail when any of the individual inserts/updates fails and new obx_box_put_many5() to override this behavior
- new obx_box_store() to get access to OBX_store* owning the given box
- new obx_box_insert() obx_box_update() for for insert and update semantics, same as put mode arg in obx_box_put5()
- new obx_box_put() without a mode argument (defaults to PUT)
- new obx_box_put_object() without a mode argument (defaults to PUT)
- new obx_box_ts_min_max() for time-series databases
- new obx_box_ts_min_max_range() for time-series databases
Async
- rename obx_async_put_mode() to obx_async_put5()
- rename obx_async_id_put() to obx_async_put_object()
- rename obx_async_id_insert() to obx_async_insert_object()
๐ Query builder
- obx_qb_{type}{operation}() function naming changes to obx_qb{operation}_{type}(), e.g. obx_qb_int_equal() becomes obx_qb_equals_int()
- obx_qb_{operation}_{type}() functions taking multiple arguments have an "s" at the end, indicating plural, e.g. obx_qb_in_int64s()
- operation
equal
becomesequals
,greater
becomesgreater_than
,less
becomesless_than
- obx_qb_greater_than_string() drops
with_equal
argument in favor of the new obx_qb_greater_or_equal_string() function - obx_qb_less_than_string() drops
with_equal
argument in favor of the new obx_qb_less_or_equal_string() function - change obx_qb_in_strings() argument
const char* values[]
changes toconst char* const values[]
,
i.e. const array of const char pointers - obx_qb_greater_than_bytes() drops
with_equal
argument in favor of the new obx_qb_greater_or_equal_bytes() function - obx_qb_less_than_bytes() drops
with_equal
argument in favor of the new obx_qb_less_or_equal_bytes() function
Query
Limit and offset are now part of the query state instead of function arguments, therefore:
- new obx_query_offset() and obx_query_limit() set persistent offset/limit for all future calls to other query functions
- obx_query_find(), obx_query_visit(), obx_query_find_ids(), as well as the cursor alternatives,
all dropoffset
andlimit
arguments - ๐ note: some query functions, such as count/remove don't support non-zero offset/limit yet.
- obx_query_{type}param() function naming changes to obx_query_param{type}(), e.g. obx_query_string_param()
becomes obx_query_param_string() or obx_query_param_strings() for the plural variant - obx_query_{type}param_alias() function naming changes to obx_query_param_alias{type}(), e.g. obx_query_string_param_alias()
becomes obx_query_param_alias_string() - obx_query_param_strings() and obx_query_param_alias_strings() argument
const char* values[]
๐ changes toconst char* const values[]
, i.e. const array of const char pointers - obx_query_prop_{type}find() function naming changes to obx_query_prop_find{type}s(), with an "s" indicating the return
type is plural, e.g. obx_query_prop_find_strings - remove deprecated obx_query_prop_distinct_string()
-
v0.9.2 Changes
June 30, 2020- Rename obx_cursor_ts_limits() to obx_cursor_ts_min_max()
- โ Add C++ APIs for query links and TS min/max
-
v0.9.1 Changes
June 23, 2020- C++ interface improvements:
- "Box::getOptional()" overloads returning std::optional
- "Box::put()" overloads taking vectors of std::unique_ptr and std::optional
- Query methods: find(), findIds(), count(), remove(), ...
- Ensure double-free can't happen (added explicit copy & move constructors)
- ๐ Fixed Windows exported symbols - recently added APIs were missing
- New "obx_cursor_put_object4()" overload taking PutMode as an argument
- Make *_close() functions consistently accept nullptr
๐ See also the Generator companion project.
(https://objectbox.io/introducing-objectbox-generator-plus-c-api/) - C++ interface improvements:
-
v0.9.0 Changes
June 18, 2020- ๐ C++ API added: see include/objectbox-cpp.h
- ๐ Initial time series support (ObjectBox TS only)
- ๐ New "put object" functions that e.g. handle ID assignment
- Several internal improvements, e.g. query links are resolved faster
๐ See also: https://objectbox.io/introducing-objectbox-generator-plus-c-api/
-
v0.8.2 Changes
January 13, 2020๐ Fix ARM build incorrectly returning TRUE in obx_supports_bytes_array()
-
v0.8.1 Changes
December 12, 2019- Bug fix for obx_box_rel_get_ids(), which did return wrong IDs in some cases (please update!)
- Several refinements on property queries, for example:
- Maintain floating point point semantics on aggregates, e.g. infinity + 1 == infinity (no overflow)
- Allow aggregates on Date type properties
- Return negative counts if results were obtained using a short cut (API change to int64_t*)
-
v0.8.0 Changes
December 05, 2019- Property queries compute sums and averages more precisely (improved algorithms and wider types)
- Property queries now consider unsigned types
- Added an additional out parameter for count obx_query_prop_*()
- Added put alternatives to "put" with cursor: obx_cursor_insert() and obx_cursor_update()
- Added obx_query_clone() to allow clones to run in parallel on separate threads
-
v0.7.2 Changes
October 30, 2019๐ Allows access to C API from Java lib starting from 2.4.1, minor fixes
-
v0.7.1 Changes
October 16, 2019๐ Ordered queries: improved general performance and fixed a performance regression on 32 bit
-
v0.7.0 Changes
September 09, 2019- โ Added observers to listen to data changes (e.g. obx_observe())
- Added obx_last_error_pop() to get and reset the last error
- Added obx_box_rel_get_backlink_ids() to get backlinks of standalone relations
- iOS and macOS related improvements; e.g. obx_posix_sem_prefix_set() for sand-boxed macOS apps
- ๐ Better resilience for passing in NULL for many functions
- ๐ Improved API docs
- Quite a few functions got comments
- Online API docs (Doxygen)
- ๐ Minor fixes
(Breaking) Changes
- obx_txn_success(txn) now also closes the transaction making a subsequent obx_txn_close(txn) unnecessary and illegal.
Please adjust your code using one of two possibilities (depending on your code flow):
- drop
obx_txn_close(txn)
after callingobx_txn_success(txn)
, or - replace
obx_txn_success(txn)
withobx_txn_mark_success(txn, true)
if you want to keepobx_txn_close(txn)
- drop
- Function renames to drop "create" postfix: obx_query_builder(), obx_query(), obx_cursor(), obx_model(), obx_bytes_array(), obx_id_array()
- Property queries API clean up using a OBX_query_prop struct