Implementing Query::append(), which will be useful for setting extra
options in certain queries, specifically for returning inserted values
in postgresql
Unit testing append when combined with insert
Unit testing append in combination with update
Unit testing append in conjunction with delete
Automatically adding RETURNING * to all insert queries generated by the
postgres dirver. This will help significanlty in getting the correct las
insert id regardless of the table or sequence used
Refactoring lastInsertId. It never made sense to have the method in the
connection object itself other than to mimic PDO.
This enables users to get the last insertion id directly from the insert
query statement, which is specially useful when using postgres as it will
return the full row inserted, thus avoiding any posibility for race
conditions and the hassle of having a map of sequences in the driver
itself
Correctly retrieving the last insert id in Table::save()
Adding test to prove that fields foreign to a table's schema are
filtered out when saving
Implemented Entity::extract(), a pluck utility method to quickly grab
selected properties out of an entity object
Implementing whitelisting in Table::save()
Implementing the beforeSave event
Addin test to show how to change the options array in beforeSave
Adding test to show how to stop a save event and set a result for it
Added the afterSave callback
Making save atomic
Adding test case for rolling back transactions in the case of an
exception
Adding a 'transactional' method to DAtabase\Connection that will help
reducing the amount of conditionals in Table::save
Adding tests for Connection::transactional()
Refactoring Table::save() to use Connection::transactional()
Implemented Entity::dirty() to mark changes in properties, this will
help at later point to only save those properties that were actually
changed