Merge branch '0.13.x'
* 0.13.x: [0.13.2] Bump version fix for upgrading optional date properties
This commit is contained in:
commit
78a8311ba6
11
CHANGELOG.md
11
CHANGELOG.md
|
@ -9,6 +9,17 @@ x.x.x Release notes (yyyy-MM-dd)
|
||||||
### Bugfixes
|
### Bugfixes
|
||||||
* None
|
* None
|
||||||
|
|
||||||
|
0.13.2 Release notes (2016-5-26)
|
||||||
|
=============================================================
|
||||||
|
### Breaking changes
|
||||||
|
* None
|
||||||
|
|
||||||
|
### Enhancements
|
||||||
|
* None
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
* Fix for crash when updating Realms with optional date properties to the new file format
|
||||||
|
|
||||||
0.13.1 Release notes (2016-5-24)
|
0.13.1 Release notes (2016-5-24)
|
||||||
=============================================================
|
=============================================================
|
||||||
### Breaking changes
|
### Breaking changes
|
||||||
|
|
|
@ -13,7 +13,4 @@
|
||||||
<FileRef
|
<FileRef
|
||||||
location = "group:examples/ReactExample/ios/ReactExample.xcodeproj">
|
location = "group:examples/ReactExample/ios/ReactExample.xcodeproj">
|
||||||
</FileRef>
|
</FileRef>
|
||||||
<FileRef
|
|
||||||
location = "group:src/node/RealmNode.xcodeproj">
|
|
||||||
</FileRef>
|
|
||||||
</Workspace>
|
</Workspace>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "realm",
|
"name": "realm",
|
||||||
"description": "Realm is a mobile database: an alternative to SQLite and key-value stores",
|
"description": "Realm is a mobile database: an alternative to SQLite and key-value stores",
|
||||||
"version": "0.13.1",
|
"version": "0.13.2",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"homepage": "https://realm.io",
|
"homepage": "https://realm.io",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|
|
@ -82,7 +82,7 @@ rm -rf react-native/android/build
|
||||||
|
|
||||||
# Publish to npm, informing the prepublish script to build Android modules.
|
# Publish to npm, informing the prepublish script to build Android modules.
|
||||||
echo "Publishing $VERSION to npm..."
|
echo "Publishing $VERSION to npm..."
|
||||||
PRERELEASE=$(grep -Eio '[a-z]+' <<< "$VERSION")
|
PRERELEASE=$(grep -Eio '[a-z]+' <<< "$VERSION" || true)
|
||||||
REALM_BUILD_ANDROID=1 npm publish ${PRERELEASE:+--tag $PRERELEASE}
|
REALM_BUILD_ANDROID=1 npm publish ${PRERELEASE:+--tag $PRERELEASE}
|
||||||
|
|
||||||
# Only push the tag to GitHub if the publish was successful.
|
# Only push the tag to GitHub if the publish was successful.
|
||||||
|
|
|
@ -801,7 +801,7 @@
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 0.13.1;
|
CURRENT_PROJECT_VERSION = 0.13.2;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
|
@ -862,7 +862,7 @@
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 0.13.1;
|
CURRENT_PROJECT_VERSION = 0.13.2;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
@ -956,7 +956,7 @@
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 0.13.1;
|
CURRENT_PROJECT_VERSION = 0.13.2;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
@ -1023,7 +1023,7 @@
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 0.13.1;
|
DYLIB_CURRENT_VERSION = 0.13.2;
|
||||||
EXECUTABLE_PREFIX = lib;
|
EXECUTABLE_PREFIX = lib;
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
"DEBUG=1",
|
"DEBUG=1",
|
||||||
|
@ -1053,7 +1053,7 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 0.13.1;
|
DYLIB_CURRENT_VERSION = 0.13.2;
|
||||||
EXECUTABLE_PREFIX = lib;
|
EXECUTABLE_PREFIX = lib;
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
"REALM_PLATFORM_NODE=1",
|
"REALM_PLATFORM_NODE=1",
|
||||||
|
@ -1082,7 +1082,7 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 0.13.1;
|
DYLIB_CURRENT_VERSION = 0.13.2;
|
||||||
EXECUTABLE_PREFIX = lib;
|
EXECUTABLE_PREFIX = lib;
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
"REALM_PLATFORM_NODE=1",
|
"REALM_PLATFORM_NODE=1",
|
||||||
|
|
|
@ -260,6 +260,9 @@ static inline void convert_outdated_datetime_columns(const SharedRealm &realm) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t row_index = 0; row_index < table->size(); row_index++) {
|
for (size_t row_index = 0; row_index < table->size(); row_index++) {
|
||||||
|
if (table->is_null(property.table_column, row_index)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
auto milliseconds = table->get_timestamp(property.table_column, row_index).get_seconds();
|
auto milliseconds = table->get_timestamp(property.table_column, row_index).get_seconds();
|
||||||
table->set_timestamp(property.table_column, row_index, Timestamp(milliseconds / 1000, (milliseconds % 1000) * 1000000));
|
table->set_timestamp(property.table_column, row_index, Timestamp(milliseconds / 1000, (milliseconds % 1000) * 1000000));
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -479,14 +479,20 @@ module.exports = BaseTest.extend({
|
||||||
|
|
||||||
// test file format upgrade
|
// test file format upgrade
|
||||||
var realm_v3 = new Realm({path: 'dates-v3.realm', schema: [schemas.DateObject]});
|
var realm_v3 = new Realm({path: 'dates-v3.realm', schema: [schemas.DateObject]});
|
||||||
TestCase.assertEqual(realm_v3.objects('Date').length, 1);
|
TestCase.assertEqual(realm_v3.objects('Date').length, 2);
|
||||||
TestCase.assertEqual(realm_v3.objects('Date')[0].currentDate.getTime(), 1462500087955);
|
TestCase.assertEqual(realm_v3.objects('Date')[0].currentDate.getTime(), 1462500087955);
|
||||||
|
TestCase.assertEqual(realm_v3.objects('Date')[0].nullDate.getTime(), 1462500087955);
|
||||||
|
TestCase.assertEqual(realm_v3.objects('Date')[1].currentDate.getTime(), -10000);
|
||||||
|
TestCase.assertEqual(realm_v3.objects('Date')[1].nullDate, null);
|
||||||
|
|
||||||
// get new file format is not upgraded
|
// get new file format is not upgraded
|
||||||
var realm_v5 = new Realm({path: 'dates-v5.realm', schema: [schemas.DateObject]});
|
var realm_v5 = new Realm({path: 'dates-v5.realm', schema: [schemas.DateObject]});
|
||||||
TestCase.assertEqual(realm_v5.objects('Date').length, 1);
|
TestCase.assertEqual(realm_v5.objects('Date').length, 2);
|
||||||
TestCase.assertEqual(realm_v5.objects('Date')[0].currentDate.getTime(), 1462500087955);
|
TestCase.assertEqual(realm_v3.objects('Date')[0].currentDate.getTime(), 1462500087955);
|
||||||
|
TestCase.assertEqual(realm_v3.objects('Date')[0].nullDate.getTime(), 1462500087955);
|
||||||
|
TestCase.assertEqual(realm_v3.objects('Date')[1].currentDate.getTime(), -10000);
|
||||||
|
TestCase.assertEqual(realm_v3.objects('Date')[1].nullDate, null);
|
||||||
|
|
||||||
// test different dates
|
// test different dates
|
||||||
var realm = new Realm({schema: [schemas.DateObject]});
|
var realm = new Realm({schema: [schemas.DateObject]});
|
||||||
realm.write(function() {
|
realm.write(function() {
|
||||||
|
|
|
@ -739,7 +739,7 @@ module.exports = BaseTest.extend({
|
||||||
Realm.copyBundledRealmFiles();
|
Realm.copyBundledRealmFiles();
|
||||||
|
|
||||||
var realm = new Realm({path: 'dates-v5.realm', schema: [schemas.DateObject]});
|
var realm = new Realm({path: 'dates-v5.realm', schema: [schemas.DateObject]});
|
||||||
TestCase.assertEqual(realm.objects('Date').length, 1);
|
TestCase.assertEqual(realm.objects('Date').length, 2);
|
||||||
TestCase.assertEqual(realm.objects('Date')[0].currentDate.getTime(), 1462500087955);
|
TestCase.assertEqual(realm.objects('Date')[0].currentDate.getTime(), 1462500087955);
|
||||||
|
|
||||||
var newDate = new Date(1);
|
var newDate = new Date(1);
|
||||||
|
|
|
@ -174,6 +174,7 @@ exports.NullQueryObject = {
|
||||||
exports.DateObject = {
|
exports.DateObject = {
|
||||||
name: 'Date',
|
name: 'Date',
|
||||||
properties: {
|
properties: {
|
||||||
currentDate: 'date'
|
currentDate: 'date',
|
||||||
|
nullDate: { type: 'date', optional: true }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue