#include "database.h"
#include "config.h"
-#define RECORDS_PER_SEGMENT 65536
-
uint64_t blerg_get_record_count(struct blerg *blerg) {
uint64_t count;
flock(blerg->meta_fd, LOCK_SH);
if (blerg->data_fd != -1)
close(blerg->data_fd);
if (blerg->index != NULL)
- munmap((void *)blerg->index, sizeof(RECORDS_PER_SEGMENT * sizeof(struct record)));
+ munmap((void *)blerg->index, RECORDS_PER_SEGMENT * sizeof(struct record));
if (blerg->index_fd != -1)
close(blerg->index_fd);
}
open_failed_data_mmap:
close(blerg->data_fd);
open_failed_data_open:
- munmap((void *)blerg->index, sizeof(65536 * sizeof(struct record)));
+ munmap((void *)blerg->index, sizeof(RECORDS_PER_SEGMENT * sizeof(struct record)));
open_failed_index_mmap:
close(blerg->index_fd);
open_failed_index_open:
return 0;
}
+int blerg_exists(const char *name) {
+ int namelen = strlen(name);
+ char filename[512];
+
+ if (namelen > 32) {
+ perror("Name too long");
+ return 0;
+ }
+
+ snprintf(filename, 512, "%s/%s", DATA_PATH, name);
+ if (access(filename, F_OK) == -1)
+ return 0;
+ else
+ return 1;
+}
+
struct blerg *blerg_open(const char *name) {
int namelen = strlen(name);
char filename[512];
}
int blerg_store(struct blerg *blerg, const char *data, int len) {
- if (len > 65536) {
+ if (len > MAX_RECORD_SIZE) {
printf("len > 64K\n");
return -1;
}