Commit Graph

574 Commits

Author SHA1 Message Date
Ari Lazier 321ddc39e1 bug fix 2016-04-11 16:03:36 -07:00
Ari Lazier b542fe8c7b tests 2016-04-11 16:01:51 -07:00
Ari Lazier 3a174161d7 support keypath comparisons for types that support it 2016-04-11 15:03:47 -07:00
Ari Lazier 8a77099685 support for null queries 2016-04-11 13:58:52 -07:00
Ari Lazier 805fdc63a7 don't require optional or link properties when creating objects 2016-04-01 11:00:53 -07:00
Ari Lazier 4ac022ecc9 don't require optional or link properties when creating objects 2016-04-01 11:00:53 -07:00
Ari Lazier f80bcd882d convert schema parsing 2016-03-30 16:14:48 -07:00
Ari Lazier 61685dee83 use string wrapper, finish realm constructor conversion 2016-03-30 14:56:33 -07:00
Ari Lazier 29213f1d87 wrap list properties 2016-03-30 14:18:44 -07:00
Ari Lazier c249eea505 wrap realm properties 2016-03-30 13:48:24 -07:00
Ari Lazier 2baec5bec6 move static methods and constructor 2016-03-30 13:09:05 -07:00
Ari Lazier 0282e98232 move exception handling to method wrapper 2016-03-30 11:55:13 -07:00
Ari Lazier 58d50bb3c5 refactor realm 2016-03-30 10:23:15 -07:00
Ari Lazier 016d723731 tmp 2016-03-30 09:16:38 -07:00
Ari Lazier 5b2a59d5c6 converted BindingContext 2016-03-29 16:17:57 -07:00
Scott Kyle 2c0d8f8cef [0.11.1] Bump version 2016-03-29 15:30:39 -07:00
Ari Lazier e7d954a727 wrap all types in a single type and use static class methods 2016-03-29 14:12:27 -07:00
Ari Lazier b4990fbbff convert more of Realm 2016-03-29 13:36:01 -07:00
Scott Kyle 0f9f450062 Remove changes_available implementation that asserts
This gets called when a Realm changes on another thread, but is called on the correct thread on iOS. It doesn't look like it will be called on Android, so we can unofficially support iOS accessing Realms from multiple bindings for now.

Fixes #352
2016-03-29 12:59:06 -07:00
Ari Lazier 9626842f8e start refactoring realm 2016-03-28 13:21:36 -07:00
Ari Lazier 20bac8e2c7 refactor list 2016-03-25 12:13:49 -07:00
Scott Kyle daa2948028 Move RealmJS.xcodeproj to be under src/ios 2016-03-23 13:39:12 -07:00
Scott Kyle 0e74362e4c Merge pull request #340 from realm/sk-collection
Make List and Results inherit from Collection
2016-03-21 15:27:18 -07:00
Ari Lazier 4b2e47a861 support encrypted realm when getting schemaVersion 2016-03-21 13:34:12 -07:00
Ari Lazier 836cfc1c6b add chrome debugging, use -1 for not versioned 2016-03-21 13:34:12 -07:00
Ari Lazier 324c3d702b support getting the schema version from unopened realms 2016-03-21 13:34:11 -07:00
Ari Lazier c32dff40a2 case insensitive searches 2016-03-21 13:32:03 -07:00
Ari Lazier 8b986f031c case insensitive searches 2016-03-21 13:32:03 -07:00
Scott Kyle b5ce02c0ce Make List and Results inherit from Collection
This will allow for easier type checking, documentation, etc.
2016-03-20 11:51:16 -07:00
Ari Lazier 7ef25e9e14 its a struct 2016-03-18 20:04:30 -07:00
Ari Lazier 693df136d5 its a struct 2016-03-18 20:04:30 -07:00
Ari Lazier f186c3d1b7 android fixes for latests object store 2016-03-18 19:58:45 -07:00
Ari Lazier 67f2f40297 android fixes for latests object store 2016-03-18 19:58:45 -07:00
Ari Lazier b2e4d93732 support for indexed properties 2016-03-18 16:50:55 -07:00
Ari Lazier 7fe2f69b8c latest object store 2016-03-18 16:14:11 -07:00
Ari Lazier b02f64e727 latest object store 2016-03-18 16:14:11 -07:00
Thomas Goyne aaccb8992f Merge pull request #51 from realm/tg/indexable
Bool and NSDate properties can be indexed.
2016-03-18 15:33:56 -07:00
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 48d8b6a2e7 fixes #329 2016-03-14 16:09:22 -07:00
Nabil Hachicha 92f3314a0b fixes #329 2016-03-14 16:09:22 -07:00
Ari Lazier 991c25865a fix for reload in example 2016-03-13 10:09:53 -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 6b523bab09 forward declare property 2016-03-04 07:28:10 -08:00
Ari Lazier 21a4e2543e forward declare property 2016-03-04 07:28:10 -08:00
Ari Lazier f7927f189c use core to_string 2016-03-04 07:09:49 -08:00
Ari Lazier 42cb078a8c use core to_string 2016-03-04 07:09:49 -08:00
Ari Lazier eb7f213c93 pr fixes 2016-03-03 16:49:06 -08:00
Ari Lazier 987978fd4e 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