You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by an...@apache.org on 2016/08/06 02:46:08 UTC
[1/5] incubator-trafodion git commit: [JIRA TRAFODION-2141] Cluster
view of hbase stats
Repository: incubator-trafodion
Updated Branches:
refs/heads/master a6b621121 -> 9f3542dcf
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/regress/seabase/EXPECTED002
----------------------------------------------------------------------
diff --git a/core/sql/regress/seabase/EXPECTED002 b/core/sql/regress/seabase/EXPECTED002
index 83a8bb5..73a9b91 100644
--- a/core/sql/regress/seabase/EXPECTED002
+++ b/core/sql/regress/seabase/EXPECTED002
@@ -55,14 +55,15 @@ A B
--- 1 row(s) selected.
>>
->>obey TEST002(dml);
+>>
+>>obey TEST002(region_stats);
>>set schema t002sch;
--- SQL operation complete.
>>invoke table(region stats ());
-- Definition of Trafodion table TRAFODION.T002SCH.EXE_UTIL_REGION_STATS__
--- Definition current Thu Feb 4 19:52:31 2016
+-- Definition current Thu Aug 4 19:25:16 2016
(
CATALOG_NAME CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
@@ -71,6 +72,8 @@ A B
DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
, OBJECT_NAME CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+ , REGION_SERVER CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
+ DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
, REGION_NUM LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
, REGION_NAME CHAR(512 BYTES) CHARACTER SET UTF8 COLLATE
DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -87,7 +90,7 @@ A B
>>invoke table(region stats (t002t1));
-- Definition of Trafodion table TRAFODION.T002SCH.EXE_UTIL_REGION_STATS__
--- Definition current Thu Feb 4 19:52:33 2016
+-- Definition current Thu Aug 4 19:25:18 2016
(
CATALOG_NAME CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
@@ -96,6 +99,8 @@ A B
DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
, OBJECT_NAME CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+ , REGION_SERVER CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
+ DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
, REGION_NUM LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
, REGION_NAME CHAR(512 BYTES) CHARACTER SET UTF8 COLLATE
DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -120,7 +125,7 @@ A B
(EXPR) REGION_NUM REGION_NAME NUM_STORES NUM_STORE_FILES STORE_FILE_UNCOMP_SIZE STORE_FILE_SIZE MEM_STORE_SIZE (EXPR) (EXPR)
-------------------------------------------------------- -------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- --------------- ---------------------- -------------------- -------------------- ----------------------------- ------------------------------
-T002SCH.T002T1 1 TRAFODION.T002SCH.T002T1/d522d6121fbfa207bd9c28442738415e 2 0 0 0 0 ReadRequestsCount: 2 WriteRequestsCount: 1
+T002SCH.T002T1 1 TRAFODION.T002SCH.T002T1/1470338662761 2 0 0 0 0 ReadRequestsCount: 2 WriteRequestsCount: 1
--- 1 row(s) selected.
>>
@@ -134,7 +139,7 @@ T002SCH.T002T1 1
(EXPR) REGION_NUM REGION_NAME NUM_STORES NUM_STORE_FILES STORE_FILE_UNCOMP_SIZE STORE_FILE_SIZE MEM_STORE_SIZE (EXPR) (EXPR)
-------------------------------------------------------- -------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- --------------- ---------------------- -------------------- -------------------- ----------------------------- ------------------------------
-T002SCH.T002T1 1 TRAFODION.T002SCH.T002T1I1/df8c7764dba0c8c2a12fa21a751519c8 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 1
+T002SCH.T002T1 1 TRAFODION.T002SCH.T002T1I1/1470338665125 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 1
--- 1 row(s) selected.
>>
@@ -148,10 +153,10 @@ T002SCH.T002T1 1
(EXPR) REGION_NUM REGION_NAME NUM_STORES NUM_STORE_FILES STORE_FILE_UNCOMP_SIZE STORE_FILE_SIZE MEM_STORE_SIZE (EXPR) (EXPR)
-------------------------------------------------------- -------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- --------------- ---------------------- -------------------- -------------------- ----------------------------- ------------------------------
-T002SCH.T002T2 1 TRAFODION.T002SCH.T002T2/9b49ca8c556929d29bc8ddb78ff25440 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 0
-T002SCH.T002T2 2 TRAFODION.T002SCH.T002T2/6ab09339afe346a5ff0f44e490f2aca9 2 0 0 0 0 ReadRequestsCount: 1 WriteRequestsCount: 1
-T002SCH.T002T2 3 TRAFODION.T002SCH.T002T2/f4019a144619415f704e8649c3129bfb 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 0
-T002SCH.T002T2 4 TRAFODION.T002SCH.T002T2/68b4bbc50fad222c73ccd471fae3f3a8 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 0
+T002SCH.T002T2 1 TRAFODION.T002SCH.T002T2/1470338698762 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 0
+T002SCH.T002T2 2 TRAFODION.T002SCH.T002T2/1470338698762 2 0 0 0 0 ReadRequestsCount: 1 WriteRequestsCount: 1
+T002SCH.T002T2 3 TRAFODION.T002SCH.T002T2/1470338698762 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 0
+T002SCH.T002T2 4 TRAFODION.T002SCH.T002T2/1470338698762 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 0
--- 4 row(s) selected.
>>
@@ -165,7 +170,7 @@ T002SCH.T002T2 4
(EXPR) REGION_NUM REGION_NAME NUM_STORES NUM_STORE_FILES STORE_FILE_UNCOMP_SIZE STORE_FILE_SIZE MEM_STORE_SIZE (EXPR) (EXPR)
-------------------------------------------------------- -------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- --------------- ---------------------- -------------------- -------------------- ----------------------------- ------------------------------
-T002SCH.T002T2 1 TRAFODION.T002SCH.T002T2I1/7ff66f4b5dae3ef6d951d5cfc904248f 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 1
+T002SCH.T002T2 1 TRAFODION.T002SCH.T002T2I1/1470338701334 2 0 0 0 0 ReadRequestsCount: 1 WriteRequestsCount: 1
--- 1 row(s) selected.
>>
@@ -223,8 +228,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.T002T1/d522d6121fbfa207bd9c28442738415e
+ RegionName: TRAFODION.T002SCH.T002T1/1470338662761
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -255,8 +261,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.T002T1I1/df8c7764dba0c8c2a12fa21a751519c8
+ RegionName: TRAFODION.T002SCH.T002T1I1/1470338665125
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -287,8 +294,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.T002T2/9b49ca8c556929d29bc8ddb78ff25440
+ RegionName: TRAFODION.T002SCH.T002T2/1470338698762
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -297,8 +305,9 @@ Stats Details
ReadRequestsCount: 0
WriteRequestsCount: 0
+ RegionServer: ansharma-3:44229
RegionNum: 2
- RegionName: TRAFODION.T002SCH.T002T2/6ab09339afe346a5ff0f44e490f2aca9
+ RegionName: TRAFODION.T002SCH.T002T2/1470338698762
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -307,8 +316,9 @@ Stats Details
ReadRequestsCount: 1
WriteRequestsCount: 1
+ RegionServer: ansharma-3:44229
RegionNum: 3
- RegionName: TRAFODION.T002SCH.T002T2/f4019a144619415f704e8649c3129bfb
+ RegionName: TRAFODION.T002SCH.T002T2/1470338698762
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -317,8 +327,9 @@ Stats Details
ReadRequestsCount: 0
WriteRequestsCount: 0
+ RegionServer: ansharma-3:44229
RegionNum: 4
- RegionName: TRAFODION.T002SCH.T002T2/68b4bbc50fad222c73ccd471fae3f3a8
+ RegionName: TRAFODION.T002SCH.T002T2/1470338698762
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -349,8 +360,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.T002T2I1/7ff66f4b5dae3ef6d951d5cfc904248f
+ RegionName: TRAFODION.T002SCH.T002T2I1/1470338701334
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -382,8 +394,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.T002T1/d522d6121fbfa207bd9c28442738415e
+ RegionName: TRAFODION.T002SCH.T002T1/1470338662761
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -417,8 +430,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.SB_HISTOGRAMS/594c70b4a5fbe31a1100dd1bda47da5c
+ RegionName: TRAFODION.T002SCH.SB_HISTOGRAMS/1470338658677
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -445,8 +459,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.SB_HISTOGRAM_INTERVALS/94b6ffefc5df9a62180e5a2401e18d9e
+ RegionName: TRAFODION.T002SCH.SB_HISTOGRAM_INTERVALS/1470338660549
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -473,8 +488,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.T002T1/d522d6121fbfa207bd9c28442738415e
+ RegionName: TRAFODION.T002SCH.T002T1/1470338662761
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -501,8 +517,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.T002T2/9b49ca8c556929d29bc8ddb78ff25440
+ RegionName: TRAFODION.T002SCH.T002T2/1470338698762
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -511,8 +528,9 @@ Stats Details
ReadRequestsCount: 0
WriteRequestsCount: 0
+ RegionServer: ansharma-3:44229
RegionNum: 2
- RegionName: TRAFODION.T002SCH.T002T2/6ab09339afe346a5ff0f44e490f2aca9
+ RegionName: TRAFODION.T002SCH.T002T2/1470338698762
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -521,8 +539,9 @@ Stats Details
ReadRequestsCount: 1
WriteRequestsCount: 1
+ RegionServer: ansharma-3:44229
RegionNum: 3
- RegionName: TRAFODION.T002SCH.T002T2/f4019a144619415f704e8649c3129bfb
+ RegionName: TRAFODION.T002SCH.T002T2/1470338698762
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -531,8 +550,9 @@ Stats Details
ReadRequestsCount: 0
WriteRequestsCount: 0
+ RegionServer: ansharma-3:44229
RegionNum: 4
- RegionName: TRAFODION.T002SCH.T002T2/68b4bbc50fad222c73ccd471fae3f3a8
+ RegionName: TRAFODION.T002SCH.T002T2/1470338698762
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -556,8 +576,8 @@ Stats Details
(EXPR) REGION_NUM REGION_NAME NUM_STORES NUM_STORE_FILES STORE_FILE_UNCOMP_SIZE STORE_FILE_SIZE MEM_STORE_SIZE (EXPR) (EXPR)
-------------------------------------------------------- -------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- --------------- ---------------------- -------------------- -------------------- ----------------------------- ------------------------------
-T002SCH.T002T1 1 TRAFODION.T002SCH.T002T1I1/df8c7764dba0c8c2a12fa21a751519c8 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 1
-T002SCH.T002T1 1 TRAFODION.T002SCH.T002T1I2/75b6084d412d14874f15e83cda7ae6ce 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 1
+T002SCH.T002T1 1 TRAFODION.T002SCH.T002T1I1/1470338665125 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 1
+T002SCH.T002T1 1 TRAFODION.T002SCH.T002T1I2/1470338670665 2 0 0 0 0 ReadRequestsCount: 0 WriteRequestsCount: 1
--- 2 row(s) selected.
>>get region stats for
@@ -582,8 +602,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.T002T1I1/df8c7764dba0c8c2a12fa21a751519c8
+ RegionName: TRAFODION.T002SCH.T002T1I1/1470338665125
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -610,8 +631,9 @@ Stats Summary
Stats Details
=============
+ RegionServer: ansharma-3:44229
RegionNum: 1
- RegionName: TRAFODION.T002SCH.T002T1I2/75b6084d412d14874f15e83cda7ae6ce
+ RegionName: TRAFODION.T002SCH.T002T1I2/1470338670665
NumStores: 2
NumStoreFiles: 0
UncompressedSize: 0 (less than 1MB)
@@ -760,4 +782,97 @@ Stats Summary
--- SQL operation complete.
>>
+>>-- where preds
+>>select cast(trim(schema_name) || '.' || trim(object_name) as char(30) character set iso88591),
++> region_num, region_name, num_stores, num_store_files
++> from table(region stats(t002t1))
++> where object_name = 'T002T1';
+
+(EXPR) REGION_NUM REGION_NAME NUM_STORES NUM_STORE_FILES
+------------------------------ -------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- ---------------
+
+T002SCH.T002T1 1 TRAFODION.T002SCH.T002T1/1470338662761 2 0
+
+--- 1 row(s) selected.
+>>
+>>select cast(trim(object_name) as char(30) character set iso88591),
++> sum(store_file_size)
++> from table(region statistics (using (select * from (
++> get tables in schema t002sch, no header, return full names) x(a) )))
++> where object_name like 'T002T1%'
++> group by 1 order by 2 desc;
+
+(EXPR) (EXPR)
+------------------------------ --------------------
+
+T002T1 0
+
+--- 1 row(s) selected.
+>>
+>>obey TEST002(cluster_stats);
+>>invoke table(cluster stats());
+
+-- Definition of Trafodion table TRAFODION.T002SCH.EXE_UTIL_CLUSTER_STATS__
+-- Definition current Thu Aug 4 19:25:21 2016
+
+ (
+ REGION_SERVER CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
+ DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+ , REGION_NAME CHAR(512 BYTES) CHARACTER SET UTF8 COLLATE
+ DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+ , CATALOG_NAME CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
+ DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+ , SCHEMA_NAME CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
+ DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+ , OBJECT_NAME CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
+ DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+ , NUM_STORES INT NO DEFAULT NOT NULL NOT DROPPABLE
+ , NUM_STORE_FILES INT NO DEFAULT NOT NULL NOT DROPPABLE
+ , STORE_FILE_UNCOMP_SIZE LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+ , STORE_FILE_SIZE LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+ , MEM_STORE_SIZE LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+ , READ_REQUESTS_COUNT LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+ , WRITE_REQUESTS_COUNT LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+ )
+
+--- SQL operation complete.
+>>
+>>select cast(trim(schema_name) || '.' || trim(object_name) as char(30) character set iso88591),
++> sum(store_file_size)
++> from table(cluster stats())
++> where schema_name = 'T002SCH'
++> group by 1 order by 2 desc;
+
+(EXPR) (EXPR)
+------------------------------ --------------------
+
+T002SCH.SB_HISTOGRAM_INTERVALS 0
+T002SCH.T002T1I2 0
+T002SCH.SB_HISTOGRAMS 0
+T002SCH.T002T1 0
+T002SCH.T002T2 0
+T002SCH.T002T1I1 0
+T002SCH.T002T2I1 0
+
+--- 7 row(s) selected.
+>>
+>>select cast('RegionName: ' || trim(region_name) as char(30) character set iso88591),
++> sum(store_file_size)
++> from table(cluster stats())
++> where schema_name = 'T002SCH'
++> group by 1 order by 2 desc;
+
+(EXPR) (EXPR)
+------------------------------ --------------------
+
+RegionName: 1470338670665 0
+RegionName: 1470338698762 0
+RegionName: 1470338658677 0
+RegionName: 1470338660549 0
+RegionName: 1470338665125 0
+RegionName: 1470338701334 0
+RegionName: 1470338662761 0
+
+--- 7 row(s) selected.
+>>
>>log;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/regress/seabase/FILTER002
----------------------------------------------------------------------
diff --git a/core/sql/regress/seabase/FILTER002 b/core/sql/regress/seabase/FILTER002
index 28e1a95..44c4056 100755
--- a/core/sql/regress/seabase/FILTER002
+++ b/core/sql/regress/seabase/FILTER002
@@ -25,7 +25,9 @@
fil=$1
sed "
-s/\(RegionName:[ ]*TRAFODION.[A-Z0-9._]*\/\)[A-Za-z0-9]*/\1REGION-NAME/g
+s/^\([ ]*RegionServer:[ ]*[\.]*\) .*/\1 RegionServer removed/g
+s/^\([ ]*RegionName:[ ]*[\.]*\) .*/\1 RegionName removed/g
+#s/\(RegionName:[ ]*TRAFODION.[A-Z0-9._]*\/\)[A-Za-z0-9]*/\1REGION-NAME/g
s/TRAFODION\.T002SCH\.T002[A-Z0-9]*\/[A-Za-z0-9]*/REGION_NAME /g
s/ReadRequestsCount: [ ]*[0-9]*/READ_REQUESTS_COUNT /g
s/WriteRequestsCount: [ ]*[0-9]*/WRITE_REQUESTS_COUNT /g
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/regress/seabase/TEST002
----------------------------------------------------------------------
diff --git a/core/sql/regress/seabase/TEST002 b/core/sql/regress/seabase/TEST002
index 5d9fd9d..a013e1b 100644
--- a/core/sql/regress/seabase/TEST002
+++ b/core/sql/regress/seabase/TEST002
@@ -19,13 +19,14 @@
--
-- @@@ END COPYRIGHT @@@
--- Tests to retrieve region space and access stats
+-- Tests to retrieve region/cluster space and access stats
obey TEST002(clean_up);
log LOG002 clear;
obey TEST002(setup);
-obey TEST002(dml);
+obey TEST002(region_stats);
+obey TEST002(cluster_stats);
log;
exit;
@@ -54,7 +55,8 @@ sh regrhbase.ksh flush 'TRAFODION.T002SCH.T002T2I1';
select * from t002t2;
-?section dml
+
+?section region_stats
set schema t002sch;
invoke table(region stats ());
invoke table(region stats (t002t1));
@@ -136,9 +138,37 @@ get region stats for
(select * from
(get tables in schema t002sch, no header, return full names)x(a)), summary;
+-- where preds
+select cast(trim(schema_name) || '.' || trim(object_name) as char(30) character set iso88591),
+ region_num, region_name, num_stores, num_store_files
+ from table(region stats(t002t1))
+ where object_name = 'T002T1';
+
+select cast(trim(object_name) as char(30) character set iso88591),
+ sum(store_file_size)
+ from table(region statistics (using (select * from (
+ get tables in schema t002sch, no header, return full names) x(a) )))
+ where object_name like 'T002T1%'
+ group by 1 order by 2 desc;
+
+?section cluster_stats
+invoke table(cluster stats());
+
+select cast(trim(schema_name) || '.' || trim(object_name) as char(30) character set iso88591),
+ sum(store_file_size)
+ from table(cluster stats())
+ where schema_name = 'T002SCH'
+ group by 1 order by 2 desc;
+
+select cast('RegionName: ' || trim(region_name) as char(30) character set iso88591),
+ sum(store_file_size)
+ from table(cluster stats())
+ where schema_name = 'T002SCH'
+ group by 1 order by 2 desc;
+
?section clean_up
set schema t002sch;
drop table t002t1 cascade;
drop table t002t2 cascade;
-drop schema t002sch;
+drop schema t002sch cascade;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp b/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
index 988d382..6f7b60b 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLtable.cpp
@@ -8581,6 +8581,8 @@ short CmpSeabaseDDL::getTextFromMD(const char * catalogName,
Lng32 decodedLen =
str_decode(decodedData, decodedMaxLen,
binaryText.data(), binaryText.length());
+ if (decodedLen < 0)
+ return -1;
outText.append(decodedData, decodedLen);
}
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
----------------------------------------------------------------------
diff --git a/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java b/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
index ea2c7d8..d1a68ec 100644
--- a/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
+++ b/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
@@ -106,6 +106,15 @@ public class HBaseClient {
private PoolMap<String, HTableClient> hTableClientsFree;
private PoolMap<String, HTableClient> hTableClientsInUse;
+
+ // variables used for getRegionStats() and getClusterStats()
+ private int regionStatsEntries = 0;
+ private int clusterStatsState = 1;
+ private TrafRegionStats rsc;
+ private byte[][] regionInfo = null;
+ private int currRegion = 0;
+ private static final int MAX_REGION_INFO_ROWS = 100;
+
// this set of constants MUST be kept in sync with the C++ enum in
// ExpHbaseDefs.h
public static final int HBASE_NAME = 0;
@@ -733,12 +742,110 @@ public class HBaseClient {
return hbaseTables;
}
+ public byte[][] getClusterStats()
+ throws MasterNotRunningException, IOException {
+ if (logger.isDebugEnabled()) logger.debug("HBaseClient.getClusterStats called.");
+
+ while (true) {
+ switch (clusterStatsState) {
+ case 1:
+ {
+ rsc = new TrafRegionStats();
+ rsc.Open();
+
+ regionInfo = new byte[MAX_REGION_INFO_ROWS][];
+
+ currRegion = 0;
+
+ clusterStatsState = 2;
+ }
+ break;
+
+ case 3:
+ {
+ rsc.Close();
+
+ clusterStatsState = 1;
+
+ return null;
+ }
+
+ case 2:
+ {
+ if (currRegion >= MAX_REGION_INFO_ROWS) {
+
+ regionStatsEntries = currRegion;
+
+ currRegion = 0;
+ return regionInfo;
+ }
+
+ if (! rsc.GetNextRegion()) {
+ if (currRegion > 0) {
+ clusterStatsState = 3;
+
+ regionStatsEntries = currRegion;
+
+
+ currRegion = 0;
+ return regionInfo;
+ }
+
+ clusterStatsState = 3;
+ break;
+ }
+
+ SizeInfo regionSizeInfo = rsc.getCurrRegionSizeInfo();
+
+ String serverName = regionSizeInfo.serverName;
+ String regionName = regionSizeInfo.regionName;
+ String tableName = regionSizeInfo.tableName;
+
+ int numStores = regionSizeInfo.numStores;
+ int numStoreFiles = regionSizeInfo.numStoreFiles;
+ Long storeUncompSize = regionSizeInfo.storeUncompSize;
+ Long storeFileSize = regionSizeInfo.storeFileSize;
+ Long memStoreSize = regionSizeInfo.memStoreSize;
+ Long readRequestsCount = regionSizeInfo.readRequestsCount;
+ Long writeRequestsCount = regionSizeInfo.writeRequestsCount;
+
+ String oneRegion = "";
+ oneRegion += serverName + "|";
+ oneRegion += regionName + "|";
+ oneRegion += tableName + "|";
+ oneRegion += String.valueOf(numStores) + "|";
+ oneRegion += String.valueOf(numStoreFiles) + "|";
+ oneRegion += String.valueOf(storeUncompSize) + "|";
+ oneRegion += String.valueOf(storeFileSize) + "|";
+ oneRegion += String.valueOf(memStoreSize) + "|";
+ oneRegion += String.valueOf(readRequestsCount) + "|";
+ oneRegion += String.valueOf(writeRequestsCount) + "|";
+
+ regionInfo[currRegion++] = oneRegion.getBytes();
+
+ }
+
+ } // switch
+ }
+
+ }
+
+ // number of regionInfo entries returned by getRegionStats.
+ public int getRegionStatsEntries() {
+
+ return regionStatsEntries;
+ }
public byte[][] getRegionStats(String tableName)
throws MasterNotRunningException, IOException {
if (logger.isDebugEnabled()) logger.debug("HBaseClient.getRegionStats(" + tableName + ") called.");
Admin admin = getConnection().getAdmin();
+ if (tableName == null) //tableName.isEmpty())
+ return getClusterStats();
+
+ // HBaseAdmin admin = new HBaseAdmin(config);
+
HTable htbl = new HTable(config, tableName);
HRegionInfo hregInfo = null;
byte[][] regionInfo = null;
@@ -748,27 +855,31 @@ public class HBaseClient {
NavigableMap<HRegionInfo, ServerName> locations
= htbl.getRegionLocations();
regionInfo = new byte[locations.size()][];
- int i = 0;
+ regionStatsEntries = 0;
for (Map.Entry<HRegionInfo, ServerName> entry:
locations.entrySet()) {
hregInfo = entry.getKey();
- byte[] regionName = hregInfo.getRegionName();
+ ServerName serverName = entry.getValue();
+ byte[] regionName = hregInfo.getRegionName();
String encodedRegionName = hregInfo.getEncodedName();
String ppRegionName = HRegionInfo.prettyPrint(encodedRegionName);
- SizeInfo regionSizeInfo = rsc.getRegionSizeInfo(regionName);
+ SizeInfo regionSizeInfo = rsc.getRegionSizeInfo(regionName);
+ String serverNameStr = regionSizeInfo.serverName;
int numStores = regionSizeInfo.numStores;
int numStoreFiles = regionSizeInfo.numStoreFiles;
Long storeUncompSize = regionSizeInfo.storeUncompSize;
Long storeFileSize = regionSizeInfo.storeFileSize;
Long memStoreSize = regionSizeInfo.memStoreSize;
Long readRequestsCount = regionSizeInfo.readRequestsCount;
- Long writeRequestsCount = regionSizeInfo.writeRequestsCount;
+ Long writeRequestsCount = regionSizeInfo.writeRequestsCount;
+ String ppTableName = regionSizeInfo.tableName;
+ ppRegionName = regionSizeInfo.regionName;
String oneRegion;
- // oneRegion = "/hbase/data/hbase/default/" + tableName + "/" + ppRegionName + "|";
- oneRegion = tableName + "/" + ppRegionName + "|";
+ oneRegion = serverNameStr + "|";
+ oneRegion += ppTableName + "/" + ppRegionName + "|";
oneRegion += String.valueOf(numStores) + "|";
oneRegion += String.valueOf(numStoreFiles) + "|";
oneRegion += String.valueOf(storeUncompSize) + "|";
@@ -777,7 +888,7 @@ public class HBaseClient {
oneRegion += String.valueOf(readRequestsCount) + "|";
oneRegion += String.valueOf(writeRequestsCount) + "|";
- regionInfo[i++] = oneRegion.getBytes();
+ regionInfo[regionStatsEntries++] = oneRegion.getBytes();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/src/main/java/org/trafodion/sql/TrafRegionStats.java
----------------------------------------------------------------------
diff --git a/core/sql/src/main/java/org/trafodion/sql/TrafRegionStats.java b/core/sql/src/main/java/org/trafodion/sql/TrafRegionStats.java
index 9cf4f67..89fa90f 100644
--- a/core/sql/src/main/java/org/trafodion/sql/TrafRegionStats.java
+++ b/core/sql/src/main/java/org/trafodion/sql/TrafRegionStats.java
@@ -24,6 +24,7 @@ package org.trafodion.sql;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.ClusterStatus;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.RegionLoad;
@@ -31,18 +32,25 @@ import org.apache.hadoop.hbase.ServerLoad;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.HBaseAdmin;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import org.apache.hadoop.hbase.util.Bytes;
+import java.lang.Byte;
+
class SizeInfo {
+ String serverName;
+ String regionName;
+ String tableName;
int numStores;
int numStoreFiles;
Long storeUncompSize;
@@ -53,10 +61,22 @@ class SizeInfo {
};
public class TrafRegionStats {
-
+
+ private HBaseAdmin hbAdmin;
+ private ClusterStatus clusterStatus;
+ private Collection<ServerName> servers;
+ private ServerName server;
+ private ServerLoad serverLoad;
+ private Iterator iterServer;
+ private Iterator iterRegion;
+ private boolean firstTime;
+ final long megaByte = 1024L * 1024L;
+
private final Map<byte[], SizeInfo> sizeInfoMap =
new TreeMap<byte[], SizeInfo>(Bytes.BYTES_COMPARATOR);
-
+
+ private SizeInfo currRegionSizeInfo = null;
+
static final String ENABLE_REGIONSIZECALCULATOR = "hbase.regionsizecalculator.enable";
boolean enabled(Configuration configuration) {
@@ -74,7 +94,9 @@ public class TrafRegionStats {
public Map<byte[], SizeInfo> getRegionSizeMap() {
return Collections.unmodifiableMap(sizeInfoMap);
}
+
+
public TrafRegionStats (HTable table, Admin admin) throws IOException {
if (!enabled(table.getConfiguration())) {
@@ -96,7 +118,7 @@ public class TrafRegionStats {
//iterate all cluster regions, filter regions from our table and compute their size
for (ServerName serverName: servers) {
ServerLoad serverLoad = clusterStatus.getLoad(serverName);
-
+
for (RegionLoad regionLoad: serverLoad.getRegionsLoad().values()) {
byte[] regionId = regionLoad.getName();
@@ -111,7 +133,12 @@ public class TrafRegionStats {
// this method is available in HBase 2.0.0
// Long lastMajorCompactionTs = regionLoad.getLastMajorCompactionTs();
+ byte[][] regNameParts = HRegionInfo.parseRegionName(regionLoad.getName());
+
SizeInfo sizeInfo = new SizeInfo();
+ sizeInfo.serverName = serverName.toShortString();
+ sizeInfo.regionName = new String(regNameParts[2]);
+ sizeInfo.tableName = new String(regNameParts[0]);
sizeInfo.numStores = numStores;
sizeInfo.numStoreFiles = numStoreFiles;
sizeInfo.storeUncompSize = storeUncompSizeBytes;
@@ -128,5 +155,90 @@ public class TrafRegionStats {
}
}
+
+
+ public TrafRegionStats () throws IOException {
+ Configuration config = HBaseConfiguration.create();
+
+ hbAdmin = new HBaseAdmin(config);
+ }
+
+ public boolean Open () throws IOException {
+
+ clusterStatus = hbAdmin.getClusterStatus();
+ servers = clusterStatus.getServers();
+ iterServer = servers.iterator();
+
+ firstTime = true;
+
+ return true;
+ }
+
+ public boolean GetNextServer () throws IOException {
+
+ if (! iterServer.hasNext())
+ return false;
+
+ server = (ServerName)iterServer.next();
+ serverLoad = clusterStatus.getLoad(server);
+
+ return true;
+ }
+
+ public boolean GetNextRegion () throws IOException {
+
+ if ((firstTime) || (! iterRegion.hasNext())) {
+ firstTime = false;
+ if (! GetNextServer())
+ return false;
+ else
+ iterRegion = serverLoad.getRegionsLoad().values().iterator();
+ }
+
+ RegionLoad regionLoad = (RegionLoad)iterRegion.next();
+
+ byte[] regionId = regionLoad.getName();
+
+ int numStores = regionLoad.getStores();
+ int numStoreFiles = regionLoad.getStorefiles();
+ Long storeUncompSizeBytes = regionLoad.getStoreUncompressedSizeMB() * megaByte;
+ Long storeFileSizeBytes = regionLoad.getStorefileSizeMB() * megaByte;
+ Long memStoreSizeBytes = regionLoad.getMemStoreSizeMB() * megaByte;
+
+ // this method is available in HBase 2.0.0
+ // Long lastMajorCompactionTs = regionLoad.getLastMajorCompactionTs();
+
+ byte[][] regNameParts = HRegionInfo.parseRegionName(regionLoad.getName());
+
+ currRegionSizeInfo = new SizeInfo();
+
+ currRegionSizeInfo.serverName = new String(server.toShortString());
+ currRegionSizeInfo.regionName = new String(regNameParts[2]);
+
+
+ currRegionSizeInfo.tableName = new String(regNameParts[0]);
+ currRegionSizeInfo.numStores = numStores;
+ currRegionSizeInfo.numStoreFiles = numStoreFiles;
+ currRegionSizeInfo.storeUncompSize = storeUncompSizeBytes;
+ currRegionSizeInfo.storeFileSize = storeFileSizeBytes;
+ currRegionSizeInfo.memStoreSize = memStoreSizeBytes;
+
+ currRegionSizeInfo.readRequestsCount = regionLoad.getReadRequestsCount();
+ currRegionSizeInfo.writeRequestsCount = regionLoad.getWriteRequestsCount();
+
+ return true;
+ }
+
+ public SizeInfo getCurrRegionSizeInfo() {
+ return currRegionSizeInfo;
+ }
+
+ public boolean Close () throws IOException {
+
+ hbAdmin.close();
+
+ return true;
+ }
+
}
[3/5] incubator-trafodion git commit: fix to a core during retrieval
of cluster stats
Posted by an...@apache.org.
fix to a core during retrieval of cluster stats
crash showed on on jenkins machine
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/0e1dd175
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/0e1dd175
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/0e1dd175
Branch: refs/heads/master
Commit: 0e1dd175647219c7b350107f04af5e03d3b7757a
Parents: 92c8453
Author: Anoop Sharma <an...@esgyn.com>
Authored: Fri Aug 5 01:25:26 2016 +0000
Committer: Anoop Sharma <an...@esgyn.com>
Committed: Fri Aug 5 01:25:26 2016 +0000
----------------------------------------------------------------------
core/sql/optimizer/OptRange.cpp | 17 ++++++++++++++---
.../main/java/org/trafodion/sql/HBaseClient.java | 11 +++++------
2 files changed, 19 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0e1dd175/core/sql/optimizer/OptRange.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/OptRange.cpp b/core/sql/optimizer/OptRange.cpp
index 2d773c2..c5f1610 100644
--- a/core/sql/optimizer/OptRange.cpp
+++ b/core/sql/optimizer/OptRange.cpp
@@ -2429,7 +2429,18 @@ double getDoubleValue(ConstValue* val, logLevel level)
switch (valueStorageSize)
{
- case 2:
+ case 1: // tinyint
+ {
+ assertLogAndThrow1(CAT_SQL_COMP_RANGE, level,
+ isExactNumeric, QRDescriptorException,
+ "const value of size 1 not exact numeric: %d",
+ constValType->getTypeQualifier());
+ Int8 i8val;
+ memcpy(&i8val, valuePtr, valueStorageSize);
+ return i8val / scaleDivisor;
+ }
+
+ case 2: // smallint
{
assertLogAndThrow1(CAT_SQL_COMP_RANGE, level,
isExactNumeric, QRDescriptorException,
@@ -2440,7 +2451,7 @@ double getDoubleValue(ConstValue* val, logLevel level)
return i16val / scaleDivisor;
}
- case 4:
+ case 4: // int
if (isExactNumeric)
{
Lng32 i32val;
@@ -2454,7 +2465,7 @@ double getDoubleValue(ConstValue* val, logLevel level)
return fltval;
}
- case 8:
+ case 8: // largeint
if (isExactNumeric)
{
// possible loss of data
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0e1dd175/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
----------------------------------------------------------------------
diff --git a/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java b/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
index d1a68ec..b984d3a 100644
--- a/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
+++ b/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
@@ -748,7 +748,7 @@ public class HBaseClient {
while (true) {
switch (clusterStatsState) {
- case 1:
+ case 1: // open
{
rsc = new TrafRegionStats();
rsc.Open();
@@ -761,16 +761,16 @@ public class HBaseClient {
}
break;
- case 3:
+ case 3: // close
{
rsc.Close();
clusterStatsState = 1;
- return null;
+ return null;
}
- case 2:
+ case 2: // fetch
{
if (currRegion >= MAX_REGION_INFO_ROWS) {
@@ -786,9 +786,8 @@ public class HBaseClient {
regionStatsEntries = currRegion;
-
currRegion = 0;
- return regionInfo;
+ return Arrays.copyOf(regionInfo, regionStatsEntries);
}
clusterStatsState = 3;
[2/5] incubator-trafodion git commit: [JIRA TRAFODION-2141] Cluster
view of hbase stats
Posted by an...@apache.org.
[JIRA TRAFODION-2141] Cluster view of hbase stats
-- added column REGION_SERVER to region stats virtual table
-- added cluster view of hbase stats
Syntax: select * from table(cluster stats());
-- added support for 'where' pred in stats queries
Syntax: select * from table(cluster stats()) where schema_name = 'SCH';
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/92c84531
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/92c84531
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/92c84531
Branch: refs/heads/master
Commit: 92c845312d1d3bff885cdc5fe92a89d526748377
Parents: 37901fb
Author: Anoop Sharma <an...@esgyn.com>
Authored: Thu Aug 4 19:28:21 2016 +0000
Committer: Anoop Sharma <an...@esgyn.com>
Committed: Thu Aug 4 19:28:21 2016 +0000
----------------------------------------------------------------------
core/sql/bin/SqlciErrors.txt | 1 +
core/sql/comexe/ComTdbExeUtil.cpp | 3 +-
core/sql/comexe/ComTdbExeUtil.h | 89 +++--
core/sql/common/str.cpp | 23 +-
core/sql/executor/ExExeUtil.h | 48 ++-
core/sql/executor/ExExeUtilCommon.cpp | 31 ++
core/sql/executor/ExExeUtilGet.cpp | 396 +++++++++++++++++--
core/sql/executor/ExExplain.cpp | 26 +-
core/sql/executor/HBaseClient_JNI.cpp | 48 ++-
core/sql/executor/HBaseClient_JNI.h | 2 +
core/sql/exp/ExpHbaseInterface.cpp | 20 +
core/sql/exp/ExpHbaseInterface.h | 3 +
core/sql/generator/GenRelExeUtil.cpp | 39 +-
core/sql/optimizer/BindRelExpr.cpp | 21 +-
core/sql/optimizer/RelExeUtil.cpp | 9 +-
core/sql/optimizer/RelExeUtil.h | 23 +-
core/sql/parser/sqlparser.y | 25 +-
core/sql/regress/seabase/EXPECTED002 | 173 ++++++--
core/sql/regress/seabase/FILTER002 | 4 +-
core/sql/regress/seabase/TEST002 | 38 +-
core/sql/sqlcomp/CmpSeabaseDDLtable.cpp | 2 +
.../java/org/trafodion/sql/HBaseClient.java | 125 +++++-
.../java/org/trafodion/sql/TrafRegionStats.java | 118 +++++-
23 files changed, 1105 insertions(+), 162 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/bin/SqlciErrors.txt
----------------------------------------------------------------------
diff --git a/core/sql/bin/SqlciErrors.txt b/core/sql/bin/SqlciErrors.txt
index f21cf09..9eae741 100644
--- a/core/sql/bin/SqlciErrors.txt
+++ b/core/sql/bin/SqlciErrors.txt
@@ -1570,6 +1570,7 @@ $1~String1 --------------------------------
8448 ZZZZZ 99999 BEGINNER MAJOR DBADMIN Unable to access Hbase interface. Call to $0~string0 returned error $1~string1($0~int0). Cause: $2~string2.
8449 ZZZZZ 99999 BEGINNER MAJOR DBADMIN An invalid HBase table option or option value was specified: ($0~string0 = $1~string1)
8450 ZZZZZ 99999 BEGINNER MINOR LOGONLY ESP number ($0~Int0) has processed ($1~Int1) transactions of the LRU operation on table $2~String0.
+8451 ZZZZZ 99999 BEGINNER MINOR LOGONLY Error returned while retrieving region stats from hbase.
8550 ZZZZZ 99999 ADVANCED MAJOR DBADMIN Error $0~NSKCode was returned by the Data Access Manager.
8551 ZZZZZ 99999 ADVANCED MAJOR DBADMIN Error $0~NSKCode was returned by the file system on $0~string0$1~string1.
8552 ZZZZZ 99999 ADVANCED MAJOR DBADMIN Error $0~int0 was returned by the file system while fetching the version of the system $0~string0.
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/comexe/ComTdbExeUtil.cpp
----------------------------------------------------------------------
diff --git a/core/sql/comexe/ComTdbExeUtil.cpp b/core/sql/comexe/ComTdbExeUtil.cpp
index 0f22329..d45c97d 100644
--- a/core/sql/comexe/ComTdbExeUtil.cpp
+++ b/core/sql/comexe/ComTdbExeUtil.cpp
@@ -2885,6 +2885,7 @@ ComTdbExeUtilRegionStats::ComTdbExeUtilRegionStats
char * tableName,
ex_expr_base * input_expr,
ULng32 input_rowlen,
+ ex_expr_base * scan_expr,
ex_cri_desc * work_cri_desc,
const unsigned short work_atp_index,
ex_cri_desc * given_cri_desc,
@@ -2898,7 +2899,7 @@ ComTdbExeUtilRegionStats::ComTdbExeUtilRegionStats
tableName, strlen(tableName),
input_expr, input_rowlen,
NULL, 0,
- NULL,
+ scan_expr,
work_cri_desc, work_atp_index,
given_cri_desc, returned_cri_desc,
down, up,
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/comexe/ComTdbExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/comexe/ComTdbExeUtil.h b/core/sql/comexe/ComTdbExeUtil.h
index 8d40556..1009f75 100644
--- a/core/sql/comexe/ComTdbExeUtil.h
+++ b/core/sql/comexe/ComTdbExeUtil.h
@@ -3509,29 +3509,32 @@ private:
char fillersExeUtilHbaseUnLoad_[16]; // 38 - 53
};
+#define STATS_NAME_MAX_LEN 256
+#define STATS_REGION_NAME_MAX_LEN 512
+
static const ComTdbVirtTableColumnInfo comTdbRegionStatsVirtTableColumnInfo[] =
{
{ "CATALOG_NAME", 0, COM_USER_COLUMN, REC_BYTE_F_ASCII, 256, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
{ "SCHEMA_NAME", 1, COM_USER_COLUMN, REC_BYTE_F_ASCII, 256, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
{ "OBJECT_NAME", 2, COM_USER_COLUMN, REC_BYTE_F_ASCII, 256, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
- { "REGION_NUM", 3, COM_USER_COLUMN, REC_BIN64_SIGNED, 4, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
- { "REGION_NAME", 4, COM_USER_COLUMN, REC_BYTE_F_ASCII, 512, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
- { "NUM_STORES", 5, COM_USER_COLUMN, REC_BIN32_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
- { "NUM_STORE_FILES", 6, COM_USER_COLUMN, REC_BIN32_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
- { "STORE_FILE_UNCOMP_SIZE", 7, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
- { "STORE_FILE_SIZE", 8, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
- { "MEM_STORE_SIZE", 9, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
- { "READ_REQUESTS_COUNT", 10, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
- { "WRITE_REQUESTS_COUNT", 11, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 }
+ { "REGION_SERVER", 3, COM_USER_COLUMN, REC_BYTE_F_ASCII, 256, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "REGION_NUM", 4, COM_USER_COLUMN, REC_BIN64_SIGNED, 4, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "REGION_NAME", 5, COM_USER_COLUMN, REC_BYTE_F_ASCII, 512, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "NUM_STORES", 6, COM_USER_COLUMN, REC_BIN32_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "NUM_STORE_FILES", 7, COM_USER_COLUMN, REC_BIN32_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "STORE_FILE_UNCOMP_SIZE", 8, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "STORE_FILE_SIZE", 9, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "MEM_STORE_SIZE", 10, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "READ_REQUESTS_COUNT", 11, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "WRITE_REQUESTS_COUNT", 12, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 }
};
-#define STATS_NAME_MAX_LEN 256
-#define STATS_REGION_NAME_MAX_LEN 512
struct ComTdbRegionStatsVirtTableColumnStruct
{
char catalogName[STATS_NAME_MAX_LEN];
char schemaName[STATS_NAME_MAX_LEN];
char objectName[STATS_NAME_MAX_LEN];
+ char regionServer[STATS_NAME_MAX_LEN];
Int64 regionNum;
char regionName[STATS_REGION_NAME_MAX_LEN];
Lng32 numStores;
@@ -3543,6 +3546,38 @@ struct ComTdbRegionStatsVirtTableColumnStruct
Int64 writeRequestsCount;
};
+static const ComTdbVirtTableColumnInfo comTdbClusterStatsVirtTableColumnInfo[] =
+ {
+ { "REGION_SERVER", 0, COM_USER_COLUMN, REC_BYTE_F_ASCII, 256, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "REGION_NAME", 1, COM_USER_COLUMN, REC_BYTE_F_ASCII, 512, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "CATALOG_NAME", 1, COM_USER_COLUMN, REC_BYTE_F_ASCII, 256, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "SCHEMA_NAME", 2, COM_USER_COLUMN, REC_BYTE_F_ASCII, 256, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "OBJECT_NAME", 3, COM_USER_COLUMN, REC_BYTE_F_ASCII, 256, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "NUM_STORES", 4, COM_USER_COLUMN, REC_BIN32_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "NUM_STORE_FILES", 5, COM_USER_COLUMN, REC_BIN32_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "STORE_FILE_UNCOMP_SIZE", 6, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "STORE_FILE_SIZE", 7, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "MEM_STORE_SIZE", 8, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "READ_REQUESTS_COUNT", 9, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 },
+ { "WRITE_REQUESTS_COUNT", 10, COM_USER_COLUMN, REC_BIN64_SIGNED, 8, FALSE, SQLCHARSETCODE_UTF8 , 0, 0, 0, 0, 0, 0, 0, COM_NO_DEFAULT, "",NULL,NULL, COM_UNKNOWN_DIRECTION_LIT, 0 }
+ };
+
+struct ComTdbClusterStatsVirtTableColumnStruct
+{
+ char regionServer[STATS_NAME_MAX_LEN];
+ char regionName[STATS_REGION_NAME_MAX_LEN];
+ char catalogName[STATS_NAME_MAX_LEN];
+ char schemaName[STATS_NAME_MAX_LEN];
+ char objectName[STATS_NAME_MAX_LEN];
+ Lng32 numStores;
+ Lng32 numStoreFiles;
+ Int64 storeFileUncompSize;
+ Int64 storeFileSize;
+ Int64 memStoreSize;
+ Int64 readRequestsCount;
+ Int64 writeRequestsCount;
+};
+
class ComTdbExeUtilRegionStats : public ComTdbExeUtil
{
@@ -3558,6 +3593,7 @@ public:
char * tableName,
ex_expr_base * input_expr,
ULng32 input_rowlen,
+ ex_expr_base * scan_expr,
ex_cri_desc * work_cri_desc,
const unsigned short work_atp_index,
ex_cri_desc * given_cri_desc,
@@ -3568,9 +3604,6 @@ public:
ULng32 buffer_size
);
- // Long pack (void *);
- // Lng32 unpack(void *, void * reallocator);
-
void setIsIndex(NABoolean v)
{(v ? flags_ |= IS_INDEX : flags_ &= ~IS_INDEX); };
NABoolean isIndex() { return (flags_ & IS_INDEX) != 0; };
@@ -3583,6 +3616,11 @@ public:
{(v ? flags_ |= SUMMARY_ONLY : flags_ &= ~SUMMARY_ONLY); };
NABoolean summaryOnly() { return (flags_ & SUMMARY_ONLY) != 0; };
+ void setClusterView(NABoolean v)
+ {(v ? flags_ |= CLUSTER_VIEW : flags_ &= ~CLUSTER_VIEW); };
+ NABoolean clusterView() { return (flags_ & CLUSTER_VIEW) != 0; };
+ const NABoolean clusterView() const { return (flags_ & CLUSTER_VIEW) != 0; };
+
// ---------------------------------------------------------------------
// Redefine virtual functions required for Versioning.
//----------------------------------------------------------------------
@@ -3590,25 +3628,31 @@ public:
virtual const char *getNodeName() const
{
- return "GET_REGION_STATS";
+ return (clusterView() ? "GET_CLUSTER_STATS" : "GET_REGION_STATS");
};
- static int getVirtTableNumCols()
+ int getVirtTableNumCols()
{
- return sizeof(comTdbRegionStatsVirtTableColumnInfo)/sizeof(ComTdbVirtTableColumnInfo);
+ return
+ (clusterView()
+ ? sizeof(comTdbClusterStatsVirtTableColumnInfo)/sizeof(ComTdbVirtTableColumnInfo)
+ : sizeof(comTdbRegionStatsVirtTableColumnInfo)/sizeof(ComTdbVirtTableColumnInfo));
}
- static ComTdbVirtTableColumnInfo * getVirtTableColumnInfo()
+ ComTdbVirtTableColumnInfo * getVirtTableColumnInfo()
{
- return (ComTdbVirtTableColumnInfo*)comTdbRegionStatsVirtTableColumnInfo;
+ return (ComTdbVirtTableColumnInfo*)
+ (clusterView()
+ ? comTdbClusterStatsVirtTableColumnInfo
+ : comTdbRegionStatsVirtTableColumnInfo);
}
- static int getVirtTableNumKeys()
+ int getVirtTableNumKeys()
{
return 0;
}
- static ComTdbVirtTableKeyInfo * getVirtTableKeyInfo()
+ ComTdbVirtTableKeyInfo * getVirtTableKeyInfo()
{
return NULL;
}
@@ -3618,7 +3662,8 @@ private:
{
IS_INDEX = 0x0001,
DISPLAY_FORMAT = 0x0002,
- SUMMARY_ONLY = 0x0004
+ SUMMARY_ONLY = 0x0004,
+ CLUSTER_VIEW = 0x0008
};
UInt32 flags_; // 00-03
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/common/str.cpp
----------------------------------------------------------------------
diff --git a/core/sql/common/str.cpp b/core/sql/common/str.cpp
index e728143..8823f56 100644
--- a/core/sql/common/str.cpp
+++ b/core/sql/common/str.cpp
@@ -954,7 +954,9 @@ Lng32 str_decode(void *tgt, Lng32 tgtMaxLen, const char *src, Lng32 srcLen)
Lng32 length = str_decoded_len(srcLen);
- assert(tgtMaxLen >= length);
+ // assert(tgtMaxLen >= length);
+ if (NOT (tgtMaxLen >= length))
+ return -1;
Lng32 srcix = 0;
Lng32 tgtix = 0;
@@ -964,29 +966,30 @@ Lng32 str_decode(void *tgt, Lng32 tgtMaxLen, const char *src, Lng32 srcLen)
while (srcix+1 < srcLen)
{
// first byte comes from 6 bits of first char and 2 bits of second char
- assert(src1[srcix]-minChar < 64 && src1[srcix+1]-minChar < 64);
-#pragma nowarn(1506) // warning elimination
+ if (NOT (src1[srcix]-minChar < 64 && src1[srcix+1]-minChar < 64))
+ return -1;
+
+ // assert(src1[srcix]-minChar < 64 && src1[srcix+1]-minChar < 64);
target[tgtix] = (src1[srcix]-minChar) << 2;
-#pragma warn(1506) // warning elimination
target[tgtix] |= (src1[srcix+1]-minChar) >> 4;
if (srcix+2 < srcLen)
{
// second byte gets 4 bits from second and 4 bits from third char
- assert(src1[srcix+2]-minChar < 64);
-#pragma nowarn(1506) // warning elimination
+ if (NOT (src1[srcix+2]-minChar < 64))
+ return -1;
+ // assert(src1[srcix+2]-minChar < 64);
target[tgtix+1] = ((src1[srcix+1]-minChar) & 0xf) << 4;
-#pragma warn(1506) // warning elimination
target[tgtix+1] |= (src1[srcix+2]-minChar) >> 2;
}
if (srcix+3 < srcLen)
{
// third byte gets 2 bits from third and 6 bits from fourth char
- assert(src1[srcix+3]-minChar < 64);
-#pragma nowarn(1506) // warning elimination
+ if (NOT (src1[srcix+3]-minChar < 64))
+ return -1;
+ // assert(src1[srcix+3]-minChar < 64);
target[tgtix+2] = ((src1[srcix+2]-minChar) & 0x3) << 6;
-#pragma warn(1506) // warning elimination
target[tgtix+2] |= ((src1[srcix+3]-minChar) & 0x3f);
}
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/executor/ExExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtil.h b/core/sql/executor/ExExeUtil.h
index 1f0f876..b6b96fc 100755
--- a/core/sql/executor/ExExeUtil.h
+++ b/core/sql/executor/ExExeUtil.h
@@ -245,6 +245,9 @@ class ExExeUtilTcb : public ex_tcb
short &rc,
NABoolean monitorThis=FALSE);
+ ex_expr::exp_return_type evalScanExpr(char * ptr, Lng32 len,
+ NABoolean copyToVCbuf);
+
char * getStatusString(const char * operation,
const char * status,
const char * object,
@@ -2477,8 +2480,6 @@ protected:
NABoolean isShorthandView,
char* &viewName, Lng32 &len);
- ex_expr::exp_return_type evalScanExpr(char * ptr, Lng32 len);
-
private:
Lng32 setupObjectTypeForUserQuery();
@@ -3766,6 +3767,7 @@ private:
EVAL_INPUT_,
COLLECT_STATS_,
POPULATE_STATS_BUF_,
+ EVAL_EXPR_,
RETURN_STATS_BUF_,
HANDLE_ERROR_,
DONE_
@@ -3794,6 +3796,8 @@ protected:
Int32 currIndex_;
+ Int32 numRegionStatsEntries_;
+
char * catName_;
char * schName_;
char * objName_;
@@ -3854,6 +3858,46 @@ protected:
//////////////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------
+// ExExeUtilClusterStatsTcb
+// -----------------------------------------------------------------------
+class ExExeUtilClusterStatsTcb : public ExExeUtilRegionStatsTcb
+{
+ friend class ExExeUtilClusterStatsTdb;
+ friend class ExExeUtilPrivateState;
+
+public:
+ // Constructor
+ ExExeUtilClusterStatsTcb(const ComTdbExeUtilRegionStats & exe_util_tdb,
+ ex_globals * glob = 0);
+
+ ~ExExeUtilClusterStatsTcb();
+
+ virtual short work();
+
+private:
+ enum Step
+ {
+ INITIAL_,
+ EVAL_INPUT_,
+ COLLECT_STATS_,
+ POPULATE_STATS_BUF_,
+ EVAL_EXPR_,
+ RETURN_STATS_BUF_,
+ HANDLE_ERROR_,
+ DONE_
+ };
+ Step step_;
+
+ short collectStats();
+ short populateStats(Int32 currIndex, NABoolean nullTerminate = FALSE);
+
+protected:
+ ComTdbClusterStatsVirtTableColumnStruct* stats_;
+
+};
+
+//////////////////////////////////////////////////////////////////////////
+// -----------------------------------------------------------------------
// ExExeUtilLobInfoTdb
// -----------------------------------------------------------------------
class ExExeUtilLobInfoTdb : public ComTdbExeUtilLobInfo
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/executor/ExExeUtilCommon.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilCommon.cpp b/core/sql/executor/ExExeUtilCommon.cpp
index 51bac92..ed0d302 100644
--- a/core/sql/executor/ExExeUtilCommon.cpp
+++ b/core/sql/executor/ExExeUtilCommon.cpp
@@ -1834,6 +1834,37 @@ Lng32 ExExeUtilTcb::extractParts
return 0;
}
+ex_expr::exp_return_type ExExeUtilTcb::evalScanExpr(char * ptr, Lng32 len,
+ NABoolean copyToVCbuf)
+{
+ ex_expr::exp_return_type exprRetCode = ex_expr::EXPR_OK;
+
+ if (exeUtilTdb().scanExpr_)
+ {
+ ex_queue_entry * pentry_down = qparent_.down->getHeadEntry();
+
+ char * exprPtr = ptr;
+ if (copyToVCbuf)
+ {
+ exprPtr = new(getGlobals()->getDefaultHeap())
+ char[SQL_VARCHAR_HDR_SIZE + len];
+ short shortLen = (short)len;
+ str_cpy_all((char*)exprPtr, (char*)&shortLen, SQL_VARCHAR_HDR_SIZE);
+ str_cpy_all(&exprPtr[SQL_VARCHAR_HDR_SIZE], ptr, shortLen);
+ }
+
+ workAtp_->getTupp(exeUtilTdb().workAtpIndex())
+ .setDataPointer(exprPtr);
+
+ exprRetCode =
+ exeUtilTdb().scanExpr_->eval(pentry_down->getAtp(), workAtp_);
+
+ if (exprPtr != ptr)
+ NADELETEBASIC(exprPtr, getGlobals()->getDefaultHeap());
+ }
+
+ return exprRetCode;
+}
/////////////////////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/executor/ExExeUtilGet.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilGet.cpp b/core/sql/executor/ExExeUtilGet.cpp
index 90a8d06..c438752 100644
--- a/core/sql/executor/ExExeUtilGet.cpp
+++ b/core/sql/executor/ExExeUtilGet.cpp
@@ -738,31 +738,6 @@ Lng32 ExExeUtilGetMetadataInfoTcb::getUsedObjects(Queue * infoList,
}
}
-ex_expr::exp_return_type ExExeUtilGetMetadataInfoTcb::evalScanExpr(char * ptr, Lng32 len)
-{
- ex_expr::exp_return_type exprRetCode = ex_expr::EXPR_OK;
-
- if (getMItdb().scanExpr_)
- {
- ex_queue_entry * pentry_down = qparent_.down->getHeadEntry();
-
- char * exprPtr = new(getGlobals()->getDefaultHeap())
- char[SQL_VARCHAR_HDR_SIZE + len];
- short shortLen = (short)len;
- str_cpy_all((char*)exprPtr, (char*)&shortLen, SQL_VARCHAR_HDR_SIZE);
- str_cpy_all(&exprPtr[SQL_VARCHAR_HDR_SIZE], ptr, shortLen);
- workAtp_->getTupp(getMItdb().workAtpIndex())
- .setDataPointer(exprPtr);
-
- exprRetCode =
- getMItdb().scanExpr_->eval(pentry_down->getAtp(), workAtp_);
-
- NADELETEBASIC(exprPtr, getGlobals()->getDefaultHeap());
- }
-
- return exprRetCode;
-}
-
short ExExeUtilGetMetadataInfoTcb::displayHeading()
{
if (getMItdb().noHeader())
@@ -2186,7 +2161,7 @@ short ExExeUtilGetMetadataInfoTcb::work()
exprRetCode = ex_expr::EXPR_FALSE;
if (exprRetCode == ex_expr::EXPR_TRUE)
- exprRetCode = evalScanExpr(ptr, len);
+ exprRetCode = evalScanExpr(ptr, len, TRUE);
if (exprRetCode == ex_expr::EXPR_FALSE)
{
// row does not pass the scan expression,
@@ -2289,7 +2264,7 @@ short ExExeUtilGetMetadataInfoTcb::work()
break;
}
- exprRetCode = evalScanExpr(viewName, len);
+ exprRetCode = evalScanExpr(viewName, len, TRUE);
if (exprRetCode == ex_expr::EXPR_FALSE)
{
// row does not pass the scan expression,
@@ -2338,7 +2313,7 @@ short ExExeUtilGetMetadataInfoTcb::work()
break;
}
- exprRetCode = evalScanExpr(viewName, len);
+ exprRetCode = evalScanExpr(viewName, len, TRUE);
if (exprRetCode == ex_expr::EXPR_FALSE)
{
// row does not pass the scan expression,
@@ -3152,7 +3127,7 @@ short ExExeUtilGetHbaseObjectsTcb::work()
case EVAL_EXPR_:
{
- exprRetCode = evalScanExpr(hbaseName_, strlen(hbaseName_));
+ exprRetCode = evalScanExpr(hbaseName_, strlen(hbaseName_), TRUE);
if (exprRetCode == ex_expr::EXPR_FALSE)
{
// row does not pass the scan expression,
@@ -5438,9 +5413,11 @@ ex_tcb * ExExeUtilRegionStatsTdb::build(ex_globals * glob)
if (displayFormat())
exe_util_tcb = new(glob->getSpace()) ExExeUtilRegionStatsFormatTcb(*this, glob);
+ else if (clusterView())
+ exe_util_tcb = new(glob->getSpace()) ExExeUtilClusterStatsTcb(*this, glob);
else
exe_util_tcb = new(glob->getSpace()) ExExeUtilRegionStatsTcb(*this, glob);
-
+
exe_util_tcb->registerSubtasks();
return (exe_util_tcb);
@@ -5568,6 +5545,8 @@ short ExExeUtilRegionStatsTcb::populateStats
if (nullTerminate)
stats_->objectName[strlen(objName_)] = 0;
+ str_pad(stats_->regionServer, sizeof(stats_->regionServer), ' ');
+
str_pad(stats_->regionName, sizeof(stats_->regionName), ' ');
stats_->regionNum = currIndex_+1;
@@ -5590,14 +5569,25 @@ short ExExeUtilRegionStatsTcb::populateStats
char * sep1 = strchr(regionInfo, '|');
if (sep1)
{
- str_cpy_all(stats_->regionName, regionInfo,
+ str_cpy_all(stats_->regionServer, regionInfo,
(Lng32)(sep1 - regionInfo));
if (nullTerminate)
- stats_->regionName[sep1 - regionInfo] = 0;
+ stats_->regionServer[sep1 - regionInfo] = 0;
+ }
+
+ char * sepStart = sep1+1;
+ sep1 = strchr(sepStart, '|');
+ if (sep1)
+ {
+ str_cpy_all(stats_->regionName, sepStart,
+ (Lng32)(sep1 - sepStart));
+
+ if (nullTerminate)
+ stats_->regionName[sep1 - sepStart] = 0;
}
- char * sepStart = sep1;
+ sepStart = sep1;
stats_->numStores = getEmbeddedNumValue(sepStart, '|', FALSE);
stats_->numStoreFiles = getEmbeddedNumValue(sepStart, '|', FALSE);
stats_->storeFileUncompSize = getEmbeddedNumValue(sepStart, '|', FALSE);
@@ -5613,6 +5603,7 @@ short ExExeUtilRegionStatsTcb::work()
{
short retcode = 0;
Lng32 cliRC = 0;
+ ex_expr::exp_return_type exprRetCode = ex_expr::EXPR_OK;
// if no parent request, return
if (qparent_.down->isEmpty())
@@ -5705,10 +5696,27 @@ short ExExeUtilRegionStatsTcb::work()
break;
}
- step_ = RETURN_STATS_BUF_;
+ step_ = EVAL_EXPR_;
}
break;
+ case EVAL_EXPR_:
+ {
+ exprRetCode = evalScanExpr((char*)stats_, statsBufLen_, FALSE);
+ if (exprRetCode == ex_expr::EXPR_FALSE)
+ {
+ // row does not pass the scan expression,
+ // move to the next row.
+ currIndex_++;
+
+ step_ = POPULATE_STATS_BUF_;
+ break;
+ }
+
+ step_ = RETURN_STATS_BUF_;
+ }
+ break;
+
case RETURN_STATS_BUF_:
{
if (qparent_.up->isFull())
@@ -5830,6 +5838,8 @@ short ExExeUtilRegionStatsFormatTcb::computeTotals()
str_pad(statsTotals_->objectName, sizeof(statsTotals_->objectName), ' ');
str_cpy_all(statsTotals_->objectName, objName_, strlen(objName_));
+ str_pad(statsTotals_->regionServer, sizeof(statsTotals_->regionServer), ' ');
+
str_pad(statsTotals_->regionName, sizeof(statsTotals_->regionName), ' ');
for (Int32 currIndex = 0; currIndex < regionInfoList_->entries(); currIndex++)
@@ -6116,6 +6126,11 @@ short ExExeUtilRegionStatsFormatTcb::work()
char buf[1000];
short rc = 0;
+ str_sprintf(buf, " RegionServer: %s",
+ removeTrailingBlanks(stats_->regionServer, STATS_NAME_MAX_LEN).data(), TRUE);
+ if (moveRowToUpQueue(buf, strlen(buf), &rc))
+ return rc;
+
str_sprintf(buf, " RegionNum: %d", currIndex_+1);
if (moveRowToUpQueue(buf, strlen(buf), &rc))
return rc;
@@ -6208,6 +6223,319 @@ short ExExeUtilRegionStatsFormatTcb::work()
return WORK_OK;
}
+////////////////////////////////////////////////////////////////
+// Constructor for class ExExeUtilClusterStatsTcb
+///////////////////////////////////////////////////////////////
+ExExeUtilClusterStatsTcb::ExExeUtilClusterStatsTcb(
+ const ComTdbExeUtilRegionStats & exe_util_tdb,
+ ex_globals * glob)
+ : ExExeUtilRegionStatsTcb( exe_util_tdb, glob)
+{
+ statsBuf_ = new(glob->getDefaultHeap()) char[sizeof(ComTdbClusterStatsVirtTableColumnStruct)];
+ statsBufLen_ = sizeof(ComTdbClusterStatsVirtTableColumnStruct);
+
+ stats_ = (ComTdbClusterStatsVirtTableColumnStruct*)statsBuf_;
+
+ int jniDebugPort = 0;
+ int jniDebugTimeout = 0;
+ ehi_ = ExpHbaseInterface::newInstance(glob->getDefaultHeap(),
+ (char*)"", //exe_util_tdb.server(),
+ (char*)"", //exe_util_tdb.zkPort(),
+ jniDebugPort,
+ jniDebugTimeout);
+
+ regionInfoList_ = NULL;
+
+ // get hbase rootdir location. Max linux pathlength is 1024.
+ hbaseRootdir_ = new(glob->getDefaultHeap()) char[1030];
+ strcpy(hbaseRootdir_, "/hbase");
+
+ step_ = INITIAL_;
+}
+
+ExExeUtilClusterStatsTcb::~ExExeUtilClusterStatsTcb()
+{
+ if (statsBuf_)
+ NADELETEBASIC(statsBuf_, getGlobals()->getDefaultHeap());
+
+ if (ehi_)
+ delete ehi_;
+
+ statsBuf_ = NULL;
+}
+
+short ExExeUtilClusterStatsTcb::collectStats()
+{
+ numRegionStatsEntries_ = 0;
+ regionInfoList_ = ehi_->getClusterStats(numRegionStatsEntries_);
+ if (! regionInfoList_)
+ {
+ return 1; // EOD
+ }
+
+ currIndex_ = 0;
+
+ return 0;
+}
+
+// RETURN: 1, not a TRAFODION region. 0, is a TRAFODION region.
+// -1, error.
+short ExExeUtilClusterStatsTcb::populateStats
+(Int32 currIndex, NABoolean nullTerminate)
+{
+ str_pad(stats_->catalogName, sizeof(stats_->catalogName), ' ');
+ str_pad(stats_->schemaName, sizeof(stats_->schemaName), ' ');
+ str_pad(stats_->objectName, sizeof(stats_->objectName), ' ');
+
+ str_pad(stats_->regionServer, sizeof(stats_->regionServer), ' ');
+
+ str_pad(stats_->regionName, sizeof(stats_->regionName), ' ');
+
+ char regionInfoBuf[5000];
+ Int32 len = 0;
+ char *regionInfo = regionInfoBuf;
+ char *val = regionInfoList_->at(currIndex).val;
+ len = regionInfoList_->at(currIndex).len;
+ if (len >= sizeof(regionInfoBuf))
+ len = sizeof(regionInfoBuf)-1;
+ strncpy(regionInfoBuf, val, len);
+ regionInfoBuf[len] = '\0';
+ stats_->numStores = 0;
+ stats_->numStoreFiles = 0;
+ stats_->storeFileUncompSize = 0;
+ stats_->storeFileSize = 0;
+ stats_->memStoreSize = 0;
+
+ char longBuf[30];
+ char * sep1 = strchr(regionInfo, '|');
+ if (sep1)
+ {
+ str_cpy_all(stats_->regionServer, regionInfo,
+ (Lng32)(sep1 - regionInfo));
+
+ if (nullTerminate)
+ stats_->regionServer[sep1 - regionInfo] = 0;
+ }
+
+ char * sepStart = sep1+1;
+ sep1 = strchr(sepStart, '|');
+ if (sep1)
+ {
+ str_cpy_all(stats_->regionName, sepStart,
+ (Lng32)(sep1 - sepStart));
+
+ if (nullTerminate)
+ stats_->regionName[sep1 - sepStart] = 0;
+ }
+
+ char tableName[3*STATS_NAME_MAX_LEN + 3];
+ sepStart = sep1+1;
+ sep1 = strchr(sepStart, '|');
+ if (sep1)
+ {
+ str_cpy_all(tableName, sepStart,
+ (Lng32)(sep1 - sepStart));
+
+ tableName[sep1 - sepStart] = 0;
+
+ char tableNameBuf[3*STATS_NAME_MAX_LEN + 30];
+
+ Lng32 numParts = 0;
+ char *parts[4];
+ LateNameInfo::extractParts(tableName, tableNameBuf, numParts, parts, FALSE);
+
+ if (numParts == 3)
+ {
+ str_cpy_all(stats_->catalogName, parts[0], strlen(parts[0]));
+ if (nullTerminate)
+ stats_->catalogName[strlen(parts[0])] = 0;
+
+ str_cpy_all(stats_->schemaName, parts[1], strlen(parts[1]));
+ if (nullTerminate)
+ stats_->schemaName[strlen(parts[1])] = 0;
+
+ str_cpy_all(stats_->objectName, parts[2], strlen(parts[2]));
+ if (nullTerminate)
+ stats_->objectName[strlen(parts[2])] = 0;
+ }
+
+ if ((numParts != 3) ||
+ (str_cmp(stats_->catalogName, TRAFODION_SYSCAT_LIT, strlen(TRAFODION_SYSCAT_LIT)) != 0))
+ {
+ // this is not a trafodion region, skip it.
+ return 1;
+ }
+ }
+
+ sepStart = sep1;
+ stats_->numStores = getEmbeddedNumValue(sepStart, '|', FALSE);
+ stats_->numStoreFiles = getEmbeddedNumValue(sepStart, '|', FALSE);
+ stats_->storeFileUncompSize = getEmbeddedNumValue(sepStart, '|', FALSE);
+ stats_->storeFileSize = getEmbeddedNumValue(sepStart, '|', FALSE);
+ stats_->memStoreSize = getEmbeddedNumValue(sepStart, '|', FALSE);
+ stats_->readRequestsCount = getEmbeddedNumValue(sepStart, '|', FALSE);
+ stats_->writeRequestsCount = getEmbeddedNumValue(sepStart, '|', FALSE);
+
+ return 0;
+}
+
+short ExExeUtilClusterStatsTcb::work()
+{
+ short retcode = 0;
+ Lng32 cliRC = 0;
+ ex_expr::exp_return_type exprRetCode = ex_expr::EXPR_OK;
+
+ // if no parent request, return
+ if (qparent_.down->isEmpty())
+ return WORK_OK;
+
+ // if no room in up queue, won't be able to return data/status.
+ // Come back later.
+ if (qparent_.up->isFull())
+ return WORK_OK;
+
+ ex_queue_entry * pentry_down = qparent_.down->getHeadEntry();
+ ExExeUtilPrivateState & pstate =
+ *((ExExeUtilPrivateState*) pentry_down->pstate);
+
+ // Get the globals stucture of the master executor.
+ ExExeStmtGlobals *exeGlob = getGlobals()->castToExExeStmtGlobals();
+ ExMasterStmtGlobals *masterGlob = exeGlob->castToExMasterStmtGlobals();
+ ContextCli * currContext = masterGlob->getCliGlobals()->currContext();
+
+ ComDiagsArea * diags = getDiagsArea();
+
+ while (1)
+ {
+ switch (step_)
+ {
+ case INITIAL_:
+ {
+ if (ehi_ == NULL)
+ {
+ step_ = HANDLE_ERROR_;
+ break;
+ }
+
+ step_ = COLLECT_STATS_;
+ }
+ break;
+
+ case COLLECT_STATS_:
+ {
+ retcode = collectStats();
+ if (retcode == 1) // EOD
+ {
+ step_ = DONE_;
+ break;
+ }
+ else if (retcode < 0)
+ {
+ *diags << DgSqlCode(-8451);
+
+ step_ = HANDLE_ERROR_;
+ break;
+ }
+
+ currIndex_ = 0;
+
+ step_ = POPULATE_STATS_BUF_;
+ }
+ break;
+
+ case POPULATE_STATS_BUF_:
+ {
+ if (currIndex_ == numRegionStatsEntries_) //regionInfoList_->entries())
+ {
+ step_ = COLLECT_STATS_;
+ break;
+ }
+
+ retcode = populateStats(currIndex_);
+ if (retcode == 1) // not TRAFODION region, skip it
+ {
+ currIndex_++;
+
+ step_ = POPULATE_STATS_BUF_;
+ break;
+ }
+ else if (retcode < 0)
+ {
+ step_ = HANDLE_ERROR_;
+ break;
+ }
+
+ step_ = EVAL_EXPR_;
+ }
+ break;
+
+ case EVAL_EXPR_:
+ {
+ exprRetCode = evalScanExpr((char*)stats_, statsBufLen_, FALSE);
+ if (exprRetCode == ex_expr::EXPR_FALSE)
+ {
+ // row does not pass the scan expression,
+ // move to the next row.
+ currIndex_++;
+
+ step_ = POPULATE_STATS_BUF_;
+ break;
+ }
+
+ step_ = RETURN_STATS_BUF_;
+ }
+ break;
+
+ case RETURN_STATS_BUF_:
+ {
+ if (qparent_.up->isFull())
+ return WORK_OK;
+
+ short rc = 0;
+ if (moveRowToUpQueue((char*)stats_, statsBufLen_, &rc, FALSE))
+ return rc;
+
+
+ currIndex_++;
+
+ step_ = POPULATE_STATS_BUF_;
+ }
+ break;
+
+ case HANDLE_ERROR_:
+ {
+ retcode = handleError();
+ if (retcode == 1)
+ return WORK_OK;
+
+ step_ = DONE_;
+ }
+ break;
+
+ case DONE_:
+ {
+ if (regionInfoList_ != NULL) {
+ deleteNAArray(getHeap(), regionInfoList_);
+ regionInfoList_ = NULL;
+ }
+ retcode = handleDone();
+ if (retcode == 1)
+ return WORK_OK;
+
+ step_ = INITIAL_;
+
+ return WORK_CALL_AGAIN;
+ }
+ break;
+
+
+ } // switch
+
+ } // while
+
+ return WORK_OK;
+}
+
///////////////////////////////////////////////////////////////////
ex_tcb * ExExeUtilLobInfoTdb::build(ex_globals * glob)
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/executor/ExExplain.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExplain.cpp b/core/sql/executor/ExExplain.cpp
index 28c64ce..c0b5d0c 100644
--- a/core/sql/executor/ExExplain.cpp
+++ b/core/sql/executor/ExExplain.cpp
@@ -544,8 +544,16 @@ short ExExplainTcb::processExplainStmt()
{
explainFragLen_ = str_decoded_len(cliInterface.getExplainDataLen());
explainFrag_ = new(getHeap()) char[explainFragLen_];
- str_decode(explainFrag_, explainFragLen_,
- cliInterface.getExplainDataPtr(), cliInterface.getExplainDataLen());
+ if (str_decode(explainFrag_, explainFragLen_,
+ cliInterface.getExplainDataPtr(), cliInterface.getExplainDataLen()) < 0)
+ {
+ diagsArea = pEntryDown->getAtp()->getDiagsArea();
+ ExRaiseSqlError(getGlobals()->getDefaultHeap(),
+ &diagsArea, EXE_NO_EXPLAIN_INFO);
+ if (diagsArea != pEntryDown->getAtp()->getDiagsArea())
+ pEntryDown->getAtp()->setDiagsArea(diagsArea);
+ goto label_error2;
+ }
// skip ExplainReposInfo and point explainAddr to actual explain structures.
setExplainAddr((Int64)&explainFrag_[sizeof(ExplainReposInfo)]);
@@ -602,7 +610,8 @@ short ExExplainTcb::processExplainPlan()
explainFragLen_ = str_decoded_len(explainPlanLen_);
explainFrag_ = new(getHeap()) char[explainFragLen_];
- str_decode(explainFrag_, explainFragLen_, explainPlan_, explainPlanLen_);
+ if (str_decode(explainFrag_, explainFragLen_, explainPlan_, explainPlanLen_) < 0)
+ return 0;
// explain repos info header is at the beginning of stored data.
ExplainReposInfo * eri = (ExplainReposInfo*)explainFrag_;
@@ -1731,7 +1740,16 @@ short ExExplainTcb::getExplainFromRepos(char * qid, Lng32 qidLen)
explainFragLen_ = str_decoded_len(len-1); // remove trailing null terminator
explainFrag_ = new(getHeap()) char[explainFragLen_];
- str_decode(explainFrag_, explainFragLen_, ptr, len-1);
+ if (str_decode(explainFrag_, explainFragLen_, ptr, len-1) < 0)
+ {
+ diagsArea = pEntryDown->getAtp()->getDiagsArea();
+ ExRaiseSqlError(getGlobals()->getDefaultHeap(),
+ &diagsArea, EXE_NO_EXPLAIN_INFO);
+ if (diagsArea != pEntryDown->getAtp()->getDiagsArea())
+ pEntryDown->getAtp()->setDiagsArea(diagsArea);
+
+ goto label_error2;
+ }
// explain repos info header is at the beginning of stored data.
eri = (ExplainReposInfo*)explainFrag_;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/executor/HBaseClient_JNI.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/HBaseClient_JNI.cpp b/core/sql/executor/HBaseClient_JNI.cpp
index 9f3bd70..947cc1d 100644
--- a/core/sql/executor/HBaseClient_JNI.cpp
+++ b/core/sql/executor/HBaseClient_JNI.cpp
@@ -232,6 +232,8 @@ HBC_RetCode HBaseClient_JNI::init()
JavaMethods_[JM_LIST_ALL ].jm_signature = "(Ljava/lang/String;)[[B";
JavaMethods_[JM_GET_REGION_STATS ].jm_name = "getRegionStats";
JavaMethods_[JM_GET_REGION_STATS ].jm_signature = "(Ljava/lang/String;)[[B";
+ JavaMethods_[JM_GET_REGION_STATS_ENTRIES ].jm_name = "getRegionStatsEntries";
+ JavaMethods_[JM_GET_REGION_STATS_ENTRIES ].jm_signature = "()I";
JavaMethods_[JM_COPY ].jm_name = "copy";
JavaMethods_[JM_COPY ].jm_signature = "(Ljava/lang/String;Ljava/lang/String;Z)Z";
JavaMethods_[JM_EXISTS ].jm_name = "exists";
@@ -1174,6 +1176,37 @@ NAArray<HbaseStr>* HBaseClient_JNI::listAll(NAHeap *heap, const char* pattern)
return hbaseTables;
}
+Int32 HBaseClient_JNI::getRegionStatsEntries()
+{
+ QRLogger::log(CAT_SQL_HBASE, LL_DEBUG, "HBaseClient_JNI::getRegionStatsEntries() called.");
+
+ if (jenv_ == NULL)
+ if (initJVM() != JOI_OK)
+ return NULL;
+
+ if (jenv_->PushLocalFrame(jniHandleCapacity_) != 0) {
+ getExceptionDetails();
+ return NULL;
+ }
+
+ tsRecentJMFromJNI = JavaMethods_[JM_GET_REGION_STATS_ENTRIES].jm_full_name;
+ jint numEntries =
+ (jint)jenv_->CallIntMethod(javaObj_, JavaMethods_[JM_GET_REGION_STATS_ENTRIES].methodID);
+
+ if (jenv_->ExceptionCheck())
+ {
+ getExceptionDetails(jenv_);
+ logError(CAT_SQL_HBASE, __FILE__, __LINE__);
+ logError(CAT_SQL_HBASE, "HBaseClient_JNI::getRegionStatsEntries()", getLastError());
+ jenv_->PopLocalFrame(NULL);
+ return NULL;
+ }
+
+ jenv_->PopLocalFrame(NULL);
+
+ return numEntries;
+}
+
//////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////
@@ -1189,12 +1222,15 @@ NAArray<HbaseStr>* HBaseClient_JNI::getRegionStats(NAHeap *heap, const char* tbl
getExceptionDetails();
return NULL;
}
- jstring js_tblName = jenv_->NewStringUTF(tblName);
- if (js_tblName == NULL)
- {
- GetCliGlobals()->setJniErrorStr(getErrorText(HBC_ERROR_REGION_STATS));
- jenv_->PopLocalFrame(NULL);
- return NULL;
+ jstring js_tblName = NULL;
+ if (tblName) {
+ js_tblName = jenv_->NewStringUTF(tblName);
+ if (js_tblName == NULL)
+ {
+ GetCliGlobals()->setJniErrorStr(getErrorText(HBC_ERROR_REGION_STATS));
+ jenv_->PopLocalFrame(NULL);
+ return NULL;
+ }
}
tsRecentJMFromJNI = JavaMethods_[JM_GET_REGION_STATS].jm_full_name;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/executor/HBaseClient_JNI.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/HBaseClient_JNI.h b/core/sql/executor/HBaseClient_JNI.h
index 05ab77a..a8690fb 100644
--- a/core/sql/executor/HBaseClient_JNI.h
+++ b/core/sql/executor/HBaseClient_JNI.h
@@ -439,6 +439,7 @@ public:
NABoolean force);
NAArray<HbaseStr>* listAll(NAHeap *heap, const char* pattern);
NAArray<HbaseStr>* getRegionStats(NAHeap *heap, const char* tblName);
+ Int32 getRegionStatsEntries();
HBC_RetCode exists(const char* fileName, Int64 transID);
HBC_RetCode grant(const Text& user, const Text& tableName, const TextVec& actionCodes);
@@ -525,6 +526,7 @@ private:
,JM_DROP_ALL
,JM_LIST_ALL
,JM_GET_REGION_STATS
+ ,JM_GET_REGION_STATS_ENTRIES
,JM_COPY
,JM_EXISTS
,JM_GRANT
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/exp/ExpHbaseInterface.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpHbaseInterface.cpp b/core/sql/exp/ExpHbaseInterface.cpp
index 1498b1c..001f0f8 100644
--- a/core/sql/exp/ExpHbaseInterface.cpp
+++ b/core/sql/exp/ExpHbaseInterface.cpp
@@ -1559,7 +1559,27 @@ NAArray<HbaseStr> * ExpHbaseInterface_JNI::getRegionStats(const HbaseStr& tblNam
NAArray<HbaseStr>* regionStats = client_->getRegionStats((NAHeap *)heap_, tblName.val);
if (regionStats == NULL)
return NULL;
+
+ Int32 numEntries = client_->getRegionStatsEntries();
+
+ return regionStats;
+}
+
+NAArray<HbaseStr> * ExpHbaseInterface_JNI::getClusterStats(Int32 &numEntries)
+{
+ if (client_ == NULL)
+ {
+ if (init(hbs_) != HBASE_ACCESS_SUCCESS)
+ return NULL;
+ }
+ NAArray<HbaseStr>* regionStats =
+ client_->getRegionStats((NAHeap *)heap_, NULL);
+ if (regionStats == NULL)
+ return NULL;
+
+ numEntries = client_->getRegionStatsEntries();
+
return regionStats;
}
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/exp/ExpHbaseInterface.h
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpHbaseInterface.h b/core/sql/exp/ExpHbaseInterface.h
index 0826f45..67fa03b 100644
--- a/core/sql/exp/ExpHbaseInterface.h
+++ b/core/sql/exp/ExpHbaseInterface.h
@@ -367,6 +367,8 @@ class ExpHbaseInterface : public NABasicObject
// get regions and size
virtual NAArray<HbaseStr> *getRegionStats(const HbaseStr& tblName) = 0;
+ virtual NAArray<HbaseStr> *getClusterStats(Int32 &numEntries) = 0;
+
protected:
enum
{
@@ -667,6 +669,7 @@ virtual Lng32 initHFileParams(HbaseStr &tblName,
ARRAY(const char *)& nodeNames) ;
virtual NAArray<HbaseStr>* getRegionStats(const HbaseStr& tblName);
+ virtual NAArray<HbaseStr>* getClusterStats(Int32 &numEntries);
private:
bool useTRex_;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/generator/GenRelExeUtil.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelExeUtil.cpp b/core/sql/generator/GenRelExeUtil.cpp
index 82ffd07..bf54220 100644
--- a/core/sql/generator/GenRelExeUtil.cpp
+++ b/core/sql/generator/GenRelExeUtil.cpp
@@ -3366,20 +3366,25 @@ short ExeUtilHiveTruncate::codeGen(Generator * generator)
// class ExeUtilRegionStats
////////////////////////////////////////////////////////////////////
const char * ExeUtilRegionStats::getVirtualTableName()
-{ return ("EXE_UTIL_REGION_STATS__"); }
+{ return (clusterView_ ? "EXE_UTIL_CLUSTER_STATS__" : "EXE_UTIL_REGION_STATS__"); }
TrafDesc *ExeUtilRegionStats::createVirtualTableDesc()
{
TrafDesc * table_desc = NULL;
+
+ ComTdbExeUtilRegionStats rs;
+ rs.setClusterView(clusterView_);
+
if (displayFormat_)
table_desc = ExeUtilExpr::createVirtualTableDesc();
else
table_desc = Generator::createVirtualTableDesc(
getVirtualTableName(),
- ComTdbExeUtilRegionStats::getVirtTableNumCols(),
- ComTdbExeUtilRegionStats::getVirtTableColumnInfo(),
- ComTdbExeUtilRegionStats::getVirtTableNumKeys(),
- ComTdbExeUtilRegionStats::getVirtTableKeyInfo());
+ rs.getVirtTableNumCols(),
+ rs.getVirtTableColumnInfo(),
+ rs.getVirtTableNumKeys(),
+ rs.getVirtTableKeyInfo());
+
return table_desc;
}
short ExeUtilRegionStats::codeGen(Generator * generator)
@@ -3400,8 +3405,11 @@ short ExeUtilRegionStats::codeGen(Generator * generator)
const int work_atp = 1;
const int exe_util_row_atp_index = 2;
+ // if selection pred, then assign work atp/atpindex to attrs.
+ // Once selection pred has been generated, atp/atpindex will be
+ // changed to returned atp/atpindex.
short rc = processOutputRow(generator, work_atp, exe_util_row_atp_index,
- returnedDesc);
+ returnedDesc, (NOT selectionPred().isEmpty()));
if (rc)
{
return -1;
@@ -3440,7 +3448,21 @@ short ExeUtilRegionStats::codeGen(Generator * generator)
&input_expr);
}
- char * tableName = space->AllocateAndCopyToAlignedSpace
+ ex_expr *scanExpr = NULL;
+ // generate tuple selection expression, if present
+ if (NOT selectionPred().isEmpty())
+ {
+ ItemExpr* pred = selectionPred().rebuildExprTree(ITM_AND,TRUE,TRUE);
+ expGen->generateExpr(pred->getValueId(),ex_expr::exp_SCAN_PRED,&scanExpr);
+
+ // The output row will be returned as the last entry of the returned atp.
+ // Change the atp and atpindex of the returned values to indicate that.
+ expGen->assignAtpAndAtpIndex(getVirtualTableDesc()->getColumnList(),
+ 0, returnedDesc->noTuples()-1);
+ }
+
+ char * tableName = NULL;
+ tableName = space->AllocateAndCopyToAlignedSpace
(generator->genGetNameAsAnsiNAString(getTableName()), 0);
ComTdbExeUtilRegionStats * exe_util_tdb = new(space)
@@ -3448,6 +3470,7 @@ short ExeUtilRegionStats::codeGen(Generator * generator)
tableName,
input_expr,
inputRowLen,
+ scanExpr,
workCriDesc,
exe_util_row_atp_index,
givenDesc,
@@ -3464,6 +3487,8 @@ short ExeUtilRegionStats::codeGen(Generator * generator)
exe_util_tdb->setSummaryOnly(summaryOnly_);
+ exe_util_tdb->setClusterView(clusterView_);
+
if(!generator->explainDisabled()) {
generator->setExplainTuple(
addExplainInfo(exe_util_tdb, 0, 0, generator));
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/optimizer/BindRelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/BindRelExpr.cpp b/core/sql/optimizer/BindRelExpr.cpp
index fc59331..b67e148 100644
--- a/core/sql/optimizer/BindRelExpr.cpp
+++ b/core/sql/optimizer/BindRelExpr.cpp
@@ -1315,6 +1315,11 @@ TrafDesc *generateSpecialDesc(const CorrName& corrName)
ExeUtilRegionStats eudss;
desc = eudss.createVirtualTableDesc();
}
+ else if (corrName.getQualifiedNameObj().getObjectName() == ExeUtilRegionStats::getVirtualTableClusterViewNameStr())
+ {
+ ExeUtilRegionStats eudss(TRUE);
+ desc = eudss.createVirtualTableDesc();
+ }
}
return desc;
@@ -1324,22 +1329,6 @@ TrafDesc *generateSpecialDesc(const CorrName& corrName)
// -----------------------------------------------------------------------
// member functions for class BindWA
// -----------------------------------------------------------------------
-// LCOV_EXCL_START - cnu
-/*
-static NABoolean checkForReservedObjectName(QualifiedName &inName)
-{
- if ((inName.getCatalogName() == "NEO") &&
- (inName.getSchemaName() == "PUBLIC_ACCESS_SCHEMA") &&
- (inName.getObjectName() == "_MAINTAIN_CONTROL_INFO_"))
- {
- return TRUE;
- }
-
- return FALSE;
-}
-*/
-
-// LCOV_EXCL_STOP
NARoutine *BindWA::getNARoutine ( const QualifiedName &name )
{
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/optimizer/RelExeUtil.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelExeUtil.cpp b/core/sql/optimizer/RelExeUtil.cpp
index 0711aa7..50a42b6 100644
--- a/core/sql/optimizer/RelExeUtil.cpp
+++ b/core/sql/optimizer/RelExeUtil.cpp
@@ -3111,6 +3111,7 @@ ExeUtilRegionStats::ExeUtilRegionStats
NABoolean summaryOnly,
NABoolean isIndex,
NABoolean forDisplay,
+ NABoolean clusterView,
RelExpr * child,
CollHeap *oHeap)
: ExeUtilExpr(REGION_STATS_, objectName,
@@ -3118,6 +3119,7 @@ ExeUtilRegionStats::ExeUtilRegionStats
summaryOnly_(summaryOnly),
isIndex_(isIndex),
displayFormat_(forDisplay),
+ clusterView_(clusterView),
errorInParams_(FALSE),
inputColList_(NULL)
{
@@ -3131,6 +3133,7 @@ RelExpr * ExeUtilRegionStats::copyTopNode(RelExpr *derivedNode, CollHeap* outHea
result = new (outHeap) ExeUtilRegionStats(getTableName(),
summaryOnly_, isIndex_,
displayFormat_,
+ clusterView_,
NULL,
outHeap);
else
@@ -3159,7 +3162,8 @@ RelExpr * ExeUtilRegionStats::bindNode(BindWA *bindWA)
return this;
}
- if (getTableName().getQualifiedNameObj().getObjectName().isNull())
+ if ((NOT clusterView_) &&
+ (getTableName().getQualifiedNameObj().getObjectName().isNull()))
{
*CmpCommon::diags() << DgSqlCode(-4218) << DgString0("REGION STATS");
@@ -3167,7 +3171,8 @@ RelExpr * ExeUtilRegionStats::bindNode(BindWA *bindWA)
return this;
}
- if (! child(0))
+ if ((! child(0)) &&
+ (NOT getTableName().getQualifiedNameObj().getObjectName().isNull()))
{
NATable * naTable = bindWA->getNATable(getTableName());
if ((!naTable) || (bindWA->errStatus()))
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/optimizer/RelExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelExeUtil.h b/core/sql/optimizer/RelExeUtil.h
index 4de738e..2040a34 100644
--- a/core/sql/optimizer/RelExeUtil.h
+++ b/core/sql/optimizer/RelExeUtil.h
@@ -1751,15 +1751,24 @@ public:
NABoolean summaryOnly,
NABoolean isIndex,
NABoolean forDisplay,
- RelExpr * child = NULL,
+ NABoolean clusterView,
+ RelExpr * child,
CollHeap *oHeap = CmpCommon::statementHeap());
ExeUtilRegionStats():
summaryOnly_(FALSE),
isIndex_(FALSE),
- displayFormat_(FALSE)
+ displayFormat_(FALSE),
+ clusterView_(FALSE)
{}
-
+
+ ExeUtilRegionStats(NABoolean clusterView):
+ summaryOnly_(FALSE),
+ isIndex_(FALSE),
+ displayFormat_(FALSE),
+ clusterView_(clusterView)
+ {}
+
virtual RelExpr * bindNode(BindWA *bindWAPtr);
// a method used for recomputing the outer references (external dataflow
@@ -1775,13 +1784,17 @@ public:
virtual const char *getVirtualTableName();
static const char * getVirtualTableNameStr()
{ return "EXE_UTIL_REGION_STATS__";}
+
virtual TrafDesc *createVirtualTableDesc();
+ static const char * getVirtualTableClusterViewNameStr()
+ { return "EXE_UTIL_CLUSTER_STATS__"; }
+
virtual NABoolean producesOutput() { return TRUE; }
virtual int getArity() const { return ((child(0) == NULL) ? 0 : 1); }
- virtual NABoolean aqrSupported() { return TRUE; }
+ virtual NABoolean aqrSupported() { return TRUE; }
private:
ItemExpr * inputColList_;
@@ -1792,6 +1805,8 @@ private:
NABoolean displayFormat_;
+ NABoolean clusterView_;
+
NABoolean errorInParams_;
};
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/92c84531/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y
index 3059f3f..27c43fb 100755
--- a/core/sql/parser/sqlparser.y
+++ b/core/sql/parser/sqlparser.y
@@ -6035,21 +6035,26 @@ TOK_TABLE '(' TOK_INTERNALSP '(' character_string_literal ')' ')'
$$ = lle;
}
+| TOK_TABLE '(' TOK_CLUSTER stats_or_statistics '(' ')' ')'
+ {
+ $$ = new (PARSERHEAP())
+ ExeUtilRegionStats(CorrName(""), FALSE, FALSE, FALSE, TRUE, NULL, PARSERHEAP());
+ }
| TOK_TABLE '(' TOK_REGION stats_or_statistics '(' ')' ')'
{
$$ = new (PARSERHEAP())
- ExeUtilRegionStats(CorrName(""), FALSE, FALSE, FALSE, NULL, PARSERHEAP());
+ ExeUtilRegionStats(CorrName(""), FALSE, FALSE, FALSE, FALSE, NULL, PARSERHEAP());
}
| TOK_TABLE '(' TOK_REGION stats_or_statistics '(' table_name ')' ')'
{
$$ = new (PARSERHEAP())
- ExeUtilRegionStats(*$6, FALSE, FALSE, FALSE, NULL, PARSERHEAP());
+ ExeUtilRegionStats(*$6, FALSE, FALSE, FALSE, FALSE, NULL, PARSERHEAP());
}
| TOK_TABLE '(' TOK_REGION stats_or_statistics '(' TOK_INDEX table_name ')' ')'
{
$7->setSpecialType(ExtendedQualName::INDEX_TABLE);
$$ = new (PARSERHEAP())
- ExeUtilRegionStats(*$7, FALSE, TRUE, FALSE, NULL, PARSERHEAP());
+ ExeUtilRegionStats(*$7, FALSE, TRUE, FALSE, FALSE, NULL, PARSERHEAP());
}
| TOK_TABLE '(' TOK_LOB stats_or_statistics '(' ')' ')'
{
@@ -6064,7 +6069,7 @@ TOK_TABLE '(' TOK_INTERNALSP '(' character_string_literal ')' ')'
| TOK_TABLE '(' TOK_REGION stats_or_statistics '(' TOK_USING rel_subquery ')' ')'
{
$$ = new (PARSERHEAP())
- ExeUtilRegionStats(CorrName("DUMMY"), FALSE, FALSE, FALSE, $7, PARSERHEAP());
+ ExeUtilRegionStats(CorrName("DUMMY"), FALSE, FALSE, FALSE, FALSE, $7, PARSERHEAP());
}
hivemd_identifier :
@@ -16404,38 +16409,38 @@ exe_util_init_hbase : TOK_INITIALIZE TOK_TRAFODION
exe_util_get_region_access_stats : TOK_GET TOK_REGION stats_or_statistics TOK_FOR TOK_TABLE table_name
{
$$ = new (PARSERHEAP())
- ExeUtilRegionStats(*$6, FALSE, FALSE, TRUE, NULL, PARSERHEAP());
+ ExeUtilRegionStats(*$6, FALSE, FALSE, TRUE, FALSE, NULL, PARSERHEAP());
}
| TOK_GET TOK_REGION stats_or_statistics TOK_FOR TOK_INDEX table_name
{
$6->setSpecialType(ExtendedQualName::INDEX_TABLE);
$$ = new (PARSERHEAP())
- ExeUtilRegionStats(*$6, FALSE, TRUE, TRUE, NULL, PARSERHEAP());
+ ExeUtilRegionStats(*$6, FALSE, TRUE, TRUE, FALSE, NULL, PARSERHEAP());
}
| TOK_GET TOK_REGION stats_or_statistics TOK_FOR rel_subquery
{
$$ = new (PARSERHEAP())
ExeUtilRegionStats(
- CorrName("DUMMY"), FALSE, TRUE, TRUE, $5, PARSERHEAP());
+ CorrName("DUMMY"), FALSE, TRUE, TRUE, FALSE, $5, PARSERHEAP());
}
| TOK_GET TOK_REGION stats_or_statistics TOK_FOR TOK_TABLE table_name ',' TOK_SUMMARY
{
$$ = new (PARSERHEAP())
- ExeUtilRegionStats(*$6, TRUE, FALSE, TRUE, NULL, PARSERHEAP());
+ ExeUtilRegionStats(*$6, TRUE, FALSE, TRUE, FALSE, NULL, PARSERHEAP());
}
| TOK_GET TOK_REGION stats_or_statistics TOK_FOR TOK_INDEX table_name ',' TOK_SUMMARY
{
$6->setSpecialType(ExtendedQualName::INDEX_TABLE);
$$ = new (PARSERHEAP())
- ExeUtilRegionStats(*$6, TRUE, TRUE, TRUE, NULL, PARSERHEAP());
+ ExeUtilRegionStats(*$6, TRUE, TRUE, TRUE, FALSE, NULL, PARSERHEAP());
}
| TOK_GET TOK_REGION stats_or_statistics TOK_FOR rel_subquery ',' TOK_SUMMARY
{
$$ = new (PARSERHEAP())
ExeUtilRegionStats(
- CorrName("DUMMY"), TRUE, TRUE, TRUE, $5, PARSERHEAP());
+ CorrName("DUMMY"), TRUE, TRUE, TRUE, FALSE, $5, PARSERHEAP());
}
stats_or_statistics : TOK_STATS
[4/5] incubator-trafodion git commit: updated expected file
compGeneral/EXPECTED042
Posted by an...@apache.org.
updated expected file compGeneral/EXPECTED042
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/c7830893
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/c7830893
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/c7830893
Branch: refs/heads/master
Commit: c7830893f73770b63ef218e330a90003e9f8c837
Parents: 0e1dd17
Author: Anoop Sharma <an...@esgyn.com>
Authored: Fri Aug 5 20:23:46 2016 +0000
Committer: Anoop Sharma <an...@esgyn.com>
Committed: Fri Aug 5 20:23:46 2016 +0000
----------------------------------------------------------------------
core/sql/regress/compGeneral/EXPECTED042 | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c7830893/core/sql/regress/compGeneral/EXPECTED042
----------------------------------------------------------------------
diff --git a/core/sql/regress/compGeneral/EXPECTED042 b/core/sql/regress/compGeneral/EXPECTED042
index dc6d864..e0ab126 100644
--- a/core/sql/regress/compGeneral/EXPECTED042
+++ b/core/sql/regress/compGeneral/EXPECTED042
@@ -2225,8 +2225,8 @@ NUM_HKEYS NUM_SKEYS NUM_MAX_VALUES_PER_KEY NUM_HASH_TABLE_BUCKETS
134 1 1 0
142 0 1 0
142 1 1 0
- 150 2 3 0
- 150 3 3 0
+ 174 2 3 0
+ 174 3 3 0
187 0 4 0
187 0 4 0
201 0 2 1
@@ -2319,8 +2319,8 @@ NUM_HKEYS NUM_SKEYS NUM_MAX_VALUES_PER_KEY NUM_HASH_TABLE_BUCKETS
134 1 1 0
142 0 1 0
142 1 1 0
- 150 2 3 0
- 150 3 3 0
+ 174 2 3 0
+ 174 3 3 0
187 0 4 0
187 0 4 0
201 0 2 1
[5/5] incubator-trafodion git commit: Merge [TRAFODION-2141] PR-641
Cluster view of hbase stats
Posted by an...@apache.org.
Merge [TRAFODION-2141] PR-641 Cluster view of hbase stats
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/9f3542dc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/9f3542dc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/9f3542dc
Branch: refs/heads/master
Commit: 9f3542dcf3c4911f3972e0a3446331c7d476164b
Parents: a6b6211 c783089
Author: Anoop Sharma <an...@esgyn.com>
Authored: Sat Aug 6 02:45:50 2016 +0000
Committer: Anoop Sharma <an...@esgyn.com>
Committed: Sat Aug 6 02:45:50 2016 +0000
----------------------------------------------------------------------
core/sql/bin/SqlciErrors.txt | 1 +
core/sql/comexe/ComTdbExeUtil.cpp | 3 +-
core/sql/comexe/ComTdbExeUtil.h | 89 +++--
core/sql/common/str.cpp | 23 +-
core/sql/executor/ExExeUtil.h | 48 ++-
core/sql/executor/ExExeUtilCommon.cpp | 31 ++
core/sql/executor/ExExeUtilGet.cpp | 396 +++++++++++++++++--
core/sql/executor/ExExplain.cpp | 26 +-
core/sql/executor/HBaseClient_JNI.cpp | 48 ++-
core/sql/executor/HBaseClient_JNI.h | 2 +
core/sql/exp/ExpHbaseInterface.cpp | 20 +
core/sql/exp/ExpHbaseInterface.h | 3 +
core/sql/generator/GenRelExeUtil.cpp | 39 +-
core/sql/optimizer/BindRelExpr.cpp | 21 +-
core/sql/optimizer/OptRange.cpp | 17 +-
core/sql/optimizer/RelExeUtil.cpp | 9 +-
core/sql/optimizer/RelExeUtil.h | 23 +-
core/sql/parser/sqlparser.y | 25 +-
core/sql/regress/compGeneral/EXPECTED042 | 8 +-
core/sql/regress/seabase/EXPECTED002 | 173 ++++++--
core/sql/regress/seabase/FILTER002 | 4 +-
core/sql/regress/seabase/TEST002 | 38 +-
core/sql/sqlcomp/CmpSeabaseDDLtable.cpp | 2 +
.../java/org/trafodion/sql/HBaseClient.java | 124 +++++-
.../java/org/trafodion/sql/TrafRegionStats.java | 118 +++++-
25 files changed, 1122 insertions(+), 169 deletions(-)
----------------------------------------------------------------------