Hi all.
It seems to me that it would be more convenient to have unified SQL code generation if the place of the getComplied(Select/Update/etc) methods is to use the testMode() method.
Currently, depending on the method (update/delete/etc), using testMode() returns SQL code or true. Which, in my opinion, causes a light butthurt due to the ambiguity of behavior.
The BaseBuilder::testMode() method, for example, could affect the BaseConnection class and, depending on the passed value, the SQL code is returned or executed.
PHP Code:
$db->table('table')->update(...); // normal behavior
$db->table('table')->testMode()->update(...); // return sql
$db->table('table')->insertBatch(...); // normal behavior
$db->table('table')->testMode()->insertBatch(...); // return sql
$db->query(...); // normal behavior
$db->testMode()->query(...); // return sql