32 scanblock->load(event);
35 m_profile_data += scanblock->profile_data();
36 m_profile_data.scanblocks++;
38 m_scanblocks.push_back(scanblock);
39 *scanner_id = scanblock->get_scanner_id();
40 return scanblock->eos();
46 int64_t *bytes_scanned,
Key *lastkey) {
54 bool skipping = lastkey->
row != 0;
56 for(
size_t ii=0; ii < m_scanblocks.size(); ++ii)
57 total_cells += m_scanblocks[ii]->size();
59 m_cells = make_shared<CellsBuilder>(total_cells);
61 for (
size_t ii=0; ii < m_scanblocks.size(); ++ii) {
62 scanblock = m_scanblocks[ii].get();
63 while (scanblock->
next(serkey, value)) {
66 if (serkey <= lastkey->serial)
71 if (!key.
load(serkey))
80 if (strcmp(key.
row, end_row.c_str()) > 0) {
85 if (strcmp(key.
row, end_row.c_str()) >= 0) {
92 if (strcmp(limit_state->
last_row.c_str(), key.
row)) {
93 if (!limit_state->
last_row.empty() &&
120 m_cells->add(cell,
false);
124 while (!rowset.empty() && strcmp(*rowset.begin(), key.
row) < 0)
125 rowset.erase(rowset.begin());
135 if (scanblock->
eos() &&
155 m_cells = make_shared<CellsBuilder>();
156 m_cells->add(cell, own);
size_t rows_encountered
Number of unique rows seen, only populated if row_limit > 0.
static const uint32_t FLAG_DELETE_ROW
Column family specification.
bool eos()
Returns true if this is the final scanblock returned by the scanner.
const char * column_qualifier
std::shared_ptr< Event > EventPtr
Smart pointer to Event.
std::string last_row
Last row processed, only populated if row_limit > 0.
size_t cell_limit
Cell limit.
size_t cells_seen
Cells seen.
A class managing one or more serializable ByteStrings.
std::set< const char *, LtCstr > CstrSet
STL Set managing c-style strings.
bool load(SchemaPtr &schema, const std::string &end_row, bool end_inclusive, ScanLimitState *limit_state, CstrSet &rowset, int64_t *bytes_scanned, Key *lastkey)
Compatibility Macros for C/C++.
bool load(const SerializedKey &key)
Parses the opaque key and loads the components into the member variables.
bool add(EventPtr &event, int *scanner_id)
Adds key/value pairs from scan result.
std::shared_ptr< ScanBlock > ScanBlockPtr
Smart pointer to ScanBlock.
Encapsulates a block of scan results.
const std::string & get_name() const
Gets column family name.
bool next(SerializedKey &key, ByteString &value)
Returns the next key/value pair in the scanblock.
Tracks row and cell limits used to enforce scan limit predicates.
const char * column_family
size_t decode_length(const uint8_t **dptr) const
Retrieves the decoded length and returns a pointer to the string.
#define HT_THROWF(_code_, _fmt_,...)
Provides access to internal components of opaque key.
std::shared_ptr< Schema > SchemaPtr
Smart pointer to Schema.
uint8_t column_family_code
Encapsulates decomposed key and value.
const char * column_qualifier
size_t rows_seen
Number of complete rows seen, only populated if row_limit > 0.
#define HT_THROW(_code_, _msg_)
static const char * END_ROW_MARKER
size_t row_limit
Row limit.