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
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
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
Samuel E. Giddins
c90f3e0210
[RLMObjectStore] Automatically migrate required properties to be optional
2015-06-24 11:19:39 -07:00
Samuel E. Giddins
e19fcfd67b
[RLMObjectStore] Require a migration when changing the nullability of a column
2015-06-24 11:19:39 -07:00
Samuel E. Giddins
80b1642d32
Add support for nullable string columns, and make NSString properties nullable by default
2015-06-24 11:19:38 -07:00
Ari Lazier
107c2de9b6
add api to delete a table and remove the pk for an object type
2015-06-11 12:17:55 -07:00
Ari Lazier
b3bee56f38
pr feedback
2015-06-11 10:33:46 -07:00
Ari Lazier
f972ab4278
move exception classes to their own file - store exception messages and implmenet what()
2015-06-10 15:45:29 -07:00
Ari Lazier
b3b3136f9a
clear primary key for deleted objects
2015-06-10 14:53:24 -07:00
Ari Lazier
0e81927e78
fixes for pr comments
2015-06-10 14:21:43 -07:00
Ari Lazier
9f124ab37e
don't verify when not told to, reuse tables in cases it isn't inconvinient
2015-06-05 18:47:19 -07:00
Ari Lazier
73b1dd549b
make all string arguments const references
2015-06-05 15:52:00 -07:00
Ari Lazier
094192a869
don't validate when we only need an updated column mapping
2015-06-05 14:11:29 -07:00
Ari Lazier
b5372a40e9
error handling cleanup
2015-06-05 14:11:29 -07:00
Ari Lazier
3453515601
use foreach/return pointers for optional properties
2015-06-05 14:11:29 -07:00
Ari Lazier
3c9953f4c6
validate primary keys after migrations
2015-06-05 14:11:29 -07:00
Ari Lazier
1ccf9f6192
update table indexes based on schema changes
2015-06-05 14:11:28 -07:00
Ari Lazier
85047bb96d
use references instead of shared_ptr
2015-06-05 14:11:28 -07:00
Ari Lazier
a82805548e
remove logic for table name determination from cocoa
2015-06-05 14:11:28 -07:00
Ari Lazier
6e9d9bb793
remove duplicte code and privitize methods
2015-06-05 14:11:28 -07:00
Ari Lazier
a54d2216f9
refact cocoa to use c++ table creation apis
2015-06-05 14:11:28 -07:00
Ari Lazier
4994428e63
std::String -> StringData, fix header include identifier
2015-06-05 14:11:27 -07:00
Ari Lazier
84d50446b5
refactor out schema version code to c++
2015-06-05 14:11:27 -07:00