You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by to...@apache.org on 2016/08/29 21:28:10 UTC
[3/3] kudu git commit: cfile: replace DumpIteratorOptions with number
of rows
cfile: replace DumpIteratorOptions with number of rows
As of commit 9884fab, DumpIterator() doesn't print anything at all when
print_rows is false. That makes the option rather useless, so I'm replacing
it here with the raw number of rows.
Change-Id: I5d9e80e50926a71d22de4f88a7af6a8091bb2063
Reviewed-on: http://gerrit.cloudera.org:8080/4150
Tested-by: Kudu Jenkins
Reviewed-by: Todd Lipcon <to...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/f5021e06
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/f5021e06
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/f5021e06
Branch: refs/heads/master
Commit: f5021e0619a838d94beea24be015952122712c2f
Parents: b5aa4a7
Author: Adar Dembo <ad...@cloudera.com>
Authored: Sun Aug 28 12:16:05 2016 -0700
Committer: Todd Lipcon <to...@apache.org>
Committed: Mon Aug 29 21:19:46 2016 +0000
----------------------------------------------------------------------
src/kudu/cfile/cfile-dump.cc | 9 +--------
src/kudu/cfile/cfile_util.cc | 41 +++++++++++++++++++--------------------
src/kudu/cfile/cfile_util.h | 20 ++-----------------
src/kudu/tools/fs_tool.cc | 9 ++++-----
4 files changed, 27 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kudu/blob/f5021e06/src/kudu/cfile/cfile-dump.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile-dump.cc b/src/kudu/cfile/cfile-dump.cc
index 66c700f..2b279d0 100644
--- a/src/kudu/cfile/cfile-dump.cc
+++ b/src/kudu/cfile/cfile-dump.cc
@@ -28,7 +28,6 @@
DEFINE_bool(print_meta, true, "print the header and footer from the file");
DEFINE_bool(iterate_rows, true, "iterate each row in the file");
-DEFINE_bool(print_rows, true, "print each row in the file");
DEFINE_int32(num_iterations, 1, "number of times to iterate the file");
namespace kudu {
@@ -63,11 +62,9 @@ Status DumpFile(const string& block_id_str) {
gscoped_ptr<CFileIterator> it;
RETURN_NOT_OK(reader->NewIterator(&it, CFileReader::DONT_CACHE_BLOCK));
- DumpIteratorOptions opts;
- opts.print_rows = FLAGS_print_rows;
for (int i = 0; i < FLAGS_num_iterations; i++) {
RETURN_NOT_OK(it->SeekToFirst());
- RETURN_NOT_OK(DumpIterator(*reader, it.get(), &cout, opts, 0));
+ RETURN_NOT_OK(DumpIterator(*reader, it.get(), &cout, 0, 0));
}
}
@@ -86,10 +83,6 @@ int main(int argc, char **argv) {
return 1;
}
- if (!FLAGS_iterate_rows) {
- FLAGS_print_rows = false;
- }
-
kudu::Status s = kudu::cfile::DumpFile(argv[1]);
if (!s.ok()) {
std::cerr << "Error: " << s.ToString() << std::endl;
http://git-wip-us.apache.org/repos/asf/kudu/blob/f5021e06/src/kudu/cfile/cfile_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_util.cc b/src/kudu/cfile/cfile_util.cc
index fa6b20e..393e45c 100644
--- a/src/kudu/cfile/cfile_util.cc
+++ b/src/kudu/cfile/cfile_util.cc
@@ -35,7 +35,7 @@ static const int kBufSize = 1024*1024;
Status DumpIterator(const CFileReader& reader,
CFileIterator* it,
std::ostream* out,
- const DumpIteratorOptions& opts,
+ int num_rows,
int indent) {
Arena arena(8192, 8*1024*1024);
@@ -48,33 +48,32 @@ Status DumpIterator(const CFileReader& reader,
string strbuf;
size_t count = 0;
while (it->HasNext()) {
- size_t n = opts.nrows == 0 ? max_rows : std::min(max_rows, opts.nrows - count);
+ size_t n = num_rows == 0 ? max_rows : std::min(max_rows, num_rows - count);
if (n == 0) break;
RETURN_NOT_OK(it->CopyNextValues(&n, &cb));
- if (opts.print_rows) {
- if (reader.is_nullable()) {
- for (size_t i = 0; i < n; i++) {
- strbuf.append(indent, ' ');
- const void *ptr = cb.nullable_cell_ptr(i);
- if (ptr != nullptr) {
- type->AppendDebugStringForValue(ptr, &strbuf);
- } else {
- strbuf.append("NULL");
- }
- strbuf.push_back('\n');
- }
- } else {
- for (size_t i = 0; i < n; i++) {
- strbuf.append(indent, ' ');
- type->AppendDebugStringForValue(cb.cell_ptr(i), &strbuf);
- strbuf.push_back('\n');
+ if (reader.is_nullable()) {
+ for (size_t i = 0; i < n; i++) {
+ strbuf.append(indent, ' ');
+ const void *ptr = cb.nullable_cell_ptr(i);
+ if (ptr != nullptr) {
+ type->AppendDebugStringForValue(ptr, &strbuf);
+ } else {
+ strbuf.append("NULL");
}
+ strbuf.push_back('\n');
+ }
+ } else {
+ for (size_t i = 0; i < n; i++) {
+ strbuf.append(indent, ' ');
+ type->AppendDebugStringForValue(cb.cell_ptr(i), &strbuf);
+ strbuf.push_back('\n');
}
- *out << strbuf;
- strbuf.clear();
}
+
+ *out << strbuf;
+ strbuf.clear();
arena.Reset();
count += n;
}
http://git-wip-us.apache.org/repos/asf/kudu/blob/f5021e06/src/kudu/cfile/cfile_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_util.h b/src/kudu/cfile/cfile_util.h
index 2022141..54a456b 100644
--- a/src/kudu/cfile/cfile_util.h
+++ b/src/kudu/cfile/cfile_util.h
@@ -78,28 +78,12 @@ struct ReaderOptions {
std::shared_ptr<MemTracker> parent_mem_tracker;
};
-struct DumpIteratorOptions {
- // If true, print values of rows, otherwise only print aggregate
- // information.
- bool print_rows;
-
- // Number of rows to iterate over. If 0, will iterate over all rows.
- size_t nrows;
-
- DumpIteratorOptions()
- : print_rows(false), nrows(0) {
- }
-};
-
// Dumps the contents of a cfile to 'out'; 'reader' and 'iterator'
-// must be initialized. See cfile/cfile-dump.cc and tools/fs_tool.cc
-// for sample usage.
-//
-// See also: DumpIteratorOptions
+// must be initialized. If 'num_rows' is 0, all rows will be printed.
Status DumpIterator(const CFileReader& reader,
CFileIterator* it,
std::ostream* out,
- const DumpIteratorOptions& opts,
+ int num_rows,
int indent);
// Return the length of the common prefix shared by the two strings.
http://git-wip-us.apache.org/repos/asf/kudu/blob/f5021e06/src/kudu/tools/fs_tool.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/fs_tool.cc b/src/kudu/tools/fs_tool.cc
index 63543bf..960a82b 100644
--- a/src/kudu/tools/fs_tool.cc
+++ b/src/kudu/tools/fs_tool.cc
@@ -50,7 +50,6 @@ namespace tools {
using cfile::CFileIterator;
using cfile::CFileReader;
using cfile::DumpIterator;
-using cfile::DumpIteratorOptions;
using cfile::ReaderOptions;
using fs::ReadableBlock;
using log::LogReader;
@@ -454,16 +453,16 @@ Status FsTool::DumpCFileBlockInternal(const BlockId& block_id,
std::cout << Indent(indent) << "CFile Header: "
<< reader->header().ShortDebugString() << std::endl;
+ if (detail_level_ <= HEADERS_ONLY) {
+ return Status::OK();
+ }
std::cout << Indent(indent) << reader->footer().num_values()
<< " values:" << std::endl;
gscoped_ptr<CFileIterator> it;
RETURN_NOT_OK(reader->NewIterator(&it, CFileReader::DONT_CACHE_BLOCK));
RETURN_NOT_OK(it->SeekToFirst());
- DumpIteratorOptions iter_opts;
- iter_opts.nrows = opts.nrows;
- iter_opts.print_rows = detail_level_ > HEADERS_ONLY;
- return DumpIterator(*reader, it.get(), &std::cout, iter_opts, indent + 2);
+ return DumpIterator(*reader, it.get(), &std::cout, opts.nrows, indent + 2);
}
Status FsTool::DumpDeltaCFileBlockInternal(const Schema& schema,