int main(int argc, char **argv) { void *num_bdb = bdb_init("./col/brw-number.bdb"); void *doc_bdb = bdb_init("./col/documents.bdb"); uint64_t nnum_bdb, ndoc_bdb; char *doc, *key = argv[1]; int *nbrw; if (num_bdb == NULL || doc_bdb == NULL) { printf("open db error.\n"); goto exit; } else { nnum_bdb = bdb_records(num_bdb); ndoc_bdb = bdb_records(doc_bdb); } if (argc != 2) { printf("bad arg. (cmd <doc-id>)\n"); goto exit; } nbrw = bdb_get_int(num_bdb, key, DOC_HASH_LEN); if (nbrw == NULL) { printf("bdb_get_int() returns NULL.\n"); goto exit; } printf("#brw: %d\n", *nbrw); free(nbrw); doc = bdb_get2(doc_bdb, key); if (doc == NULL) { printf("bdb_get2() returns NULL.\n"); goto exit; } printf("document:\n%s", doc); free(doc); exit: printf("#records in num bdb: %ld\n", nnum_bdb); printf("#records in doc bdb: %ld\n", ndoc_bdb); if (num_bdb) bdb_release(num_bdb); if (doc_bdb) bdb_release(doc_bdb); }
bool init_database(int port){ #ifdef VOLDEMORT_FOUND if(DATABASE==VOLDEMORT) { return voldemort_init(); } #endif #ifdef REDIS_FOUND if(DATABASE==REDIS){ return redis_init(port); } #endif #ifdef BDB_FOUND if(DATABASE==BDB) { return bdb_init(); } #endif }
static VALUE bdb_recnum_init(int argc, VALUE *argv, VALUE obj) { VALUE *nargv; VALUE array = rb_str_new2("array_base"); VALUE sarray = rb_str_new2("set_array_base"); if (!argc || TYPE(argv[argc - 1]) != T_HASH) { nargv = ALLOCA_N(VALUE, argc + 1); MEMCPY(nargv, argv, VALUE, argc); nargv[argc] = rb_hash_new(); argv = nargv; argc++; } rb_hash_aset(argv[argc - 1], array, INT2FIX(0)); if (rb_hash_aref(argv[argc - 1], sarray) != RHASH(argv[argc - 1])->ifnone) { rb_hash_aset(argv[argc - 1], sarray, INT2FIX(0)); } rb_hash_aset(argv[argc - 1], rb_str_new2("set_flags"), INT2FIX(DB_RENUMBER)); return bdb_init(argc, argv, obj); }
int main(int argc, char *argv[]) { isc_mem_t *mctx = NULL; isc_buffer_t b; int n; dns_fixedname_t origin, name; dns_db_t *db = NULL; dns_dbiterator_t *dbiter = NULL; isc_result_t res; dns_dbnode_t *node = NULL; dns_rdataset_t rdataset; dns_rdatasetiter_t *rdatasetiter = NULL; dns_rdata_t rdata; DB *bdb; if (argc != 4) usage(*argv); REQUIRE(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); n = strlen(argv[1]); isc_buffer_init(&b, argv[1], n); isc_buffer_add(&b, n); dns_fixedname_init(&origin); REQUIRE(dns_name_fromtext(dns_fixedname_name(&origin), &b, dns_rootname, 0, NULL) == ISC_R_SUCCESS); REQUIRE(dns_db_create(mctx, "rbt", dns_fixedname_name(&origin), dns_dbtype_zone, dns_rdataclass_in, 0, NULL, &db) == ISC_R_SUCCESS); REQUIRE(dns_db_load(db, argv[2]) == ISC_R_SUCCESS); REQUIRE(dns_db_createiterator(db, 0, &dbiter) == ISC_R_SUCCESS); dns_rdataset_init(&rdataset); dns_rdata_init(&rdata); dns_fixedname_init(&name); bdb = bdb_init(argv[3]); for (res = dns_dbiterator_first(dbiter); res == ISC_R_SUCCESS; res = dns_dbiterator_next(dbiter)) { dns_dbiterator_current(dbiter, &node, dns_fixedname_name(&name)); REQUIRE(dns_db_allrdatasets(db, node, NULL, 0, &rdatasetiter) == ISC_R_SUCCESS); for (res = dns_rdatasetiter_first(rdatasetiter); res == ISC_R_SUCCESS; res = dns_rdatasetiter_next(rdatasetiter)) { dns_rdatasetiter_current(rdatasetiter, &rdataset); res = dns_rdataset_first(&rdataset); while (res == ISC_R_SUCCESS) { dns_rdataset_current(&rdataset, &rdata); REQUIRE(bdb_putrdata(bdb, dns_fixedname_name(&name), rdataset.ttl, &rdata) == ISC_R_SUCCESS); dns_rdata_reset(&rdata); res = dns_rdataset_next(&rdataset); } dns_rdataset_disassociate(&rdataset); } dns_rdatasetiter_destroy(&rdatasetiter); dns_db_detachnode(db, &node); } dns_dbiterator_destroy(&dbiter); REQUIRE(bdb_destroy(bdb) == ISC_R_SUCCESS); return 0; }