This commit is contained in:
YuhangQ 2021-11-25 13:50:14 +08:00
parent 5c078437bb
commit 801c9c510b
5 changed files with 30 additions and 400009 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

27
docs/test.js Normal file
View File

@ -0,0 +1,27 @@
const invodb = require('..')
invodb.database('test.invodb')
let col = invodb.collection('blog')
if(!col.exist()) col.create();
col.insert({
"id": 7,
"title": "这是一篇文章",
"content": "这是文章内容",
"author": "YuhangQ",
"category": "数据库",
"original-url": null,
"tags": ["数据库", "C++", "数据结构"],
"parameters": {
"hidden": true,
"like": 25565,
},
"comment": [
{"username": "YuhangQ", "content": "文章写的真不错!"},
{"username": "TechCiel", "content": "能提供下打赏渠道吗?"},
]
})
let result = col.query({})
console.log(result)

View File

@ -10,6 +10,7 @@ std::fstream PageManager::stream;
int PageManager::loadDatabase(const char *filename) {
Instance().stream.open(filename);
Instance().stream.seekp(0, std::ios::end);
if(!Instance().stream.is_open()) {
std::ofstream file(filename, std::fstream::out);
file.close();
@ -68,12 +69,13 @@ int PageManager::allocate() {
}
index = page.getIntStartFrom(4);
//printf("2allocate: %d\n", index);
page.setIntStartFrom(4, index + 1);
page.save();
// allocate block at the end
// stream.seekp(0, std::ios::end);
// stream.seekp(0, std::ios::end);
// index = stream.tellp() / 1024;
setPage(index, StoragePage(index));
return index;