New columns for repository tables and related changes

Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/0b7663e4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/0b7663e4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/0b7663e4

Branch: refs/heads/master
Commit: 0b7663e4051eeaa37ee8c58e9df8ac1df5a0cb04
Parents: 2b111fd
Author: Anuradha Hegde <[email protected]>
Authored: Fri Jun 24 17:33:53 2016 +0000
Committer: Anuradha Hegde <[email protected]>
Committed: Fri Jun 24 17:33:53 2016 +0000

----------------------------------------------------------------------
 core/conn/odbc/src/odbc/Common/Global.h         |   5 +-
 core/conn/odbc/src/odbc/Common/PubQueryStats.h  |  11 +-
 core/conn/odbc/src/odbc/nsksrvr/SrvrConnect.cpp | 137 ++++++++++---------
 .../odbc/nsksrvrcore/ResStatisticsSession.cpp   |  65 ++++++++-
 .../src/odbc/nsksrvrcore/ResStatisticsSession.h |   1 +
 .../odbc/nsksrvrcore/ResStatisticsStatement.cpp |   3 +-
 core/sqf/sql/scripts/restcheck                  |   1 -
 core/sql/common/ComSmallDefs.h                  |   4 +-
 core/sql/regress/seabase/EXPECTED011            |   9 +-
 core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp         |  22 ++-
 core/sql/sqlcomp/CmpSeabaseDDLrepos.h           |  59 ++++----
 11 files changed, 203 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/conn/odbc/src/odbc/Common/Global.h
----------------------------------------------------------------------
diff --git a/core/conn/odbc/src/odbc/Common/Global.h 
b/core/conn/odbc/src/odbc/Common/Global.h
index 8b18912..72e0cef 100644
--- a/core/conn/odbc/src/odbc/Common/Global.h
+++ b/core/conn/odbc/src/odbc/Common/Global.h
@@ -66,8 +66,6 @@ struct hash<std::string> {
 
 class CDataSourceList ;
 class ODBCMXTraceMsg;
-//class ResStatisticsStatement;
-//class ResStatisticsSession;
 
 
 #define        MAX_IP_ADDRESS_LEN              128
@@ -89,7 +87,6 @@ class ODBCMXTraceMsg;
 #include "QSGlobal.h"
 #include "PubInterface.h"
 #define DEFAULT_QS_PROCESS_NAME                "$ZWMGR"
-//define DEFAULT_QS_PROCESS_NAME       "$QSMGR"
 #define DEFAULT_SYNC_PROCESS_NAME      "$ZWSYN"
 
 #define DEFAULT_QS_POLLING                     2
@@ -1024,6 +1021,8 @@ typedef struct _SRVR_GLOBAL_Def
 //
        char                            
ClientComputerName[MAX_COMPUTER_NAME_LEN + 1];
        char                            
ApplicationName[MAX_APPLICATION_NAME_LEN + 1];
+       char                            
mappedProfileName[MAX_APPLICATION_NAME_LEN + 1];
+       char                            mappedSLAName[MAX_APPLICATION_NAME_LEN 
+ 1];
        int                             CreatorAccessId;
        int                             ProcessAccessId;
        char                            RoleName[MAX_ROLE_LEN + 1];             
// ROLE Name

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/conn/odbc/src/odbc/Common/PubQueryStats.h
----------------------------------------------------------------------
diff --git a/core/conn/odbc/src/odbc/Common/PubQueryStats.h 
b/core/conn/odbc/src/odbc/Common/PubQueryStats.h
index a175661..6b16cf7 100644
--- a/core/conn/odbc/src/odbc/Common/PubQueryStats.h
+++ b/core/conn/odbc/src/odbc/Common/PubQueryStats.h
@@ -29,6 +29,7 @@ using namespace std;
 enum pub_struct_type
 {
        PUB_TYPE_INIT = 0,
+       PUB_TYPE_SESSION_START,
        PUB_TYPE_SESSION_END,
        PUB_TYPE_STATEMENT_NEW_QUERYEXECUTION,
        PUB_TYPE_STATEMENT_UPDATE_QUERYEXECUTION,
@@ -43,7 +44,7 @@ enum statistics_type
        STATISTICS_SESSION      
 };
 
-typedef struct _SESSION_END
+typedef struct _SESSION_INFO
 {
        unsigned int m_instance_id;
        unsigned int m_tenant_id;
@@ -66,6 +67,8 @@ typedef struct _SESSION_END
        string m_client_name;
        string m_client_user_name;
        string m_application_name;
+        string m_profile_name;
+        string m_sla_name;
        long long m_total_odbc_exection_time;
        long long m_total_odbc_elapsed_time;
        long m_total_insert_stmts_executed;
@@ -87,7 +90,7 @@ typedef struct _SESSION_END
        long long m_search_elapsed_time_mcsec;
        long long m_authentication_connection_elapsed_time_mcsec;
        long long m_authentication_elapsed_time_mcsec;
-}SESSION_END, *pSESSION_END;
+}SESSION_INFO, *pSESSION_INFO;
 
 typedef struct _STATEMENT_QUERYEXECUTION
 {
@@ -109,6 +112,7 @@ typedef struct _STATEMENT_QUERYEXECUTION
        string m_process_name;
        long long m_exec_start_utc_ts;
        string m_query_id;
+       string m_query_signature_id;
        string m_user_name;
        string m_role_name;
        unsigned int m_start_priority;
@@ -222,6 +226,7 @@ typedef struct _STATEMENT_QUERYEXECUTION
        long m_num_nodes;
        long long m_udr_process_busy_time;
        int m_pertable_stats;
+        long long m_last_updated_time;
 }STATEMENT_QUERYEXECUTION, *pSTATEMENT_QUERYEXECUTION;
 
 typedef struct _SESSION_AGGREGATION
@@ -288,6 +293,8 @@ typedef struct _SESSION_AGGREGATION
        long m_delta_util_errors;
        long m_delta_catalog_errors;
        long m_delta_other_errors;
