modified |= mergeChildren(collapse);
    boolean innerize(Set collapse) {        boolean modified = false;        if (!m_outer && m_parent != null && m_equiset != m_parent.m_equiset) {            if (m_parent.m_equiset.addAll(m_equiset)) {                collapse.add(m_parent.m_equiset);            }            m_equiset = m_parent.m_equiset;            modified = true;        }        if (!m_outer && m_parent != null && m_nonnull != m_parent.m_nonnull) {            m_parent.m_nonnull.addAll(m_nonnull);            m_nonnull = m_parent.m_nonnull;            modified = true;        }        if (m_condition != null) {            if (!m_equated) {                m_generator.equate(m_equiset, m_condition);                collapse.add(m_equiset);                m_equated = true;                modified = true;            }        }        if (m_columns != null) {            modified |= innerizeAncestors(m_qvalues);        }        if (m_outer) {            m_equals.clear();            if (addEquals(m_equals)) {                m_from.clear();                m_to.clear();                m_generator.split(this, m_equals, m_from, m_to);                // XXX: compound keys                if (m_to.size() == 1) {                    QValue target = (QValue) m_to.get(0);                    List vals = m_parent.m_equiset.get(target);                    if (vals != null) {                        QValue key = (QValue) m_from.get(0);                        String table = key.getTable();                        String column = key.getColumn();                        if (table != null && column != null) {                            for (int i = 0; i < vals.size(); i++) {                                QValue qv = (QValue) vals.get(i);                                if (table.equals(qv.getTable())                                    && column.equals(qv.getColumn())                                    && m_parent.nn(qv)) {                                    m_outer = false;                                    modified = true;                                    // Our join condition is                                    // equivalent to an inner join                                    // condition                                }                            }                        }                    }                }            }        }        return modified;    }