Index

source: bluebase/ix/index.py


class IxIndexHeader(page: PfPage, *, offset: int, limit: int)[source]

Bases: PfPageView, LayoutMixin

Layout

Offset

Size

Name

Format

0

4

domain_enum

'<i'

4

4

domain_size

'<i'

8

4

slot_capacity

'<i'

12

4

root_nid

'<i'

PID: ClassVar[PfPageId] = 1

index header의 page id를 나타내는 상수.

NO_ROOT_NODE: ClassVar[IxNodeId] = -1

root node가 없을 경우 사용하는 상수.

size: ClassVar[int] = 16

The total size of the layout, automatically calculated from fields.

class IxIndex(file: PfFile, domain: Domain, slot_capacity: int)[source]

Bases: object

Variables:
static get_header(page: PfPage) → IxIndexHeader[source]
static fetch_header(file: PfFile) → tuple[PfPage, IxIndexHeader][source]
classmethod new(file: PfFile, domain: Domain, slot_capacity: int) → Self[source]
classmethod open(file: PfFile) → Self[source]
property root_nid: IxNodeId | Noneread-write
optional_get_node(nid: IxNodeId) → IxNode[source]

Hint

이런 함수가 있으면 편하다!

optional_allocate_leaf() → IxLeafNode[source]

Hint

이런 함수가 있으면 편하다!

optional_allocate_branch(*, child_nid: IxNodeId) → IxBranchNode[source]

Hint

이런 함수가 있으면 편하다!

optional_dispose_node(nid: IxNodeId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_get_bucket(bid: IxBucketId) → IxBucket[source]

Hint

이런 함수가 있으면 편하다!

optional_allocate_bucket() → IxBucket[source]

Hint

이런 함수가 있으면 편하다!

optional_dispose_bucket(bid: IxBucketId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_bucket_insert(bid: IxBucketId, rid: RmRecordId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_bucket_delete(bid: IxBucketId, rid: RmRecordId) → IxBucketId | None[source]

Hint

이런 함수가 있으면 편하다!

optional_locate_leaf(nid: IxNodeId, *, value: bool | int | float | str) → IxNodeId[source]

Hint

이런 함수가 있으면 편하다!

optional_leaf_insert(nid: IxNodeId, *, value: bool | int | float | str, rid: RmRecordId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_branch_insert(nid: IxNodeId, value: bool | int | float | str, child_nid: IxNodeId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_push_key_up(value: bool | int | float | str, *, node_nid: IxNodeId, new_node_nid: IxNodeId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_leaf_delete(nid: IxNodeId, *, value: bool | int | float | str, rid: RmRecordId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_fix_key_up(nid: IxNodeId, *, min_value: bool | int | float | str) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_find_left_sibling(nid: IxNodeId) → IxNodeId | None[source]

Hint

이런 함수가 있으면 편하다!

optional_find_right_sibling(nid: IxNodeId) → IxNodeId | None[source]

Hint

이런 함수가 있으면 편하다!

optional_leaf_borrow_left(nid: IxNodeId, sibling_nid: IxNodeId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_leaf_borrow_right(nid: IxNodeId, sibling_nid: IxNodeId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_leaf_merge(left_nid: IxNodeId, right_nid: IxNodeId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_branch_delete(nid: IxNodeId, *, child_nid: IxNodeId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_branch_borrow_left(nid: IxNodeId, sibling_nid: IxNodeId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_branch_borrow_right(nid: IxNodeId, sibling_nid: IxNodeId) → None[source]

Hint

이런 함수가 있으면 편하다!

optional_branch_merge(left_nid: IxNodeId, right_nid: IxNodeId) → None[source]

Hint

이런 함수가 있으면 편하다!

assignmentinsert(entry: IxEntry) → None[source]
assignmentdelete(entry: IxEntry) → None[source]
Raises:

IxEntryNotFoundError –

assignmentpersist() → None[source]