Just one more data point: drivers do allow users to execute queries in a
free form.
Shat is the user might execute /*comment*/commit/*comment*/ as a free-form
SQL, and they would expect that the resulting
 behaviour should be exactly the same as .commit() API call (==silent
rollback is converted to an exception).

That is drivers can add extra logic into .commit() API implementation,
however, turning free-form SQL into exceptions
is hard to do consistently from the driver side.
It is not like "check the response from .commit() result".
It is more like "don't forget to parse user-provided SQL and verify if it
is semantically equivalent to commit"

Pushing full SQL parser to the driver is not the best idea taking into the
account the extensibility the core has.

Vladimir

Reply via email to