Repository: kudu
Updated Branches:
  refs/heads/master 86fac3fa2 -> 1b89ec813


[client-test] gscoped_ptr --> unique_ptr

Replace gscoped_ptr with std::unique_ptr in the client-test and
corresponding parts of the Kudu C++ client implementation.

This patch does not contain any functional changes.

Change-Id: If7301b8c830837deaf487c1e0c9b711db72b767a
Reviewed-on: http://gerrit.cloudera.org:8080/7002
Reviewed-by: Adar Dembo <[email protected]>
Tested-by: Alexey Serbin <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/1b89ec81
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/1b89ec81
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/1b89ec81

Branch: refs/heads/master
Commit: 1b89ec813d0aed604f7e79bd4c45dd8b9d81b8ba
Parents: 86fac3f
Author: Alexey Serbin <[email protected]>
Authored: Fri May 26 13:36:45 2017 -0700
Committer: Alexey Serbin <[email protected]>
Committed: Fri May 26 23:06:26 2017 +0000

----------------------------------------------------------------------
 src/kudu/client/batcher.cc          |   7 +-
 src/kudu/client/client-test.cc      | 133 +++++++++++++++----------------
 src/kudu/client/error_collector.cc  |   3 +-
 src/kudu/client/error_collector.h   |   8 +-
 src/kudu/client/session-internal.cc |  12 +--
 5 files changed, 80 insertions(+), 83 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/1b89ec81/src/kudu/client/batcher.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/batcher.cc b/src/kudu/client/batcher.cc
