[CODM-31] UnitOfWork#doDetach does not remove a document from the identityMap - uses incorrect index Created: 10/Aug/11  Updated: 15/Aug/11  Resolved: 15/Aug/11

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Marnus Weststrate Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Description   

In UnitOfWork on line 656 the oid is used to index the identity map instead of the document id when detaching an object. This is probably due to an incomplete port from the ORM. The following change fixes the bug (I will make the change and request a merge):

Currently:
656: if (isset($this->identityMap[$oid])) {

Should be:
656: if (isset($this->identityMap[$this->documentIdentifiers[$oid]])) {

Further suggestion

Since the document id is guaranteed to be unique would it not be better to do away with the oid completely? It seems the following would be a relatively cheap substitute for the current getDocumentIdentifier() implementation (excluding the check that it is managed which is also currently done in this method):

public function getDocumentIdentifier($document)
{
$class = $this->dm->getClassMetadata(get_class($document));
return $class->getIdentifierValue($document);
}

Then all the arrays in the UnitOfWork can be indexed using the document id and the above method can be called to obtain that wherever spl_object_hash is currently used to obtain the $oid. (Of course, if running spl_object_hash is faster than retrieving the doc id as I suggest above then the current implementation is better.)






[CODM-30] Align naming of Events namespace with other ORM/ODM (aka s/Events/Event) Created: 30/Jul/11  Updated: 30/Jul/11  Resolved: 30/Jul/11

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: Lukas Kahwe Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None





[CODM-20] Add Caching to ClassMetadata Created: 24/Nov/10  Updated: 24/Nov/10  Resolved: 24/Nov/10

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Benjamin Eberlei Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Description   

Metadata is currently parsed on every request.

A caching layer for the ClassMetadata instances has to be implemented to work like in ORM or MongoDB ODM.



 Comments   
Comment by Benjamin Eberlei [ 24/Nov/10 ]

Implemented





Add Cascade Operations to Associations (CODM-13)

[CODM-18] Implement Cascade Remove Created: 24/Nov/10  Updated: 19/Dec/10  Resolved: 19/Dec/10

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Sub-task Priority: Major
Reporter: Benjamin Eberlei Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Comments   
Comment by Benjamin Eberlei [ 19/Dec/10 ]

Implemented





Add Cascade Operations to Associations (CODM-13)

[CODM-17] Implement Cascade Persist Created: 24/Nov/10  Updated: 19/Dec/10  Resolved: 19/Dec/10

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Sub-task Priority: Major
Reporter: Benjamin Eberlei Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Description   

Implement Cascade Persist



 Comments   
Comment by Benjamin Eberlei [ 19/Dec/10 ]

Implemented





Add Cascade Operations to Associations (CODM-13)

[CODM-16] Implement Cascade Detach Created: 24/Nov/10  Updated: 21/May/11  Resolved: 21/May/11

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Sub-task Priority: Major
Reporter: Benjamin Eberlei Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Description   

Implement Cascade Detach






Add Cascade Operations to Associations (CODM-13)

[CODM-15] Implement Cascade Merge Created: 24/Nov/10  Updated: 14/Feb/11  Resolved: 14/Feb/11

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Sub-task Priority: Major
Reporter: Benjamin Eberlei Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Description   

Implement Cascade Merge



 Comments   
Comment by Benjamin Eberlei [ 24/Nov/10 ]

This is mostly done, only missing the "persist by reachibility" checks that are necessary in computeChangeSet().

Comment by Benjamin Eberlei [ 14/Feb/11 ]

Seems done!





[CODM-23] Add support for @EmbedMany and @EmbedOne Created: 24/Nov/10  Updated: 20/May/11  Resolved: 20/May/11

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Benjamin Eberlei Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Description   

We need support for nested value objects through the @EmbedMany and @EmbedOne annotations.



 Comments   
Comment by Bártfai Tamás [ 20/Mar/11 ]

This is fixed in the master now.





[CODM-12] Add DocumentManager::merge() and DocumentManager::detach() Created: 22/Nov/10  Updated: 21/May/11  Resolved: 21/May/11

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Benjamin Eberlei Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Description   

Add DocumentManager::merge() and DocumentManager::detach()



 Comments   
Comment by Benjamin Eberlei [ 21/May/11 ]

Implemented





[CODM-11] Add Query API for couch-lucene Created: 22/Nov/10  Updated: 04/Dec/10  Resolved: 04/Dec/10

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Benjamin Eberlei Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Description   

Couch-Lucene is a very nice tool to enhance CouchDB with lucence query api natively:

https://github.com/rnewson/couchdb-lucene



 Comments   
Comment by Benjamin Eberlei [ 04/Dec/10 ]

Implemented





[CODM-9] implement lazy loading Created: 21/Sep/10  Updated: 03/Oct/10  Resolved: 03/Oct/10

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Lukas Kahwe Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Comments   
Comment by Benjamin Eberlei [ 03/Oct/10 ]

Implemented for Collections and PRoxies.





[CODM-6] add support for a query api Created: 21/Sep/10  Updated: 03/Oct/10  Resolved: 03/Oct/10

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Lukas Kahwe Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Description   

query view's, add limit/sort order/include_docs option etc.



 Comments   
Comment by Benjamin Eberlei [ 03/Oct/10 ]

Implemented





[CODM-2] add annotation/xml/yml support for metadata definition Created: 21/Sep/10  Updated: 21/May/11  Resolved: 21/May/11

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Lukas Kahwe Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Comments   
Comment by Benjamin Eberlei [ 02/Oct/10 ]

This issue raises the question: What set of metadata do we support?

Obvious are the ones that are primitive json types:

@String
@Float
@Integer
@Array
@Boolean

Then primitive types that need conversion:

@Date

Then CouchDB specific stuff:

@Id
@Version

On the Entity Class

@Document - Without arguments

References:

@ReferenceMany(targetDocument=..)
@ReferenceOne(targetDocument=..)
@EmbedMany(targetDocument=..)
@EmbedOne(targetDocument=..)

Attachments:

@Attachments - All attachments of the Document indexed by name (Should be wrapped by an attachment collection or something)
@Attachment - A special attachment accessible through this field name, null if not exists
Comment by Benjamin Eberlei [ 21/May/11 ]

Implemented Yaml and XML Metadata Drivers





[CODM-4] add many2many support Created: 21/Sep/10  Updated: 03/Oct/10  Resolved: 03/Oct/10

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Lukas Kahwe Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Comments   
Comment by Benjamin Eberlei [ 03/Oct/10 ]

Implemented





[CODM-3] add many2one support Created: 21/Sep/10  Updated: 03/Oct/10  Resolved: 03/Oct/10

Status: Resolved
Project: Doctrine CouchDB ODM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Lukas Kahwe Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


 Comments   
Comment by Benjamin Eberlei [ 03/Oct/10 ]

Implemented





Generated at Wed Aug 20 08:55:33 UTC 2014 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.