Thomas Goyne
e9ca54e169
Merge pull request #12 from realm/tg-core-0.94.4
...
Update for core 0.94.4
2015-11-05 09:44:08 -08:00
Thomas Goyne
0823a62df6
Merge pull request #13 from realm/tg-is-empty
...
Add ObjectStore::is_empty()
2015-11-05 09:35:48 -08:00
Thomas Goyne
62f59d9ae8
Merge pull request #15 from realm/tg-file-error-path
...
Include the path of the file which actually failed to open in exceptions
2015-11-05 09:35:36 -08:00
Thomas Goyne
b93e5cedff
Include the path of the file which actually failed to open in exceptions
...
When the user (or our tests...) do dumb things it's sometimes not actually the
realm file itself that failed to open.
2015-11-04 17:03:24 -08:00
JP Simard
e1e9cd8cd7
Add ObjectStore::is_empty()
2015-11-04 15:31:08 -08:00
Thomas Goyne
52e7e6168b
Update for core 0.94.4
2015-11-04 15:30:36 -08:00
Kristian Dupont
271432bd1c
Merge pull request #11 from realm/kd-rename-delegate-to-bindingcontext
...
Rename RealmDelegate to BindingContext
2015-11-03 08:38:27 +01:00
Kristian Dupont
db36ca5b9c
Remove Realm suffix
2015-11-03 08:37:54 +01:00
Kristian Dupont
70e1967782
Rename realm delegate in transact_log_handler as well
2015-10-29 13:16:36 +01:00
Kristian Dupont
4973827531
Rename RealmDelegate to RealmBindingContext
2015-10-29 10:42:56 +01:00
Mark Rowe
347145b4f1
Merge pull request #8 from realm/mar-migrate-required-to-optional
...
Support migrating required columns to optional, preserving their contents
2015-10-21 14:40:44 -07:00
Mark Rowe
0b45772a0b
Add a test showing our behavior when migrating from an optional column to a required column.
...
Optional values are not automatically migrated to required columns since it is a lossy process.
This test case revealed an issue where the number of objects can be lost if all properties of an
object were optional and are all being migrated to required. This happens because the migration
process removes the optional columns in a first pass, and recreates them as required in a second
pass. Since this results in all columns being removed, we lose track of how many objects were
stored. We avoid this by detecting the case where we are about to remove the last column and
inserting a placeholder column that we'll remove after inserting the new columns.
2015-10-20 17:52:25 -07:00
Mark Rowe
9f1702a10f
Support migrating required columns to optional, preserving their contents.
...
Required columns are migrated to optional by creating a new nullable column,
copying the data from the required column to the optional column, then removing
the original required column.
2015-10-20 17:52:25 -07:00
Thomas Goyne
f5b790cf87
Merge pull request #6 from realm/tg-impl
...
Move things which are not part of the API to an impl directory/namespace
2015-10-20 09:59:10 -07:00
Thomas Goyne
6dfeaf8080
Move things which are not part of the API to an impl directory/namespace
2015-10-15 11:30:08 -07:00
Ari Lazier
513e4834bc
Merge pull request #4 from realm/tg-realm
...
Merge objectstore changes from obj-c
2015-09-18 18:03:16 +02:00
Thomas Goyne
f6467778e0
Send changes_available() even if autorefresh is enabled
2015-09-10 14:15:57 -07:00
Thomas Goyne
21d32bf581
Add a bit of documentation for RealmDelegate
2015-09-10 14:15:57 -07:00
Thomas Goyne
95c80c98e6
Fix error in cleanup after an error during a migration
2015-09-09 11:25:55 -07:00
Thomas Goyne
b7936bb047
Simplify column shifting for removed properties a little
2015-09-09 11:25:55 -07:00
Thomas Goyne
a0f1dab71b
Add a Schema class, move lookup by name and internal-consistency checks there
2015-09-09 11:25:55 -07:00
Thomas Goyne
b381437a45
Make Realm::compact() more robust
...
Throw if it's called on a read-only Realm and ensure the Realm is left in a
valid state regardless of the starting state.
2015-09-09 11:25:55 -07:00
Thomas Goyne
6133eebf8b
Reduce the scope of a variable
2015-09-09 11:25:55 -07:00
Thomas Goyne
0c111a2035
Fix a comment
2015-09-09 11:25:55 -07:00
Thomas Goyne
ba278c5d4f
Fix checks for what types of columns can be optional
2015-09-09 11:25:54 -07:00
Thomas Goyne
7de20ea3a6
USe more const refs to avoid copies
2015-09-09 11:25:54 -07:00
Thomas Goyne
dbac77f69b
Make a bunch of things const
2015-09-09 11:25:54 -07:00
Thomas Goyne
14004504b1
Remove an unused function
2015-09-09 11:25:54 -07:00
Thomas Goyne
06e0ff8373
Share ExternalCommitHelpers between Realm instances for a single path
2015-09-09 11:25:54 -07:00
Thomas Goyne
f79dec9033
Allow more nullable property types when supported
2015-09-09 11:25:54 -07:00
Thomas Goyne
0eb0bd14d7
Honor is_nullable when creating columns
2015-09-09 11:25:54 -07:00
Thomas Goyne
ea5c47510b
Refactor schema initialization a bit
...
Change schema verification to operate on a pair of Schema objects rather than a
Schema and a Group to eliminate some redundant work done, defer some of the
work done for migrations to within the migration block to avoid doing it
unnecessarily, and make passing in a custom schema in the Config when creating
a Realm entirely equivalent to calling update_schema() afterwards.
2015-09-09 11:25:54 -07:00
Thomas Goyne
e4f29fe221
Move the interprocess notification functionality to the object store
2015-09-09 11:25:53 -07:00
Thomas Goyne
b129ebe8c1
Shuffle stuff around and clean some things up
2015-09-09 11:25:53 -07:00
Thomas Goyne
eeb2ddd794
Improve array KVO performance a bit
2015-09-09 11:25:53 -07:00
Thomas Goyne
c3649fbd17
Skip PK uniqueness checking when first creating a Realm file
2015-09-09 11:25:53 -07:00
Thomas Goyne
0a41c85d0a
Improve performance of realm_requires_update() and make more things const
2015-09-09 11:25:53 -07:00
Thomas Goyne
efdfa08524
Port some of the KVO support functionality to the object store
2015-09-09 11:25:53 -07:00
Thomas Goyne
65e1eb5d08
Add the ability to bypass the Realm cache entirely
2015-09-09 11:25:53 -07:00
Thomas Goyne
3f226cf342
Rework change notifications
...
Switch to an abstract class rather than std::function in preparation for having
more kinds of notifications with different arguments for KVO.
2015-09-09 11:25:53 -07:00
Thomas Goyne
045c7b2066
Add Realm::get_schema_version()
2015-09-09 11:25:52 -07:00
Thomas Goyne
e4377bb42a
Change realm::Schema to a vector rather than a map
...
Much faster to copy and destroy with no loss in lookup performance.
2015-09-09 11:25:52 -07:00
Thomas Goyne
cae4cf2fc0
Remove property.hpp include from object_schema.hpp
2015-09-09 11:25:52 -07:00
Thomas Goyne
55e6cca243
Convert RLMRealmConfiguration to a wrapper around Realm::Config
2015-09-09 11:25:52 -07:00
Thomas Goyne
563a8374d0
Use NSDMIs for realm::Property
2015-09-09 11:25:52 -07:00
Thomas Goyne
0ae1bb188e
Don't cache dynamic realms in the ObjectStore cache either
2015-09-09 11:25:52 -07:00
Thomas Goyne
25a6734111
Eliminate some copies
2015-09-09 11:25:52 -07:00
Thomas Goyne
45890f2772
Use NSDMIs for Realm
2015-09-09 11:25:52 -07:00
Thomas Goyne
348f4a7b39
Reduce s_init_mutex's scope
2015-09-09 11:25:51 -07:00
Thomas Goyne
b4f856bdd0
Use NSDMIs for Realm::Config and make it moveable
2015-09-09 11:25:51 -07:00