A heap file is an unordered set of records. The following operations are supported:  * Heap files can be created and destroyed.  * Existing heapfiles can be opened and closed. * Records can be inserted and deleted.  * Records are uniquely identified by a record id (rid). A specific record can be retrieved by using the record id.  Sequential scans on heap files are also supported. A scan object is created, and get-next calls on this object allow us to retrieve all records starting from the first record.  A file scan iterator uses a heap file scan, and calls the eval function to apply any desired selections to the retrieved tuples.  Temporary heap files are supported as well. These are used for external sorting.  A word on naming: The catalog also names files. It would be best to have a global naming algorithm.