void setDatabseObjects(Session session, CompileContext compileContext) {

    parameters = compileContext.getParameters();

    setParameters();
    setParameterMetaData();

    subqueries = getSubqueries(session);
    rangeIteratorCount = compileContext.getRangeVarCount();
    rangeVariables = compileContext.getRangeVariables();
    sequences = compileContext.getSequences();
    routines = compileContext.getRoutines();

    OrderedHashSet set = new OrderedHashSet();

    collectTableNamesForWrite(set);

    if (set.size() > 0) {
      writeTableNames = new HsqlName[set.size()];

      set.toArray(writeTableNames);
      set.clear();
    }

    collectTableNamesForRead(set);
    set.removeAll(writeTableNames);

    if (set.size() > 0) {
      readTableNames = new HsqlName[set.size()];

      set.toArray(readTableNames);
    }

    references = compileContext.getSchemaObjectNames();

    if (targetTable != null) {
      references.add(targetTable.getName());
    }
  }