index dd9f5a8..6999835 100644
--- a/src/kudu/client/batcher.cc
+++ b/src/kudu/client/batcher.cc
@@ -621,8 +621,7 @@ void Batcher::MarkInFlightOpFailed(InFlightOp* op, const 
Status& s) {
 void Batcher::MarkInFlightOpFailedUnlocked(InFlightOp* op, const Status& s) {
   CHECK_EQ(1, ops_.erase(op))
     << "Could not remove op " << op->ToString() << " from in-flight list";
-  gscoped_ptr<KuduError> error(new KuduError(op->write_op.release(), s));
-  error_collector_->AddError(std::move(error));
+  error_collector_->AddError(unique_ptr<KuduError>(new 
KuduError(op->write_op.release(), s)));
   had_errors_ = true;
   delete op;
 }
@@ -771,7 +770,7 @@ void Batcher::ProcessWriteResponse(const WriteRpc& rpc,
   } else {
     // Mark each of the rows in the write op as failed, since the whole RPC 
failed.
     for (InFlightOp* op : rpc.ops()) {
-      gscoped_ptr<KuduError> error(new KuduError(op->write_op.release(), s));
+      unique_ptr<KuduError> error(new KuduError(op->write_op.release(), s));
       error_collector_->AddError(std::move(error));
     }
 
@@ -795,7 +794,7 @@ void Batcher::ProcessWriteResponse(const WriteRpc& rpc,
     VLOG(2) << "Error on op " << op->ToString() << ": "
             << SecureShortDebugString(err_pb.error());
     Status op_status = StatusFromPB(err_pb.error());
-    gscoped_ptr<KuduError> error(new KuduError(op.release(), op_status));
+    unique_ptr<KuduError> error(new KuduError(op.release(), op_status));
     error_collector_->AddError(std::move(error));
     MarkHadErrors();
   }

http://git-wip-us.apache.org/repos/asf/kudu/blob/1b89ec81/src/kudu/client/client-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test.cc b/src/kudu/client/client-test.cc
index d53c601..cfa1b27 100644
--- a/src/kudu/client/client-test.cc
+++ b/src/kudu/client/client-test.cc
@@ -171,7 +171,7 @@ class ClientTest : public KuduTest {
     vector<unique_ptr<KuduPartialRow>> rows;
     unique_ptr<KuduPartialRow> row(schema_.NewRow());
     CHECK_OK(row->SetInt32(0, 9));
-    rows.push_back(std::move(row));
+    rows.emplace_back(std::move(row));
     return rows;
   }
 
@@ -276,7 +276,7 @@ class ClientTest : public KuduTest {
   void InsertTestRows(KuduTable* table, KuduSession* session,
                       int num_rows, int first_row = 0) {
     for (int i = first_row; i < num_rows + first_row; ++i) {
-      gscoped_ptr<KuduInsert> insert(BuildTestRow(table, i));
+      unique_ptr<KuduInsert> insert(BuildTestRow(table, i));
       ASSERT_OK(session->Apply(insert.release()));
     }
   }
@@ -303,7 +303,7 @@ class ClientTest : public KuduTest {
     ASSERT_OK(session->SetFlushMode(KuduSession::AUTO_FLUSH_BACKGROUND));
     session->SetTimeoutMillis(10000);
     for (int i = lo; i < hi; i++) {
-      gscoped_ptr<KuduUpdate> update(UpdateTestRow(table, i));
+      unique_ptr<KuduUpdate> update(UpdateTestRow(table, i));
       ASSERT_OK(session->Apply(update.release()));
     }
     FlushSessionOrDie(session);
@@ -315,37 +315,37 @@ class ClientTest : public KuduTest {
     ASSERT_OK(session->SetFlushMode(KuduSession::AUTO_FLUSH_BACKGROUND));
     session->SetTimeoutMillis(10000);
     for (int i = lo; i < hi; i++) {
-      gscoped_ptr<KuduDelete> del(DeleteTestRow(table, i));
+      unique_ptr<KuduDelete> del(DeleteTestRow(table, i));
       ASSERT_OK(session->Apply(del.release()))
     }
     FlushSessionOrDie(session);
     ASSERT_NO_FATAL_FAILURE(CheckNoRpcOverflow());
   }
 
-  gscoped_ptr<KuduInsert> BuildTestRow(KuduTable* table, int index) {
-    gscoped_ptr<KuduInsert> insert(table->NewInsert());
+  unique_ptr<KuduInsert> BuildTestRow(KuduTable* table, int index) {
+    unique_ptr<KuduInsert> insert(table->NewInsert());
     KuduPartialRow* row = insert->mutable_row();
     CHECK_OK(row->SetInt32(0, index));
     CHECK_OK(row->SetInt32(1, index * 2));
     CHECK_OK(row->SetStringCopy(2, Slice(StringPrintf("hello %d", index))));
     CHECK_OK(row->SetInt32(3, index * 3));
-    return std::move(insert);
+    return insert;
   }
 
-  gscoped_ptr<KuduUpdate> UpdateTestRow(KuduTable* table, int index) {
-    gscoped_ptr<KuduUpdate> update(table->NewUpdate());
+  unique_ptr<KuduUpdate> UpdateTestRow(KuduTable* table, int index) {
+    unique_ptr<KuduUpdate> update(table->NewUpdate());
     KuduPartialRow* row = update->mutable_row();
     CHECK_OK(row->SetInt32(0, index));
     CHECK_OK(row->SetInt32(1, index * 2 + 1));
     CHECK_OK(row->SetStringCopy(2, Slice(StringPrintf("hello again %d", 
index))));
-    return std::move(update);
+    return update;
   }
 
-  gscoped_ptr<KuduDelete> DeleteTestRow(KuduTable* table, int index) {
-    gscoped_ptr<KuduDelete> del(table->NewDelete());
+  unique_ptr<KuduDelete> DeleteTestRow(KuduTable* table, int index) {
+    unique_ptr<KuduDelete> del(table->NewDelete());
     KuduPartialRow* row = del->mutable_row();
     CHECK_OK(row->SetInt32(0, index));
-    return std::move(del);
+    return del;
   }
 
   void DoTestScanResourceMetrics() {
@@ -551,7 +551,7 @@ class ClientTest : public KuduTest {
       ASSERT_OK(cluster_->WaitForTabletServerCount(num_replicas));
     }
 
-    gscoped_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
+    unique_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
     for (auto& split_row : split_rows) {
       table_creator->add_range_partition_split(split_row.release());
     }
@@ -674,7 +674,7 @@ class ClientTest : public KuduTest {
 
   KuduSchema schema_;
 
-  gscoped_ptr<MiniCluster> cluster_;
+  unique_ptr<MiniCluster> cluster_;
   shared_ptr<KuduClient> client_;
   shared_ptr<KuduTable> client_table_;
 };
@@ -847,7 +847,7 @@ TEST_F(ClientTest, TestScanMultiTablet) {
   ASSERT_OK(session->SetFlushMode(KuduSession::MANUAL_FLUSH));
   session->SetTimeoutMillis(5000);
   for (int i = 1; i < kTabletsNum; ++i) {
-    gscoped_ptr<KuduInsert> insert;
+    unique_ptr<KuduInsert> insert;
     insert = BuildTestRow(table.get(), 2 + i * kRowsPerTablet);
     ASSERT_OK(session->Apply(insert.release()));
     insert = BuildTestRow(table.get(), 3 + i * kRowsPerTablet);
@@ -875,7 +875,7 @@ TEST_F(ClientTest, TestScanMultiTablet) {
 
   // Update every other row
   for (int i = 1; i < kTabletsNum; ++i) {
-    gscoped_ptr<KuduUpdate> update;
+    unique_ptr<KuduUpdate> update;
     update = UpdateTestRow(table.get(), 2 + i * kRowsPerTablet);
     ASSERT_OK(session->Apply(update.release()));
     update = UpdateTestRow(table.get(), 5 + i * kRowsPerTablet);
@@ -899,7 +899,7 @@ TEST_F(ClientTest, TestScanMultiTablet) {
 
   // Delete half the rows
   for (int i = 1; i < kTabletsNum; ++i) {
-    gscoped_ptr<KuduDelete> del;
+    unique_ptr<KuduDelete> del;
     del = DeleteTestRow(table.get(), 5 + i * kRowsPerTablet);
     ASSERT_OK(session->Apply(del.release()));
     del = DeleteTestRow(table.get(), 7 + i * kRowsPerTablet);
@@ -923,7 +923,7 @@ TEST_F(ClientTest, TestScanMultiTablet) {
 
   // Delete rest of rows
   for (int i = 1; i < kTabletsNum; ++i) {
-    gscoped_ptr<KuduDelete> del;
+    unique_ptr<KuduDelete> del;
     del = DeleteTestRow(table.get(), 2 + i * kRowsPerTablet);
     ASSERT_OK(session->Apply(del.release()));
     del = DeleteTestRow(table.get(), 3 + i * kRowsPerTablet);
@@ -1188,7 +1188,7 @@ static void DoScanWithCallback(KuduTable* table,
   {
     KuduTabletServer* kts_ptr;
     ASSERT_OK(scanner.GetCurrentServer(&kts_ptr));
-    gscoped_ptr<KuduTabletServer> kts(kts_ptr);
+    unique_ptr<KuduTabletServer> kts(kts_ptr);
     ASSERT_OK(cb(kts->uuid()));
   }
 
@@ -1318,7 +1318,7 @@ TEST_F(ClientTest, TestNonCoveringRangePartitions) {
   shared_ptr<KuduSession> session = client_->NewSession();
   ASSERT_OK(session->SetFlushMode(KuduSession::AUTO_FLUSH_SYNC));
   session->SetTimeoutMillis(60000);
-  vector<gscoped_ptr<KuduInsert>> out_of_range_inserts;
+  vector<unique_ptr<KuduInsert>> out_of_range_inserts;
   out_of_range_inserts.emplace_back(BuildTestRow(table.get(), -50));
   out_of_range_inserts.emplace_back(BuildTestRow(table.get(), -1));
   out_of_range_inserts.emplace_back(BuildTestRow(table.get(), 100));
@@ -1496,7 +1496,7 @@ TEST_F(ClientTest, TestExclusiveInclusiveRangeBounds) {
   unique_ptr<KuduPartialRow> upper_bound(schema_.NewRow());
   ASSERT_OK(upper_bound->SetInt32("key", 99));
 
-  gscoped_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
+  unique_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
   table_creator->add_range_partition(lower_bound.release(), 
upper_bound.release(),
                                       KuduTableCreator::EXCLUSIVE_BOUND,
                                       KuduTableCreator::INCLUSIVE_BOUND);
@@ -1524,7 +1524,7 @@ TEST_F(ClientTest, TestExclusiveInclusiveRangeBounds) {
   shared_ptr<KuduSession> session = client_->NewSession();
   ASSERT_OK(session->SetFlushMode(KuduSession::AUTO_FLUSH_SYNC));
   session->SetTimeoutMillis(60000);
-  vector<gscoped_ptr<KuduInsert>> out_of_range_inserts;
+  vector<unique_ptr<KuduInsert>> out_of_range_inserts;
   out_of_range_inserts.emplace_back(BuildTestRow(table.get(), -50));
   out_of_range_inserts.emplace_back(BuildTestRow(table.get(), -1));
   out_of_range_inserts.emplace_back(BuildTestRow(table.get(), 100));
@@ -1582,7 +1582,7 @@ TEST_F(ClientTest, 
TestExclusiveInclusiveUnixTimeMicrosRangeBounds) {
   unique_ptr<KuduPartialRow> upper_bound(u_schema_.NewRow());
   ASSERT_OK(upper_bound->SetUnixTimeMicros("key", 99));
 
-  gscoped_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
+  unique_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
   table_creator->add_range_partition(lower_bound.release(), 
upper_bound.release(),
                                       KuduTableCreator::EXCLUSIVE_BOUND,
                                       KuduTableCreator::INCLUSIVE_BOUND);
@@ -1710,7 +1710,7 @@ TEST_F(ClientTest, TestScanWithEncodedRangePredicate) {
   ASSERT_NO_FATAL_FAILURE(ScanTableToStrings(table.get(), &all_rows));
   ASSERT_EQ(100, all_rows.size());
 
-  gscoped_ptr<KuduPartialRow> row(table->schema().NewRow());
+  unique_ptr<KuduPartialRow> row(table->schema().NewRow());
 
   // Test a double-sided range within first tablet
   {
@@ -1976,17 +1976,14 @@ TEST_F(ClientTest, TestScanTimeout) {
   }
 }
 
-static gscoped_ptr<KuduError> GetSingleErrorFromSession(KuduSession* session) {
+static unique_ptr<KuduError> GetSingleErrorFromSession(KuduSession* session) {
   CHECK_EQ(1, session->CountPendingErrors());
   vector<KuduError*> errors;
-  ElementDeleter d(&errors);
   bool overflow;
   session->GetPendingErrors(&errors, &overflow);
   CHECK(!overflow);
   CHECK_EQ(1, errors.size());
-  KuduError* error = errors[0];
-  errors.clear();
-  return gscoped_ptr<KuduError>(error);
+  return unique_ptr<KuduError>(errors[0]);
 }
 
 // Simplest case of inserting through the client API: a single row
@@ -1997,7 +1994,7 @@ TEST_F(ClientTest, TestInsertSingleRowManualBatch) {
 
   ASSERT_OK(session->SetFlushMode(KuduSession::MANUAL_FLUSH));
 
-  gscoped_ptr<KuduInsert> insert(client_table_->NewInsert());
+  unique_ptr<KuduInsert> insert(client_table_->NewInsert());
   // Try inserting without specifying a key: should fail.
   ASSERT_OK(insert->mutable_row()->SetInt32("int_val", 54321));
   ASSERT_OK(insert->mutable_row()->SetStringCopy("string_val", "hello world"));
@@ -2010,7 +2007,7 @@ TEST_F(ClientTest, TestInsertSingleRowManualBatch) {
 
   // Get error
   ASSERT_EQ(session->CountPendingErrors(), 1) << "Should report bad key to 
error container";
-  gscoped_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
+  unique_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
   KuduWriteOperation* failed_op = error->release_failed_op();
   ASSERT_EQ(failed_op, ptr) << "Should be able to retrieve failed operation";
   insert.reset(ptr);
@@ -2033,7 +2030,7 @@ TEST_F(ClientTest, TestInsertAutoFlushSync) {
 
   // Test in Flush() is called implicitly,
   // so there is no pending operations.
-  gscoped_ptr<KuduInsert> insert(client_table_->NewInsert());
+  unique_ptr<KuduInsert> insert(client_table_->NewInsert());
   ASSERT_OK(insert->mutable_row()->SetInt32("key", 12345));
   ASSERT_OK(insert->mutable_row()->SetInt32("int_val", 54321));
   ASSERT_OK(insert->mutable_row()->SetStringCopy("string_val", "hello world"));
@@ -2043,7 +2040,7 @@ TEST_F(ClientTest, TestInsertAutoFlushSync) {
 
   // Test multiple inserts.
   for (int i = 0; i < 100; i++) {
-    gscoped_ptr<KuduInsert> insert(client_table_->NewInsert());
+    unique_ptr<KuduInsert> insert(client_table_->NewInsert());
     ASSERT_OK(insert->mutable_row()->SetInt32("key", i));
     ASSERT_OK(insert->mutable_row()->SetInt32("int_val", 54321));
     ASSERT_OK(insert->mutable_row()->SetStringCopy("string_val", "hello 
world"));
@@ -2056,7 +2053,7 @@ static Status ApplyInsertToSession(KuduSession* session,
                                    int row_key,
                                    int int_val,
                                    const char* string_val) {
-  gscoped_ptr<KuduInsert> insert(table->NewInsert());
+  unique_ptr<KuduInsert> insert(table->NewInsert());
   RETURN_NOT_OK(insert->mutable_row()->SetInt32("key", row_key));
   RETURN_NOT_OK(insert->mutable_row()->SetInt32("int_val", int_val));
   RETURN_NOT_OK(insert->mutable_row()->SetStringCopy("string_val", 
string_val));
@@ -2068,7 +2065,7 @@ static Status ApplyUpsertToSession(KuduSession* session,
                                    int row_key,
                                    int int_val,
                                    const char* string_val) {
-  gscoped_ptr<KuduUpsert> upsert(table->NewUpsert());
+  unique_ptr<KuduUpsert> upsert(table->NewUpsert());
   RETURN_NOT_OK(upsert->mutable_row()->SetInt32("key", row_key));
   RETURN_NOT_OK(upsert->mutable_row()->SetInt32("int_val", int_val));
   RETURN_NOT_OK(upsert->mutable_row()->SetStringCopy("string_val", 
string_val));
@@ -2079,7 +2076,7 @@ static Status ApplyUpdateToSession(KuduSession* session,
                                    const shared_ptr<KuduTable>& table,
                                    int row_key,
                                    int int_val) {
-  gscoped_ptr<KuduUpdate> update(table->NewUpdate());
+  unique_ptr<KuduUpdate> update(table->NewUpdate());
   RETURN_NOT_OK(update->mutable_row()->SetInt32("key", row_key));
   RETURN_NOT_OK(update->mutable_row()->SetInt32("int_val", int_val));
   return session->Apply(update.release());
@@ -2088,7 +2085,7 @@ static Status ApplyUpdateToSession(KuduSession* session,
 static Status ApplyDeleteToSession(KuduSession* session,
                                    const shared_ptr<KuduTable>& table,
                                    int row_key) {
-  gscoped_ptr<KuduDelete> del(table->NewDelete());
+  unique_ptr<KuduDelete> del(table->NewDelete());
   RETURN_NOT_OK(del->mutable_row()->SetInt32("key", row_key));
   return session->Apply(del.release());
 }
@@ -2105,7 +2102,7 @@ TEST_F(ClientTest, TestWriteTimeout) {
     ASSERT_OK(ApplyInsertToSession(session.get(), client_table_, 1, 1, "row"));
     Status s = session->Flush();
     ASSERT_TRUE(s.IsIOError()) << "unexpected status: " << s.ToString();
-    gscoped_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
+    unique_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
     ASSERT_TRUE(error->status().IsTimedOut()) << error->status().ToString();
     ASSERT_STR_CONTAINS(error->status().ToString(),
                         "GetTableLocations { table: 'client-testtb', "
@@ -2123,7 +2120,7 @@ TEST_F(ClientTest, TestWriteTimeout) {
     ASSERT_OK(ApplyInsertToSession(session.get(), client_table_, 1, 1, "row"));
     Status s = session->Flush();
     ASSERT_TRUE(s.IsIOError());
-    gscoped_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
+    unique_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
     ASSERT_TRUE(error->status().IsTimedOut()) << error->status().ToString();
     ASSERT_STR_CONTAINS(error->status().ToString(),
                         "Failed to write batch of 1 ops to tablet");
@@ -2148,7 +2145,7 @@ TEST_F(ClientTest, TestFailedDnsResolution) {
       ASSERT_OK(ApplyInsertToSession(session.get(), client_table_, 1, 1, 
"row"));
       Status s = session->Flush();
       ASSERT_TRUE(s.IsIOError()) << "unexpected status: " << s.ToString();
-      gscoped_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
+      unique_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
       ASSERT_TRUE(error->status().IsTimedOut()) << error->status().ToString();
 
       // Due to KUDU-1466 there is a narrow window in which the error reported 
might be that the
@@ -2272,7 +2269,7 @@ TEST_F(ClientTest, TestBatchWithPartialError) {
   ASSERT_STR_CONTAINS(s.ToString(), "Some errors occurred");
 
   // Fetch and verify the reported error.
-  gscoped_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
+  unique_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
   ASSERT_TRUE(error->status().IsAlreadyPresent());
   ASSERT_EQ(error->failed_op().ToString(),
             R"(INSERT int32 key=1, int32 int_val=1, string 
string_val="Attempted dup")");
@@ -2308,7 +2305,7 @@ void 
ClientTest::DoTestWriteWithDeadServer(WhichServerToKill which) {
   Status s = session->Flush();
   ASSERT_TRUE(s.IsIOError()) << s.ToString();
 
-  gscoped_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
+  unique_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
   switch (which) {
     case DEAD_MASTER:
       // Only one master, so no retry for finding the new leader master.
@@ -2720,7 +2717,7 @@ TEST_F(ClientTest, 
TestAutoFlushBackgroundAndErrorCollector) {
       error_cnt_(0) {
     }
 
-    void AddError(gscoped_ptr<KuduError> error) override {
+    void AddError(unique_ptr<KuduError> error) override {
       //LOG(INFO) << "Hello from: " << Thread::UniqueThreadId();
       if (0 == error_cnt_++) {
         const bool prev_allowed = ThreadRestrictions::SetWaitAllowed(true);
@@ -3105,7 +3102,7 @@ TEST_F(ClientTest, TestMutateDeletedRow) {
   ASSERT_FALSE(s.ok());
   ASSERT_STR_CONTAINS(s.ToString(), "Some errors occurred");
   // Verify error
-  gscoped_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
+  unique_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
   ASSERT_EQ(error->failed_op().ToString(),
             "UPDATE int32 key=1, int32 int_val=2");
   ScanTableToStrings(client_table_.get(), &rows);
@@ -3135,7 +3132,7 @@ TEST_F(ClientTest, TestMutateNonexistentRow) {
   ASSERT_FALSE(s.ok());
   ASSERT_STR_CONTAINS(s.ToString(), "Some errors occurred");
   // Verify error
-  gscoped_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
+  unique_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
   ASSERT_EQ(error->failed_op().ToString(),
             "UPDATE int32 key=1, int32 int_val=2");
   ScanTableToStrings(client_table_.get(), &rows);
@@ -3184,7 +3181,7 @@ TEST_F(ClientTest, TestUpsert) {
 
   // Apply an UPDATE including the column that has a default and verify it.
   {
-    gscoped_ptr<KuduUpdate> update(client_table_->NewUpdate());
+    unique_ptr<KuduUpdate> update(client_table_->NewUpdate());
     KuduPartialRow* row = update->mutable_row();
     ASSERT_OK(row->SetInt32("key", 1));
     ASSERT_OK(row->SetStringCopy("string_val", "updated row"));
@@ -3231,7 +3228,7 @@ TEST_F(ClientTest, TestWriteWithBadColumn) {
   // Try to do a write with the bad schema.
   shared_ptr<KuduSession> session = client_->NewSession();
   ASSERT_OK(session->SetFlushMode(KuduSession::MANUAL_FLUSH));
-  gscoped_ptr<KuduInsert> insert(table->NewInsert());
+  unique_ptr<KuduInsert> insert(table->NewInsert());
   ASSERT_OK(insert->mutable_row()->SetInt32("key", 12345));
   Status s = insert->mutable_row()->SetInt32("bad_col", 12345);
   ASSERT_TRUE(s.IsNotFound());
@@ -3246,7 +3243,7 @@ TEST_F(ClientTest, TestWriteWithBadSchema) {
 
   // Remove the 'int_val' column.
   // Now the schema on the client is "old"
-  gscoped_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
+  unique_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
   ASSERT_OK(table_alterer
             ->DropColumn("int_val")
             ->Alter());
@@ -3260,7 +3257,7 @@ TEST_F(ClientTest, TestWriteWithBadSchema) {
   ASSERT_FALSE(s.ok());
 
   // Verify the specific error.
-  gscoped_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
+  unique_ptr<KuduError> error = GetSingleErrorFromSession(session.get());
   ASSERT_TRUE(error->status().IsInvalidArgument());
   ASSERT_STR_CONTAINS(error->status().ToString(),
             "Client provided column int_val[int32 NOT NULL] "
@@ -3274,7 +3271,7 @@ TEST_F(ClientTest, TestBasicAlterOperations) {
 
   // Test that renaming a column to an invalid name throws an error.
   for (const string& bad_name : kBadNames) {
-    gscoped_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
+    unique_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
     table_alterer->AlterColumn("int_val")->RenameTo(bad_name);
     Status s = table_alterer->Alter();
     ASSERT_TRUE(s.IsInvalidArgument());
@@ -3283,7 +3280,7 @@ TEST_F(ClientTest, TestBasicAlterOperations) {
 
   // Test that renaming a table to an invalid name throws an error.
   for (const string& bad_name : kBadNames) {
-    gscoped_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
+    unique_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
     table_alterer->RenameTo(bad_name);
     Status s = table_alterer->Alter();
     ASSERT_TRUE(s.IsInvalidArgument());
@@ -3293,7 +3290,7 @@ TEST_F(ClientTest, TestBasicAlterOperations) {
   // Test trying to add columns to a table such that it exceeds the permitted
   // maximum.
   {
-    gscoped_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
+    unique_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
     for (int i = 0; i < 1000; i++) {
       table_alterer->AddColumn(Substitute("c$0", 
i))->Type(KuduColumnSchema::INT32);
     }
@@ -3383,7 +3380,7 @@ TEST_F(ClientTest, TestBasicAlterOperations) {
       tablet_id, &tablet_replica));
 
   {
-    gscoped_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
+    unique_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
     table_alterer->DropColumn("int_val")
       ->AddColumn("new_col")->Type(KuduColumnSchema::INT32);
     ASSERT_OK(table_alterer->Alter());
@@ -3392,7 +3389,7 @@ TEST_F(ClientTest, TestBasicAlterOperations) {
 
   // Specifying an encoding incompatible with the column's type is an error.
   {
-    gscoped_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
+    unique_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
     table_alterer->AddColumn("new_string_val")->Type(KuduColumnSchema::STRING)
       ->Encoding(KuduColumnStorageAttributes::GROUP_VARINT);
     Status s = table_alterer->Alter();
@@ -3403,7 +3400,7 @@ TEST_F(ClientTest, TestBasicAlterOperations) {
 
   // Test adding a new column of type string.
   {
-    gscoped_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
+    unique_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
     table_alterer->AddColumn("new_string_val")->Type(KuduColumnSchema::STRING)
       ->Encoding(KuduColumnStorageAttributes::PREFIX_ENCODING);
     ASSERT_OK(table_alterer->Alter());
@@ -3412,7 +3409,7 @@ TEST_F(ClientTest, TestBasicAlterOperations) {
 
   // Test renaming a primary key column.
   {
-    gscoped_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
+    unique_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
     table_alterer->AlterColumn("key")->RenameTo("key2");
     Status s = table_alterer->Alter();
     ASSERT_FALSE(s.IsInvalidArgument());
@@ -3421,7 +3418,7 @@ TEST_F(ClientTest, TestBasicAlterOperations) {
 
   // Changing the type of a primary key column is an error.
   {
-    gscoped_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
+    unique_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
     
table_alterer->AlterColumn("key2")->Type(KuduColumnSchema::INT64)->NotNull()->PrimaryKey();
     Status s = table_alterer->Alter();
     ASSERT_TRUE(s.IsNotSupported()) << s.ToString();
@@ -3516,7 +3513,7 @@ TEST_F(ClientTest, TestBasicAlterOperations) {
   // Test changing a table name.
   {
     const char *kRenamedTableName = "RenamedTable";
-    gscoped_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
+    unique_ptr<KuduTableAlterer> 
table_alterer(client_->NewTableAlterer(kTableName));
     ASSERT_OK(table_alterer
               ->RenameTo(kRenamedTableName)
               ->Alter());
@@ -4057,7 +4054,7 @@ TEST_F(ClientTest, TestDeadlockSimulation) {
 }
 
 TEST_F(ClientTest, TestCreateDuplicateTable) {
-  gscoped_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
+  unique_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
   ASSERT_TRUE(table_creator->table_name(kTableName)
               .set_range_partition_columns({ "key" })
               .schema(&schema_)
@@ -4074,7 +4071,7 @@ TEST_F(ClientTest, TestCreateTableWithTooManyTablets) {
   KuduPartialRow* split2 = schema_.NewRow();
   ASSERT_OK(split2->SetInt32("key", 2));
 
-  gscoped_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
+  unique_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
   Status s = table_creator->table_name("foobar")
       .schema(&schema_)
       .set_range_partition_columns({ "key" })
@@ -4099,7 +4096,7 @@ TEST_F(ClientTest, TestCreateTableWithBadNumReplicas) {
 
   for (const auto& c : cases) {
     SCOPED_TRACE(Substitute("num_replicas=$0", c.first));
-    gscoped_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
+    unique_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
     Status s = table_creator->table_name("foobar")
         .schema(&schema_)
         .set_range_partition_columns({ "key" })
@@ -4217,7 +4214,7 @@ TEST_F(ClientTest, TestInsertTooLongEncodedPrimaryKey) {
   // Create a session and insert a row with a too-large composite key.
   shared_ptr<KuduSession> session(client_->NewSession());
   ASSERT_OK(session->SetFlushMode(KuduSession::MANUAL_FLUSH));
-  gscoped_ptr<KuduInsert> insert(table->NewInsert());
+  unique_ptr<KuduInsert> insert(table->NewInsert());
   for (int i = 0; i < 3; i++) {
     ASSERT_OK(insert->mutable_row()->SetStringCopy(i, kLongValue));
   }
@@ -4444,7 +4441,7 @@ TEST_F(ClientTest, TestReadAtSnapshotNoTimestampSet) {
     shared_ptr<KuduSession> session(client_->NewSession());
     ASSERT_OK(session->SetFlushMode(KuduSession::MANUAL_FLUSH));
     for (size_t i = 0; i < kTabletsNum * kRowsPerTablet; ++i) {
-      gscoped_ptr<KuduInsert> insert(BuildTestRow(table.get(), i));
+      unique_ptr<KuduInsert> insert(BuildTestRow(table.get(), i));
       ASSERT_OK(session->Apply(insert.release()));
     }
     FlushSessionOrDie(session);
@@ -4683,12 +4680,12 @@ INSTANTIATE_TEST_CASE_P(BinaryColEncodings,
 TEST_F(ClientTest, TestClonePredicates) {
   ASSERT_NO_FATAL_FAILURE(InsertTestRows(client_table_.get(),
                                          2, 0));
-  gscoped_ptr<KuduPredicate> predicate(client_table_->NewComparisonPredicate(
+  unique_ptr<KuduPredicate> predicate(client_table_->NewComparisonPredicate(
       "key",
       KuduPredicate::EQUAL,
       KuduValue::FromInt(1)));
 
-  gscoped_ptr<KuduScanner> scanner(new KuduScanner(client_table_.get()));
+  unique_ptr<KuduScanner> scanner(new KuduScanner(client_table_.get()));
   ASSERT_OK(scanner->AddConjunctPredicate(predicate->Clone()));
   ASSERT_OK(scanner->Open());
 
@@ -4792,7 +4789,7 @@ TEST_F(ClientTest, 
TestLastErrorEmbeddedInScanTimeoutStatus) {
 }
 
 TEST_F(ClientTest, TestNoDefaultPartitioning) {
-    gscoped_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
+    unique_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
     Status s = 
table_creator->table_name("TestNoDefaultPartitioning").schema(&schema_).Create();
 
     ASSERT_TRUE(s.IsInvalidArgument());
@@ -5143,7 +5140,7 @@ TEST_F(ClientTest, TestPartitioner) {
   }
 
   shared_ptr<KuduTable> table;
-  gscoped_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
+  unique_ptr<KuduTableCreator> table_creator(client_->NewTableCreator());
   table_creator->table_name(kTableName)
       .schema(&schema_)
       .num_replicas(1)

http://git-wip-us.apache.org/repos/asf/kudu/blob/1b89ec81/src/kudu/client/error_collector.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/error_collector.cc 
b/src/kudu/client/error_collector.cc
index db89601..932a0d4 100644
--- a/src/kudu/client/error_collector.cc
+++ b/src/kudu/client/error_collector.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/client/error_collector.h"
 
+#include <memory>
 #include <mutex>
 #include <vector>
 
@@ -63,7 +64,7 @@ Status ErrorCollector::SetMaxMemSize(size_t size_bytes) {
   return Status::OK();
 }
 
-void ErrorCollector::AddError(gscoped_ptr<KuduError> error) {
+void ErrorCollector::AddError(std::unique_ptr<KuduError> error) {
   std::lock_guard<simple_spinlock> l(lock_);
   const size_t error_size_bytes = error->data_->failed_op_->SizeInBuffer();
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/1b89ec81/src/kudu/client/error_collector.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/error_collector.h 
b/src/kudu/client/error_collector.h
index 33e70c3..f6f474f 100644
--- a/src/kudu/client/error_collector.h
+++ b/src/kudu/client/error_collector.h
@@ -14,12 +14,11 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-#ifndef KUDU_CLIENT_ERROR_COLLECTOR_H
-#define KUDU_CLIENT_ERROR_COLLECTOR_H
+#pragma once
 
+#include <memory>
 #include <vector>
 
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"
@@ -43,7 +42,7 @@ class ErrorCollector : public 
RefCountedThreadSafe<ErrorCollector> {
   // See KuduSession::SetErrorBufferSpace() for details.
   Status SetMaxMemSize(size_t size_bytes);
 
-  virtual void AddError(gscoped_ptr<KuduError> error);
+  virtual void AddError(std::unique_ptr<KuduError> error);
 
   // See KuduSession for details.
   size_t CountErrors() const;
@@ -70,4 +69,3 @@ class ErrorCollector : public 
RefCountedThreadSafe<ErrorCollector> {
 } // namespace internal
 } // namespace client
 } // namespace kudu
-#endif /* KUDU_CLIENT_ERROR_COLLECTOR_H */

http://git-wip-us.apache.org/repos/asf/kudu/blob/1b89ec81/src/kudu/client/session-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/session-internal.cc 
b/src/kudu/client/session-internal.cc
index 19666e8..6ba6640 100644
--- a/src/kudu/client/session-internal.cc
+++ b/src/kudu/client/session-internal.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/client/session-internal.h"
 
+#include <memory>
 #include <mutex>
 
 #include "kudu/client/batcher.h"
@@ -27,6 +28,8 @@
 #include "kudu/rpc/messenger.h"
 #include "kudu/util/logging.h"
 
+using std::unique_ptr;
+
 namespace kudu {
 
 using rpc::Messenger;
@@ -325,7 +328,7 @@ Status KuduSession::Data::ApplyWriteOp(KuduWriteOperation* 
write_op) {
   }
   if (PREDICT_FALSE(!write_op->row().IsKeySet())) {
     Status status = Status::IllegalState("Key not specified", 
KUDU_REDACT(write_op->ToString()));
-    error_collector_->AddError(gscoped_ptr<KuduError>(new KuduError(write_op, 
status)));
+    error_collector_->AddError(unique_ptr<KuduError>(new KuduError(write_op, 
status)));
     return status;
   }
 
@@ -351,8 +354,7 @@ Status KuduSession::Data::ApplyWriteOp(KuduWriteOperation* 
write_op) {
           "buffer size limit is too small to fit operation: "
           "required $0, size limit $1",
           required_size, max_size));
-    error_collector_->AddError(
-        gscoped_ptr<KuduError>(new KuduError(write_op, s)));
+    error_collector_->AddError(unique_ptr<KuduError>(new KuduError(write_op, 
s)));
     return s;
   }
 
@@ -398,7 +400,7 @@ Status KuduSession::Data::ApplyWriteOp(KuduWriteOperation* 
write_op) {
           "required additional $0 when $1 of $2 already used",
           required_size, buffer_bytes_used_, max_size));
       error_collector_->AddError(
-          gscoped_ptr<KuduError>(new KuduError(write_op, s)));
+          unique_ptr<KuduError>(new KuduError(write_op, s)));
       return s;
     }
 
@@ -427,7 +429,7 @@ Status KuduSession::Data::ApplyWriteOp(KuduWriteOperation* 
write_op) {
     Status op_add_status = batcher_->Add(write_op);
     if (PREDICT_FALSE(!op_add_status.ok())) {
       error_collector_->AddError(
-          gscoped_ptr<KuduError>(new KuduError(write_op, op_add_status)));
+          unique_ptr<KuduError>(new KuduError(write_op, op_add_status)));
       return op_add_status;
     }
     // Finally, update the buffer space usage.

Reply via email to