MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / write_empty_index_leaf

Function write_empty_index_leaf

internal/cbm/sqlite_writer.c:1264–1277  ·  view source on GitHub ↗

Write an empty index leaf page.

Source from the content-addressed store, hash-verified

1262
1263// Write an empty index leaf page.
1264static uint32_t write_empty_index_leaf(FILE *fp, uint32_t *next_page) {
1265 *next_page = cbm_skip_pending_byte(*next_page);
1266 uint32_t pnum = (*next_page)++;
1267 uint8_t page[CBM_PAGE_SIZE];
1268 memset(page, 0, CBM_PAGE_SIZE);
1269 page[0] = NEWLINE_BYTE;
1270 put_u16(page + HDR_FREEBLOCK_OFF, 0);
1271 put_u16(page + HDR_CELLCOUNT_OFF, 0);
1272 put_u16(page + HDR_CONTENT_OFF, (uint16_t)CBM_PAGE_SIZE);
1273 page[HDR_FRAGBYTES_OFF] = 0;
1274 (void)fseek(fp, (long)(pnum - SKIP_ONE) * CBM_PAGE_SIZE, SEEK_SET);
1275 (void)fwrite(page, SKIP_ONE, CBM_PAGE_SIZE, fp);
1276 return pnum;
1277}
1278
1279// Write leaf pages for an index, returns root page.
1280static uint32_t write_index_btree(FILE *fp, uint32_t *next_page, uint8_t **cells, int *cell_lens,

Callers 1

write_index_btreeFunction · 0.85

Calls 2

cbm_skip_pending_byteFunction · 0.85
put_u16Function · 0.85

Tested by

no test coverage detected