When the current copy on an on shelf hold is the same as that on some
uncaptured holds, the hold fails to appear on the hold shelf when it
should. This comes down to some SQL in the storage function to
retrieve wide holds: open-ils.storage.action.live_holds.wide_hash.
The intent of the new code is to check that the current hold matches
the most recently captured hold for the copy. However, it fails to
take into account that non-captured holds could have the same current
copy as the presently captured and on shelf hold. This patch
rectifies this by limiting the check to captured holds.
Signed-off-by: Jason Stephenson <jason@sigio.com>
SELECT id
FROM action.hold_request recheck
WHERE recheck.current_copy = cp.id
+ AND recheck.capture_time IS NOT NULL
ORDER BY capture_time DESC
LIMIT 1
)))