You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by ab...@apache.org on 2019/12/13 18:51:14 UTC

[kudu] branch master updated: KUDU-1938 Fix length check in SchemaBuilder

This is an automated email from the ASF dual-hosted git repository.

abukor pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new 4327b6e  KUDU-1938 Fix length check in SchemaBuilder
4327b6e is described below

commit 4327b6e17e6d673fa6800a2a7ff2843508a4da68
Author: Attila Bukor <ab...@apache.org>
AuthorDate: Wed Dec 11 17:10:51 2019 -0800

    KUDU-1938 Fix length check in SchemaBuilder
    
    Length check in schema builder didn't account for the possibility that
    length is unset.
    
    Change-Id: If3d14c3c791b9de016cd346e73e629fdc03448d2
    Reviewed-on: http://gerrit.cloudera.org:8080/14893
    Tested-by: Kudu Jenkins
    Reviewed-by: Alexey Serbin <as...@cloudera.com>
---
 src/kudu/client/schema.cc | 3 +++
 src/kudu/client/schema.h  | 7 ++++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/kudu/client/schema.cc b/src/kudu/client/schema.cc
index 576f032..6170fa6 100644
--- a/src/kudu/client/schema.cc
+++ b/src/kudu/client/schema.cc
@@ -405,6 +405,9 @@ Status KuduColumnSpec::ToColumnSchema(KuduColumnSchema* col) const {
       }
       break;
     case KuduColumnSchema::VARCHAR:
+      if (!data_->length) {
+        return Status::InvalidArgument("no length provided for VARCHAR column", data_->name);
+      }
       if (data_->length.value() < kMinVarcharLength ||
           data_->length.value() > kMaxVarcharLength) {
         return Status::InvalidArgument(
diff --git a/src/kudu/client/schema.h b/src/kudu/client/schema.h
index 209dff6..23133d6 100644
--- a/src/kudu/client/schema.h
+++ b/src/kudu/client/schema.h
@@ -40,10 +40,10 @@
 namespace kudu {
 
 class ColumnSchema;
-struct ColumnSchemaDelta;
 class KuduPartialRow;
 class Schema;
 class Slice;
+struct ColumnSchemaDelta;
 
 namespace tools {
 class RemoteKsckCluster;
@@ -60,8 +60,6 @@ class MetaCacheEntry;
 class WriteRpc;
 } // namespace internal
 
-class KuduColumnSchema;
-class KuduColumnSpec;
 class KuduSchema;
 class KuduValue;
 
@@ -119,6 +117,7 @@ class KUDU_EXPORT KuduColumnTypeAttributes {
   KuduColumnTypeAttributes(int8_t precision, int8_t scale, uint16_t length);
 
   class KUDU_NO_EXPORT Data;
+
   // Owned.
   Data* data_;
 };
@@ -509,6 +508,7 @@ class KUDU_EXPORT KuduColumnSpec {
 
  private:
   class KUDU_NO_EXPORT Data;
+
   friend class KuduSchemaBuilder;
   friend class KuduTableAlterer;
 
@@ -584,6 +584,7 @@ class KUDU_EXPORT KuduSchemaBuilder {
 
  private:
   class KUDU_NO_EXPORT Data;
+
   // Owned.
   Data* data_;
 };