Beispiel #1
0
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);
}
Beispiel #2
0
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
}
Beispiel #3
0
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);
}
Beispiel #4
0
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;
}