more TDB
This commit is contained in:
parent
dd7344c780
commit
f91124ef8e
|
@ -26,6 +26,7 @@ extern SPageMethods pageLargeMethods;
|
||||||
|
|
||||||
static int tdbPageAllocate(SPage *pPage, int size, SCell **ppCell);
|
static int tdbPageAllocate(SPage *pPage, int size, SCell **ppCell);
|
||||||
static int tdbPageDefragment(SPage *pPage);
|
static int tdbPageDefragment(SPage *pPage);
|
||||||
|
static int tdbPageFree(SPage *pPage, int idx, SCell *pCell, int szCell);
|
||||||
|
|
||||||
int tdbPageCreate(int pageSize, SPage **ppPage, void *(*xMalloc)(void *, size_t), void *arg) {
|
int tdbPageCreate(int pageSize, SPage **ppPage, void *(*xMalloc)(void *, size_t), void *arg) {
|
||||||
SPage *pPage;
|
SPage *pPage;
|
||||||
|
@ -131,7 +132,25 @@ int tdbPageInsertCell(SPage *pPage, int idx, SCell *pCell, int szCell) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int tdbPageDropCell(SPage *pPage, int idx) {
|
int tdbPageDropCell(SPage *pPage, int idx) {
|
||||||
// TODO
|
int lidx;
|
||||||
|
SCell *pCell;
|
||||||
|
int szCell;
|
||||||
|
int nCells;
|
||||||
|
|
||||||
|
nCells = TDB_PAGE_NCELLS(pPage);
|
||||||
|
|
||||||
|
if (pPage->nOverflow == 0) {
|
||||||
|
lidx = idx;
|
||||||
|
} else {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
pCell = TDB_PAGE_CELL_AT(pPage, lidx);
|
||||||
|
szCell = (*pPage->xCellSize)(pCell);
|
||||||
|
tdbPageFree(pPage, lidx, pCell, szCell);
|
||||||
|
|
||||||
|
TDB_PAGE_NCELLS_SET(pPage, nCells - 1);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue