storage

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 18, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package storage provides the storage engine for XxSql.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ParseColumnDefs

func ParseColumnDefs(defs []struct {
	Name     string
	Type     string
	Size     int
	Nullable bool
	Default  interface{}
	Primary  bool
	AutoIncr bool
}) []*types.ColumnInfo

ParseColumnDefs parses SQL column definitions to storage types.

func ValidateValues

func ValidateValues(columns []*types.ColumnInfo, values []types.Value) error

ValidateValues validates values against column definitions.

Types

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

Engine represents the storage engine.

func NewEngine

func NewEngine(dataDir string) *Engine

NewEngine creates a new storage engine.

func (*Engine) Close

func (e *Engine) Close() error

Close closes the storage engine.

func (*Engine) CreateIndex

func (e *Engine) CreateIndex(tableName, indexName string, columns []string, unique bool) error

CreateIndex creates an index on a table.

func (*Engine) CreateTable

func (e *Engine) CreateTable(name string, columns []*types.ColumnInfo) error

CreateTable creates a new table.

func (*Engine) DropIndex

func (e *Engine) DropIndex(tableName, indexName string) error

DropIndex drops an index from a table.

func (*Engine) DropTable

func (e *Engine) DropTable(name string) error

DropTable drops a table.

func (*Engine) Flush

func (e *Engine) Flush() error

Flush flushes all data to disk.

func (*Engine) GetCatalog

func (e *Engine) GetCatalog() *catalog.Catalog

GetCatalog returns the catalog.

func (*Engine) GetDataDir

func (e *Engine) GetDataDir() string

GetDataDir returns the data directory path.

func (*Engine) GetTable

func (e *Engine) GetTable(name string) (*table.Table, error)

GetTable returns a table by name.

func (*Engine) Insert

func (e *Engine) Insert(tableName string, values []types.Value) (row.RowID, error)

Insert inserts a row into a table.

func (*Engine) ListTables

func (e *Engine) ListTables() []string

ListTables returns all table names.

func (*Engine) Open

func (e *Engine) Open() error

Open opens the storage engine.

func (*Engine) RenameTable

func (e *Engine) RenameTable(oldName, newName string) error

RenameTable renames a table.

func (*Engine) Scan

func (e *Engine) Scan(tableName string) ([]*row.Row, error)

Scan scans all rows from a table.

func (*Engine) Stats

func (e *Engine) Stats() *Stats

Stats returns storage engine statistics.

func (*Engine) TableExists

func (e *Engine) TableExists(name string) bool

TableExists checks if a table exists.

type Stats

type Stats struct {
	TableCount int          `json:"table_count"`
	Tables     []TableStats `json:"tables"`
}

Stats represents storage engine statistics.

type TableStats

type TableStats struct {
	Name      string `json:"name"`
	RowCount  uint64 `json:"row_count"`
	PageCount int    `json:"page_count"`
}

TableStats represents table statistics.

Directories

Path Synopsis
Package btree provides B+ tree index implementation for XxSql.
Package btree provides B+ tree index implementation for XxSql.
Package buffer provides buffer pool management for XxSql storage engine.
Package buffer provides buffer pool management for XxSql storage engine.
Package catalog provides catalog management for XxSql storage engine.
Package catalog provides catalog management for XxSql storage engine.
Package checkpoint provides checkpoint management for XxSql storage engine.
Package checkpoint provides checkpoint management for XxSql storage engine.
Package lock provides deadlock detection for XxSql storage engine.
Package lock provides deadlock detection for XxSql storage engine.
Package page provides page management for XxSql storage engine.
Package page provides page management for XxSql storage engine.
Package recovery provides crash recovery for XxSql storage engine.
Package recovery provides crash recovery for XxSql storage engine.
Package row provides row serialization for XxSql storage engine.
Package row provides row serialization for XxSql storage engine.
Package sequence provides atomic sequence counters for XxSql.
Package sequence provides atomic sequence counters for XxSql.
Package table provides table management for XxSql storage engine.
Package table provides table management for XxSql storage engine.
Package types provides data type definitions for XxSql storage engine.
Package types provides data type definitions for XxSql storage engine.
Package wal provides Write-Ahead Logging for XxSql storage engine.
Package wal provides Write-Ahead Logging for XxSql storage engine.

Jump to

Keyboard shortcuts

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