mirror of
https://github.com/status-im/realm-js.git
synced 2025-02-10 05:37:08 +00:00
rebase fixes
This commit is contained in:
parent
2a0a5d234f
commit
d8e9d36c88
@ -188,10 +188,10 @@ std::vector<ObjectStoreException> ObjectStore::validate_object_schema(Group *gro
|
|||||||
}
|
}
|
||||||
if (current_prop.is_nullable != target_prop->is_nullable) {
|
if (current_prop.is_nullable != target_prop->is_nullable) {
|
||||||
if (current_prop.is_nullable) {
|
if (current_prop.is_nullable) {
|
||||||
validation_errors.push_back("Property '" + current_prop.name + "' is no longer optional.");
|
exceptions.emplace_back(ObjectStoreException::Kind::ObjectSchemaChangedOptionalProperty, table_schema.name, current_prop, *target_prop);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
validation_errors.push_back("Property '" + current_prop.name + "' has been made optional.");
|
exceptions.emplace_back(ObjectStoreException::Kind::ObjectSchemaNewOptionalProperty, table_schema.name, current_prop, *target_prop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,8 +119,10 @@ const ObjectStoreException::FormatStrings ObjectStoreException::s_default_format
|
|||||||
"Property '{InfoKeyPrimaryKey}' is no longer a primary key."},
|
"Property '{InfoKeyPrimaryKey}' is no longer a primary key."},
|
||||||
{Kind::ObjectSchemaNewPrimaryKey,
|
{Kind::ObjectSchemaNewPrimaryKey,
|
||||||
"Property '{InfoKeyPrimaryKey}' has been made a primary key."},
|
"Property '{InfoKeyPrimaryKey}' has been made a primary key."},
|
||||||
|
{Kind::ObjectSchemaChangedOptionalProperty,
|
||||||
|
"Property '{InfoKeyPrimaryKey}' is no longer optional."},
|
||||||
|
{Kind::ObjectSchemaNewOptionalProperty,
|
||||||
|
"Property '{InfoKeyPrimaryKey}' has been made optional."},
|
||||||
{Kind::ObjectStoreValidationFailure,
|
{Kind::ObjectStoreValidationFailure,
|
||||||
"Migration is required for object type '{InfoKeyObjectType}' due to the following errors: {ValidationErrors}"}
|
"Migration is required for object type '{InfoKeyObjectType}' due to the following errors: {ValidationErrors}"}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@ namespace realm {
|
|||||||
ObjectSchemaMismatchedObjectTypes, // ObjectType, PropertyName, PropertyType, ObjectType, OldObjectType
|
ObjectSchemaMismatchedObjectTypes, // ObjectType, PropertyName, PropertyType, ObjectType, OldObjectType
|
||||||
ObjectSchemaChangedPrimaryKey, // ObjectType, PrimaryKey
|
ObjectSchemaChangedPrimaryKey, // ObjectType, PrimaryKey
|
||||||
ObjectSchemaNewPrimaryKey, // ObjectType, PrimaryKey
|
ObjectSchemaNewPrimaryKey, // ObjectType, PrimaryKey
|
||||||
|
ObjectSchemaChangedOptionalProperty,
|
||||||
|
ObjectSchemaNewOptionalProperty,
|
||||||
ObjectStoreValidationFailure, // ObjectType, vector<ObjectStoreException>
|
ObjectStoreValidationFailure, // ObjectType, vector<ObjectStoreException>
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -41,10 +41,10 @@ Realm::Realm(Config &config) : m_config(config), m_thread_id(this_thread::get_id
|
|||||||
m_group = m_read_only_group.get();
|
m_group = m_read_only_group.get();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_replication = realm::makeWriteLogCollector(config.path, false, config.encryption_key.data());
|
m_history = realm::make_client_history(config.path, config.encryption_key.data());
|
||||||
SharedGroup::DurabilityLevel durability = config.in_memory ? SharedGroup::durability_MemOnly :
|
SharedGroup::DurabilityLevel durability = config.in_memory ? SharedGroup::durability_MemOnly :
|
||||||
SharedGroup::durability_Full;
|
SharedGroup::durability_Full;
|
||||||
m_shared_group = make_unique<SharedGroup>(*m_replication, durability, config.encryption_key.data());
|
m_shared_group = make_unique<SharedGroup>(*m_history, durability, config.encryption_key.data());
|
||||||
m_group = nullptr;
|
m_group = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -167,7 +167,7 @@ void Realm::begin_transaction()
|
|||||||
// make sure we have a read transaction
|
// make sure we have a read transaction
|
||||||
read_group();
|
read_group();
|
||||||
|
|
||||||
LangBindHelper::promote_to_write(*m_shared_group);
|
LangBindHelper::promote_to_write(*m_shared_group, *m_history);
|
||||||
m_in_transaction = true;
|
m_in_transaction = true;
|
||||||
|
|
||||||
if (announce) {
|
if (announce) {
|
||||||
@ -200,7 +200,7 @@ void Realm::cancel_transaction()
|
|||||||
throw RealmException(RealmException::Kind::InvalidTransaction, "Can't cancel a non-existing write transaction");
|
throw RealmException(RealmException::Kind::InvalidTransaction, "Can't cancel a non-existing write transaction");
|
||||||
}
|
}
|
||||||
|
|
||||||
LangBindHelper::rollback_and_continue_as_read(*m_shared_group);
|
LangBindHelper::rollback_and_continue_as_read(*m_shared_group, *m_history);
|
||||||
m_in_transaction = false;
|
m_in_transaction = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -248,7 +248,7 @@ void Realm::notify()
|
|||||||
if (m_shared_group->has_changed()) { // Throws
|
if (m_shared_group->has_changed()) { // Throws
|
||||||
if (m_auto_refresh) {
|
if (m_auto_refresh) {
|
||||||
if (m_group) {
|
if (m_group) {
|
||||||
LangBindHelper::advance_read(*m_shared_group);
|
LangBindHelper::advance_read(*m_shared_group, *m_history);
|
||||||
}
|
}
|
||||||
send_local_notifications(DidChangeNotification);
|
send_local_notifications(DidChangeNotification);
|
||||||
}
|
}
|
||||||
@ -284,7 +284,7 @@ bool Realm::refresh()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_group) {
|
if (m_group) {
|
||||||
LangBindHelper::advance_read(*m_shared_group);
|
LangBindHelper::advance_read(*m_shared_group, *m_history);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Create the read transaction
|
// Create the read transaction
|
||||||
|
@ -33,6 +33,7 @@ namespace realm {
|
|||||||
class Realm;
|
class Realm;
|
||||||
typedef std::shared_ptr<Realm> SharedRealm;
|
typedef std::shared_ptr<Realm> SharedRealm;
|
||||||
typedef std::weak_ptr<Realm> WeakRealm;
|
typedef std::weak_ptr<Realm> WeakRealm;
|
||||||
|
class ClientHistory;
|
||||||
|
|
||||||
class Realm
|
class Realm
|
||||||
{
|
{
|
||||||
@ -106,7 +107,7 @@ namespace realm {
|
|||||||
typedef std::unique_ptr<std::function<void()>> ExternalNotificationFunction;
|
typedef std::unique_ptr<std::function<void()>> ExternalNotificationFunction;
|
||||||
void send_external_notifications() { if (m_external_notifier) (*m_external_notifier)(); }
|
void send_external_notifications() { if (m_external_notifier) (*m_external_notifier)(); }
|
||||||
|
|
||||||
std::unique_ptr<Replication> m_replication;
|
std::unique_ptr<ClientHistory> m_history;
|
||||||
std::unique_ptr<SharedGroup> m_shared_group;
|
std::unique_ptr<SharedGroup> m_shared_group;
|
||||||
std::unique_ptr<Group> m_read_only_group;
|
std::unique_ptr<Group> m_read_only_group;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user