All Versions
18
Latest Version
Avg Release Cycle
47 days
Latest Release
114 days ago

Changelog History
Page 1

  • v0.11.0

    November 12, 2020
    • โšก๏ธ update CMakeLists.txt to simplify integration for users, e.g. with FetchContent,
      โšก๏ธ see the updated installation docs
    • change cursor and box read functions get/first/current/next void ** argument to const void**
    • ๐Ÿ”„ change multiple query and query builder functions int count argument to size_t count
    • change observer signatures (obx_err return value and size_t count argument)
    • new obx_model_entity_flags()
    • new obx_opt_async_*() to configure async box behavior
    • ๐Ÿ†• new greater-or-equal and less-or-equal query conditions for integers and floats
    • new obx_query_offset_limit() setter for offset and limit in a single call
    • ๐Ÿ”€ new obx_sync_available() to check whether the loaded runtime library supports ObjectBox Sync
    • ๐Ÿ‘• clean up linter warnings in the examples and objectbox.h(pp)

    C++ (only)

    • ๐Ÿ“‡ rename objectbox-cpp.h to objectbox.hpp
    • ๐Ÿ”„ change C++ Store Options to a "builder" pattern and expose all available options
    • ๐Ÿ†• new C++ AsyncBox and Box::async() to expose asynchronous operations
  • v0.10.0

    August 13, 2020

    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 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 becomes equals, greater becomes greater_than, less becomes less_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 to const 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 drop offset and limit 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 to const 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

    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

    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/)

  • v0.9.0

    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

    January 13, 2020

    ๐Ÿ‘Œ Fix ARM build incorrectly returning TRUE in obx_supports_bytes_array()

  • v0.8.1

    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

    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

    October 30, 2019

    ๐Ÿ‘ Allows access to C API from Java lib starting from 2.4.1, minor fixes

  • v0.7.1

    October 16, 2019

    ๐ŸŽ Ordered queries: improved general performance and fixed a performance regression on 32 bit