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_;
};