summaryrefslogtreecommitdiff
path: root/c_src/cmd_list_journal.c
diff options
context:
space:
mode:
Diffstat (limited to 'c_src/cmd_list_journal.c')
-rw-r--r--c_src/cmd_list_journal.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/c_src/cmd_list_journal.c b/c_src/cmd_list_journal.c
index fe9e3bbd..7b0008de 100644
--- a/c_src/cmd_list_journal.c
+++ b/c_src/cmd_list_journal.c
@@ -90,9 +90,13 @@ static bool entry_matches_transaction_filter(struct jset_entry *entry,
if (!entry->level &&
(entry->type == BCH_JSET_ENTRY_btree_keys ||
entry->type == BCH_JSET_ENTRY_overwrite))
- jset_entry_for_each_key(entry, k)
+ jset_entry_for_each_key(entry, k) {
+ if (!k->k.u64s)
+ break;
+
if (bkey_matches_filter(filter, entry, k))
return true;
+ }
return false;
}
@@ -105,10 +109,13 @@ static bool should_print_transaction(struct jset_entry *entry, struct jset_entry
bool have_log_messages = false;
bool have_non_log_messages = false;
- darray_for_each(msg_filter, i)
- if (!strncmp(*i, l->d, b))
- return false;
-
+ if (msg_filter.nr) {
+ darray_for_each(msg_filter, i)
+ if (!strncmp(*i, l->d, b))
+ goto found;
+ return false;
+ }
+found:
if (!key_filter.nr)
return true;
@@ -140,10 +147,14 @@ static bool should_print_entry(struct jset_entry *entry, d_btree_id filter)
entry->type != BCH_JSET_ENTRY_overwrite)
return true;
- jset_entry_for_each_key(entry, k)
+ jset_entry_for_each_key(entry, k) {
+ if (!k->k.u64s)
+ break;
+
darray_for_each(filter, id)
if (entry->btree_id == *id)
return true;
+ }
return false;
}