page

package
v0.0.0-...-bbea46d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2021 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitInternalNode

func InitInternalNode(node *node.InternalNode)

func InitLeafNode

func InitLeafNode(node *node.LeafNode)

Types

type Cursor

type Cursor struct {
	Table      *Table
	PageIdx    uint32
	CellIdx    uint32
	EndOfTable bool
}

func (*Cursor) LeafNodeInsert

func (cursor *Cursor) LeafNodeInsert(key uint32, row *node.Row) (err error)

func (*Cursor) LeafNodeSplitInsert

func (cursor *Cursor) LeafNodeSplitInsert(key uint32, row *node.Row) (err error)

type Page

type Page struct {
	// Either InternalNode or LeafNode
	InternalNode *node.InternalNode
	LeafNode     *node.LeafNode
}

func (*Page) GetMaxKey

func (p *Page) GetMaxKey() uint32

type Pager

type Pager struct {
	File *os.File

	PageNum uint32  // PageNum is the boundary of db memory page.
	Pages   []*Page // Page pointer slice, nil member indicates cache missing.
	// contains filtered or unexported fields
}

func PagerOpen

func PagerOpen(fileName string) (pager *Pager, err error)

func (*Pager) Flush

func (p *Pager) Flush(pageIdx uint32) (err error)

func (*Pager) GetPage

func (p *Pager) GetPage(pageIdx uint32) (page *Page, err error)

type Table

type Table struct {
	Pager       *Pager
	RootPageIdx uint32
}

func (*Table) CreateNewRoot

func (table *Table) CreateNewRoot(rightChildPageIdx uint32) (err error)

func (*Table) Insert

func (table *Table) Insert(row *node.Row) (err error)

func (*Table) InternalNodeInsert

func (table *Table) InternalNodeInsert(parentPageIdx uint32, childPageIdx uint32) (err error)

func (*Table) Prepare

func (table *Table) Prepare()

func (*Table) Seek

func (table *Table) Seek(key uint32) (cursor *Cursor, err error)

Seek the page of key, if not exist then return the place key should be for the later INSERT.

func (*Table) Select

func (table *Table) Select()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL