anchor.diff:                      result_exec_stmt(StmtExecResult,Statement,Sql,Binds,NewSql,RowIdAdded,
                                        Connection,SelectSections)
               end;
  +        {error, {ErrorId,Msg}} -> error({ErrorId,Msg});
           Statement ->
               StmtExecResult = bind_exec_stmt(Statement, Binds),
               result_exec_stmt(StmtExecResult,Statement,Sql,Binds,NewSql,RowIdAdded,Connection,
  
positive.code: run_query(Connection, Sql, Binds, NewSql, RowIdAdded, SelectSections) ->
      %% For now only the first table is counted.
      case Connection:prep_sql(NewSql) of
          {error, {ErrorId,Msg}} ->
              case Connection:prep_sql(Sql) of
                  {error, {ErrorId,Msg}} ->
                      error({ErrorId,Msg});
  
negative.code:     exec(Connection, Sql, undefined, MaxRowCount).
  
  -spec exec(tuple(), binary(), tuple(), integer()) -> ok | {ok, pid()} | {error, term()}.
  exec({oci_port, _, _} = Connection, OrigSql, Binds, MaxRowCount) ->
      {Sql, NewSql, TableName, RowIdAdded, SelectSections} =
          parse_sql(sqlparse:parsetree(OrigSql), OrigSql),
      case catch run_query(Connection, Sql, Binds, NewSql, RowIdAdded, SelectSections) of
          {'EXIT', {Error, ST}} ->
              ?Error("run_query(~s,~p,~s)~n{~p,~p}", [Sql, Binds, NewSql, Error, ST]),
  