public void replace(String querySQL, String[] columnNames, Session session, boolean recursive, boolean force) {
String oldQuerySQL = this.querySQL;
String[] oldColumnNames = this.columnNames;
boolean oldRecursive = this.recursive;
init(querySQL, null, columnNames, session, recursive);
DbException e = recompile(session, force);
if (e != null) {
init(oldQuerySQL, null, oldColumnNames, session, oldRecursive);
recompile(session, true);
throw e;
}