Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure we can optimally retrieve by PrimaryKey #402

Closed
AndyDentFree opened this issue Feb 19, 2016 · 3 comments
Closed

Ensure we can optimally retrieve by PrimaryKey #402

AndyDentFree opened this issue Feb 19, 2016 · 3 comments
Assignees
Labels
Blocked This issue is blocked by another issue T-Enhancement
Milestone

Comments

@AndyDentFree
Copy link
Contributor

AndyDentFree commented Feb 19, 2016

To use objects in different threads we need the commnon approach of being able to pass the ObjectId PrimaryKey to another thread and very quickly get the object back by that id. This is also important to CreateOrUpdate scenarios.

See the Swift update by PrimaryKey

@AndyDentFree AndyDentFree self-assigned this Feb 19, 2016
@kristiandupont kristiandupont added this to the v1.0 milestone Jul 5, 2016
@AndyDentFree AndyDentFree self-assigned this Jul 12, 2016
AndyDentFree added a commit that referenced this issue Jul 25, 2016
ObjectIdTests.cs
- added

Realm.cs
- ById added (with overloads by types)
- All<T> refactored out SchemaIfInRealm

wrappers/src/query_cs.cpp
- row_for_string_id added
AndyDentFree added a commit that referenced this issue Jul 25, 2016
AndyDentFree referenced this issue Jul 29, 2016
* master:
  Add PCL built schemas into unit tests - add copyright headers
  Specific error messages for detached rows (#724)
  Add PCL built schemas into unit tests
  Fix signature mismatch in PCL ToNotifyCollectionChanged - tweak IOS options
  Fix signature mismatch in PCL ToNotifyCollectionChanged - delete bogus copy
  Fix signature mismatch in PCL ToNotifyCollectionChanged - add libwrappers.so to Droid project and ensure builds for all ABIs
  Fix signature mismatch in PCL ToNotifyCollectionChanged
  #715 Fix Weaving error
  Bump versions for 0.77.1 release
  #715 - minor test change to allow building ThreeLayerRealmXF for devices - needs to include DotNetCross.MemoryUnsafe directly
  #715 - minor test change to allow building ThreeLayerRealmXF if only build Debug Realm and for iPhoneSimulator
  #715 - minor test change to allow building ThreeLayerRealmXF if only build Debug Realm
  #715 Fix Weaving error
  £715 Fix Weaving error
  Fix tests for NuGet (#713)
  Bumped changelog

# Conflicts:
#	Realm.Shared/Realm.Shared.projitems
#	internals/Realm-dotnet Code Change Diary - Andy Dent.txt
AndyDentFree referenced this issue Aug 12, 2016
# Conflicts:
#	Tests/IntegrationTests.Shared/IntegrationTests.Shared.projitems
#	internals/Realm-dotnet Code Change Diary - Andy Dent.txt
AndyDentFree added a commit that referenced this issue Aug 15, 2016
ObjectIdTests.cs
- added

Realm.cs
- ById added (with overloads by types)
- All<T> refactored out SchemaIfInRealm
- CreateRealmObjectMetadata work out index of objectId col

wrappers/query_cs.cpp
- row_for_string_id added

RealmObject.Metadata
- ObjectIdColIndex added
AndyDentFree added a commit that referenced this issue Aug 16, 2016
… ObjectId types and some refactoring to provide integer searches
AndyDentFree added a commit that referenced this issue Aug 16, 2016
… ObjectStore code to use find_first

(based on PR feedback, using `find_first_string` is leaner than building a Query)
AndyDentFree added a commit that referenced this issue Aug 16, 2016
AndyDentFree added a commit that referenced this issue Aug 17, 2016
RealmObject.cs
- Metadata - removed ObjectIdColIndex

Realm.cs
- ObjectById rewritten to pass schema, renamed ObjectForPrimaryKey to match other SDKs
- CreateRealmObjectMetadata don't work out index of objectId col
- MetadataCheckingHasObjectId - removed helper method

wrappers/query_cs.cpp
- renamed *_for_id to row_for_int_primarykey

wrappers/realm_error_type.hpp
- RealmErrorType - RealmTableHasNoPrimaryKey=22 added

wrappers/object_store.hpp/cpp
- PrimaryKeyNotDeclaredException added

wrappers/error_handling.cpp
- convert_exception - map PrimaryKeyNotDeclaredException to RealmTableHasNoPrimaryKey

RealmExceptionCodes.cs
- RealmTableHasNoPrimaryKey=22 added

RealmException.cs
- Create - added mapping RealmTableHasNoPrimaryKey to RealmClassLacksObjectIdException

ObjectIdTests.cs
- renamed PrimaryKeyTests

RealmPCL.cs
- added proxy methods for all four ObjectForPrimaryKey variants

AsyncTests.cs
- AsyncWrite_UpdateViaPrimaryKey use ObjectForPrimaryKey instead of a search

 General search and replace ObjectId with PrimaryKey
@AndyDentFree
Copy link
Contributor Author

Moved back from review because approach I took was rejected. Now waiting for #750 so I can use a new exception type from ObjectStore rather than adding one.

@AndyDentFree AndyDentFree added Blocked This issue is blocked by another issue S:P1 Backlog and removed S:In Progress Blocked This issue is blocked by another issue labels Aug 19, 2016
AndyDentFree added a commit that referenced this issue Aug 23, 2016
ObjectSchema.cs
- FromType - also mark as indexed if IsPrimaryKey
AndyDentFree referenced this issue Aug 23, 2016
# Conflicts:
#	CHANGELOG.md
#	Realm.Shared/Realm.cs
#	Realm.Shared/RealmObject.cs
#	Realm.Shared/Schema/Property.cs
#	Realm.Shared/Schema/RealmSchema.cs
#	Realm.Shared/linq/RealmResults.cs
#	Realm.Shared/native/NativeTable.cs
#	internals/Realm-dotnet Code Change Diary - Andy Dent.txt
#	wrappers/src/object-store/src/object_store.hpp
#	wrappers/src/query_cs.cpp
AndyDentFree added a commit that referenced this issue Aug 23, 2016
Theoretically complete but not building due weird forwarding error
committing to test elsewhere
AndyDentFree added a commit that referenced this issue Aug 25, 2016
…opy of schema

twofold fix:
- remove bogus `PrimaryKeyAttribute.cs` from IntegrationTests, which was shielding the correct one from `Realm.Shared` so preventing C# side setting up schema to say any primary keys
- schema_create now set the primary_key string to name of property specified as [PrimaryKey]
@AndyDentFree AndyDentFree changed the title Ensure we can optimally retrieve by ObjectId Ensure we can optimally retrieve by PrimaryKey Aug 25, 2016
@AndyDentFree AndyDentFree added the Blocked This issue is blocked by another issue label Aug 25, 2016
@AndyDentFree
Copy link
Contributor Author

Think this is blocked by #789 now other bugs are fixed, as it is crashing because the schema we pass in has bogus column indexes.

AndyDentFree added a commit that referenced this issue Aug 25, 2016
@AndyDentFree
Copy link
Contributor Author

Should post an update on the Akavache branch when this ships.

AndyDentFree added a commit that referenced this issue Aug 29, 2016
AndyDentFree added a commit that referenced this issue Aug 29, 2016
AndyDentFree added a commit that referenced this issue Aug 29, 2016
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Blocked This issue is blocked by another issue T-Enhancement
Projects
None yet
Development

No branches or pull requests

2 participants