If you have a site with a lot of users update_fix_d7_block_deltas() can take some time. For us, the update function runs 11,673 time each from menu_update_7002() and system_update_7004(), just over 2/3 of the total update function calls, as reported by drush -v. This is quite a lot, especially since we haven't had configurable blocks for 2 years.
Checking ->where('data IS NOT NULL') is nice, but checking for serialize('block') should save enough time to make up for the slow query. The query being slow isn't too much of a problem, for Drupal.org's live server, it completes in about 3 seconds.
Comments
Comment #1
drummHere is a patch I'm trying out.
Comment #3
drummThis fixes an infinite loop.
Comment #4
drumm(tag)
Comment #5
drummThis helped a bit with cutting our update time from 14 hours to 9 hours. Removing password rehashing was also part of this.
Comment #6
webchickThis is just a performance patch, so not much to test here. The existing tests don't break, so that's encouraging. :)
Committed and pushed to 7.x. Thanks!