Skip to content

[WIP] A relational database written in Rust for educational purpose, heavily inspired by cmu-db/bustub. (CMU 15-445).

Notifications You must be signed in to change notification settings

kayntech7/bustubx

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bustubx - a relational database for educational purpose (CMU 15-445)

  • DDL
    • Create
      • Create Table
      • Create Index
    • Drop
    • Alter
    • Truncate
  • DQL
    • Select
    • Where
    • Distinct
    • Aggregation: Count / Sum / Avg / Min / Max
    • Subquery
    • Join: Left Outer / Right Outer / Full Outer / Inner / Cross
    • Group By
    • Having
    • Order By
    • Limit
  • DML
    • Insert
    • Update
    • Delete
  • Data Types
    • Bool
    • TinyInt
    • SmallInt
    • Integer
    • BigInt
    • Float
    • Varchar
    • Null
  • Optimizer rules
    • Limit Project Transpose
    • Eliminate Limits
    • Push Limit Through Join
    • Push Limit Into Scan
    • Combine Filters
    • Column Pruning
    • Collapse Project
  • Executors
    • Create Table
    • Create Index
    • Table Scan
    • Index Scan
    • Filter
    • Project
    • Limit
    • Nested Loop Join
    • Hash Join
    • Sort
    • Insert
    • Values
    • Update
    • Delete
  • Transaction
    • Begin
    • Commit
    • Rollback
    • Isolation Level
      • Read Uncommitted
      • Read Committed
      • Repeatable Read
      • Serializable
  • Recovery
    • Redo
    • Undo
    • Checkpoint

Architecture

architecture

Get started

Install rust toolchain first.

cargo run

test command

create table t1(a int, b int);

insert into t1 values(1,1),(2,3),(5,4);

select * from t1;

select * from t1 where a <= b;

select a from t1 where a <= b;

demo

Reference

Questions

1.What if same keys in B+ tree node?

2.What if key size exceeds b+ tree index page capacity?

About

[WIP] A relational database written in Rust for educational purpose, heavily inspired by cmu-db/bustub. (CMU 15-445).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%