From: Carl Worth Date: Tue, 13 Oct 2009 15:20:36 +0000 (-0700) Subject: xapian-dump: Actually dump document IDs X-Git-Tag: 0.1~895 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=26795d64e6150b543d850c1e882a9d1395b58d9e;p=notmuch.git xapian-dump: Actually dump document IDs It's not a complete tool yet, but it at least does something now. --- diff --git a/xapian-dump.cc b/xapian-dump.cc index 6d1fc1be..0ab5e32c 100644 --- a/xapian-dump.cc +++ b/xapian-dump.cc @@ -1,4 +1,5 @@ -/* +/* xapian-dump: Dump all document IDs from a Xapian database + * * Copyright © 2009 Carl Worth * * This program is free software: you can redistribute it and/or modify @@ -18,17 +19,41 @@ */ #include +#include #include +using namespace std; + int main (int argc, char *argv[]) { + const char *database_path; + if (argc < 2) { fprintf (stderr, "Usage: %s \n", argv[0]); exit (1); } + database_path = argv[1]; + + try { + + Xapian::Database db; + Xapian::PostingIterator i; + Xapian::docid doc_id; + + db = Xapian::Database (database_path); + for (i = db.postlist_begin (""); i != db.postlist_end (""); i++) { + doc_id = *i; + printf ("Found document %u\n", doc_id); + } + + } catch (const Xapian::Error &error) { + cerr << "A Xapian exception occurred: " << error.get_msg () << endl; + exit (1); + } + return 0; }