Skip to content

Instantly share code, notes, and snippets.

@kelvingakuo
Created November 29, 2021 17:53
Show Gist options
  • Save kelvingakuo/a1057fad8c6a670a5dca87363b7ce6d0 to your computer and use it in GitHub Desktop.
Save kelvingakuo/a1057fad8c6a670a5dca87363b7ce6d0 to your computer and use it in GitHub Desktop.
from b_tree_index import BTreeIndex
import pprint
if __name__ == "__main__":
tbl = [
{"id": 1, "col_a": 7, "col_b": "A", "TID": 101},
{"id": 2, "col_a": 7, "col_b": "B", "TID": 102},
{"id": 3, "col_a": 25, "col_b": "C", "TID": 103},
{"id": 4, "col_a": 30, "col_b": "D", "TID": 104},
{"id": 5, "col_a": 4, "col_b": "E", "TID": 105},
{"id": 6, "col_a": 55, "col_b": "F", "TID": 106},
{"id": 7, "col_a": 99, "col_b": "G", "TID": 107},
{"id": 8, "col_a": 88, "col_b": "H", "TID": 108},
{"id": 9, "col_a": 53, "col_b": "I", "TID": 109},
{"id": 10, "col_a": 14, "col_b": "J", "TID": 110},
{"id": 11, "col_a": 53, "col_b": "K", "TID": 111},
{"id": 12, "col_a": 53, "col_b": "L", "TID": 112},
{"id": 13, "col_a": 99, "col_b": "M", "TID": 113},
{"id": 14, "col_a": 150, "col_b": "N", "TID": 114},
{"id": 15, "col_a": 170, "col_b": "O", "TID": 115}
]
b = BTreeIndex(tbl, "col_a")
rowss = b.lookup_using_tree_index(53, '=')
# [{'TID': 109, 'col_a': 53, 'col_b': 'I', 'id': 9},
# {'TID': 111, 'col_a': 53, 'col_b': 'K', 'id': 11},
# {'TID': 112, 'col_a': 53, 'col_b': 'L', 'id': 12}]
rowss = b.lookup_using_tree_index(53, '<')
# [{'TID': 103, 'col_a': 25, 'col_b': 'C', 'id': 3},
# {'TID': 104, 'col_a': 30, 'col_b': 'D', 'id': 4},
# {'TID': 102, 'col_a': 7, 'col_b': 'B', 'id': 2},
# {'TID': 110, 'col_a': 14, 'col_b': 'J', 'id': 10},
# {'TID': 105, 'col_a': 4, 'col_b': 'E', 'id': 5},
# {'TID': 101, 'col_a': 7, 'col_b': 'A', 'id': 1}]
rowss = b.lookup_using_tree_index(53, '<=')
# [{'TID': 109, 'col_a': 53, 'col_b': 'I', 'id': 9},
# {'TID': 111, 'col_a': 53, 'col_b': 'K', 'id': 11},
# {'TID': 112, 'col_a': 53, 'col_b': 'L', 'id': 12},
# {'TID': 103, 'col_a': 25, 'col_b': 'C', 'id': 3},
# {'TID': 104, 'col_a': 30, 'col_b': 'D', 'id': 4},
# {'TID': 102, 'col_a': 7, 'col_b': 'B', 'id': 2},
# {'TID': 110, 'col_a': 14, 'col_b': 'J', 'id': 10},
# {'TID': 105, 'col_a': 4, 'col_b': 'E', 'id': 5},
# {'TID': 101, 'col_a': 7, 'col_b': 'A', 'id': 1}]
rowss = b.lookup_using_tree_index(53, '>')
# [{'TID': 106, 'col_a': 55, 'col_b': 'F', 'id': 6},
# {'TID': 108, 'col_a': 88, 'col_b': 'H', 'id': 8},
# {'TID': 107, 'col_a': 99, 'col_b': 'G', 'id': 7},
# {'TID': 113, 'col_a': 99, 'col_b': 'M', 'id': 13},
# {'TID': 114, 'col_a': 150, 'col_b': 'N', 'id': 14},
# {'TID': 115, 'col_a': 170, 'col_b': 'O', 'id': 15}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment