Scott Kyle
301214dd39
Fix List splice method to be spec compatible
...
If the second argument is omitted, then all objects after the provided index should be removed. This is the same behavior as Array.prototype.splice.
2016-03-17 14:48:39 -07:00
Scott Kyle
5d872d6233
Remove accidentally included files in npm package
...
The 0.11.0-rc was bloated by lots of unnecessary build products and other miscellaneous files.
2016-03-16 16:48:04 -07:00
Scott Kyle
7feadb27b2
Fix ARM hook into JSGlobalContextCreateInGroup
...
We were loading into the program counter, which is not good in THUMB mode, so we now instead load into R3, since it's a temp register not used by this function (it only takes two arguments). Also, when building this module in THUMB mode itself, we needed to clear the ARM instruction cache, which wasn't needed when switching from THUMB to ARM mode.
2016-03-15 13:57:09 -07:00
Nabil Hachicha
53c28dca16
fixes gcc optimisation causing RealmCoordinator to use a empty/default path
...
fix indentation
2016-03-14 16:42:52 -07:00
Nabil Hachicha
92f3314a0b
fixes #329
2016-03-14 16:09:22 -07:00
Ari Lazier
e459194bfd
fix for reload in example
2016-03-13 10:09:53 -07:00
Ari Lazier
aa08d25ed0
Merge pull request #305 from realm/al-object-store
...
Latest object store changes and core
2016-03-10 16:03:12 -08:00
Thomas Goyne
c65d536573
Remove Realm::m_in_transaction and use the value from the SharedGroup
...
There were a bunch of places where m_in_transaction was not being updated
correctly when exceptions were thrown, and this eliminates that as a possible
problem entirely.
2016-03-07 13:18:20 -08:00
Thomas Goyne
b7283be7d1
Merge pull request #52 from realm/tg/core-0.97.0
...
Update to core 0.97.0
2016-03-07 13:13:59 -08:00
Thomas Goyne
af0db71187
Strip all trailing whitespace from files
2016-03-07 12:47:02 -08:00
Thomas Goyne
c94770be81
Update to core 0.97.0
2016-03-07 12:46:36 -08:00
Scott Kyle
1a127b425b
Merge pull request #289 from realm/sk-accept-constructor
...
Accept constructor in create() and objects() methods
2016-03-07 12:23:26 -08:00
Ari Lazier
21a4e2543e
forward declare property
2016-03-04 07:28:10 -08:00
Ari Lazier
6b523bab09
forward declare property
2016-03-04 07:28:10 -08:00
Ari Lazier
42cb078a8c
use core to_string
2016-03-04 07:09:49 -08:00
Ari Lazier
f7927f189c
use core to_string
2016-03-04 07:09:49 -08:00
Ari Lazier
987978fd4e
pr fixes
2016-03-03 16:49:06 -08:00
Ari Lazier
eb7f213c93
pr fixes
2016-03-03 16:49:06 -08:00
Ari Lazier
d07f82b3ec
fixes for android
2016-03-03 14:56:18 -08:00
Ari Lazier
641eb37b2c
fixes for android
2016-03-03 14:56:18 -08:00
Scott Kyle
17eb6bcbb5
submodule fixes
2016-03-03 14:48:41 -08:00
Ari Lazier
4923d7d953
object store fixes for js binding
2016-03-03 14:45:44 -08:00
Ari Lazier
548d700ffe
object store fixes for js binding
2016-03-03 14:45:44 -08:00
Ari Lazier
7802a9e976
merge latest object store
2016-03-03 14:15:54 -08:00
Ari Lazier
05429a8163
merge latest object store
2016-03-03 14:15:54 -08:00
Ari Lazier
5f61fd970c
support relative paths when opening realms
2016-03-03 13:33:49 -08:00
Scott Kyle
42cdf9daad
Disallow non-constructors to have schema property
...
Non-constructor functions (e.g. arrow functions and native functions) as well as regular objects should not be allowed as valid schema hosts. Neither of these cases were ever actually tested or used anywhere.
2016-03-03 02:52:15 -08:00
Scott Kyle
85832f0f02
Rename some functions according to PR feedback
2016-03-03 02:49:37 -08:00
kishikawa katsumi
9045d79453
Bool and NSDate properties can be indexed.
...
Core supports indexing Bool and NSDate properties.
realm-java also supports indexing Bool and NSDate properties.
It is better to align the specification with realm-java.
2016-03-02 13:20:29 -08:00
Scott Kyle
4a81b091cb
Accept constructor in create() and objects() methods
...
This will help the linter prevent spelling mistakes and make some code more easily readable.
Resolves #233
2016-03-01 00:46:03 -08:00
Scott Kyle
3858ede7c7
Rename RJSObjectSetProperty to RJSValidatedSetProperty
2016-02-29 12:37:28 -08:00
Scott Kyle
5a9ad4f2b9
Rename InvalidConstructor to UncallableConstructor
2016-02-29 12:35:12 -08:00
Scott Kyle
44a29d8dd4
Expose List and Results constructors into JS
2016-02-29 03:24:58 -08:00
Scott Kyle
154422a3d1
Make realm instances pass instanceof check
2016-02-29 03:24:58 -08:00
Ari Lazier
e495cc4685
add encryption support
2016-02-26 11:08:59 -08:00
Thomas Goyne
b7b2822082
Make it possible to disable the commit notifier background worker
...
This makes it much easier to write tests which test the work done on the
background thread.
2016-02-25 11:19:00 -08:00
Thomas Goyne
cfc88b6fd5
Rename CachedRealm to WeakRealmNotfier
2016-02-24 16:58:11 -08:00
Thomas Goyne
143cc3b696
Fix compilation with GCC 4.9
...
4.9 does not correctly implement C++14 aggregate initialization.
2016-02-24 16:58:11 -08:00
Thomas Goyne
99037a7c72
Add an AtomicSharedPtr implementation for gcc 4.9
2016-02-24 16:58:11 -08:00
Thomas Goyne
1e35324d97
Avoid holding locks while calling transaction::advance()
...
It can call user code due to change notifications, which leads to
deadlocks if that code then tries to add async queries (and advancing is
a potentially expensive operation, so doing it while holding a lock
inhibits parallelism anyway).
2016-02-24 16:58:11 -08:00
Thomas Goyne
8284340729
Remove redundant check in RealmCoordinator::advance_helper_shared_group_to_latest()
2016-02-24 16:58:11 -08:00
Thomas Goyne
4e18a99dfd
Update some out-of-date comments
2016-02-24 16:58:10 -08:00
Thomas Goyne
aa67216574
Write a much better comment about thread stuff for AsyncQuery
2016-02-24 16:58:10 -08:00
Thomas Goyne
ad46e307a2
Update the comments for Realm::Internal
2016-02-24 16:58:10 -08:00
Thomas Goyne
1430fcf474
Rename AsyncFriend to Interal
2016-02-24 16:58:10 -08:00
Thomas Goyne
c46a2a34de
Fix typos and minor errors in comments
2016-02-24 16:58:10 -08:00
Thomas Goyne
db7d6fa2a8
Don't hold onto the tableview between runs of async queries
...
Updating the table view in advance_read() can be very expensive, and the
updated data is never actually used.
2016-02-24 16:58:10 -08:00
Thomas Goyne
a95eb50915
Don't create background queries for Results on threads without runloops
2016-02-24 16:58:09 -08:00
Thomas Goyne
3e90c30571
Add more tests and fix bugs
2016-02-24 16:58:09 -08:00
Thomas Goyne
8c4f2a4f30
Reduce the scope of class friendships
2016-02-24 16:58:09 -08:00
Thomas Goyne
13e1054553
Don't continue to run queries in the background if the result is unused
2016-02-24 16:58:09 -08:00
Thomas Goyne
934263f76a
Automatically create the async query when converting to a TableView
2016-02-24 16:58:09 -08:00
Thomas Goyne
8f668fdf09
Use a single AsyncQuery per Results regardless of number of callbacks added
2016-02-24 16:58:08 -08:00
Thomas Goyne
d165458601
Add support for running queries asynchronously
2016-02-24 16:58:08 -08:00
Thomas Goyne
bceec93a69
Update to core 0.96.2
2016-02-23 15:01:35 -08:00
Tim Anglade
7cc2f69736
Merge pull request #264 from realm/km-js-fixlicense
...
License update
2016-02-21 18:56:59 -08:00
Nabil Hachicha
9bcebfaf29
PR feedback
2016-02-19 22:50:30 +00:00
Nabil Hachicha
76981229ab
start debug server only on when using chrome debug
2016-02-19 19:05:07 +00:00
Thomas Goyne
ae9d41f9ce
Remove an incorrect std::move()
2016-02-18 19:05:02 -08:00
Scott Kyle
2e3a3b5db8
Merge pull request #257 from realm/sk-schema-prop
...
The schema property should be directly on constructor
2016-02-18 16:27:47 -08:00
Karson Miller
5e9333b699
no message
2016-02-18 15:30:44 -08:00
Scott Kyle
a661350e59
Merge branch 'sk-sorted-results'
...
* sk-sorted-results:
Add sorted() method to List
Further improve argument checking for sorted()
Improve error message in sorted() method
Change sortedBy API as discussed
Allow sortedBy to accept array of properties
Change sortByProperty to return new Results
2016-02-18 15:21:35 -08:00
Scott Kyle
5b2e7b37af
Add script to update version in package.json and iOS
...
This uses agvtool to update the CURRENT_PROJECT_VERSION and DYLIB_CURRENT_VERSION project variables. The Info.plist files have been updated to propagate this value.
2016-02-18 13:58:12 -08:00
Scott Kyle
5332131c14
Add sorted() method to List
2016-02-18 13:41:11 -08:00
Scott Kyle
d847fbceb1
Further improve argument checking for sorted()
2016-02-18 12:55:54 -08:00
Scott Kyle
bd766297ef
Improve error message in sorted() method
2016-02-18 12:50:44 -08:00
Scott Kyle
05d84b23a2
Change sortedBy API as discussed
...
If provided an array, then each member can optionally be an array of [propName, reverse]
2016-02-18 12:47:18 -08:00
Scott Kyle
76865d0da4
Allow sortedBy to accept array of properties
...
It now optionally accepts an array of properties for both parameters and the tests have been updated to reflect new capabilities.
2016-02-18 11:58:39 -08:00
Scott Kyle
249bcd8f3f
Change sortByProperty to return new Results
...
The method name changed to sortedBy to reflect that it returns a new Results object and to be more succinct. Also, the second optional argument instead reflects descending (or rather, reverse) since it's an anti-pattern to have an optional argument default to true in JS, and this also follows precedences set by other JS libraries and by Python's sorted function.
2016-02-18 11:58:39 -08:00
Scott Kyle
b34e52b290
The schema property should be directly on constructor
...
The constructor is now also called with `this` set as the constructed object.
Fixes #232
2016-02-18 11:10:02 -08:00
Ari Lazier
b3486c0d0e
final fixes
2016-02-17 20:51:03 -08:00
Ari Lazier
1d01a1db73
don't copy query unnecessarily
2016-02-17 20:48:27 -08:00
Ari Lazier
e578b05058
pr feedback
2016-02-17 20:39:29 -08:00
Ari Lazier
6d02614eaa
add List.filtered
2016-02-17 20:24:08 -08:00
Ari Lazier
e91ef42ebb
add filtered method
2016-02-17 20:06:42 -08:00
Ari Lazier
98951f52ac
Merge pull request #244 from realm/al-benchmarks
...
Benchmarks
2016-02-17 13:15:47 -08:00
Thomas Goyne
87655793b7
Merge pull request #40 from realm/tg/list
...
Wrap more of LinkView in List
2016-02-16 17:35:58 -08:00
Thomas Goyne
7c350031d6
Merge pull request #37 from realm/tg/index-set-tests
...
Add IndexSet tests
2016-02-16 10:07:11 -08:00
Thomas Goyne
f5ae1bdf80
Merge pull request #39 from realm/tg/validate-schema-changes
...
Handle allowed schema changes in the transaction log observer
2016-02-16 10:07:01 -08:00
Scott Kyle
3e1889d342
Merge branch 'master' into sk-listview-merge
...
* master: (207 commits)
Convert to using new React Native MainActivity template
Create RealmReactPackage for our Android plugin
Fix doc for Android
NPM ignore react-native/android folder
Skip building Android module under Xcode
Skip building Android module for iOS tests
gitignore Android downloads folder
Update README with instructions to run on Android
Use un-patched RN for Android by installing hook into JSC
cleanup build system
Use Realm in node_modules for ReactTests on Android
Change Demo => ReactTests
adding a 'publishAndroid' task to generate the AAR with prebuilt .so files
Adjust POM_NAME
Use consistent package naming
Remove old Demo files
Add copyright to JNI file
Cleanup platform.hpp
Make our Android module buildable as a dependency
Add `npm test` command
...
2016-02-15 14:49:31 -08:00
Ari Lazier
01f92ed72f
start of benchmarks
...
fixes
enumeration test and test setup
add async store api tests
Log benchmark test errors and some other minor edits
Only delete .realm* files for tests
sql lite tests
run all the tests
worthless
Make SQLite benchmarks work
Make Realm insertion benchmark work like SQLite
run each test in release multiple times
Open each database once per benchmark test
Use same AppDelegate for benchmarks as the example
This will load the non-dev JS from the packager.
Make the benchmarks actually match their labels
Delete benchmark databases during setup phase
Some minor code style updates to benchmarks
query tests
make query test mostly work
bug fix and improved logging
remove double insertions
improved logging and bugfix
better logging
batch insersions
more reasonable counts
android
2016-02-15 13:02:25 -08:00
Thomas Goyne
a99cbb7b84
Merge pull request #41 from realm/tg/index_of
...
Remove the Query version of Results::index_of()
2016-02-12 17:37:24 -08:00
Scott Kyle
6e4b2440ba
Create RealmReactPackage for our Android plugin
...
Also renamed RealmReactAndroid to RealmReactModule to match the convention used by everyone else.
2016-02-12 09:49:11 -08:00
Scott Kyle
415b45be51
Use un-patched RN for Android by installing hook into JSC
...
This works by installing some assembly into JSGlobalContextCreateInGroup() that will immediately jump out into our own wrapper function so we always can inject the Realm constructor into the context.
2016-02-11 11:14:09 -08:00
Thomas Goyne
5f5510e170
Remove the Query version of Results::index_of()
...
It didn't work for queries based on a LinkView because for those the arguments
to count() are indexes in the LinkView rather than table rows, and there's
currently no way to check if a query is based on a LinkView.
2016-02-10 10:52:33 -08:00
Scott Kyle
5f02dc9f6d
Add copyright to JNI file
2016-02-08 15:56:08 -08:00
Scott Kyle
8e80733409
Cleanup platform.hpp
2016-02-08 15:55:52 -08:00
Thomas Goyne
638b4ec35e
Actually update the coordinator's copy of the schema
2016-02-08 14:46:42 -08:00
Thomas Goyne
a3dab7e4b1
Add wrappers for platform-specific headers and normalize include paths
...
Building the objectstore code now only requires adding the root `src` directory
to the include paths.
2016-02-08 14:46:42 -08:00
Nabil Hachicha
49a74e5646
Refactor & formatting code
2016-02-04 18:30:26 +00:00
Thomas Goyne
74eb195e7f
Add wrappers for a bunch more LinkView methods
2016-02-03 18:05:56 -08:00
Thomas Goyne
fdc67777bb
Make List default constructable
2016-02-03 18:05:56 -08:00
Thomas Goyne
4c5389dbac
Return RowExpr from List::get()
2016-02-03 18:05:55 -08:00
Thomas Goyne
8e58fc693c
Call verify_attached() from verify_in_transaction()
2016-02-03 18:05:55 -08:00
Thomas Goyne
27acf3f109
Fix spelling of verify_in_transaction
2016-02-03 18:05:55 -08:00
Thomas Goyne
9152198962
Change List::realm() to List::get_realm() for consistency
2016-02-03 18:05:55 -08:00
Thomas Goyne
6276266d67
Make List const-correct
2016-02-03 18:05:55 -08:00
Thomas Goyne
1cbbf1958f
Check the thread in all of List's methods
2016-02-03 18:05:55 -08:00
Thomas Goyne
243ae32187
Fix incorrect error message
2016-02-03 18:05:55 -08:00
Thomas Goyne
0819f72b1b
Remove call to sync_if_needed() on a LinkView
2016-02-03 18:05:55 -08:00
Thomas Goyne
62d573c1d9
Remove std:: from size_t in list.*
2016-02-03 18:05:55 -08:00
Thomas Goyne
356c17ba11
Remove list.hpp's dependency on shared_realm.hpp
2016-02-03 18:05:54 -08:00
Thomas Goyne
07c40b4517
Reformat list.{hpp,cpp} to match core style
2016-02-03 18:05:44 -08:00
Nabil Hachicha
e5ee6d8e9c
fixes #209 download core in gradle task
2016-01-30 18:26:27 +00:00
Nabil Hachicha
b92a281b5e
add missing refactored files
2016-01-28 15:11:33 +00:00
Nabil Hachicha
1e4c905cdc
Change package name fixes #204
2016-01-28 15:09:36 +00:00
Thomas Goyne
ad5db72767
Destroy all notifiers before closing realms in clear_cache()
2016-01-25 17:46:40 -08:00
Thomas Goyne
e557babaad
Fix the generic implementation of ExternalCommitHelper
2016-01-25 17:46:39 -08:00
Thomas Goyne
4eb49ce6dc
Add a not-very-useful generic CachedRealm implementation
2016-01-25 17:46:39 -08:00
Thomas Goyne
112c778d8e
Extract the non-Apple specific parts of CachedRealm to a base class
2016-01-25 17:46:39 -08:00
Thomas Goyne
178c562f2c
Add an untested non-Apple ExternalCommitHelper implementation
2016-01-25 17:46:39 -08:00
Thomas Goyne
4c195c92e0
Remove some unused cruft from ExternalCommitHelper
2016-01-25 17:46:39 -08:00
Thomas Goyne
513b3d770c
Add a short explanation of CachedRealm
2016-01-25 17:46:39 -08:00
Thomas Goyne
89bd55a535
Actually remove the Realm from the cache when close() is called
2016-01-25 17:46:38 -08:00
Thomas Goyne
9b8a0d5346
Log uncaught exceptions in the notifier thread
...
By default the thread just silently goes away.
2016-01-25 17:46:38 -08:00
Thomas Goyne
ebfca16d00
Eliminate a config copy when opening Realms
2016-01-25 17:46:38 -08:00
Thomas Goyne
e30e2ff278
Simplify RealmCoordinator::get_coordinator()
2016-01-25 17:46:38 -08:00
Thomas Goyne
7a0c83929f
Use an unordered map for the Realm coordinator cache
2016-01-25 17:46:38 -08:00
Thomas Goyne
d6daa052e8
Decouple Realm instance tracking from interprocess notifications
2016-01-25 17:46:38 -08:00
Thomas Goyne
2ed90e6d79
Check for invalid schema changes even when KVO is not used
2016-01-25 10:58:30 -08:00
Thomas Goyne
d5e00c9315
Handle allowed schema changes in the transaction log observer
2016-01-25 10:56:06 -08:00
Thomas Goyne
f3397d48c0
Add IndexSet tests
...
And fix a bug that resulted in ranges not being merged.
2016-01-25 10:36:54 -08:00
Thomas Goyne
c3a9489b02
Fix a potential deadlock when opening a realm
2016-01-25 10:13:44 -08:00
Thomas Goyne
e87a507223
Extract cache management and inter-Realm sharing to RealmCoordinator
2016-01-25 10:13:44 -08:00
Thomas Goyne
5e71c4178e
Merge pull request #17 from realm/tg-multiprocess-schema-init
...
Fix race condition in multiprocess schema init
2016-01-25 10:04:10 -08:00
Thomas Goyne
016112da8c
Merge pull request #20 from realm/tg-read-only-realm
...
Fix opening read-only Realms in read-only directories
2016-01-25 10:01:45 -08:00
Thomas Goyne
4a971b0102
Merge pull request #35 from realm/tg/cmake-fixes
...
Add headers and core's CPP flags to cmake
2016-01-25 10:01:34 -08:00
Scott Kyle
a6715d210d
Ignore more things when publishing with NPM
...
Unfortunately some kind of NPM bug is making it ignore a top-level .npmignore file.
2016-01-22 16:43:53 -08:00
Thomas Goyne
8d10a65088
Make Schema constructable from initializer lists
...
This enables the following syntax for defining object schemas, which is useful for writing tests:
Schema schema = {
{"origin", "", {
{"array", PropertyTypeArray, "target"}
}},
{"target", "", {
{"prop1", PropertyTypeInt},
{"prop2", PropertyTypeFloat},
}},
};
2016-01-22 11:55:05 -08:00
Ari Lazier
fe4abff106
delete files in the correct place
2016-01-21 12:37:03 -08:00
Scott Kyle
58ef90dc53
Only call size() when actually needed
...
This would unfortunately result in adverse performance side effects because calling size() can be expensive.
2016-01-21 11:41:38 -08:00
Thomas Goyne
62a729fbfd
Add headers to CMakeLists
2016-01-21 11:06:14 -08:00
Thomas Goyne
4b001e1842
Extract some logic to a helper function to avoid recursion in update_schema()
2016-01-20 16:26:30 -08:00
Thomas Goyne
8d7b5d8d08
Remove the tracking of if any changes were made from update_realm_with_schema()
...
It was no longer actually used for anything since we now check if any changes
are actually needed before calling it (to avoid beginning a write transaction
when not needed).
2016-01-20 16:26:30 -08:00
Thomas Goyne
9c2d4703ed
Reshuffle the updating of m_config in Realm::update_schema()
2016-01-20 16:26:30 -08:00
Thomas Goyne
6c25eeb85c
Fix race condition in multiprocess schema init
...
If the schema was initialized by a different process between when the old
schema was read and the write transaction was began, the schema init code would
see the updated schema version but not re-read the schema, resulting in it
thinking that a migration was required when the schema actually matched.
2016-01-20 16:26:29 -08:00
kishikawa katsumi
0bae415718
Read-only Realm should be opened even in immutable directory Realm files in an app bundle should be opened if marked as read-only
2016-01-20 16:25:10 -08:00
Nabil HACHICHA
bd379dd376
fixing crash on reload JS
2016-01-20 15:46:27 +00:00
Ari Lazier
b3530a43ff
use make_unique with gcc4.9
2016-01-19 13:12:24 -08:00
Ari Lazier
c4d5b9f5cc
merge latest object store
2016-01-19 10:51:43 -08:00
Mark Rowe
548701c2fd
Remove a bogus forward-declaration.
2016-01-19 10:41:25 -08:00
Mark Rowe
c4191d8af6
Hook the parser tests into the CMake build system.
2016-01-19 10:41:25 -08:00
Ari Lazier
5f2a51727b
merge in build system improvements
2016-01-15 12:46:58 -08:00
Ari Lazier
c6e46b9856
remove unneded dependencies
2016-01-15 11:49:22 -08:00
Scott Kyle
2f1eca4a9c
Merge branch 'master' into al-android-example
...
* master:
Fix typo in README
Improve clarity of schema parsing and serialization
Add test that checks schema validation
Update README with new Schema API
Cleanup some code and comments to make it consistent
Convert tests to create objects with property objects
Update example apps with new schema API
Remove confusion between propTypes and objectTypes
Simplify object schema info returned from RPC
RPC now keeps object keys in the same order
Change schema API to take properties as an object
Add method to clear mutation listeners in RPC client
Plug small leak from not releasing a JSStringRef
Make RJSStringForValue use consistent exception style
Improve error messages inside RJSUtil
2016-01-14 15:39:45 -08:00
Scott Kyle
1922125ab0
Improve clarity of schema parsing and serialization
2016-01-13 14:53:39 -08:00
Ari Lazier
63ffc760bd
merge latest from master
2016-01-13 12:46:07 -08:00
Ari Lazier
1ded2e661b
log levels
2016-01-13 11:50:19 -08:00
Ari Lazier
b45948eb9a
only start webserver in chrome debug mode
2016-01-13 11:32:29 -08:00
Ari Lazier
a9ef54d65d
chrome debugging
2016-01-13 11:18:10 -08:00