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 2017/03/03 20:53:45 UTC

[2/5] kudu git commit: KUDU-1834 Don't redact KuduRowResult::ToString()

KUDU-1834 Don't redact KuduRowResult::ToString()

A user on the client side calling ToString on the results of a scan
will likely expect the data to not be redacted. This patch forces
KuduScanPatch::RowPtr::ToString() to not redact.

A test case is added to client-test that turns redaction on and
compares the output of ToString with a redacted row. If the row is
redacted, this case fill fail.

Change-Id: If966e9ba76f747de85350ffa2b91fcf05a9ad324
Reviewed-on: http://gerrit.cloudera.org:8080/6222
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Kudu Jenkins
(cherry picked from commit f1da1eb450cb77878d44d1115d64c05f652378f1)
Reviewed-on: http://gerrit.cloudera.org:8080/6244
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/6c0704e3
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/6c0704e3
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/6c0704e3

Branch: refs/heads/branch-1.3.x
Commit: 6c0704e315ef57b77ec8710a60d4410d60e51e68
Parents: 242fbfb
Author: Andrew Wong <aw...@cloudera.com>
Authored: Wed Mar 1 16:03:17 2017 -0800
Committer: Todd Lipcon <to...@apache.org>
Committed: Fri Mar 3 18:38:24 2017 +0000

----------------------------------------------------------------------
 src/kudu/client/client-test.cc | 19 +++++++++++++++++++
 src/kudu/client/scan_batch.cc  |  3 +++
 2 files changed, 22 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/6c0704e3/src/kudu/client/client-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test.cc b/src/kudu/client/client-test.cc
index f695f7c..702c13d 100644
--- a/src/kudu/client/client-test.cc
+++ b/src/kudu/client/client-test.cc
@@ -1082,6 +1082,25 @@ TEST_F(ClientTest, TestScanCloseProxy) {
   }
 }
 
+// Check that the client scanner does not redact rows.
+TEST_F(ClientTest, TestRowPtrNoRedaction) {
+  google::SetCommandLineOption("redact", "log");
+
+  NO_FATALS(InsertTestRows(client_table_.get(), FLAGS_test_scan_num_rows));
+  KuduScanner scanner(client_table_.get());
+  ASSERT_OK(scanner.SetProjectedColumns({ "key" }));
+  ASSERT_OK(scanner.Open());
+
+  ASSERT_TRUE(scanner.HasMoreRows());
+  KuduScanBatch batch;
+  while (scanner.HasMoreRows()) {
+    ASSERT_OK(scanner.NextBatch(&batch));
+    for (const KuduScanBatch::RowPtr& row : batch) {
+      ASSERT_NE("(int32 key=<redacted>)", row.ToString());
+    }
+  }
+}
+
 namespace internal {
 
 static void ReadBatchToStrings(KuduScanner* scanner, vector<string>* rows) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/6c0704e3/src/kudu/client/scan_batch.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_batch.cc b/src/kudu/client/scan_batch.cc
index 14d1784..fb9a538 100644
--- a/src/kudu/client/scan_batch.cc
+++ b/src/kudu/client/scan_batch.cc
@@ -285,6 +285,9 @@ template
 Status KuduScanBatch::RowPtr::Get<TypeTraits<BINARY> >(int col_idx, Slice* val) const;
 
 string KuduScanBatch::RowPtr::ToString() const {
+  // Client-users calling ToString() will likely expect it to not be redacted.
+  ScopedDisableRedaction no_redaction;
+
   string ret;
   ret.append("(");
   bool first = true;