We're comparing CMS products and trying to work out the key features of some of the popular choices out is surprisingly difficult.

Can anyone help enlighten as to which products (Joomla, Drupal etc) have the following features:-

1. Versioning - all edits and publishes are versioned, so you can roll back to an earlier version at any time
2. Staging - all changes can be viewed on a stage version of your site, before being released to your live website
3. Multi-user - if someone is editing something, it is locked, so other user can't make edits clobbering your changes
4. Flexible database support - so you can add fields or new tables of content at any time, without having to cut code or change the admin. For example, you could just add a table called Events, define the fields you want and then start editing and publishing events (assuming you also had a template built to present them).

Strangely enough, most sites don't seem to have a comprehensive feature list ticking or otherwise these kinds of basic features.