aboutsummaryrefslogtreecommitdiff
path: root/external/db_drivers/liblmdb/mdb_load.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--external/db_drivers/liblmdb/mdb_load.c (renamed from external/db_drivers/liblmdb32/mdb_load.c)29
1 files changed, 20 insertions, 9 deletions
diff --git a/external/db_drivers/liblmdb32/mdb_load.c b/external/db_drivers/liblmdb/mdb_load.c
index 1f6ce0b7e..d1fda4bf5 100644
--- a/external/db_drivers/liblmdb32/mdb_load.c
+++ b/external/db_drivers/liblmdb/mdb_load.c
@@ -43,6 +43,15 @@ static MDB_val kbuf, dbuf;
#else
#define Z "z"
#endif
+#ifdef MDB_VL32
+#ifdef _WIN32
+#define Y "I64"
+#else
+#define Y "ll"
+#endif
+#else
+#define Y Z
+#endif
#define STRLENOF(s) (sizeof(s)-1)
@@ -112,7 +121,7 @@ static void readhdr(void)
int i;
ptr = memchr(dbuf.mv_data, '\n', dbuf.mv_size);
if (ptr) *ptr = '\0';
- i = sscanf((char *)dbuf.mv_data+STRLENOF("mapsize="), "%" Z "u", &info.me_mapsize);
+ i = sscanf((char *)dbuf.mv_data+STRLENOF("mapsize="), "%" Y "u", &info.me_mapsize);
if (i != 1) {
fprintf(stderr, "%s: line %" Z "d: invalid mapsize %s\n",
prog, lineno, (char *)dbuf.mv_data+STRLENOF("mapsize="));
@@ -276,7 +285,7 @@ badend:
static void usage(void)
{
- fprintf(stderr, "usage: %s dbpath [-V] [-f input] [-n] [-s name] [-N] [-T]\n", prog);
+ fprintf(stderr, "usage: %s [-V] [-f input] [-n] [-s name] [-N] [-T] dbpath\n", prog);
exit(EXIT_FAILURE);
}
@@ -327,7 +336,7 @@ int main(int argc, char *argv[])
putflags = MDB_NOOVERWRITE|MDB_NODUPDATA;
break;
case 'T':
- mode |= NOHDR;
+ mode |= NOHDR | PRINT;
break;
default:
usage();
@@ -400,20 +409,22 @@ int main(int argc, char *argv[])
while(1) {
rc = readline(&key, &kbuf);
- if (rc == EOF)
+ if (rc) /* rc == EOF */
break;
- if (rc)
- goto txn_abort;
rc = readline(&data, &dbuf);
- if (rc)
+ if (rc) {
+ fprintf(stderr, "%s: line %" Z "d: failed to read key value\n", prog, lineno);
goto txn_abort;
-
+ }
+
rc = mdb_cursor_put(mc, &key, &data, putflags);
if (rc == MDB_KEYEXIST && putflags)
continue;
- if (rc)
+ if (rc) {
+ fprintf(stderr, "mdb_cursor_put failed, error %d %s\n", rc, mdb_strerror(rc));
goto txn_abort;
+ }
batch++;
if (batch == 100) {
rc = mdb_txn_commit(txn);