Thomas Goyne
d1175fe364
Switch to throwing exceptions with all of the info needed to build error messages
2015-11-20 10:24:51 -08:00
Ari Lazier
638ee4d3b4
integrate latest object store changes
2015-11-13 18:20:27 -08:00
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
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
Ari Lazier
dca7e7d791
enable nullable propeties without a macro
2015-10-27 12:13:57 -07:00
Ari Lazier
ccdfaa8ae9
use typed exceptions
2015-10-27 09:39:52 -07:00
Ari Lazier
31819a5ee6
Merge commit '347145b4f1c40409c68af0ad61be15ee5f9d04f2' into al-os
2015-10-26 12:52:20 -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
1fcc5a1be8
Simplify column shifting for removed properties a little
2015-09-28 15:33:43 -07:00
Thomas Goyne
df6d6e8618
Add a Schema class, move lookup by name and internal-consistency checks there
2015-09-28 15:33:43 -07:00
Thomas Goyne
9075917334
Fix a comment
2015-09-28 15:33:43 -07:00
Thomas Goyne
924482a305
Fix checks for what types of columns can be optional
2015-09-28 15:33:43 -07:00
Thomas Goyne
d3a218dac3
USe more const refs to avoid copies
2015-09-28 15:33:42 -07:00
Thomas Goyne
cc6364fff3
Make a bunch of things const
2015-09-28 15:33:42 -07:00
Thomas Goyne
fb186248a1
Remove an unused function
2015-09-28 15:33:42 -07:00
Thomas Goyne
873d24f3f0
Allow more nullable property types when supported
2015-09-28 15:33:42 -07:00
Thomas Goyne
663492e9da
Honor is_nullable when creating columns
2015-09-28 15:33:41 -07:00
Thomas Goyne
ce39ef965f
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-28 15:33:41 -07:00
Thomas Goyne
2f869541c7
Skip PK uniqueness checking when first creating a Realm file
2015-09-28 15:33:40 -07:00
Thomas Goyne
9129add439
Improve performance of realm_requires_update() and make more things const
2015-09-28 15:33:40 -07:00
Thomas Goyne
6df3719925
Change realm::Schema to a vector rather than a map
...
Much faster to copy and destroy with no loss in lookup performance.
2015-09-28 15:33:38 -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
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
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
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
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
Ari Lazier
a099682f0e
more extensive upsert tests
2015-09-04 12:41:17 -07:00
JP Simard
453e4d8277
Fix crash when adding a property to a model without updating the schema version.
2015-08-13 09:42:21 -07:00
Ari Lazier
6ef8e214f3
move exception message creation to exception constructors
2015-07-30 12:22:01 -07:00
Ari Lazier
136f9a4640
add more object_schema validation
2015-07-28 12:17:58 -07:00
Ari Lazier
373375fa1b
cleaup schema initialization
2015-07-28 12:17:58 -07:00
Ari Lazier
94c7ea512f
update to newest object store apis
2015-07-28 12:17:57 -07:00
Ari Lazier
eb2b079e2a
pr fixes
2015-07-28 12:17:57 -07:00
Ari Lazier
d8e9d36c88
rebase fixes
2015-07-28 12:17:57 -07:00
Ari Lazier
2a0a5d234f
run migrations and schema update through new Realm apis
2015-07-28 12:17:56 -07:00
Ari Lazier
60700ba121
first pass refactor of RLMRealm to c++
2015-07-28 12:17:56 -07:00
Ari Lazier
26f1a0a4c8
support exception format strings
2015-07-28 12:17:16 -07:00
Ari Lazier
c3e82a58ae
use enum for dict/info keys, support per platform/language exception messages
2015-07-28 12:17:16 -07:00
Samuel E. Giddins
a29037b47f
[ObjectStore] No need to template set_value, it can be overloaded
2015-06-24 11:19:43 -07:00
Samuel E. Giddins
c0da7c76e1
Feature-flag null binary and string support
...
-DREALM_ENABLE_NULL to enable
2015-06-24 11:19:42 -07:00