Repository: kudu Updated Branches: refs/heads/master e9dfbe1e5 -> f1da1eb45
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 <[email protected]> Tested-by: Kudu Jenkins Project: http://git-wip-us.apache.org/repos/asf/kudu/repo Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/f1da1eb4 Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/f1da1eb4 Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/f1da1eb4 Branch: refs/heads/master Commit: f1da1eb450cb77878d44d1115d64c05f652378f1 Parents: e9dfbe1 Author: Andrew Wong <[email protected]> Authored: Wed Mar 1 16:03:17 2017 -0800 Committer: Todd Lipcon <[email protected]> Committed: Fri Mar 3 05:49:33 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/f1da1eb4/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/f1da1eb4/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;
