Skip to content

Commit 459fd9e

Browse files
committed
Merge tag 'v14.10.1' into next-major
2 parents ac249ef + 058ecce commit 459fd9e

37 files changed

+462
-224
lines changed

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,32 @@
2121

2222
----------------------------------------------
2323

24+
# 14.10.1 Release notes
25+
26+
### Enhancements
27+
* It is no longer an error to set a base url for an App with a trailing slash - for example, `https://services.cloud.mongodb.com/` instead of `https://services.cloud.mongodb.com` - before this change that would result in a 404 error from the server ([PR #7791](https://github.com/realm/realm-core/pull/7791)).
28+
* Performance has been improved for range queries on integers and timestamps. Requires that you use the "BETWEEN" operation in MQL or the Query::between() method when you build the query. (PR [#7785](https://github.com/realm/realm-core/pull/7785))
29+
* Expose `Obj::add_int()` in the bindgen spec. ([PR #7797](https://github.com/realm/realm-core/pull/7797)).
30+
31+
### Fixed
32+
* Valgrind could report a branch on an uninitialized read when opening something that is not an encrypted Realm file as an encrypted Realm file ([PR #7789](https://github.com/realm/realm-core/pull/7789), since v14.10.0).
33+
* Opening an FLX realm asynchronously may not wait to download all data ([#7720](https://github.com/realm/realm-core/issues/7720), since FLX sync was introduced).
34+
* Clearing a List of Mixed in an upgraded file would lead to an assertion failing ([#7771](https://github.com/realm/realm-core/issues/7771), since 14.0.0)
35+
* Fix compilation with Xcode 16 ([PR #7802](https://github.com/realm/realm-core/pull/7802))
36+
37+
### Breaking changes
38+
* None.
39+
40+
### Compatibility
41+
* Fileformat: Generates files with format v24. Reads and automatically upgrade from fileformat v10. If you want to upgrade from an earlier file format version you will have to use RealmCore v13.x.y or earlier.
42+
43+
-----------
44+
45+
### Internals
46+
* Switch to building the Swift package and Cocoa binaries as C++20 ([PR #7802](https://github.com/realm/realm-core/pull/7802)).
47+
48+
----------------------------------------------
49+
2450
# 14.10.0 Release notes
2551

2652
### Enhancements

CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ endif()
3434
set(PROJECT_VERSION ${DEP_VERSION})
3535

3636
# Project-wide build flags
37-
set(CMAKE_CXX_STANDARD 17)
37+
if (NOT DEFINED CMAKE_CXX_STANDARD)
38+
set(CMAKE_CXX_STANDARD 17)
39+
endif()
3840
set(CMAKE_CXX_STANDARD_REQUIRED ON)
3941
set(CMAKE_CXX_EXTENSIONS OFF)
4042

Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import PackageDescription
44
import Foundation
55

6-
let versionStr = "14.10.0"
6+
let versionStr = "14.10.1"
77
let versionPieces = versionStr.split(separator: "-")
88
let versionCompontents = versionPieces[0].split(separator: ".")
99
let versionExtra = versionPieces.count > 1 ? versionPieces[1] : ""
@@ -569,5 +569,5 @@ let package = Package(
569569
.headerSearchPath("../"),
570570
] + cxxSettings) as [CXXSetting]),
571571
],
572-
cxxLanguageStandard: .cxx17
572+
cxxLanguageStandard: .cxx20
573573
)

bindgen/spec.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -808,6 +808,7 @@ classes:
808808
- sig: '(column: ColKey, value: Mixed, is_default: bool)'
809809
suffix: with_default
810810
set_collection: '(column: ColKey, type: CollectionType) -> Obj'
811+
add_int: '(column: ColKey, value: int64_t) -> Obj'
811812
get_linked_object: '(column: ColKey) const -> Nullable<Obj>'
812813
to_string: () const -> std::string
813814
get_backlink_count: '() const -> count_t'

dependencies.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
PACKAGE_NAME: realm-core
2-
VERSION: 14.10.0
2+
VERSION: 14.10.1
33
OPENSSL_VERSION: 3.2.0
44
ZLIB_VERSION: 1.2.13
55
# https://github.com/10gen/baas/commits

evergreen/config.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1682,7 +1682,6 @@ buildvariants:
16821682
expansions:
16831683
cmake_bindir: "/opt/homebrew/bin"
16841684
cmake_toolchain_file: "./tools/cmake/xcode.toolchain.cmake"
1685-
extra_flags: "-DCMAKE_XCODE_ATTRIBUTE_SDKROOT=iphoneos"
16861685
cmake_build_tool_options: "-sdk iphonesimulator -arch arm64"
16871686
cmake_generator: Xcode
16881687
max_jobs: $(sysctl -n hw.logicalcpu)
@@ -1715,12 +1714,11 @@ buildvariants:
17151714
expansions:
17161715
cmake_url: "https://s3.amazonaws.com/static.realm.io/evergreen-assets/cmake-3.26.3-macos-universal.tar.gz"
17171716
cmake_bindir: "./cmake_binaries/CMake.app/Contents/bin"
1718-
cmake_toolchain_file: "./tools/cmake/xcode.toolchain.cmake"
17191717
cmake_generator: Xcode
17201718
max_jobs: $(sysctl -n hw.logicalcpu)
17211719
cmake_build_type: Release
17221720
xcode_developer_dir: /Applications/Xcode13.1.app/Contents/Developer
1723-
extra_flags: -DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_OSX_ARCHITECTURES=x86_64
1721+
extra_flags: -DREALM_ENABLE_ASSERTIONS=ON
17241722
tasks:
17251723
- name: benchmarks
17261724
- name: compile_test
@@ -1732,12 +1730,11 @@ buildvariants:
17321730
expansions:
17331731
cmake_url: "https://s3.amazonaws.com/static.realm.io/evergreen-assets/cmake-3.26.3-macos-universal.tar.gz"
17341732
cmake_bindir: "./cmake_binaries/CMake.app/Contents/bin"
1735-
cmake_toolchain_file: "./tools/cmake/xcode.toolchain.cmake"
17361733
cmake_generator: Xcode
17371734
max_jobs: $(sysctl -n hw.logicalcpu)
17381735
cmake_build_type: Release
17391736
xcode_developer_dir: /Applications/Xcode13.1.app/Contents/Developer
1740-
extra_flags: -DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_OSX_ARCHITECTURES=arm64
1737+
extra_flags: -DREALM_ENABLE_ASSERTIONS=ON
17411738
tasks:
17421739
- name: benchmarks
17431740

src/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
add_subdirectory(realm)
22
add_subdirectory(external/IntelRDFPMathLib20U2)
3-
add_subdirectory(external/bson EXCLUDE_FROM_ALL)
3+
if (NOT REALM_BUILD_LIB_ONLY)
4+
add_subdirectory(external/bson EXCLUDE_FROM_ALL)
5+
endif()
46

57
if (REALM_ENABLE_GEOSPATIAL)
68
add_subdirectory(external/s2)

src/realm/array_integer.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,19 @@ Mixed ArrayInteger::get_any(size_t ndx) const
3535
return Mixed(get(ndx));
3636
}
3737

38+
size_t ArrayInteger::find_first_in_range(int64_t from, int64_t to, size_t start, size_t end) const
39+
{
40+
if (m_ubound >= from && m_lbound <= to) {
41+
while (start < end) {
42+
auto val = get(start);
43+
if (from <= val && val <= to)
44+
return start;
45+
start++;
46+
}
47+
}
48+
return realm::not_found;
49+
}
50+
3851
Mixed ArrayIntNull::get_any(size_t ndx) const
3952
{
4053
return Mixed(get(ndx));
@@ -182,6 +195,18 @@ size_t ArrayIntNull::find_first(value_type value, size_t begin, size_t end) cons
182195
return find_first<Equal>(value, begin, end);
183196
}
184197

198+
size_t ArrayIntNull::find_first_in_range(int64_t from, int64_t to, size_t start, size_t end) const
199+
{
200+
if (m_ubound >= from && m_lbound <= to) {
201+
for (size_t i = start; i < end; i++) {
202+
auto val = get(i);
203+
if (val && *val >= from && *val <= to)
204+
return i;
205+
}
206+
}
207+
return realm::not_found;
208+
}
209+
185210
void ArrayIntNull::get_chunk(size_t ndx, value_type res[8]) const noexcept
186211
{
187212
// FIXME: Optimize this

src/realm/array_integer.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ class ArrayInteger : public Array, public ArrayPayload {
6464
}
6565
template <class cond>
6666
bool find(value_type value, size_t start, size_t end, QueryStateBase* state) const;
67+
size_t find_first_in_range(int64_t from, int64_t to, size_t start, size_t end) const;
6768

6869
template <class T>
6970
static ref_type typed_write(ref_type ref, T& out, Allocator& alloc)
@@ -140,6 +141,7 @@ class ArrayIntNull : public Array, public ArrayPayload {
140141

141142

142143
size_t find_first(value_type value, size_t begin = 0, size_t end = npos) const;
144+
size_t find_first_in_range(int64_t from, int64_t to, size_t start, size_t end) const;
143145

144146
template <class T>
145147
static ref_type typed_write(ref_type ref, T& out, Allocator& alloc)

src/realm/array_mixed.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,9 @@ void ArrayMixed::clear()
217217
Array::set(payload_idx_int, 0);
218218
Array::set(payload_idx_pair, 0);
219219
Array::set(payload_idx_str, 0);
220-
Array::set(payload_idx_ref, 0);
220+
if (Array::size() > payload_idx_ref) {
221+
Array::set(payload_idx_ref, 0);
222+
}
221223
if (Array::size() > payload_idx_key) {
222224
if (auto ref = Array::get_as_ref(payload_idx_key)) {
223225
Array::destroy(ref, m_composite.get_alloc());

0 commit comments

Comments
 (0)