コード例 #1
0
ファイル: btree.c プロジェクト: bigbes/btree
int db_load(struct DB *db, char *db_name, size_t cache_size) {
	log_info("Loading DB with name %s", db_name);

	struct Metadata md = {0,0,0};
	meta_load(db_name, &md);
	log_info("PoolSize: %zd, PageSize %zd", md.pool_size, md.page_size);

	dbi_init(db, db_name, md.page_size, md.pool_size, cache_size);
	pool_init_old(db->pool, db_name, md.page_size, md.pool_size, cache_size);
	db->btree_degree = btree_node_max_capacity(db);
	node_btree_load(db, db->top, md.header_page);

	return 0;
}
コード例 #2
0
ファイル: dbi.c プロジェクト: PRADEEPKJ/eclipseclp-aarch64
EXPORT int
p_dbi_init(
		/* + */ value v_errno, type t_errno
		)
{
    static int initialized = 0;

    if (initialized) Succeed_;

    Check_Integer(t_errno);
    /*
     * In C error codes are negative while in Prolog they are positive !
     */
    dbi_errno = - v_errno.nint;

    dbi_init();  /* do any DB specific initialisation */
    initialized = 1;
    Succeed_;
}
コード例 #3
0
ファイル: btree.c プロジェクト: bigbes/btree
/**
 * @brief          Initialize DB object
 *
 * @param[out] db       Object to initialize
 * @param[in]  db_name  File for use in Database
 * @param[in]  page_size Size of pages to use in PagePool
 * @param[in]  pool_size Size of pool to use in PagePool
 *
 * @return         Status
 */
int db_init(struct DB *db, char *db_name, uint16_t page_size,
	    pageno_t pool_size, size_t cache_size) {
	log_info("Creating DB with name %s", db_name);
	log_info("PoolSize: %zd, PageSize %i", pool_size, page_size);

	dbi_init(db, db_name, page_size, pool_size, cache_size);
	pool_init_new(db->pool, db_name, page_size, pool_size, cache_size);
	db->btree_degree = btree_node_max_capacity(db);

	
	wal_init(db, db->wal);
	dumper_init(db, db->pool);
	
	node_btree_load(db, db->top, 0);
	db->top->h->flags = IS_TOP | IS_LEAF;

	struct Metadata md = {pool_size, page_size, db->top->h->page};
	meta_dump(db_name, &md);

	return 0;
}