You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2018/11/21 03:29:40 UTC

[2/4] kudu git commit: build: explicitly declare decimal Set/Get<>s

build: explicitly declare decimal Set/Get<>s

Some compilers aren't clever enough to pick up on implicit instantiation
of templates based on usage in a given compilation unit, and instead we
need to explicitly instantiate them. This surfaced as the following
build error:

Undefined symbols for architecture x86_64:
  "kudu::Status kudu::KuduPartialRow::Set<kudu::TypeTraits<(kudu::DataType)15> >(int, kudu::TypeTraits<(kudu::DataType)15>::cpp_type const&, bool)", referenced from:
      kudu::client::IntKeysTestSetup<kudu::client::KeyTypeWrapper<(kudu::DataType)15> >::GenerateSplitRows(kudu::client::KuduSchema const&) const in all_types-itest.cc.o
      kudu::client::IntKeysTestSetup<kudu::client::KeyTypeWrapper<(kudu::DataType)15> >::GenerateRowKey(kudu::client::KuduInsert*, int, int) const in all_types-itest.cc.o
  "kudu::Status kudu::KuduPartialRow::Set<kudu::TypeTraits<(kudu::DataType)16> >(int, kudu::TypeTraits<(kudu::DataType)16>::cpp_type const&, bool)", referenced from:
      kudu::client::IntKeysTestSetup<kudu::client::KeyTypeWrapper<(kudu::DataType)16> >::GenerateSplitRows(kudu::client::KuduSchema const&) const in all_types-itest.cc.o
      kudu::client::IntKeysTestSetup<kudu::client::KeyTypeWrapper<(kudu::DataType)16> >::GenerateRowKey(kudu::client::KuduInsert*, int, int) const in all_types-itest.cc.o
  "kudu::Status kudu::KuduPartialRow::Set<kudu::TypeTraits<(kudu::DataType)17> >(int, kudu::TypeTraits<(kudu::DataType)17>::cpp_type const&, bool)", referenced from:
      kudu::client::IntKeysTestSetup<kudu::client::KeyTypeWrapper<(kudu::DataType)17> >::GenerateSplitRows(kudu::client::KuduSchema const&) const in all_types-itest.cc.o
      kudu::client::IntKeysTestSetup<kudu::client::KeyTypeWrapper<(kudu::DataType)17> >::GenerateRowKey(kudu::client::KuduInsert*, int, int) const in all_types-itest.cc.o
  "kudu::Status kudu::client::KuduScanBatch::RowPtr::Get<kudu::TypeTraits<(kudu::DataType)15> >(int, kudu::TypeTraits<(kudu::DataType)15>::cpp_type*) const", referenced from:
      kudu::client::IntKeysTestSetup<kudu::client::KeyTypeWrapper<(kudu::DataType)15> >::VerifyRowKey(kudu::client::KuduScanBatch::RowPtr const&, int, int) const in all_types-itest.cc.o
  "kudu::Status kudu::client::KuduScanBatch::RowPtr::Get<kudu::TypeTraits<(kudu::DataType)16> >(int, kudu::TypeTraits<(kudu::DataType)16>::cpp_type*) const", referenced from:
      kudu::client::IntKeysTestSetup<kudu::client::KeyTypeWrapper<(kudu::DataType)16> >::VerifyRowKey(kudu::client::KuduScanBatch::RowPtr const&, int, int) const in all_types-itest.cc.o
  "kudu::Status kudu::client::KuduScanBatch::RowPtr::Get<kudu::TypeTraits<(kudu::DataType)17> >(int, kudu::TypeTraits<(kudu::DataType)17>::cpp_type*) const", referenced from:
      kudu::client::IntKeysTestSetup<kudu::client::KeyTypeWrapper<(kudu::DataType)17> >::VerifyRowKey(kudu::client::KuduScanBatch::RowPtr const&, int, int) const in all_types-itest.cc.o

Change-Id: If280f69b5736737a55862486c98f434cfb8e8072
Reviewed-on: http://gerrit.cloudera.org:8080/11969
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Reviewed-by: Alexey Serbin <as...@cloudera.com>
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/b8595f8f
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/b8595f8f
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/b8595f8f

Branch: refs/heads/master
Commit: b8595f8fcb34e42c649b9f90dd5ddec527747d44
Parents: 27baa0c
Author: Andrew Wong <aw...@cloudera.com>
Authored: Tue Nov 20 16:36:01 2018 -0800
Committer: Andrew Wong <aw...@cloudera.com>
Committed: Wed Nov 21 01:21:50 2018 +0000

----------------------------------------------------------------------
 src/kudu/client/scan_batch.cc  |  9 +++++++++
 src/kudu/common/partial_row.cc | 31 +++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/b8595f8f/src/kudu/client/scan_batch.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_batch.cc b/src/kudu/client/scan_batch.cc
index 410d125..ac63c1f 100644
--- a/src/kudu/client/scan_batch.cc
+++ b/src/kudu/client/scan_batch.cc
@@ -311,6 +311,15 @@ Status KuduScanBatch::RowPtr::Get<TypeTraits<STRING> >(int col_idx, Slice* val)
 template
 Status KuduScanBatch::RowPtr::Get<TypeTraits<BINARY> >(int col_idx, Slice* val) const;
 
+template
+Status KuduScanBatch::RowPtr::Get<TypeTraits<DECIMAL32> >(int col_idx, int32_t* val) const;
+
+template
+Status KuduScanBatch::RowPtr::Get<TypeTraits<DECIMAL64> >(int col_idx, int64_t* val) const;
+
+template
+Status KuduScanBatch::RowPtr::Get<TypeTraits<DECIMAL128> >(int col_idx, int128_t* val) const;
+
 Status KuduScanBatch::RowPtr::GetUnscaledDecimal(int col_idx, int128_t* val) const {
   const ColumnSchema& col = schema_->column(col_idx);
   const DataType col_type = col.type_info()->type();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b8595f8f/src/kudu/common/partial_row.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partial_row.cc b/src/kudu/common/partial_row.cc
index de7d52a..b20ce33 100644
--- a/src/kudu/common/partial_row.cc
+++ b/src/kudu/common/partial_row.cc
@@ -499,6 +499,22 @@ Status KuduPartialRow::Set<TypeTraits<BOOL> >(int col_idx,
                                               bool owned);
 
 template
+Status KuduPartialRow::Set<TypeTraits<DECIMAL32> >(int col_idx,
+                                                   const TypeTraits<DECIMAL32>::cpp_type& val,
+                                                   bool owned);
+
+template
+Status KuduPartialRow::Set<TypeTraits<DECIMAL64> >(int col_idx,
+                                                   const TypeTraits<DECIMAL64>::cpp_type& val,
+                                                   bool owned);
+
+template
+Status KuduPartialRow::Set<TypeTraits<DECIMAL128> >(int col_idx,
+                                                    const TypeTraits<DECIMAL128>::cpp_type& val,
+                                                    bool owned);
+
+
+template
 Status KuduPartialRow::Set<TypeTraits<INT8> >(const Slice& col_name,
                                               const TypeTraits<INT8>::cpp_type& val,
                                               bool owned);
@@ -554,6 +570,21 @@ Status KuduPartialRow::Set<TypeTraits<BINARY> >(const Slice& col_name,
                                                 const TypeTraits<BINARY>::cpp_type& val,
                                                 bool owned);
 
+template
+Status KuduPartialRow::Set<TypeTraits<DECIMAL32> >(const Slice& col_name,
+                                                   const TypeTraits<DECIMAL32>::cpp_type& val,
+                                                   bool owned);
+
+template
+Status KuduPartialRow::Set<TypeTraits<DECIMAL64> >(const Slice& col_name,
+                                                   const TypeTraits<DECIMAL64>::cpp_type& val,
+                                                   bool owned);
+
+template
+Status KuduPartialRow::Set<TypeTraits<DECIMAL128> >(const Slice& col_name,
+                                                    const TypeTraits<DECIMAL128>::cpp_type& val,
+                                                    bool owned);
+
 //------------------------------------------------------------
 // Getters
 //------------------------------------------------------------