Releases: objectbox/objectbox-c
ObjectBox C and C++ v0.10.0
C++ 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
checkForPreviousValueand 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
equalbecomesequals,greaterbecomesgreater_than,lessbecomesless_than - obx_qb_greater_than_string() drops
with_equalargument in favor of the new obx_qb_greater_or_equal_string() function - obx_qb_less_than_string() drops
with_equalargument 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_equalargument in favor of the new obx_qb_greater_or_equal_bytes() function - obx_qb_less_than_bytes() drops
with_equalargument 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 dropoffsetandlimitarguments - 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()
ObjectBox C/C++ 0.9.1
- 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/)
ObjectBox C/C++ 0.9.0
- 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/
ObjectBox C 0.8.2
Fix ARM build incorrectly returning TRUE in obx_supports_bytes_array()
ObjectBox C 0.8.1
Improved property queries, fix for n:m standalone relations, query cloning (0.8.0).
Check the full changelog for details.
ObjectBox C 0.7.2
Allows access to C API from Java lib starting from 2.4.1, minor fixes
v0.7.1
Ordered queries: improved general performance and fixed a performance regression on 32 bit
ObjectBox C 0.7
Added data observers, quite a few API changes, and more...
See changelog for details.
ObjectBox C 0.6.0
Big steps ahead with the new Box and Async APIs, re-worked transactions, etc.