+       long m_average_response_time;
+       long m_throughput_per_sec;
 }SESSION_AGGREGATION, *pSESSION_AGGREGATION;
 
 #endif

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/conn/odbc/src/odbc/nsksrvr/SrvrConnect.cpp
----------------------------------------------------------------------
diff --git a/core/conn/odbc/src/odbc/nsksrvr/SrvrConnect.cpp 
b/core/conn/odbc/src/odbc/nsksrvr/SrvrConnect.cpp
index 2ad8422..c5d09fa 100644
--- a/core/conn/odbc/src/odbc/nsksrvr/SrvrConnect.cpp
+++ b/core/conn/odbc/src/odbc/nsksrvr/SrvrConnect.cpp
@@ -86,7 +86,6 @@
 #include "ResStatisticsSession.h"
 #include "ResStatisticsStatement.h"
 #include "ComDllload.h"
-//#include "QSExceptions.h"
 #include <dlfcn.h>
 #include "secsrvrmxo.h"
 
@@ -102,7 +101,6 @@ PerformanceMeasure *perf = 0;
 #include <arpa/inet.h>
 #include <netinet/in.h>
 #include "zookeeper/zookeeper.h"
-//extern ZK_GLOBAL_Def zkGlobals;
 
 #include <tr1/memory>
 #include <pthread.h>
@@ -140,6 +138,7 @@ int interval_count=0;
 int interval_max=1;
 int limit_count=0;
 int limit_max=-1;
+long long lastUpdatedTime = 0;
 
 bool updateZKState(DCS_SERVER_STATE currState, DCS_SERVER_STATE newState);
 
@@ -188,17 +187,15 @@ short qrysrvc_ExecuteFinished(
                );
 
 extern char zkHost[256];
