You’re clever, which means you’re mostly right about things. But everybody is wrong sometime, so how long does it take for you to change your mind?
People don’t often change their minds quickly. A snap answer is always whatever you were thinking currently. If it was a No, you say No. If it was a Yes, you say Yes. If you answer too quickly you can’t possibly have taken in what was being said to you.
Can you change your mind?
“When the facts change, I change my mind. What do you do, sir?”, often misattributed to John Maynard Keynes.
For Humans, changing your mind based on new information takes days or months. If you have emotional objections, it can take months or years. If anyone has research on that, I’d be interested to see it – the above numbers are really just observation of how us humans behave.
So PostgreSQL adoption has been slow, but it builds over time. Many former users of Oracle or MySQL or other databases now use and accept the PostgreSQL database and I welcome them, as a former Oracle DBA myself.
PostgreSQL itself never changes its mind. Once we COMMIT, that data is there until the next UPDATE/DELETE.
We can’t simply UNCOMMIT a transaction because later transactions depend upon it. In PostgreSQL we literally can’t undo a transaction because we don’t record that information – we use a redo-only transaction log manager.
Someone suggested UNVACUUM to me once. I laughed because my mind was set. It’s only years later that I think about what the user requirement actually was, rather than the specific design proposal used to describe that requirement
PostgreSQL supports Point In Time Recovery, which I wrote back in 2004. Without scripting that can take an effort to recover previous database states.
Which is why I’m thinking about how to do in-database-rollback. The best way seems to be to implement Historical Query and that is something I’ll be working on in 2018. Unless I change my mind.