⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keys.c

📁 About: hamsterdb is a database engine written in ANSI C. It supports a B+Tree index structure, uses
💻 C
字号:
/** * Copyright (C) 2005-2007 Christoph Rupp (chris@crupp.de). * All rights reserved. See file LICENSE for licence and copyright * information. * */#include <ham/hamsterdb.h>#include "db.h"#include "keys.h"#include "btree.h"#include "error.h"#include "blob.h"intkey_compare_int_to_pub(ham_page_t *page, ham_u16_t lhs, ham_key_t *rhs){    int_key_t *l;    btree_node_t *node=ham_page_get_btree_node(page);    l=btree_node_get_key(page_get_owner(page), node, lhs);    return (db_compare_keys(page_get_owner(page), page,                 lhs, key_get_flags(l), key_get_key(l),                 key_get_size(l), 0, rhs->_flags, rhs->data, rhs->size));}intkey_compare_pub_to_int(ham_page_t *page, ham_key_t *lhs, ham_u16_t rhs){    int_key_t *r;    btree_node_t *node=ham_page_get_btree_node(page);    r=btree_node_get_key(page_get_owner(page), node, rhs);    return (db_compare_keys(page_get_owner(page), page,                 0, lhs->_flags, lhs->data, lhs->size,                 rhs, key_get_flags(r), key_get_key(r), key_get_size(r)));}intkey_compare_int_to_int(ham_page_t *page,         ham_u16_t lhs, ham_u16_t rhs){    int_key_t *l, *r;    btree_node_t *node=ham_page_get_btree_node(page);    l=btree_node_get_key(page_get_owner(page), node, lhs);    r=btree_node_get_key(page_get_owner(page), node, rhs);    return (db_compare_keys(page_get_owner(page), page,                 lhs, key_get_flags(l), key_get_key(l),                 key_get_size(l), rhs, key_get_flags(r), key_get_key(r),                 key_get_size(r)));}ham_offset_tkey_insert_extended(ham_db_t *db, ham_page_t *page,         ham_key_t *key){    ham_offset_t blobid;    ham_u8_t *data_ptr=(ham_u8_t *)key->data;    ham_status_t st;    ham_assert(key->size>db_get_keysize(db), ("invalid keysize"));        if ((st=blob_allocate(db,                 data_ptr +(db_get_keysize(db)-sizeof(ham_offset_t)),                 key->size-(db_get_keysize(db)-sizeof(ham_offset_t)),                 0, &blobid))) {        db_set_error(db, st);        return (0);    }    if (db_get_extkey_cache(db))         (void)extkey_cache_insert(db_get_extkey_cache(db), blobid,                 key->size, key->data);    return (blobid);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -