38 lines
762 B
38 lines
762 B
/* |
|
Copyright 2020 Google LLC |
|
|
|
Use of this source code is governed by a BSD-style |
|
license that can be found in the LICENSE file or at |
|
https://developers.google.com/open-source/licenses/bsd |
|
*/ |
|
|
|
#ifndef MERGED_H |
|
#define MERGED_H |
|
|
|
#include "pq.h" |
|
|
|
struct reftable_merged_table { |
|
struct reftable_table *stack; |
|
size_t stack_len; |
|
uint32_t hash_id; |
|
|
|
/* If unset, produce deletions. This is useful for compaction. For the |
|
* full stack, deletions should be produced. */ |
|
int suppress_deletions; |
|
|
|
uint64_t min; |
|
uint64_t max; |
|
}; |
|
|
|
struct merged_iter { |
|
struct reftable_iterator *stack; |
|
uint32_t hash_id; |
|
size_t stack_len; |
|
uint8_t typ; |
|
int suppress_deletions; |
|
struct merged_iter_pqueue pq; |
|
}; |
|
|
|
void merged_table_release(struct reftable_merged_table *mt); |
|
|
|
#endif
|
|
|