-//extern void sendAggrStats(pub_struct_type pub_type, pSESSION_AGGREGATION 
pAggr_info);
 extern void sendAggrStats(pub_struct_type pub_type, 
std::tr1::shared_ptr<SESSION_AGGREGATION> pAggr_info);
-//extern void sendSessionEnd(pSESSION_END pSession_info);
-extern void sendSessionEnd(std::tr1::shared_ptr<SESSION_END> pSession_info);
+extern void sendSessionStats(std::tr1::shared_ptr<SESSION_INFO> pSession_info);
 extern void sendQueryStats(pub_struct_type pub_type, 
std::tr1::shared_ptr<STATEMENT_QUERYEXECUTION> pQuery_info);
 CEE_handle_def StatisticsTimerHandle;
 SRVR_STMT_HDL * pQueryStmt = NULL;
 
 typedef struct _REPOS_STATS
 {
-       std::tr1::shared_ptr<SESSION_END> m_pSessionStats;
+       std::tr1::shared_ptr<SESSION_INFO> m_pSessionStats;
        std::tr1::shared_ptr<STATEMENT_QUERYEXECUTION> m_pQuery_stats;
        std::tr1::shared_ptr<SESSION_AGGREGATION> m_pAggr_stats;
        pub_struct_type m_pub_type;
@@ -535,10 +532,10 @@ static void* SessionWatchDog(void* arg)
                        ss.str("");
                        ss.clear();
 
-                       if (repos_stats.m_pub_type == PUB_TYPE_SESSION_END)
+                       if (repos_stats.m_pub_type == PUB_TYPE_SESSION_START || 
repos_stats.m_pub_type == PUB_TYPE_SESSION_END)
                        {
-                               std::tr1::shared_ptr<SESSION_END> pSessionEnd = 
repos_stats.m_pSessionStats;
-                               if(NULL == pSessionEnd)
+                               std::tr1::shared_ptr<SESSION_INFO> pSessionInfo 
= repos_stats.m_pSessionStats;
+                               if(NULL == pSessionInfo)
                                {
                                        SendEventMsg(MSG_ODBC_NSK_ERROR, 
EVENTLOG_ERROR_TYPE,
                                                        0, ODBCMX_SERVER, 
srvrGlobal->srvrObjRef,
@@ -546,49 +543,54 @@ static void* SessionWatchDog(void* arg)
                                        break;
                                }
 
-                               ss << "insert into 
Trafodion.\"_REPOS_\".metric_session_table values(";
-                               ss << pSessionEnd->m_instance_id << ",";
-                               ss << pSessionEnd->m_tenant_id << ",";
-                               ss << pSessionEnd->m_component_id << ",";
-                               ss << pSessionEnd->m_process_id << ",";
-                               ss << pSessionEnd->m_thread_id << ",";
-                               ss << pSessionEnd->m_node_id << ",";
-                               ss << pSessionEnd->m_pnid_id << ",";
-                               ss << pSessionEnd->m_host_id << ",'";
-                               ss << pSessionEnd->m_ip_address_id.c_str() << 
"',";
-                               ss << pSessionEnd->m_sequence_number << ",'";
-                               ss << pSessionEnd->m_process_name.c_str() << 
"','";
-                               ss << pSessionEnd->m_sessionId.c_str() << "','";
-                               ss << pSessionEnd->m_session_status.c_str() << 
"',CONVERTTIMESTAMP(";
-                               ss << pSessionEnd->m_session_start_utc_ts << 
"),CONVERTTIMESTAMP(";
-                               ss << pSessionEnd->m_session_end_utc_ts << "),";
-                               ss << pSessionEnd->m_user_id << ",'";
-                               ss << pSessionEnd->m_user_name.c_str() << "','";
-                               ss << pSessionEnd->m_role_name.c_str() << "','";
-                               ss << pSessionEnd->m_client_name.c_str() << 
"','";
-                               ss << pSessionEnd->m_client_user_name.c_str() 
<< "','";
-                               ss << pSessionEnd->m_application_name.c_str() 
<< "',";
-                               ss << pSessionEnd->m_total_odbc_exection_time 
<< ",";
-                               ss << pSessionEnd->m_total_odbc_elapsed_time << 
",";
-                               ss << 
pSessionEnd->m_total_insert_stmts_executed << ",";
-                               ss << 
pSessionEnd->m_total_delete_stmts_executed << ",";
-                               ss << 
pSessionEnd->m_total_update_stmts_executed << ",";
-                               ss << 
pSessionEnd->m_total_select_stmts_executed << ",";
-                               ss << pSessionEnd->m_total_catalog_stmts << ",";
-                               ss << pSessionEnd->m_total_prepares << ",";
-                               ss << pSessionEnd->m_total_executes << ",";
-                               ss << pSessionEnd->m_total_fetches << ",";
-                               ss << pSessionEnd->m_total_closes << ",";
-                               ss << pSessionEnd->m_total_execdirects << ",";
-                               ss << pSessionEnd->m_total_errors << ",";
-                               ss << pSessionEnd->m_total_warnings << ",";
-                               ss << 
pSessionEnd->m_total_login_elapsed_time_mcsec << ",";
-                               ss << 
pSessionEnd->m_ldap_login_elapsed_time_mcsec << ",";
-                               ss << 
pSessionEnd->m_sql_user_elapsed_time_mcsec << ",";
-                               ss << 
pSessionEnd->m_search_connection_elapsed_time_mcsec << ",";
-                               ss << pSessionEnd->m_search_elapsed_time_mcsec 
<< ",";
-                               ss << 
pSessionEnd->m_authentication_connection_elapsed_time_mcsec << ",";
-                               ss << 
pSessionEnd->m_authentication_elapsed_time_mcsec << ")";
+                               ss << "upsert into 
Trafodion.\"_REPOS_\".metric_session_table values(";
+                               ss << pSessionInfo->m_instance_id << ",";
+                               ss << pSessionInfo->m_tenant_id << ",";
+                               ss << pSessionInfo->m_component_id << ",";
+                               ss << pSessionInfo->m_process_id << ",";
+                               ss << pSessionInfo->m_thread_id << ",";
+                               ss << pSessionInfo->m_node_id << ",";
+                               ss << pSessionInfo->m_pnid_id << ",";
+                               ss << pSessionInfo->m_host_id << ",'";
+                               ss << pSessionInfo->m_ip_address_id.c_str() << 
"',";
+                               ss << pSessionInfo->m_sequence_number << ",'";
+                               ss << pSessionInfo->m_process_name.c_str() << 
"','";
+                               ss << pSessionInfo->m_sessionId.c_str() << 
"','";
+                               ss << pSessionInfo->m_session_status.c_str() << 
"',CONVERTTIMESTAMP(";
+                               ss << pSessionInfo->m_session_start_utc_ts << 
"),";
+                                if (pSessionInfo->m_session_end_utc_ts > 0)
+                                        ss << "CONVERTTIMESTAMP(" << 
pSessionInfo->m_session_end_utc_ts << "),";
+                                else
+                                        ss << "NULL,";
+                               ss << pSessionInfo->m_user_id << ",'";
+                               ss << pSessionInfo->m_user_name.c_str() << 
"','";
+                               ss << pSessionInfo->m_role_name.c_str() << 
"','";
+                               ss << pSessionInfo->m_client_name.c_str() << 
"','";
+                               ss << pSessionInfo->m_client_user_name.c_str() 
<< "','";
+                               ss << pSessionInfo->m_application_name.c_str() 
<< "','";
+                               ss << pSessionInfo->m_profile_name.c_str() << 
"','";
+                                ss << pSessionInfo->m_sla_name.c_str() << "',";
+                               ss << pSessionInfo->m_total_odbc_exection_time 
<< ",";
+                               ss << pSessionInfo->m_total_odbc_elapsed_time 
<< ",";
+                               ss << 
pSessionInfo->m_total_insert_stmts_executed << ",";
+                               ss << 
pSessionInfo->m_total_delete_stmts_executed << ",";
+                               ss << 
pSessionInfo->m_total_update_stmts_executed << ",";
+                               ss << 
pSessionInfo->m_total_select_stmts_executed << ",";
+                               ss << pSessionInfo->m_total_catalog_stmts << 
",";
+                               ss << pSessionInfo->m_total_prepares << ",";
+                               ss << pSessionInfo->m_total_executes << ",";
+                               ss << pSessionInfo->m_total_fetches << ",";
+                               ss << pSessionInfo->m_total_closes << ",";
+                               ss << pSessionInfo->m_total_execdirects << ",";
+                               ss << pSessionInfo->m_total_errors << ",";
+                               ss << pSessionInfo->m_total_warnings << ",";
+                               ss << 
pSessionInfo->m_total_login_elapsed_time_mcsec << ",";
+                               ss << 
pSessionInfo->m_ldap_login_elapsed_time_mcsec << ",";
+                               ss << 
pSessionInfo->m_sql_user_elapsed_time_mcsec << ",";
+                               ss << 
pSessionInfo->m_search_connection_elapsed_time_mcsec << ",";
+                               ss << pSessionInfo->m_search_elapsed_time_mcsec 
<< ",";
+                               ss << 
pSessionInfo->m_authentication_connection_elapsed_time_mcsec << ",";
+                               ss << 
pSessionInfo->m_authentication_elapsed_time_mcsec << ")";
 
                        }
                        else if (repos_stats.m_pub_type == 
PUB_TYPE_STATEMENT_NEW_QUERYEXECUTION)
@@ -601,6 +603,7 @@ static void* SessionWatchDog(void* arg)
                                                         1, "Invalid data 
pointer founded in SessionWatchDog()");
                                        break;
                                }
+                                lastUpdatedTime = JULIANTIMESTAMP();
 
                                ss << "insert into 
Trafodion.\"_REPOS_\".metric_query_table values(";
                                ss << pQueryAdd->m_instance_id << ",";
@@ -616,6 +619,7 @@ static void* SessionWatchDog(void* arg)
                                ss << pQueryAdd->m_process_name.c_str() << 
"',CONVERTTIMESTAMP(";
                                ss << pQueryAdd->m_exec_start_utc_ts << "),'";
                                ss << pQueryAdd->m_query_id.c_str() << "','";
+                               ss << pQueryAdd->m_query_signature_id.c_str() 
<< "','";
                                ss << pQueryAdd->m_user_name.c_str() << "','";
                                ss << pQueryAdd->m_role_name.c_str() << "',";
                                ss << pQueryAdd->m_start_priority << ",'";
@@ -742,7 +746,14 @@ static void* SessionWatchDog(void* arg)
                                ss << pQueryAdd->m_ovf_buffer_bytes_read << ",";
                                ss << pQueryAdd->m_num_nodes << ",";
                                ss << pQueryAdd->m_udr_process_busy_time << ",";
-                               ss << pQueryAdd->m_pertable_stats << ")";
+                               ss << pQueryAdd->m_pertable_stats << ",";
+                               if ( lastUpdatedTime > 0)
+                                        ss << "CONVERTTIMESTAMP(" << 
lastUpdatedTime << ")";
+                                else
+                                        ss << "NULL";
+
+                                ss <<")";
+
                        }
                        else if (repos_stats.m_pub_type == 
PUB_TYPE_STATEMENT_UPDATE_QUERYEXECUTION)
                        {
@@ -755,6 +766,7 @@ static void* SessionWatchDog(void* arg)
                                        break;
                                }
 
