Heap files can handle pmr or space using standard method:
// select * from R where C
r = openRelation("R",READ);
for (p = 0; p < nPages(r); p++) {
buf = getPage(file(r), p);
for (i = 0; i < nTuples(buf); i++) {
t = getTuple(buf,i);
if (matches(t,C))
add t to result set
}
}