Relation in;
Relation out;
int ipid,opid,tid;
Record rec;
Page ibuf,obuf;
in = openRelation("S", READ);
out = openRelation("T", NEW|WRITE);
clear(obuf); opid = 0;
for (ipid = 0; ipid < nPages(in); ipid++) {
ibuf = get_page(in, ipid);
for (tid = 0; tid < nTuples(ibuf); tid++) {
rec = get_record(ibuf, tid);
if (!hasSpace(obuf,rec)) {
put_page(out, opid++, obuf);
clear(obuf);
}
insert_record(obuf,rec);
} }
if (nTuples(obuf) > 0) put_page(out, opid, obuf);
|