39 lines
762 B
C
39 lines
762 B
C
|
/*
|
||
|
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
|