Skip to content

清华大学《数据库系统概论》课程项目,使用 rust 编写。

Notifications You must be signed in to change notification settings

jhdjames37/toy_database_rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Database Manage System

清华大学《数据库系统概论》课程项目,Rust 编写。

A database manage system written in Rust, as a course project of Introduction to Database Management System in THU.

运行

cargo build --release

target/release/database 即为可执行文件。

开发及测试均在 Linux 环境下完成,不保证其它系统能够正常运行。

运行(注:需要提前新建相关目录):

./database --path path/to/database [--cache <cache_size>]

或者直接一步编译运行

cargo run --release -- --path path/to/database [--cache <cache_size>]

完成内容

  • 基本数据库/表管理
  • 基本增删改查,其中 SELECT 语句包含
    • col op col
    • col op value
    • col in value
    • col like pattern
    • 嵌套查询
    • limit/offset
  • (联合)主外键
  • (多列)索引

antlr 相关

antlr 官方目前未提供 Rust 支持。

使用antlr-rust转换工具和运行时库。

目前使用的是 0.3.0-beta

安装 JRE 库并下载作者的 rust 解析生成库 后,执行安装。(助教提供的生成命令中的 -nolistener 选项会导致编译错误,故删去)

java -jar <antlr4-4.8-2-SNAPSHOT-complete.jar> -Dlanguage=Rust SQL.g4  -visitor -o parser

开发说明

可以参阅实验报告,不过是一天赶出来的,有些地方可能会有错漏。

另外这里是一些偏吐槽向的开发总结。

About

清华大学《数据库系统概论》课程项目,使用 rust 编写。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published