Instead of duplicating this caching code, it could be moved into StmtTableScan something like

    public final getPartitioningColumns() {
        if (m_partitioningColumns == null) {
            m_partitioningColumns = findPartitioningColumns();
        }
        return m_partitioningColumns;
    }

Then m_partitioningColumns can be private and findPartitioningColumns can be protected.