做sql的一个解析器,已经生成ast了,接下来要怎么做呢?到ast这一步之后不知道接下来怎么做

(干货在后面,着急的同学可以跳过这段)。Deathhush/HushDB 是以前我想写一个类似“手把手教你实现数据库”系列文章的时候,做的一个示例数据库,当时觉得数据库相关的文章和书,讲实现的都讲得太深,而浅的都在讲应用,缺一个由浅入深讲数据库实现的。HushDB现在可以做类似这样的事:

SqlConnection::Ptr connection = make_shared<SqlConnection>();
connection->Database = TestFileName;
connection->Open();
SqlCommand command(connection);
command.CommandText = T("select id, data, region from t1");
IDataReader::Ptr reader = command.ExecuteReader();

但后来因为我兴趣太广泛,这个项目就被搁置了(逃…)。现在HushDB大概2700行代码,实现了Heap File, Buffer Pool, Metadata Catalog和一个基本的Query Processor的框架,所以做一个小型的DB其实并没有那么困难。搁置的时候正在做where clause和filter的部分,计划里还有Lock Manager、Crash Recovery、BTree、Join、Query Optimizer和MVCC。因为HushDB比较简单,所以对初学者来说还是有一定的参考价值的。

<><><><&g

猜你喜欢

转载自blog.csdn.net/qq_25439417/article/details/131495636