Indexes Project::indexes() { Indexes idxs; for (Indexes src = source->indexes(); ! nil(src); ++src) if (subset(flds, *src)) idxs.push(*src); return idxs; }
Indexes Project::keys() { Indexes keys; for (Indexes k = source->keys(); ! nil(k); ++k) if (subset(flds, *k)) keys.push(*k); return nil(keys) ? Indexes(flds) : keys; }