mainly keyword compatibility

- support any word as column name (eg. 'when')
- big readable error message when a query fails