You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by db...@apache.org on 2018/03/14 22:18:32 UTC
[1/2] trafodion git commit: [TRAFODION-2977] Fix issues with maximum
key length detection
Repository: trafodion
Updated Branches:
refs/heads/master 290570e72 -> b19868adc
[TRAFODION-2977] Fix issues with maximum key length detection
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/e7fd6574
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/e7fd6574
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/e7fd6574
Branch: refs/heads/master
Commit: e7fd657474842b017e26f50aeda3895b7cfd337c
Parents: 75c7b39
Author: Dave Birdsall <db...@apache.org>
Authored: Tue Mar 13 20:00:18 2018 +0000
Committer: Dave Birdsall <db...@apache.org>
Committed: Tue Mar 13 20:00:18 2018 +0000
----------------------------------------------------------------------
core/sql/bin/SqlciErrors.txt | 2 +-
core/sql/generator/GenRelUpdate.cpp | 2 ++
core/sql/sqlcomp/CmpSeabaseDDL.h | 5 +++++
core/sql/sqlcomp/CmpSeabaseDDLindex.cpp | 8 ++++++++
core/sql/sqlcomp/CmpSeabaseDDLtable.cpp | 1 -
5 files changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/e7fd6574/core/sql/bin/SqlciErrors.txt
----------------------------------------------------------------------
diff --git a/core/sql/bin/SqlciErrors.txt b/core/sql/bin/SqlciErrors.txt
index c79010b..321fd62 100644
--- a/core/sql/bin/SqlciErrors.txt
+++ b/core/sql/bin/SqlciErrors.txt
@@ -140,7 +140,7 @@
1138 ZZZZZ 99999 ADVANCED CRTCL DIALOUT --- unused ---
1139 ZZZZZ 99999 BEGINNER MAJOR DBADMIN System-generated column $0~ColumnName of base table $1~TableName cannot appear in the search condition of a check constraint definition.
1140 ZZZZZ 99999 BEGINNER MAJOR DBADMIN Row-length $0~int0 exceeds the maximum allowed row-length of $1~int1 for table $2~TableName.
-1141 ZZZZZ 99999 BEGINNER MAJOR DBADMIN Key length $0-int0 exceeds the maximum allowed key length of $1~int1
+1141 ZZZZZ 99999 BEGINNER MAJOR DBADMIN Key length $0~int0 exceeds the maximum allowed key length of $1~int1.
1142 0A000 99999 BEGINNER MAJOR DBADMIN --- unused ---
1143 ZZZZZ 99999 BEGINNER MAJOR DBADMIN Validation for constraint $0~ConstraintName failed; incompatible data exists in referencing base table $1~TableName and referenced base table $2~String0. To display the data that violates the constraint, please use the following DML statement: $3~String1
1144 ZZZZZ 99999 BEGINNER MAJOR DBADMIN A quoted string was expected in first key clause for column $0~ColumnName on table $1~TableName, but the value detected is ($2~String0).
http://git-wip-us.apache.org/repos/asf/trafodion/blob/e7fd6574/core/sql/generator/GenRelUpdate.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelUpdate.cpp b/core/sql/generator/GenRelUpdate.cpp
index e0a8d38..b7cc6bb 100644
--- a/core/sql/generator/GenRelUpdate.cpp
+++ b/core/sql/generator/GenRelUpdate.cpp
@@ -2945,6 +2945,8 @@ short HbaseInsert::codeGen(Generator *generator)
// without code change
if (loadFlushSizeinRows >= USHRT_MAX/2)
loadFlushSizeinRows = ((USHRT_MAX/2)-1);
+ else if (loadFlushSizeinRows < 1) // make sure we don't fall to zero on really long rows
+ loadFlushSizeinRows = 1;
hbasescan_tdb->setTrafLoadFlushSize(loadFlushSizeinRows);
// For sample file, set the sample location in HDFS and the sampling rate.
http://git-wip-us.apache.org/repos/asf/trafodion/blob/e7fd6574/core/sql/sqlcomp/CmpSeabaseDDL.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDL.h b/core/sql/sqlcomp/CmpSeabaseDDL.h
index 1f6295d..1aff308 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDL.h
+++ b/core/sql/sqlcomp/CmpSeabaseDDL.h
@@ -129,6 +129,11 @@ class CmpDDLwithStatusInfo;
#include "CmpSeabaseDDLmd.h"
+// The value HBase uses for checking key length is HConstants.MAX_ROW_LENGTH.
+// The rowID length limit in HBase is enforced in HBase modules Put.java and
+// Mutation.java. (The above was true as of HBase 1.0.0.)
+#define MAX_HBASE_ROWKEY_LEN 32767
+
#define SEABASEDDL_INTERNAL_ERROR(text) \
*CmpCommon::diags() << DgSqlCode(-CAT_INTERNAL_EXCEPTION_ERROR) \
<< DgString0(__FILE__) \
http://git-wip-us.apache.org/repos/asf/trafodion/blob/e7fd6574/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp b/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
index 2e4c5a0..030d76c 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
@@ -239,6 +239,14 @@ CmpSeabaseDDL::createIndexColAndKeyInfoArrays(
keyInfoArray[i].hbaseColQual = new(CTXTHEAP) char[strlen(qualNumStr)+1];
strcpy((char*)keyInfoArray[i].hbaseColQual, qualNumStr);
}
+
+ if (keyLength > MAX_HBASE_ROWKEY_LEN )
+ {
+ *CmpCommon::diags() << DgSqlCode(-CAT_ROWKEY_LEN_TOO_LARGE)
+ << DgInt0(keyLength)
+ << DgInt1(MAX_HBASE_ROWKEY_LEN);
+ return -1;
+ }
if ((syskeyOnly) &&
(hasSyskey))
http://git-wip-us.apache.org/repos/asf/trafodion/blob/e7fd6574/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp b/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
index 248deef..b16f777 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
@@ -57,7 +57,6 @@
#include "TrafDDLdesc.h"
-#define MAX_HBASE_ROWKEY_LEN 32768
// defined in CmpDescribe.cpp
extern short CmpDescribeSeabaseTable (
[2/2] trafodion git commit: Merge [TRAFODION-2977] PR 1473 Fix bugs
with max key length detection
Posted by db...@apache.org.
Merge [TRAFODION-2977] PR 1473 Fix bugs with max key length detection
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/b19868ad
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/b19868ad
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/b19868ad
Branch: refs/heads/master
Commit: b19868adc613eafe4b6349fb7c3eaed3279deae2
Parents: 290570e e7fd657
Author: Dave Birdsall <db...@apache.org>
Authored: Wed Mar 14 22:17:45 2018 +0000
Committer: Dave Birdsall <db...@apache.org>
Committed: Wed Mar 14 22:17:45 2018 +0000
----------------------------------------------------------------------
core/sql/bin/SqlciErrors.txt | 2 +-
core/sql/generator/GenRelUpdate.cpp | 2 ++
core/sql/sqlcomp/CmpSeabaseDDL.h | 5 +++++
core/sql/sqlcomp/CmpSeabaseDDLindex.cpp | 8 ++++++++
core/sql/sqlcomp/CmpSeabaseDDLtable.cpp | 1 -
5 files changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/b19868ad/core/sql/bin/SqlciErrors.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/b19868ad/core/sql/sqlcomp/CmpSeabaseDDL.h
----------------------------------------------------------------------