+                                lastUpdatedTime = JULIANTIMESTAMP();
                                ss << "update 
Trafodion.\"_REPOS_\".metric_query_table ";
                                ss << "set STATEMENT_TYPE= '" << 
pQueryUpdate->m_statement_type.c_str() << "',";
                                ss << "STATEMENT_SUBTYPE= '" << 
pQueryUpdate->m_statement_subtype.c_str() << "',";
@@ -811,6 +823,7 @@ static void* SessionWatchDog(void* arg)
                                ss << "NUM_NODES= " << 
pQueryUpdate->m_num_nodes << ",";
                                ss << "UDR_PROCESS_BUSY_TIME= " << 
pQueryUpdate->m_udr_process_busy_time << ",";
                                ss << "PERTABLE_STATS= " << 
pQueryUpdate->m_pertable_stats;
+                                ss << "LAST_UPDATED_TIME= CONVERTTIMESTAMP(" 
<< lastUpdatedTime << ")";
                                ss << " where QUERY_ID = '" << 
pQueryUpdate->m_query_id.c_str() << "'";
                                ss << " and EXEC_START_UTC_TS = 
CONVERTTIMESTAMP(" << pQueryUpdate->m_exec_start_utc_ts << ")";
                        }
@@ -887,7 +900,9 @@ static void* SessionWatchDog(void* arg)
                                ss << pAggrStat->m_delta_ddl_errors << ",";
                                ss << pAggrStat->m_delta_util_errors << ",";
                                ss << pAggrStat->m_delta_catalog_errors << ",";
-                               ss << pAggrStat->m_delta_other_errors << ")";
+                               ss << pAggrStat->m_delta_other_errors << ",";
+                               ss << pAggrStat->m_average_response_time << ",";
+                               ss << pAggrStat->m_throughput_per_sec << ")";
                        }
                        else if (repos_stats.m_pub_type == 
PUB_TYPE_SESSION_UPDATE_AGGREGATION || repos_stats.m_pub_type == 
PUB_TYPE_SESSION_END_AGGREGATION)
                        {
@@ -944,7 +959,9 @@ static void* SessionWatchDog(void* arg)
                                ss << "DELTA_DDL_ERRORS = " << 
pAggrStat->m_delta_ddl_errors << ",";
                                ss << "DELTA_UTIL_ERRORS = " << 
pAggrStat->m_delta_util_errors << ",";
                                ss << "DELTA_CATALOG_ERRORS = " << 
pAggrStat->m_delta_catalog_errors << ",";
-                               ss << "DELTA_OTHER_ERRORS = " << 
pAggrStat->m_delta_other_errors;
+                               ss << "DELTA_OTHER_ERRORS = " << 
pAggrStat->m_delta_other_errors << ",";
+                               ss << "AVERAGE_RESPONSE_TIME = " << 
pAggrStat->m_average_response_time << ",";
+                               ss << "THROUGHPUT_PER_SECOND = " << 
pAggrStat->m_throughput_per_sec;
                                ss << " where SESSION_START_UTC_TS = 
CONVERTTIMESTAMP(" << pAggrStat->m_session_start_utc_ts << ")";
                                ss << " and SESSION_ID = '" << 
pAggrStat->m_sessionId.c_str() << "'";
 
@@ -9477,17 +9494,17 @@ short qrysrvc_ExecuteFinished(
        return 0;
 }
 
-void sendSessionEnd(std::tr1::shared_ptr<SESSION_END> pSession_info)
+void sendSessionStats(std::tr1::shared_ptr<SESSION_INFO> pSession_info)
 {
        REPOS_STATS session_stats;
        session_stats.m_pSessionStats = pSession_info;
-       session_stats.m_pub_type = PUB_TYPE_SESSION_END;
        if (record_session_done)
        {
-               //boost::thread thrd(&SessionWatchDog);
+               session_stats.m_pub_type = PUB_TYPE_SESSION_END;
                pthread_t thrd;
                pthread_create(&thrd, NULL, SessionWatchDog, NULL);
-       }
+       } else
+                session_stats.m_pub_type = PUB_TYPE_SESSION_START;
        repos_queue.push_task(session_stats);
 }
 
@@ -9498,7 +9515,6 @@ void sendAggrStats(pub_struct_type pub_type, 
std::tr1::shared_ptr<SESSION_AGGREG
        aggr_stats.m_pub_type = pub_type;
        if (record_session_done)
        {
-               //boost::thread thrd(&SessionWatchDog);
                pthread_t thrd;
                pthread_create(&thrd, NULL, SessionWatchDog, NULL);
        }
@@ -9512,7 +9528,6 @@ void sendQueryStats(pub_struct_type pub_type, 
std::tr1::shared_ptr<STATEMENT_QUE
        query_stats.m_pub_type = pub_type;
        if (record_session_done)
        {
-               //boost::thread thrd(&SessionWatchDog);
                pthread_t thrd;
                pthread_create(&thrd, NULL, SessionWatchDog, NULL);
        }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsSession.cpp
----------------------------------------------------------------------
diff --git a/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsSession.cpp 
b/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsSession.cpp
index c82ea80..c33c4b7 100644
--- a/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsSession.cpp
+++ b/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsSession.cpp
@@ -30,7 +30,7 @@
 #include "ResStatisticsStatement.h"
 
 void sendAggrStats(pub_struct_type pub_type, 
std::tr1::shared_ptr<SESSION_AGGREGATION> pAggr_info);
-void sendSessionEnd(std::tr1::shared_ptr<SESSION_END> pSession_info);
+void sendSessionStats(std::tr1::shared_ptr<SESSION_INFO> pSession_info);
 
 using namespace SRVR;
 void ResStatisticsSession::start(struct collect_info *setinit)
@@ -102,12 +102,61 @@ void ResStatisticsSession::start(struct collect_info 
*setinit)
                entryTime_ts = entryTime;
                if( srvrGlobal->m_bStatisticsEnabled && 
srvrGlobal->m_statisticsPubType == STATISTICS_AGGREGATED )
                {
+                        sendSessionInfo(session_status, startTime_ts, 
endTime_ts);
                        std::tr1::shared_ptr<SESSION_AGGREGATION> pAggr_info = 
getAggrStats();
                        sendAggrStats(PUB_TYPE_SESSION_START_AGGREGATION, 
pAggr_info);
                }
        }
 }
 
+void ResStatisticsSession::sendSessionInfo(string session_status, long long 
startTime, long long endTime)
+{
+        std::tr1::shared_ptr<SESSION_INFO> pSession_info = 
std::tr1::shared_ptr<SESSION_INFO>(new SESSION_INFO);
+        *pSession_info = {0};
+        
+       pSession_info->m_process_id = srvrGlobal->process_id;
+       pSession_info->m_thread_id = srvrGlobal->receiveThrId;
+       pSession_info->m_node_id = srvrGlobal->m_NodeId;
+       pSession_info->m_ip_address_id = srvrGlobal->IpAddress;
+       pSession_info->m_process_name = srvrGlobal->m_ProcName;
+       pSession_info->m_sessionId = srvrGlobal->sessionId;
+       pSession_info->m_session_status = session_status;
+       pSession_info->m_session_start_utc_ts = startTime;
+       pSession_info->m_session_end_utc_ts = endTime;
+       pSession_info->m_user_id = srvrGlobal->userID;
+       pSession_info->m_user_name = srvrGlobal->userSID;
+       pSession_info->m_role_name = srvrGlobal->QSRoleName;
+       pSession_info->m_client_name = srvrGlobal->ClientComputerName;
+       pSession_info->m_client_user_name = resCollectinfo.clientUserName;
+       pSession_info->m_application_name = srvrGlobal->ApplicationName;
+        UpdateStringText(pSession_info->m_application_name);
+       pSession_info->m_profile_name = srvrGlobal->mappedProfileName;
+       pSession_info->m_sla_name= srvrGlobal->mappedSLAName;
+       pSession_info->m_total_odbc_exection_time = totalOdbcExecutionTime;
+       pSession_info->m_total_odbc_elapsed_time = totalOdbcElapseTime;
+       pSession_info->m_total_insert_stmts_executed = totalInsertStatements;
+       pSession_info->m_total_delete_stmts_executed = totalDeleteStatements;
+       pSession_info->m_total_update_stmts_executed = totalUpdateStatements;
+       pSession_info->m_total_select_stmts_executed = totalSelectStatements;
+       pSession_info->m_total_catalog_stmts = totalCatalogStatements;
+       pSession_info->m_total_prepares = totalPrepares;
+       pSession_info->m_total_executes = totalExecutes;
+       pSession_info->m_total_fetches = totalFetches;
+       pSession_info->m_total_closes = totalCloses;
+       pSession_info->m_total_execdirects = totalExecDirects;
+       pSession_info->m_total_errors = totalErrors;
+       pSession_info->m_total_warnings = totalWarnings;
+       pSession_info->m_total_login_elapsed_time_mcsec = 
resCollectinfo.totalLoginTime;
+       pSession_info->m_ldap_login_elapsed_time_mcsec = 
resCollectinfo.ldapLoginTime;
+       pSession_info->m_sql_user_elapsed_time_mcsec = 
resCollectinfo.sqlUserTime;
+       pSession_info->m_search_connection_elapsed_time_mcsec = 
resCollectinfo.searchConnectionTime;
+       pSession_info->m_search_elapsed_time_mcsec = resCollectinfo.searchTime;
+       pSession_info->m_authentication_connection_elapsed_time_mcsec = 
resCollectinfo.authenticationConnectionTime;
+       pSession_info->m_authentication_elapsed_time_mcsec =  
resCollectinfo.authenticationTime;
+
+        sendSessionStats(pSession_info);
+}
+
 void ResStatisticsSession::end()
 {
        char ts[25];
@@ -151,12 +200,14 @@ void ResStatisticsSession::end()
        }
        stringstream ss;
        ss << "File: " << __FILE__ << ", Fuction: " << __FUNCTION__ << ", Line: 
" << __LINE__ << ", SESSIONID: " << srvrGlobal->sessionId;
-       string session_status = "END";
        int64 endTime = JULIANTIMESTAMP();
 
        endTime_ts = endTime;
 
-       std::tr1::shared_ptr<SESSION_END> pSession_info = 
std::tr1::shared_ptr<SESSION_END>(new SESSION_END);
+/*
+       string session_status = "END";
+       
+       std::tr1::shared_ptr<SESSION_INFO> pSession_info = 
std::tr1::shared_ptr<SESSION_INFO>(new SESSION_INFO);
        *pSession_info = {0};
 
        pSession_info->m_process_id = srvrGlobal->process_id;
@@ -174,7 +225,9 @@ void ResStatisticsSession::end()
        pSession_info->m_client_name = srvrGlobal->ClientComputerName;
        pSession_info->m_client_user_name = resCollectinfo.clientUserName;
        pSession_info->m_application_name = srvrGlobal->ApplicationName;
-    UpdateStringText(pSession_info->m_application_name);
+        UpdateStringText(pSession_info->m_application_name);
+       pSession_info->m_profile_name = srvrGlobal->mappedProfileName;
+       pSession_info->m_sla_name= srvrGlobal->mappedSLAName;
        pSession_info->m_total_odbc_exection_time = totalOdbcExecutionTime;
        pSession_info->m_total_odbc_elapsed_time = totalOdbcElapseTime;
        pSession_info->m_total_insert_stmts_executed = totalInsertStatements;
@@ -197,6 +250,7 @@ void ResStatisticsSession::end()
        pSession_info->m_authentication_connection_elapsed_time_mcsec = 
resCollectinfo.authenticationConnectionTime;
        pSession_info->m_authentication_elapsed_time_mcsec =  
resCollectinfo.authenticationTime;
 
+*/
        if ( srvrGlobal->m_bStatisticsEnabled )
        {
                if( srvrGlobal->m_statisticsPubType == STATISTICS_AGGREGATED )
@@ -204,7 +258,8 @@ void ResStatisticsSession::end()
                        std::tr1::shared_ptr<SESSION_AGGREGATION> pAggr_info = 
getAggrStats();
                        sendAggrStats(PUB_TYPE_SESSION_END_AGGREGATION, 
pAggr_info);
                }
-               sendSessionEnd(pSession_info);
+               //sendSessionStats(pSession_info);
+                sendSessionInfo("END", startTime_ts, endTime_ts);
        }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsSession.h
----------------------------------------------------------------------
diff --git a/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsSession.h 
b/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsSession.h
index a9050e6..bc84c82 100644
--- a/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsSession.h
+++ b/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsSession.h
@@ -419,6 +419,7 @@ public:
                                        
                SessionWlStats                                                  
sessWlStats;
 public:
+        void sendSessionInfo(string, long long,long long);
         void start(struct collect_info  *setInit);
         void end();
         void accumulateStatistics(passSession *ps);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsStatement.cpp
----------------------------------------------------------------------
diff --git a/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsStatement.cpp 
b/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsStatement.cpp
index bbaf9b8..3293f54 100644
--- a/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsStatement.cpp
+++ b/core/conn/odbc/src/odbc/nsksrvrcore/ResStatisticsStatement.cpp
@@ -2392,7 +2392,7 @@ void ResStatisticsStatement::SendQueryStats(bool bStart, 
SRVR_STMT_HDL *pSrvrStm
        pQuery_info->m_session_id = srvrGlobal->sessionId;
        pQuery_info->m_client_name = srvrGlobal->ClientComputerName;
        pQuery_info->m_application_name = srvrGlobal->ApplicationName;
-    UpdateStringText(pQuery_info->m_application_name);
+        UpdateStringText(pQuery_info->m_application_name);
        pQuery_info->m_statement_id = statementId;
        pQuery_info->m_statement_type = 
getStatementType(pSrvrStmt->sqlQueryType);
        //SUBMIT_UTC_TS=EXEC_START_UTC_TS for now
@@ -2523,6 +2523,7 @@ void ResStatisticsStatement::SendQueryStats(bool bStart, 
SRVR_STMT_HDL *pSrvrStm
        //pQuery_info->m_num_nodes = ;
        pQuery_info->m_udr_process_busy_time = ProcessBusyTime;
        pQuery_info->m_pertable_stats = perTableRowSize;
+        pQuery_info->m_last_updated_time = pQuery_info->m_last_updated_time;
 
        if (!pubStarted)
                sendQueryStats(PUB_TYPE_STATEMENT_NEW_QUERYEXECUTION, 
pQuery_info);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/sqf/sql/scripts/restcheck
----------------------------------------------------------------------
diff --git a/core/sqf/sql/scripts/restcheck b/core/sqf/sql/scripts/restcheck
index a49c730..f427d0b 100755
--- a/core/sqf/sql/scripts/restcheck
+++ b/core/sqf/sql/scripts/restcheck
@@ -62,7 +62,6 @@ if [[ $actual_restserver_cnt > 0 ]]; then
    echo "TrafodionRest is up on node: "$restserver_node",pid: "$restserver_pid
 fi
 
-echo
 echo -e "Process\t\tActual\t"
 echo -e "---------\t------\t"
 echo -e "TrafodionRest\t$actual_restserver_cnt\t"

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/sql/common/ComSmallDefs.h
----------------------------------------------------------------------
diff --git a/core/sql/common/ComSmallDefs.h b/core/sql/common/ComSmallDefs.h
index 19c7dde..74480e1 100644
--- a/core/sql/common/ComSmallDefs.h
+++ b/core/sql/common/ComSmallDefs.h
@@ -187,8 +187,8 @@ typedef NABoolean               ComBoolean;
 // length of explain_plan column in metric_query_table.
 // explain_plan greater than this length are chunked and store in multiple
 // rows in metric_text_table
-#define REPOS_MAX_EXPLAIN_PLAN_LEN 200000
-#define REPOS_MAX_EXPLAIN_PLAN_LEN_STR "200000"
+#define REPOS_MAX_EXPLAIN_PLAN_LEN 1000000
+#define REPOS_MAX_EXPLAIN_PLAN_LEN_STR "1000000"
 
 /******    *****/
 enum ComActivationTime { COM_UNKNOWN_TIME, COM_BEFORE , COM_AFTER };

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/sql/regress/seabase/EXPECTED011
----------------------------------------------------------------------
diff --git a/core/sql/regress/seabase/EXPECTED011 
b/core/sql/regress/seabase/EXPECTED011
index 6f88f5a..83d1a68 100644
--- a/core/sql/regress/seabase/EXPECTED011
+++ b/core/sql/regress/seabase/EXPECTED011
@@ -1292,6 +1292,8 @@ METRIC_TEXT_TABLE
       DROPPABLE
   , QUERY_ID                         CHAR(160) CHARACTER SET ISO88591 COLLATE
       DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+  , QUERY_SIGNATURE_ID               CHAR(160) CHARACTER SET ISO88591 COLLATE
+      DEFAULT DEFAULT NULL
   , USER_NAME                        CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
       DEFAULT DEFAULT NULL
   , ROLE_NAME                        CHAR(256 BYTES) CHARACTER SET UTF8 COLLATE
@@ -1398,7 +1400,7 @@ METRIC_TEXT_TABLE
       COLLATE DEFAULT DEFAULT NULL
   , QUERY_TEXT                       VARCHAR(50000 CHARS) CHARACTER SET UTF8
       COLLATE DEFAULT DEFAULT NULL
-  , EXPLAIN_PLAN                     VARCHAR(200000) CHARACTER SET ISO88591
+  , EXPLAIN_PLAN                     VARCHAR(1000000) CHARACTER SET ISO88591
       COLLATE DEFAULT DEFAULT NULL
   , LAST_ERROR_BEFORE_AQR            INT DEFAULT NULL
   , DELAY_TIME_BEFORE_AQR_SEC        LARGEINT DEFAULT NULL
@@ -1424,6 +1426,7 @@ METRIC_TEXT_TABLE
   , NUM_NODES                        LARGEINT DEFAULT NULL
   , UDR_PROCESS_BUSY_TIME            LARGEINT DEFAULT NULL
   , PERTABLE_STATS                   INT DEFAULT NULL
+  , LAST_UPDATED_TIME                TIMESTAMP(6) DEFAULT NULL
   , "_SALT_"                         INT UNSIGNED NO DEFAULT NOT NULL NOT
       DROPPABLE
   )
@@ -1661,9 +1664,7 @@ LC   RC   OP   OPERATOR              OPT       
DESCRIPTION           CARD
 --- SQL command prepared.
 >>store explain for explstmt4 in repository;
 
-*** ERROR[8033] Explain information is too large to be stored in repository.
-
---- SQL operation failed with errors.
+--- SQL operation complete.
 >>explain options 'f' explstmt4;
 
 LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp 
b/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
index 43fd8d3..89b2f8c 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
@@ -47,8 +47,17 @@ short CmpSeabaseDDL::createRepos(ExeCliInterface * 
cliInterface)
 
   NABoolean xnWasStartedHere = FALSE;
 
+  cliRC = cliInterface->holdAndSetCQD
+    ("TRAF_MAX_CHARACTER_COL_LENGTH", "1000000");
+
+  if (cliRC < 0)
+    {
+      cliInterface->retrieveSQLDiagnostics(CmpCommon::diags());
+      return -1;
+    }
+
   if (beginXnIfNotInProgress(cliInterface, xnWasStartedHere))
-    return -1;
+    goto label_error;
 
   // Create the _REPOS_ schema
   str_sprintf(queryBuf, "create schema %s.\"%s\" ; ",
@@ -66,7 +75,7 @@ short CmpSeabaseDDL::createRepos(ExeCliInterface * 
cliInterface)
     }
 
   if (endXnIfStartedHere(cliInterface, xnWasStartedHere, cliRC) < 0)
-    return -1;
+    goto label_error;
 
   for (Int32 i = 0; i < sizeof(allReposUpgradeInfo)/sizeof(MDUpgradeInfo); i++)
     {
@@ -100,7 +109,7 @@ short CmpSeabaseDDL::createRepos(ExeCliInterface * 
cliInterface)
       NADELETEBASIC(gluedQuery, STMTHEAP);
 
       if (beginXnIfNotInProgress(cliInterface, xnWasStartedHere))
-        return -1;
+        goto label_error;
       
       cliRC = cliInterface->executeImmediate(queryBuf);
       if (cliRC == -1390)  // table already exists
@@ -114,11 +123,16 @@ short CmpSeabaseDDL::createRepos(ExeCliInterface * 
cliInterface)
        }
 
       if (endXnIfStartedHere(cliInterface, xnWasStartedHere, cliRC) < 0)
-        return -1;
+        goto label_error;
       
     } // for
   
+  cliRC = cliInterface->restoreCQD("TRAF_MAX_CHARACTER_COL_LENGTH");
   return 0;
+
+  label_error:
+   cliRC = cliInterface->restoreCQD("TRAF_MAX_CHARACTER_COL_LENGTH");
+   return -1;
 }
 
 short CmpSeabaseDDL::dropRepos(ExeCliInterface * cliInterface,

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0b7663e4/core/sql/sqlcomp/CmpSeabaseDDLrepos.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLrepos.h 
b/core/sql/sqlcomp/CmpSeabaseDDLrepos.h
index c4c8da4..f546f2c 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLrepos.h
+++ b/core/sql/sqlcomp/CmpSeabaseDDLrepos.h
@@ -53,6 +53,7 @@ static const QString createMetricQueryTable[] =
  {" process_name                           char(32) character set iso88591 
casespecific default null serialized, "},
  {" exec_start_utc_ts                      timestamp(6) no default not null 
not droppable not serialized, "}, 
  {" query_id                               char("MAX_QUERY_ID_LEN_STR") 
character set iso88591 casespecific no default not null not droppable 
serialized, "},
+ {" query_signature_id                     char("MAX_QUERY_ID_LEN_STR") 
character set iso88591 casespecific default null serialized, "},
  {" user_name                              char(256 bytes) character set utf8 
casespecific default null serialized, "},
  {" role_name                              char(256 bytes) character set utf8 
casespecific default null serialized, "},
  {" start_priority                         integer unsigned default null 
serialized, "},
@@ -164,7 +165,8 @@ static const QString createMetricQueryTable[] =
  {" ovf_buffer_bytes_read                  largeint                          
default null serialized, "},
  {" num_nodes                              largeint                          
default null serialized, "},
  {" udr_process_busy_time                  largeint                          
default null serialized, "},
- {" pertable_stats                         integer                           
default null serialized "},
+ {" pertable_stats                         integer                           
default null serialized, "},
+ {" last_updated_time                      timestamp(6)                      
default null not serialized"},
  {" "},
  {" ) "},
  {" primary key ( exec_start_utc_ts, query_id ) salt using 8 partitions on ( 
query_id ) "},
@@ -200,6 +202,8 @@ static const QString createMetricSessionTable[] =
  {" client_name                            varchar(256) character set utf8 
casespecific  default null serialized, "},
  {" client_user_name                       char(256 bytes)     character set 
utf8 casespecific  default null serialized, "},
  {" application_name                       char(130)     character set 
iso88591 casespecific  default null serialized, "},
+ {" profile_name                           varchar(130) character set utf8 
casespecific  default null serialized, "},
+ {" sla_name                               varchar(130) character set utf8 
casespecific  default null serialized, "},
  {" total_execution_time                   largeint                          
default null serialized, "},
  {" total_elapsed_time                     largeint                          
default null serialized, "},
  {" total_insert_stmts_executed            largeint                          
default null serialized, "},
@@ -246,7 +250,7 @@ static const QString createMetricQueryAggrTable[] =
  {" sequence_number                        integer unsigned default null 
serialized, "},                 
  {" process_name                           char(32) character set iso88591 
casespecific default null serialized, "},
  {" session_id                             char(108)     character set 
iso88591 casespecific no default not null not droppable serialized, "},
- {" session_start_utc_ts               timestamp(6) no default not null not 
droppable not serialized, "},
+ {" session_start_utc_ts                   timestamp(6) no default not null 
not droppable not serialized, "},
  {" aggregation_last_update_utc_ts         timestamp(6)                      
default null not serialized, "},
  {" aggregation_last_elapsed_time          largeint                          
default null serialized, "},
  {" user_id                                largeint                          
default null serialized, "},
@@ -255,56 +259,49 @@ static const QString createMetricQueryAggrTable[] =
  {" client_name                            varchar(256) character set utf8 
casespecific  default null serialized, "},
  {" client_user_name                       char(256 bytes)     character set 
utf8 casespecific  default null serialized, "},
  {" application_name                       char(130)     character set 
iso88591 casespecific  default null serialized, "},
- {" total_est_rows_accessed                       largeint default null 
serialized, "},
+ {" total_est_rows_accessed               largeint default null serialized, "},
  {" total_est_rows_used                           largeint default null 
serialized, "},
- {" total_rows_retrieved                          largeint default null 
serialized, "},
+ {" total_rows_retrieved                  largeint default null serialized, "},
  {" total_num_rows_iud                    largeint default null serialized, "},
- {" total_selects                                 largeint default null 
serialized, "},
+ {" total_selects                         largeint default null serialized, "},
  {" total_inserts                         largeint default null serialized, "},
  {" total_updates                         largeint default null serialized, "},
  {" total_deletes                         largeint default null serialized, "},
-
  {" total_ddl_stmts                       largeint default null serialized, "},
  {" total_util_stmts                      largeint default null serialized, "},
  {" total_catalog_stmts                           largeint default null 
serialized, "},
  {" total_other_stmts                     largeint default null serialized, "},
-
- {" total_insert_errors                                  largeint default null 
serialized, "},
- {" total_delete_errors                                  largeint default null 
serialized, "},
+ {" total_insert_errors                           largeint default null 
serialized, "},
+ {" total_delete_errors                           largeint default null 
serialized, "},
  {" total_update_errors                           largeint default null 
serialized, "},
  {" total_select_errors                           largeint default null 
serialized, "},
-
- {" total_ddl_errors                             largeint default null 
serialized, "},
- {" total_util_errors                            largeint default null 
serialized, "},
- {" total_catalog_errors                          largeint default null 
serialized, "},
+ {" total_ddl_errors                      largeint default null serialized, "},
+ {" total_util_errors                     largeint default null serialized, "},
+ {" total_catalog_errors                  largeint default null serialized, "},
  {" total_other_errors                    largeint default null serialized, "},
-
- {" delta_estimated_rows_accessed                         largeint default 
null serialized, "},
- {" delta_estimated_rows_used                     largeint default null 
serialized, "},
+ {" delta_estimated_rows_accessed         largeint default null serialized, "},
+ {" delta_estimated_rows_used             largeint default null serialized, "},
  {" delta_rows_accessed                           largeint default null 
serialized, "},
- {" delta_rows_retrieved                          largeint default null 
serialized, "},
+ {" delta_rows_retrieved                  largeint default null serialized, "},
  {" delta_num_rows_iud                    largeint default null serialized, "},
-
  {" delta_selects                         largeint default null serialized, "},
  {" delta_inserts                         largeint default null serialized, "},
  {" delta_updates                         largeint default null serialized, "},
  {" delta_deletes                         largeint default null serialized, "},
-
- {" delta_ddl_stmts                              largeint default null 
serialized, "},
- {" delta_util_stmts                             largeint default null 
serialized, "},
+ {" delta_ddl_stmts                       largeint default null serialized, "},
+ {" delta_util_stmts                      largeint default null serialized, "},
  {" delta_catalog_stmts                           largeint default null 
serialized, "},
  {" delta_other_stmts                     largeint default null serialized, "},
-
- {" delta_insert_errors                                  largeint default null 
serialized, "},
- {" delta_delete_errors                                  largeint default null 
serialized, "},
+ {" delta_insert_errors                           largeint default null 
serialized, "},
+ {" delta_delete_errors                           largeint default null 
serialized, "},
  {" delta_update_errors                           largeint default null 
serialized, "},
  {" delta_select_errors                           largeint default null 
serialized, "},
-
- {" delta_ddl_errors                             largeint default null 
serialized, "},
- {" delta_util_errors                            largeint default null 
serialized, "},
- {" delta_catalog_errors                          largeint default null 
serialized, "},
- {" delta_other_errors                    largeint default null serialized "},
-
+ {" delta_ddl_errors                      largeint default null serialized, "},
+ {" delta_util_errors                     largeint default null serialized, "},
+ {" delta_catalog_errors                  largeint default null serialized, "},
+ {" delta_other_errors                    largeint default null serialized, "},
+ {" average_response_time                  largeint default null serialized, 
"},
+ {" throughput_per_second                  largeint default null serialized "},
  {" ) "},
  {" primary key ( session_start_utc_ts, session_id ) salt using 8 partitions 
on ( session_id ) "},
  {" hbase_options ( DATA_BLOCK_ENCODING = 'FAST_DIFF', COMPRESSION = 'GZ' ) "},
@@ -318,7 +315,7 @@ static const QString createMetricTextTable[] =
   {
     {" create table %s.\"%s\"."REPOS_METRIC_TEXT_TABLE" "},
     {" ( "},
-    {"  query_id                               char("MAX_QUERY_ID_LEN_STR") 
character set iso88591 casespecific no default not null not droppable 
serialized, "},
+    {"  query_id     char("MAX_QUERY_ID_LEN_STR") character set iso88591 
casespecific no default not null not droppable serialized, "},
     {"   text_type int not null serialized, "},
     {"   sub_id int not null serialized, "},
     {"   seq_num int not null serialized, "},


Reply via email to