@@ -41,7 +41,7 @@ Your task is to finish a few of the unfinished pieces in the `btree.py` and `que
...
@@ -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.
* [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.
You are to implement this function.
* [12pt] Function `NaturalJoin` in `queryprocessing.py`: Your task is to implement the entire NaturalJoin class.
* [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.
* [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.)
Note: Make sure to handle extreme cases (e.g., no input tuples for the joins or SetMinus, etc.)