datajoint-python
datajoint-python copied to clipboard
make that table "delete" returns the count of deleted objects
Request to change the return behavior of "delete"
Problem
The table delete method returns the number of objects that fit the query as "delete_count". When the delete is aborted it returns a positive number.
Workaround
If inside the inherited delete method, check the len(self) to know if deleted.
Requirements
Return the number of deleted objects
Justification
This can be used to perform actions only if the objects were deleted
Related Errors
There are no errors but it is not intuitive that when no objects are deleted the function returns the number of objects that could have been deleted. :)
I do not believe that the problem description is accurate. delete_count is returned by the database as the actual number of rows deleted when successful. If the delete is aborted, then no rows should be deleted. Deletes are atomic: all or none. I think the real issue is in the incorrect reporting of deleted records when the delete is rolled back. It should be set to zero.
I agree, thanks.