@@ -41,7 +41,7 @@ Your task is to finish a few of the unfinished pieces in the `btree.py` and `que
* [12pt] Function `redistributeWithBlock(self, otherBlock)` in `btree.py`: The delete code does not handle the case where an underfull node borrows entries from one of its siblings.
You are to implement this function.
* [12pt] Function `NaturalJoin` in `queryprocessing.py`: Your task is to implement the entire NaturalJoin class.
* [8pt] Functions in `GroupByAggregate` in `queryprocessing.py`: The GroupByAggregate handles 4 aggregation operators -- your task is to finish the implementation of three more: AVERAGE, MEDIAN, and MODE.
* [8pt] Functions in `GroupByAggregate` in `queryprocessing.py`: The GroupByAggregate handles 4 aggregation operators -- your task is to finish the implementation of three more: AVERAGE, MEDIAN, and MODE. We will not test your MEDIAN solution with an even number of elements, or lists with more than a single MODE.
* [8pt] Function `SetMinus.get_next()` in `queryprocessing.py`: Here you have to finish the implementation of the SetMinus operation.
Note: Make sure to handle extreme cases (e.g., no input tuples for the joins or SetMinus, etc.)