[02/10] incubator-trafodion git commit: metadata access performance improvement for accessing traf objects

2016-08-02 Thread ansharma
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/sqlcat/readRealArk.cpp
--
diff --git a/core/sql/sqlcat/readRealArk.cpp b/core/sql/sqlcat/readRealArk.cpp
index 5e04877..e49553c 100644
--- a/core/sql/sqlcat/readRealArk.cpp
+++ b/core/sql/sqlcat/readRealArk.cpp
@@ -22,7 +22,7 @@
  *
  *
  * File: readRealArk.C
- * Description:  This module converts SOL based meta-data to desc_struct
+ * Description:  This module converts SOL based meta-data to TrafDesc
  *   based meta-data.
  *
  * Created:  11/20/96
@@ -43,6 +43,7 @@
 #include "CmpStatement.h" 
 #include "BaseTypes.h"
 #include "readRealArk.h"
+#include "TrafDDLdesc.h"
 
 // Copy a string.  A null terminated buffer is returned.
 // Uses HEAP (StatementHeap) of CmpCommon!
@@ -57,148 +58,59 @@ static char *copyString(const ComString ,
 
 
 // ---
-// Allocate one of the primitive structs and initialize to all zeroes.
-// Uses HEAP (StatementHeap) of CmpCommon!
-// ---
-desc_struct *readtabledef_allocate_desc(desc_nodetype nodetype)
-{
-  size_t size = 0;
-
-  switch (nodetype)
-{
-case DESC_CHECK_CONSTRNTS_TYPE:
-  size = sizeof(check_constrnts_desc_struct);
-  break;
-case DESC_COLUMNS_TYPE:
-  size = sizeof(columns_desc_struct);
-  break;
-case DESC_CONSTRNTS_TYPE:
-  size = sizeof(constrnts_desc_struct);
-  break;
-case DESC_CONSTRNT_KEY_COLS_TYPE:
-  size = sizeof(constrnt_key_cols_desc_struct);
-  break;
-case DESC_FILES_TYPE:
-  size = sizeof(files_desc_struct);
-  break;
-case DESC_HISTOGRAM_TYPE:
-  size = sizeof(histogram_desc_struct);
-  break;
-case DESC_HIST_INTERVAL_TYPE:
-  size = sizeof(hist_interval_desc_struct);
-  break;
-case DESC_INDEXES_TYPE:
-  size = sizeof(indexes_desc_struct);
-  break;
-case DESC_KEYS_TYPE:
-  size = sizeof(keys_desc_struct);
-  break;
-case DESC_PARTNS_TYPE:
-  size = sizeof(partns_desc_struct);
-  break;
-case DESC_REF_CONSTRNTS_TYPE:
-  size = sizeof(ref_constrnts_desc_struct);
-  break;
-case DESC_TABLE_TYPE:
-  size = sizeof(table_desc_struct);
-  break;
-case DESC_VIEW_TYPE:
-  size = sizeof(view_desc_struct);
-  break;  
-case DESC_USING_MV_TYPE:  // MV 
-  size = sizeof(using_mv_desc_struct);
-  break;
-   case DESC_SEQUENCE_GENERATOR_TYPE:   
-  size = sizeof(sequence_generator_desc_struct);
-  break;
-   case DESC_ROUTINE_TYPE:
-  size = sizeof(routine_desc_struct);
-  break;
-   case DESC_LIBRARY_TYPE:
-  size = sizeof(library_desc_struct);
-  break;
-default:
-  assert(FALSE);
-  break;
-}
-  // DBG( cerr << "... rtd_allocate_desc " << nodetype << " " << size << " "; )
-
-  size += sizeof(header_desc_struct);
-  char *desc_buf = new HEAP char[size];
-
-  // Note that this puts literal zero bytes into floats and pointer fields,
-  // which are not portably equivalent to (float)0 and (void *)NULL.
-  // This is a better default than not initializing at all, however.
-  memset(desc_buf, 0, size);
-
-  desc_struct *desc_ptr = (desc_struct *)desc_buf;
-  desc_ptr->header.nodetype = nodetype;
-  desc_ptr->header.next = NULL;// example of portable 
initlzn.
-
-  // DBG( cerr << size << " " << desc_ptr << endl; )
-  return desc_ptr;
-
-}
-
-// ---
 // Allocate a column_desc and do simple initialization of several fields,
 // based on what's passed in.  Many of the fields we just default,
 // to either hardcoded values or to zero.  The callers,
 // in arkcmplib + generator + optimizer, can set additional fields afterwards.
 // ---
-desc_struct *readtabledef_make_column_desc(const char *tablename,
-  const char *colname,
-  Lng32 ,// INOUT
-  DataType datatype,
-  Lng32 length,
-  Lng32 ,   // INOUT
-  short null_flag,
-  NABoolean tablenameMustBeAllocated,
-  desc_struct *passedDesc,
-  SQLCHARSET_CODE datacharset
- )
+TrafDesc *TrafMakeColumnDesc(const char *tablename,
+const char *colname,
+Lng32 ,  // INOUT
+

[04/10] incubator-trafodion git commit: metadata access performance improvement for accessing traf objects

2016-08-02 Thread ansharma
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/NATable.h
--
diff --git a/core/sql/optimizer/NATable.h b/core/sql/optimizer/NATable.h
index 7a87344..8b5e3fe 100644
--- a/core/sql/optimizer/NATable.h
+++ b/core/sql/optimizer/NATable.h
@@ -60,7 +60,7 @@ class HistogramsCacheEntry;
 class BindWA;
 class MVInfoForDML;
 class NATableDB;
-struct desc_struct;
+struct TrafDesc;
 class HbaseCreateOption;
 class PrivMgrUserPrivs;
 class ExpHbaseInterface;
@@ -384,7 +384,7 @@ public:
   // -
 
   NATable(BindWA *bindWA, const CorrName , NAMemory *heap,
-  desc_struct *inTableDesc = NULL);
+  TrafDesc *inTableDesc = NULL);
 
   NATable(BindWA *bindWA, const CorrName , NAMemory *heap,
   struct hive_tbl_desc*);
@@ -489,7 +489,7 @@ public:
   NABoolean *isPkey = NULL,
NAList *reorderList = NULL);
 
-  const desc_struct * getPartnsDesc() const { return partnsDesc_; }
+  const TrafDesc * getPartnsDesc() const { return partnsDesc_; }
 
   // A not-found partition is an offline partition.
   NABoolean containsPartition(const NAString ) const
@@ -826,7 +826,7 @@ public:
 
   NABoolean insertMissingStatsWarning(CollIndexSet colsSet) const;
 
-  const desc_struct * getTableDesc() const { return tableDesc_; }
+  const TrafDesc * getTableDesc() const { return tableDesc_; }
   NAList * hbaseCreateOptions()
 { return clusteringIndex_->hbaseCreateOptions();}
 
@@ -1144,9 +1144,9 @@ private:
 
   ComSecurityKeySet secKeySet_ ;
 
-  desc_struct *partnsDesc_;
+  TrafDesc *partnsDesc_;
 
-  desc_struct *tableDesc_;
+  TrafDesc *tableDesc_;
 
   // hash table to store all the column positions for which missing
   // stats warning has been generated. We are not storing ValueIdSet
@@ -1254,7 +1254,7 @@ public:
 
   NATable * get(const ExtendedQualName* key, BindWA * bindWA = NULL, NABoolean 
findInCacheOnly = FALSE);
   NATable * get(CorrName& corrName, BindWA * bindWA,
-desc_struct *inTableDescStruct);
+TrafDesc *inTableDescStruct);
 
   void removeNATable2(CorrName , ComQiScope qiScope, 
   ComObjectType ot);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/RelExeUtil.cpp
--
diff --git a/core/sql/optimizer/RelExeUtil.cpp 
b/core/sql/optimizer/RelExeUtil.cpp
index 25fbdd4..0711aa7 100644
--- a/core/sql/optimizer/RelExeUtil.cpp
+++ b/core/sql/optimizer/RelExeUtil.cpp
@@ -68,6 +68,7 @@
 #include "StmtDDLPopulateIndex.h"
 #include "StmtDDLDropIndex.h"
 #include "StmtDDLAlterIndex.h"   // why don't we need StmtDDLAlterTable as 
well???
+#include "StmtDDLAlterSchema.h"
 #include "StmtDDLCreateDropSequence.h"
 #include "StmtDDLGrant.h"
 #include "StmtDDLRevoke.h"
@@ -156,7 +157,7 @@ RelExpr * GenericUtilExpr::bindNode(BindWA *bindWA)
get(());
   
   if (NOT naTable) {
-   desc_struct *tableDesc = createVirtualTableDesc();
+   TrafDesc *tableDesc = createVirtualTableDesc();
naTable = bindWA->getNATable(corrName, FALSE/*catmanUsages*/, 
tableDesc);
if (bindWA->errStatus())
  return this;
@@ -230,6 +231,7 @@ RelExpr * DDLExpr::copyTopNode(RelExpr *derivedNode, 
CollHeap* outHeap)
   result->objName_ = objName_;
   result->isVolatile_ = isVolatile_;
   result->isTable_ = isTable_;
+  result->isSchema_ = isSchema_;
   result->isIndex_ = isIndex_;
   result->isMV_ = isMV_;
   result->isView_ = isView_;
@@ -3903,6 +3905,7 @@ RelExpr * DDLExpr::bindNode(BindWA *bindWA)
   isHbase_ = FALSE;
   isNative_ = FALSE;
   hbaseDDLNoUserXn_ = FALSE;
+  isSchema_ = FALSE;
 
   NABoolean isSeq = FALSE;
 
@@ -3915,10 +3918,12 @@ RelExpr * DDLExpr::bindNode(BindWA *bindWA)
   NABoolean isPrivilegeMngt = FALSE;
   NABoolean isCreateSchema = FALSE;
   NABoolean isDropSchema = FALSE;
+  NABoolean isAlterSchema = FALSE;
   NABoolean isAuth = FALSE;
   NABoolean alterAddConstr = FALSE;
   NABoolean alterDropConstr = FALSE;
   NABoolean alterRenameTable = FALSE;
+  NABoolean alterStoredDesc = FALSE;
   NABoolean alterIdentityCol = FALSE;
   NABoolean alterColDatatype = FALSE;
   NABoolean alterColRename = FALSE;
@@ -4153,6 +4158,8 @@ RelExpr * DDLExpr::bindNode(BindWA *bindWA)
  alterColRename = TRUE;
else if 
(getExprNode()->castToStmtDDLNode()->castToStmtDDLAlterTableHBaseOptions())
  alterHBaseOptions = TRUE;
+   else if 
(getExprNode()->castToStmtDDLNode()->castToStmtDDLAlterTableStoredDesc())
+ alterStoredDesc = TRUE;
else
 otherAlters = TRUE;
 
@@ -4160,6 +4167,18 @@ RelExpr * DDLExpr::bindNode(BindWA *bindWA)
 getDDLNode()->castToStmtDDLNode()->castToStmtDDLAlterTable()->
 

[03/10] incubator-trafodion git commit: metadata access performance improvement for accessing traf objects

2016-08-02 Thread ansharma
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/sqlcat/ReadTableDef.cpp
--
diff --git a/core/sql/sqlcat/ReadTableDef.cpp b/core/sql/sqlcat/ReadTableDef.cpp
index c6b3ecb..31bafb7 100644
--- a/core/sql/sqlcat/ReadTableDef.cpp
+++ b/core/sql/sqlcat/ReadTableDef.cpp
@@ -56,28 +56,6 @@
 #include 
 #include 
 
-  
-#include "NLSConversion.h"
-
-#ifdef NA_LITTLE_ENDIAN
-  #include "ComSysUtils.h"
-  #define  ENCODE(xxx) xxx->encode()
-  #define  REVERSEBYTES(xxx)   xxx = (Lng32) reversebytes((ULng32) xxx)
-#else
-  #define  ENCODE(xxx)
-  #define  REVERSEBYTES(xxx)
-#endif
-
-#include "fs/feerrors.h"   // FEOK, FENOTOPEN, FEPATHDOWN, etc.
-
-extern "C" {
-int_16 TMF_SETTXHANDLE_(short *);
-int_16 TMF_GETTXHANDLE_(short *);
-int_16 GETTRANSID(short *);
-int_16 TMF_GETCURRENTTCBREF_(short *);
-int_16 BEGINTRANSACTION(int *tag);
-}
-
 #include "CmpCommon.h" // HEAP stuff
 #include "CmpContext.h"// CmpCommon::context()->readTableDef_
 #include "DefaultValidator.h"  // for ValidateCollationList
@@ -96,48 +74,6 @@ int_16 BEGINTRANSACTION(int *tag);
 extern Lng32 SQLCODE;
 
 //
-// Static variables declarations
-//
-
-
-#define NODETYPE_MXheader.nodetype   // desc_structPtr->NODETYPE_MX
-
-// MX SqlCat simulator xxx_desc_struct
-#define STRUCTMX(xxx)  xxx ## _desc_struct
-
-// MX SqlCat simulator DESC_XXX_TYPE
-#define TYPEMX(XXX)DESC_ ## XXX ## _TYPE
-
-// xxx_desc_struct * xxx = (xxx_desc_struct *) >body
-#define CASTMX(xxx)STRUCTMX(xxx) * xxx = (STRUCTMX(xxx) *)>body
-
-// Guardian LargeInt is little-endian:  least significant bits are on the 
right.
-// So mpvar[0] is to left of i.e. more significant than mpvar[1].
-//  Truncation error (64 to 32 bits overflow) in ReadTableDef $String0.
-// (If this #define is ever used, then create error message for .)
-#define FMT_LARGEINT(arr)  \
-   arr[0] << "," << arr[1] << endl
-
-#define COUT(var,fld)  \
-   cout << "  " << setw(20)\
-<< #fld << "  " << var->fld << endl
-
-// For compilers that don't cast enums to int  // NT_PORT mhr 03/14/97
-#define COUT_ENUM(var,fld) \
-   cout << "  " << setw(20)\
-<< #fld << "  " << (Int32)var->fld << endl
-
-#define COUT_STRING(var,fld)   \
-   if (var->fld) COUT(var,fld);\
-   else\
- cout << "  " << setw(20)  \
-  << #fld << " is null" << endl
-
-#define COUT_LARGEINT(var,fld) \
-   cout << "  " << setw(20)\
-<< #fld << "  " << FMT_LARGEINT(var->fld)
-
-//
 // Constructor
 //
 
@@ -158,343 +94,3 @@ ReadTableDef::~ReadTableDef()
 }
 
 
-
-//
-// displayTreeMX()
-//
-void ReadTableDef::displayTree(const desc_struct * top) const
-{
-  displayTreeMX(top, "");
-}
-
-void ReadTableDef::displayTreeMX(const desc_struct * top,
-  const char * caller) const
-{
-  if (top == NULL) return;
-
-  char title[50];
-  snprintf(title, sizeof(title),
-  ", type %d, address %p, parent %s\n",
-  top->NODETYPE_MX, (void *)top, caller);
-  #undef  TITLE
-  #define TITLE(XXX)cout << "### " << XXX << title; \
-strcpy(title, XXX)
-
-  cout.setf(ios::right);
-
-  switch (top->NODETYPE_MX)
-{
-case TYPEMX(CHECK_CONSTRNTS):
-  {
-TITLE("CHECK_CONSTRNTS");
-CASTMX(check_constrnts);
-COUT(check_constrnts, seqnumber);
-COUT_STRING(check_constrnts, constrnt_text);
-  }
-  break;
-
-case TYPEMX(COLUMNS):
-  {
-TITLE("COLUMNS");
-CASTMX(columns);
-COUT(columns, tablename);
-COUT(columns, colname);
-COUT(columns, colnumber);
-COUT(columns, datatype);
-COUT(columns, length);
-COUT(columns, scale);
-COUT(columns, precision);
-COUT_ENUM(columns, datetimestart);
-COUT_ENUM(columns, datetimeend);
-COUT(columns, datetimefractprec);
-

[05/10] incubator-trafodion git commit: metadata access performance improvement for accessing traf objects

2016-08-02 Thread ansharma
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/NATable.cpp
--
diff --git a/core/sql/optimizer/NATable.cpp b/core/sql/optimizer/NATable.cpp
index 098e514..eb68a51 100644
--- a/core/sql/optimizer/NATable.cpp
+++ b/core/sql/optimizer/NATable.cpp
@@ -45,7 +45,6 @@
 #include "NATable.h"
 #include "Sqlcomp.h"
 #include "Const.h"
-#include "desc.h"
 #include "dfs2rec.h"
 #include "hs_read.h"
 #include "parser.h"
@@ -84,6 +83,7 @@
 #include "ComUser.h"
 #include "ComSmallDefs.h"
 #include "CmpMain.h"
+#include "TrafDDLdesc.h"
 
 #define MAX_NODE_NAME 9
 #define MAX_PRECISION_ALLOWED  18
@@ -96,7 +96,7 @@
 
 
 #include "SqlParserGlobals.h"
-extern desc_struct *generateSpecialDesc(const CorrName& corrName);
+extern TrafDesc *generateSpecialDesc(const CorrName& corrName);
 
 #include "CmpMemoryMonitor.h"
 
@@ -1871,7 +1871,7 @@ NABoolean checkColumnTypeForSupportability(const 
NAColumnArray & partColArray, c
 // ---
 #pragma nowarn(1506)   // warning elimination
 static RangePartitionBoundaries * createRangePartitionBoundaries
- (desc_struct * part_desc_list,
+ (TrafDesc * part_desc_list,
  Lng32 numberOfPartitions,
  const NAColumnArray & partColArray,
  NAMemory* heap)
@@ -1883,8 +1883,8 @@ static RangePartitionBoundaries * 
createRangePartitionBoundaries
   // first partition and the last element is the descriptor
   // for the last partition, in partitioning key sequence.
   // -
-desc_struct * partns_desc = part_desc_list;
-  CMPASSERT(partns_desc->body.partns_desc.primarypartition);
+TrafDesc * partns_desc = part_desc_list;
+  CMPASSERT(partns_desc->partnsDesc()->primarypartition);
 
 
   // Check all the partitioning keys.  If any of them are not
@@ -1893,7 +1893,7 @@ static RangePartitionBoundaries * 
createRangePartitionBoundaries
   // Skip past the primary partition, so that a meaningful first
   // key value can be used for the error message.
 
-  char* key = (partns_desc->header.next) ->body.partns_desc.firstkey;
+  char* key = (partns_desc->next) ->partnsDesc()->firstkey;
 
   if ( !checkColumnTypeForSupportability(partColArray, key) )
 return NULL;
@@ -1920,14 +1920,14 @@ static RangePartitionBoundaries * 
createRangePartitionBoundaries
   // string in the SMD.
   // NOTE: The RangePartitionBoundaries is 0 based.
   // -
-  partns_desc = partns_desc->header.next; // skip the primary partition
+  partns_desc = partns_desc->next; // skip the primary partition
   Lng32 counter = 1;
   char* encodedKey;
 
   while (partns_desc AND (counter < numberOfPartitions))
 {
-  encodedKey = partns_desc->body.partns_desc.encodedkey;
-  size_t encodedKeyLen = partns_desc->body.partns_desc.encodedkeylen;
+  encodedKey = partns_desc->partnsDesc()->encodedkey;
+  size_t encodedKeyLen = partns_desc->partnsDesc()->encodedkeylen;
 
   if(heap != CmpCommon::statementHeap())
   {
@@ -1938,19 +1938,19 @@ static RangePartitionBoundaries * 
createRangePartitionBoundaries
 //to make it "\0\0".
 encodedKey = new(heap) char [encodedKeyLen+2];
 encodedKey[encodedKeyLen] = encodedKey[encodedKeyLen+1] = '\0';
-str_cpy_all(encodedKey, partns_desc->body.partns_desc.encodedkey,
+str_cpy_all(encodedKey, partns_desc->partnsDesc()->encodedkey,
 encodedKeyLen);
   }
 
   ItemExpr *rangePartBoundValues = NULL;
 
-  if (partns_desc->body.partns_desc.firstkey)
+  if (partns_desc->partnsDesc()->firstkey)
 // Extract and parse the partition boundary values, producing an
 // ItemExprList of the boundary values.
 //
 rangePartBoundValues = getRangePartitionBoundaryValues(
- partns_desc->body.partns_desc.firstkey,
- partns_desc->body.partns_desc.firstkeylen,
+ partns_desc->partnsDesc()->firstkey,
+ partns_desc->partnsDesc()->firstkeylen,
  heap);
   else
 rangePartBoundValues = getRangePartitionBoundaryValuesFromEncodedKeys(
@@ -1980,7 +1980,7 @@ static RangePartitionBoundaries * 
createRangePartitionBoundaries
 // ERROR 1123 Unable to process the partition key values...
 *CmpCommon::diags()
   << DgSqlCode(-1123)
-  << DgString0(partns_desc->body.partns_desc.firstkey)
+  << DgString0(partns_desc->partnsDesc()->firstkey)
   << DgTableName(tableName);
 delete partBounds;
 //coverity[leaked_storage]
@@ -1992,7 +1992,7 @@ static RangePartitionBoundaries * 

[08/10] incubator-trafodion git commit: metadata access performance improvement for accessing traf objects

2016-08-02 Thread ansharma
metadata access performance improvement for accessing traf objects

Packed version of descriptor structures is now stored in traf TEXT
table during various DDL operations.
During dml, if packed descriptors exist, then they are read and used.
If they dont exist, then descriptors are generated on the fly.

Descriptor classes are defined in file sqlcat/TrafDDLdesc.h and
are based off the older desc structures from desc.h.
These are simplified and class'ified version of the older structures
and are versioned. Changes to these classes should be done carefully
by either using filler bytes or versioning them.

2 new cqds, traf_store_object_descriptor and traf_read_object_descriptor,
are added to control if packed descs should be stored/read.
These are currently set to OFF by default but are enabled during
regressions run. Once this feature is tested, these cqds will be turned
on by default.

In addition, some helper commands have been added to manipulate descrs.
Syntax:
 alter table t [check|generate|delete|disable|enable] stored descritors

If authorization is enabled, then auth/priv specific info
is generated on the fly and currently not stored in metadata.
In a later checkin, these will also be stored in metadata.


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

Branch: refs/heads/master
Commit: 19c96b1ec830f7b340854b37d8b5e6fea72554fd
Parents: 2d7a91f
Author: Anoop Sharma 
Authored: Tue Aug 2 19:46:35 2016 +
Committer: Anoop Sharma 
Committed: Tue Aug 2 19:46:35 2016 +

--
 core/sql/arkcmp/CmpStoredProc.cpp   |   96 +-
 core/sql/arkcmp/CmpStoredProc.h |   21 +-
 core/sql/bin/SqlciErrors.txt|3 +-
 core/sql/common/CmpCommon.h |1 +
 core/sql/common/ComSmallDefs.h  |3 +-
 core/sql/common/OperTypeEnum.h  |2 +
 core/sql/generator/GenExplain.cpp   |   99 +-
 core/sql/generator/GenPreCode.cpp   |4 +-
 core/sql/generator/GenRelExeUtil.cpp|   43 +-
 core/sql/generator/GenRelMisc.cpp   |  129 +-
 core/sql/generator/GenRelScan.cpp   |   41 +-
 core/sql/generator/GenUdr.cpp   |4 +-
 core/sql/generator/Generator.cpp|  782 ---
 core/sql/generator/Generator.h  |   78 +-
 core/sql/nskgmake/sqlcat/Makefile   |1 +
 core/sql/optimizer/BindItemExpr.cpp |7 +-
 core/sql/optimizer/BindRI.cpp   |   28 +-
 core/sql/optimizer/BindRelExpr.cpp  |   97 +-
 core/sql/optimizer/BindWA.h |6 +-
 core/sql/optimizer/EncodedKeyValue.cpp  |   77 +-
 core/sql/optimizer/EncodedKeyValue.h|   21 +-
 core/sql/optimizer/ItemConstr.h |5 +-
 core/sql/optimizer/NAColumn.cpp |  192 +-
 core/sql/optimizer/NAColumn.h   |4 +-
 core/sql/optimizer/NAFileSet.cpp|2 +-
 core/sql/optimizer/NAFileSet.h  |   10 +-
 core/sql/optimizer/NARoutine.cpp|   66 +-
 core/sql/optimizer/NARoutine.h  |2 +-
 core/sql/optimizer/NATable.cpp  | 2067 +-
 core/sql/optimizer/NATable.h|   14 +-
 core/sql/optimizer/RelExeUtil.cpp   |   24 +-
 core/sql/optimizer/RelExeUtil.h |   20 +-
 core/sql/optimizer/RelMisc.h|2 +-
 core/sql/optimizer/RelRoutine.cpp   |   15 +-
 core/sql/optimizer/RelRoutine.h |   28 +-
 core/sql/optimizer/RelScan.h|   10 +-
 core/sql/optimizer/RelStoredProc.cpp|2 +-
 core/sql/optimizer/ValueDesc.cpp|7 +-
 core/sql/parser/AllStmtDDL.h|1 +
 core/sql/parser/AllStmtDDLAlterTable.h  |1 +
 core/sql/parser/BindStmtDDL.cpp |   31 +
 core/sql/parser/ElemDDLNode.cpp |   12 +
 core/sql/parser/ElemDDLNode.h   |4 +
 core/sql/parser/StmtDDLAlter.cpp|   91 +
 core/sql/parser/StmtDDLAlterSchema.h|  177 ++
 core/sql/parser/sqlparser.y |   80 +-
 core/sql/regress/executor/EXPECTED013.SB|2 +
 core/sql/regress/executor/TEST122   |6 +
 core/sql/regress/fullstack2/EXPECTED062 |6 +
 core/sql/regress/fullstack2/EXPECTED062.RELEASE |6 +
 core/sql/regress/hive/EXPECTED018   |  187 +-
 core/sql/regress/hive/TEST018   |3 +
 

[07/10] incubator-trafodion git commit: metadata access performance improvement for accessing traf objects

2016-08-02 Thread ansharma
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/generator/Generator.cpp
--
diff --git a/core/sql/generator/Generator.cpp b/core/sql/generator/Generator.cpp
index 466e124..6530a3a 100644
--- a/core/sql/generator/Generator.cpp
+++ b/core/sql/generator/Generator.cpp
@@ -37,6 +37,7 @@
 #include 
 #include "dfs2rec.h"
 
+#include "TrafDDLdesc.h"
 
 #include "ComOptIncludes.h"
 #include "GroupAttr.h"
@@ -71,6 +72,7 @@
 #include "CmUtil.h"
 
 #include "PCodeExprCache.h"
+#include "TrafDDLdesc.h"
 
 // ---
 // When called within arkcmp.exe, fixupVTblPtr() translates to a call
@@ -1485,17 +1487,18 @@ Lng32 
Generator::getRecordLength(ComTdbVirtTableIndexInfo * indexInfo,
   return recLen;
 }
 
-desc_struct* Generator::createColDescs(
+TrafDesc* Generator::createColDescs(
   const char * tableName,
   ComTdbVirtTableColumnInfo * columnInfo,
   Int16 numCols,
-  UInt32 )
+  UInt32 ,
+  Space * space)
 {
   if (! columnInfo)
 return NULL;
 
-  desc_struct * first_col_desc = NULL;
-  desc_struct * prev_desc = NULL;
+  TrafDesc * first_col_desc = NULL;
+  TrafDesc * prev_desc = NULL;
   for (Int16 colNum = 0; colNum < numCols; colNum++)
 {
   ComTdbVirtTableColumnInfo * info = columnInfo + colNum;
@@ -1512,106 +1515,124 @@ desc_struct* Generator::createColDescs(
  info->datatype == 
REC_NCHAR_F_UNICODE ||
  info->datatype == 
REC_NCHAR_V_ANSI_UNICODE))
 info_charset = SQLCHARSETCODE_UCS2;
-  desc_struct * col_desc = readtabledef_make_column_desc(
-tableName,
-info->colName,
-i,
-info->datatype,
-info->length,
-tmpOffset,
-(short) info->nullable,
-(NABoolean) FALSE,// 
tablenameMustBeAllocated = FALSE
-(desc_struct *) NULL, // passedDesc = NULL
-info_charset);
 
+  char * colname = new GENHEAP(space) char[strlen(info->colName)+1];
+  strcpy(colname, info->colName);
+
+  TrafDesc * col_desc = TrafMakeColumnDesc(
+   tableName,
+   colname, //info->colName,
+   i,
+   info->datatype,
+   info->length,
+   tmpOffset,
+   info->nullable,
+   info_charset,
+   space);
+  
   // Virtual tables use SQLARK_EXPLODED_FORMAT in which numeric column
-  // values are aligned.  Ignore readtabledef_make_column_desc's
+  // values are aligned.  Ignore TrafMakeColumnDesc's
   // offset calculation which doesn't reflect column value alignment.
   offset = colOffset + info->length;
 
   // EXPLAIN__ table uses 22-bit precision REAL values
   if (info->datatype == REC_FLOAT32)
-col_desc->body.columns_desc.precision = 22;
+col_desc->columnsDesc()->precision = 22;
 
-  col_desc->body.columns_desc.precision = info->precision;
+  col_desc->columnsDesc()->precision = info->precision;
   if (DFS2REC::isInterval(info->datatype))
-   col_desc->body.columns_desc.intervalleadingprec = info->precision;
+   col_desc->columnsDesc()->intervalleadingprec = info->precision;
 
-  col_desc->body.columns_desc.scale = info->scale;
+  col_desc->columnsDesc()->scale = info->scale;
   if ((DFS2REC::isInterval(info->datatype)) ||
  (DFS2REC::isDateTime(info->datatype)))
-   col_desc->body.columns_desc.datetimefractprec = info->scale;
-
-  col_desc->body.columns_desc.datetimestart = 
(rec_datetime_field)info->dtStart;
-  col_desc->body.columns_desc.datetimeend = 
(rec_datetime_field)info->dtEnd;
-
-  col_desc->body.columns_desc.upshift = (info->upshifted ? 1 : 0);
-  col_desc->body.columns_desc.caseinsensitive = (short)FALSE;
-
-  col_desc->body.columns_desc.pictureText = new HEAP char[340];
-  NAType::convertTypeToText(col_desc->body.columns_desc.pictureText,//OUT
-   col_desc->body.columns_desc.datatype,
-   col_desc->body.columns_desc.length,
-   col_desc->body.columns_desc.precision,
-   col_desc->body.columns_desc.scale,
-   col_desc->body.columns_desc.datetimestart,
-   col_desc->body.columns_desc.datetimeend,
-   col_desc->body.columns_desc.datetimefractprec,
-   col_desc->body.columns_desc.intervalleadingprec,
-   col_desc->body.columns_desc.upshift,
- 

[06/10] incubator-trafodion git commit: metadata access performance improvement for accessing traf objects

2016-08-02 Thread ansharma
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/NAColumn.cpp
--
diff --git a/core/sql/optimizer/NAColumn.cpp b/core/sql/optimizer/NAColumn.cpp
index 9a726a8..812c951 100644
--- a/core/sql/optimizer/NAColumn.cpp
+++ b/core/sql/optimizer/NAColumn.cpp
@@ -39,6 +39,7 @@
 #include "NATable.h"
 #include "Sqlcomp.h"
 #include "ex_error.h"
+#include "TrafDDLdesc.h"
 
 // ---
 // Can't be inline because then circular #include-dependencies
@@ -154,17 +155,16 @@ const QualifiedName& NAColumn::getNotNullConstraintName() 
const
 
 // warning elimination (removed "inline")
 static NAString makeTableName(const NATable *table,
- const columns_desc_struct *column_desc)
+ const TrafColumnsDesc *column_desc)
 {
   return NAString(
- table ?
-   table->getTableName().getQualifiedNameAsAnsiString().data() :
- column_desc->tablename ?
-   column_desc->tablename : "");
+   table ?
+   table->getTableName().getQualifiedNameAsAnsiString().data() : "");
 }
+
 // warning elimination (removed "inline")
 static NAString makeColumnName(const NATable *table,
-  const columns_desc_struct *column_desc)
+  const TrafColumnsDesc *column_desc)
 {
   NAString nam(makeTableName(table, column_desc));
   if (!nam.isNull()) nam += ".";
@@ -173,9 +173,9 @@ static NAString makeColumnName(const NATable *table,
 }
 
 // ---
-// Method for creating NAType from desc_struct.
+// Method for creating NAType from TrafDesc.
 // ---
-NABoolean NAColumn::createNAType(columns_desc_struct *column_desc  /*IN*/,
+NABoolean NAColumn::createNAType(TrafColumnsDesc *column_desc  /*IN*/,
 const NATable *table   /*IN*/,
 NAType *  /*OUT*/,
 NAMemory *heap /*IN*/,
@@ -187,7 +187,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct 
*column_desc   /*IN*/,
   //
   #define REC_INTERVAL REC_MIN_INTERVAL
 
-  DataType datatype = column_desc->datatype;
+  Int16 datatype = column_desc->datatype;
   if (REC_MIN_INTERVAL <= datatype && datatype <= REC_MAX_INTERVAL)
 datatype = REC_INTERVAL;
 
@@ -195,7 +195,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct 
*column_desc   /*IN*/,
 
   if ( DFS2REC::isAnyCharacter(column_desc->datatype) )
   {
- if ( CharInfo::isCharSetSupported(column_desc->character_set) == FALSE ) {
+ if ( CharInfo::isCharSetSupported(column_desc->characterSet()) == FALSE ) 
{
if (!errorCode)
{
  *CmpCommon::diags() << DgSqlCode(-4082)
@@ -208,7 +208,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct 
*column_desc   /*IN*/,
return TRUE; // error
  }
 
- if ( CharInfo::is_NCHAR_MP(column_desc->character_set) )
+ if ( CharInfo::is_NCHAR_MP(column_desc->characterSet()) )
 charCount /= SQL_DBCHAR_SIZE;
   }
 
@@ -217,7 +217,7 @@ NABoolean NAColumn::createNAType(columns_desc_struct 
*column_desc   /*IN*/,
 
 case REC_BPINT_UNSIGNED :
   type = new (heap)
-  SQLBPInt(column_desc->precision, column_desc->null_flag, FALSE, heap);
+  SQLBPInt(column_desc->precision, column_desc->isNullable(), FALSE, heap);
   break;
 
 case REC_BIN8_SIGNED:
@@ -227,13 +227,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct 
*column_desc /*IN*/,
   column_desc->precision,
   column_desc->scale,
   TRUE,
-  column_desc->null_flag,
+  column_desc->isNullable(),
heap
   );
   else
type = new (heap)
SQLTiny(TRUE,
-column_desc->null_flag,
+column_desc->isNullable(),
  heap
 );
   break;
@@ -244,13 +244,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct 
*column_desc /*IN*/,
   column_desc->precision,
   column_desc->scale,
   FALSE,
-  column_desc->null_flag,
+  column_desc->isNullable(),
heap
   );
   else
type = new (heap)
SQLTiny(FALSE,
-column_desc->null_flag,
+column_desc->isNullable(),
  heap
 );
   break;
@@ -262,13 +262,13 @@ NABoolean NAColumn::createNAType(columns_desc_struct 
*column_desc /*IN*/,
   column_desc->precision,
   column_desc->scale,
   TRUE,
-  column_desc->null_flag,
+ 

[10/10] incubator-trafodion git commit: Merge [TRAFODION-2137] PR-634 Metadata access performance improvements

2016-08-02 Thread ansharma
Merge [TRAFODION-2137] PR-634 Metadata access performance  improvements


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

Branch: refs/heads/master
Commit: 71c2d35af65be2fc51954d5a6385fe7e88b0390c
Parents: 98b00b6 15f7877
Author: Anoop Sharma 
Authored: Tue Aug 2 23:24:06 2016 +
Committer: Anoop Sharma 
Committed: Tue Aug 2 23:24:06 2016 +

--
 core/sql/arkcmp/CmpStoredProc.cpp   |   96 +-
 core/sql/arkcmp/CmpStoredProc.h |   21 +-
 core/sql/bin/SqlciErrors.txt|3 +-
 core/sql/common/CmpCommon.h |1 +
 core/sql/common/ComSmallDefs.h  |3 +-
 core/sql/common/OperTypeEnum.h  |2 +
 core/sql/generator/GenExplain.cpp   |   99 +-
 core/sql/generator/GenPreCode.cpp   |4 +-
 core/sql/generator/GenRelExeUtil.cpp|   43 +-
 core/sql/generator/GenRelMisc.cpp   |  129 +-
 core/sql/generator/GenRelScan.cpp   |   41 +-
 core/sql/generator/GenUdr.cpp   |4 +-
 core/sql/generator/Generator.cpp|  782 ---
 core/sql/generator/Generator.h  |   78 +-
 core/sql/nskgmake/sqlcat/Makefile   |1 +
 core/sql/optimizer/BindItemExpr.cpp |7 +-
 core/sql/optimizer/BindRI.cpp   |   28 +-
 core/sql/optimizer/BindRelExpr.cpp  |   97 +-
 core/sql/optimizer/BindWA.h |6 +-
 core/sql/optimizer/EncodedKeyValue.cpp  |   77 +-
 core/sql/optimizer/EncodedKeyValue.h|   21 +-
 core/sql/optimizer/ItemConstr.h |5 +-
 core/sql/optimizer/NAColumn.cpp |  192 +-
 core/sql/optimizer/NAColumn.h   |4 +-
 core/sql/optimizer/NAFileSet.cpp|2 +-
 core/sql/optimizer/NAFileSet.h  |   10 +-
 core/sql/optimizer/NARoutine.cpp|   66 +-
 core/sql/optimizer/NARoutine.h  |2 +-
 core/sql/optimizer/NATable.cpp  | 2067 +-
 core/sql/optimizer/NATable.h|   14 +-
 core/sql/optimizer/RelExeUtil.cpp   |   24 +-
 core/sql/optimizer/RelExeUtil.h |   20 +-
 core/sql/optimizer/RelMisc.h|2 +-
 core/sql/optimizer/RelRoutine.cpp   |   15 +-
 core/sql/optimizer/RelRoutine.h |   28 +-
 core/sql/optimizer/RelScan.h|   10 +-
 core/sql/optimizer/RelStoredProc.cpp|2 +-
 core/sql/optimizer/ValueDesc.cpp|7 +-
 core/sql/parser/AllStmtDDL.h|1 +
 core/sql/parser/AllStmtDDLAlterTable.h  |1 +
 core/sql/parser/BindStmtDDL.cpp |   31 +
 core/sql/parser/ElemDDLNode.cpp |   12 +
 core/sql/parser/ElemDDLNode.h   |4 +
 core/sql/parser/StmtDDLAlter.cpp|   91 +
 core/sql/parser/StmtDDLAlterSchema.h|  177 ++
 core/sql/parser/StmtDDLAlterTableStoredDesc.h   |  102 +
 core/sql/parser/sqlparser.y |   80 +-
 core/sql/regress/executor/EXPECTED013.SB|2 +
 core/sql/regress/executor/TEST122   |6 +
 core/sql/regress/fullstack2/EXPECTED062 |6 +
 core/sql/regress/fullstack2/EXPECTED062.RELEASE |6 +
 core/sql/regress/hive/EXPECTED018   |  187 +-
 core/sql/regress/hive/TEST018   |3 +
 core/sql/regress/seabase/EXPECTED031|  270 ++-
 core/sql/regress/seabase/TEST031|   48 +-
 core/sql/regress/tools/sbdefs   |2 +
 core/sql/sqlcat/ReadTableDef.cpp|  404 
 core/sql/sqlcat/ReadTableDef.h  |   17 -
 core/sql/sqlcat/TrafDDLdesc.cpp |  617 ++
 core/sql/sqlcat/TrafDDLdesc.h   | 1120 ++
 core/sql/sqlcat/desc.h  |  473 +---
 core/sql/sqlcat/readRealArk.cpp |  146 +-
 core/sql/sqlcat/readRealArk.h   |1 -
 core/sql/sqlcomp/CmpDDLCatErrorCodes.h  |1 +
 core/sql/sqlcomp/CmpDescribe.cpp|   23 +-
 core/sql/sqlcomp/CmpSeabaseDDL.h|   85 +-
 core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp|  323 ++-
 core/sql/sqlcomp/CmpSeabaseDDLincludes.h|2 +-
 core/sql/sqlcomp/CmpSeabaseDDLindex.cpp |   40 +-
 core/sql/sqlcomp/CmpSeabaseDDLmd.h  |7 +-
 core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp   |1 -
 core/sql/sqlcomp/CmpSeabaseDDLschema.cpp|  

[09/10] incubator-trafodion git commit: added missing file to git

2016-08-02 Thread ansharma
added missing file to git


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

Branch: refs/heads/master
Commit: 15f78779da2fd94e6d7a4020a7e57b9d0ccbb495
Parents: 19c96b1
Author: Anoop Sharma 
Authored: Tue Aug 2 20:30:19 2016 +
Committer: Anoop Sharma 
Committed: Tue Aug 2 20:30:19 2016 +

--
 core/sql/parser/StmtDDLAlterTableStoredDesc.h | 102 +
 1 file changed, 102 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/15f78779/core/sql/parser/StmtDDLAlterTableStoredDesc.h
--
diff --git a/core/sql/parser/StmtDDLAlterTableStoredDesc.h 
b/core/sql/parser/StmtDDLAlterTableStoredDesc.h
new file mode 100644
index 000..9f6f757
--- /dev/null
+++ b/core/sql/parser/StmtDDLAlterTableStoredDesc.h
@@ -0,0 +1,102 @@
+/**
+// @@@ START COPYRIGHT @@@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+// @@@ END COPYRIGHT @@@
+**/
+#ifndef STMTDDLALTERTABLESTOREDDESC_H
+#define STMTDDLALTERTABLESTOREDDESC_H
+/* -*-C++-*-
+ *
+ *
+ * File: StmtDDLAlterTableStoredDesc.h
+ * Description:  
+ *   Alter Table  [generate|delete|enable|disable] stored 
descriptor
+ *   DDL statements
+ *
+ *   
+ * Created:  7/26/2016
+ * Language: C++
+ *
+ *
+ */
+
+
+#include "StmtDDLAlterTable.h"
+
+// ---
+// contents of this file
+// ---
+class StmtDDLAlterTableStoredDesc;
+
+// ---
+// forward references
+// ---
+// None.
+
+// ---
+// definition of class StmtDDLAlterTableStoredDesc
+// ---
+class StmtDDLAlterTableStoredDesc : public StmtDDLAlterTable
+{
+
+public:
+  enum AlterStoredDescType
+{
+  CHECK,
+  GENERATE,
+  DELETE,
+  ENABLE,
+  DISABLE
+};
+
+  // constructor
+  StmtDDLAlterTableStoredDesc(const AlterStoredDescType type)
+  : StmtDDLAlterTable(DDL_ALTER_TABLE_STORED_DESC),
+type_(type)
+  {}
+
+  // virtual destructor
+  virtual ~StmtDDLAlterTableStoredDesc()
+  {}
+
+  // cast
+  virtual StmtDDLAlterTableStoredDesc * castToStmtDDLAlterTableStoredDesc()
+  { return this; }
+
+  // accessors
+  AlterStoredDescType getType() { return type_; }
+
+  // method for tracing
+  virtual const NAString getText() const
+  {
+return "StmtDDLAlterTableStoredDesc";
+  }
+
+private:
+
+  AlterStoredDescType type_;
+
+}; // class StmtDDLAlterTableStoredDesc
+
+// ---
+// definitions of inline methods for class StmtDDLAlterTableStoredDesc
+// ---
+
+#endif // STMTDDLALTERTABLESTOREDDESC_H



[3/4] incubator-trafodion git commit: fix hive regression test 001

2016-08-02 Thread dbirdsall
fix hive regression test 001


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

Branch: refs/heads/master
Commit: af1914cbcf0a07699f7f91e4b8a964304dc8c1e3
Parents: b85c5fa
Author: Liu Ming 
Authored: Mon Aug 1 02:47:59 2016 -0400
Committer: Liu Ming 
Committed: Mon Aug 1 02:47:59 2016 -0400

--
 core/sql/regress/compGeneral/EXPECTED001.SB | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/af1914cb/core/sql/regress/compGeneral/EXPECTED001.SB
--
diff --git a/core/sql/regress/compGeneral/EXPECTED001.SB 
b/core/sql/regress/compGeneral/EXPECTED001.SB
index 84881b8..e0ff131 100644
--- a/core/sql/regress/compGeneral/EXPECTED001.SB
+++ b/core/sql/regress/compGeneral/EXPECTED001.SB
@@ -144,8 +144,8 @@ ENO  ENAME DNO
 +> intersect  all
 +>select eno, ename, dno from t022;
 
- *** ERROR[3022] The INTERSECT ALL operator is not yet supported.
- *** ERROR[8822] The statement was not prepared.
+*** ERROR[3022] The INTERSECT ALL operator is not yet supported.
+*** ERROR[8822] The statement was not prepared.
 >>
 >>select eno, ename, dno from t021 where dno >10
 +> intersect



[2/4] incubator-trafodion git commit: modify the syntax to be simpler

2016-08-02 Thread dbirdsall
modify the syntax to be simpler


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

Branch: refs/heads/master
Commit: b85c5fa3948bee86cef3aae195baee4438f099cc
Parents: 23fe6d5
Author: Liu Ming 
Authored: Sat Jul 30 13:38:20 2016 -0400
Committer: Liu Ming 
Committed: Sat Jul 30 13:38:20 2016 -0400

--
 core/sql/parser/sqlparser.y | 17 +++--
 1 file changed, 3 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/b85c5fa3/core/sql/parser/sqlparser.y
--
diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y
index 733f9c5..b556f70 100755
--- a/core/sql/parser/sqlparser.y
+++ b/core/sql/parser/sqlparser.y
@@ -18341,20 +18341,7 @@ non_join_query_expression : non_join_query_term
 
 /* type relx */
 non_join_query_term : non_join_query_primary
-   | query_term TOK_INTERSECT query_primary
- {
-   $$ = new (PARSERHEAP())
- RelRoot(new (PARSERHEAP())
- GroupByAgg(
-new (PARSERHEAP())
-Intersect($1,$3),
-REL_GROUPBY,
-new (PARSERHEAP())
-ColReference(new (PARSERHEAP())
-  ColRefName(TRUE, PARSERHEAP())
-)));
- }
-   | query_term TOK_INTERSECT TOK_DISTINCT query_primary
+   | query_term TOK_INTERSECT distinct_sugar query_primary
  {
$$ = new (PARSERHEAP())
  RelRoot(new (PARSERHEAP())
@@ -18373,6 +18360,8 @@ non_join_query_term : non_join_query_primary
YYERROR;
  }
 
+distinct_sugar: TOK_DISTINCT
+| 
 /* type relx */
 non_join_query_primary : simple_table
  | rel_subquery// ## this line ...



[1/2] incubator-trafodion git commit: [TRAFODION-2129] Trafodion to avoid use of deprecated HBase APIs/Classes

2016-08-02 Thread selva
Repository: incubator-trafodion
Updated Branches:
  refs/heads/master 2d7a91f78 -> 7fe96649f


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7fe96649/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/TmAuditTlog.java
--
diff --git 
a/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/TmAuditTlog.java
 
b/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/TmAuditTlog.java
index bd423ea..e097122 100644
--- 
a/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/TmAuditTlog.java
+++ 
b/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/TmAuditTlog.java
@@ -35,12 +35,11 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
-import org.apache.hadoop.hbase.HBaseConfiguration;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HConnectionManager;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.client.HTable;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Delete;
@@ -113,14 +112,13 @@ import java.util.concurrent.RejectedExecutionException;
 public class TmAuditTlog {
 
static final Log LOG = LogFactory.getLog(TmAuditTlog.class);
-   private static HBaseAdmin admin;
private Configuration config;
private static String TLOG_TABLE_NAME;
private static final byte[] TLOG_FAMILY = Bytes.toBytes("tf");
private static final byte[] ASN_STATE = Bytes.toBytes("as");
private static final byte[] QUAL_TX_STATE = Bytes.toBytes("tx");
private static HTable[] table;
-   private static HConnection connection;
+   private static Connection connection;
private static HBaseAuditControlPoint tLogControlPoint;
private static long tLogControlPointNum;
private static long tLogHashKey;
@@ -188,7 +186,7 @@ public class TmAuditTlog {
   byte[] endKey_orig;
   byte[] endKey;
 
- TlogCallable(TransactionState txState, HRegionLocation location, 
HConnection connection) throws IOException {
+ TlogCallable(TransactionState txState, HRegionLocation location, 
Connection connection) throws IOException {
 transactionState = txState;
 this.location = location;
 table = new HTable(location.getRegionInfo().getTable(), connection, 
tlogThreadPool);
@@ -355,9 +353,10 @@ public class TmAuditTlog {
   }
}
 
-   public TmAuditTlog (Configuration config) throws IOException, 
RuntimeException {
+   public TmAuditTlog (Configuration config, Connection connection) throws 
IOException, RuntimeException {
 
   this.config = config;
+  this.connection = connection;
   this.dtmid = Integer.parseInt(config.get("dtmid"));
   if (LOG.isTraceEnabled()) LOG.trace("Enter TmAuditTlog constructor for 
dtmid " + dtmid);
   TLOG_TABLE_NAME = config.get("TLOG_TABLE_NAME");
@@ -442,8 +441,6 @@ public class TmAuditTlog {
  LOG.error("TM_TLOG_RETRY_COUNT is not valid in ms.env");
   }
 
-  connection = HConnectionManager.createConnection(config);
-
   tlogNumLogs = 1;
   try {
  String numLogs = System.getenv("TM_TLOG_NUM_LOGS");
@@ -504,7 +501,6 @@ public class TmAuditTlog {
  hcol.setBlockCacheEnabled(false);
   }
   hcol.setMaxVersions(versions);
-  admin = new HBaseAdmin(config);
 
   filler = new byte[fillerSize];
   Arrays.fill(filler, (byte) ' ');
@@ -538,39 +534,30 @@ public class TmAuditTlog {
   long lvAsn = 0;
 
   if (LOG.isTraceEnabled()) LOG.trace("try new HBaseAuditControlPoint");
-  tLogControlPoint = new HBaseAuditControlPoint(config);
+  tLogControlPoint = new HBaseAuditControlPoint(config, connection);
 
   tlogAuditLock =new Object[tlogNumLogs];
   table = new HTable[tlogNumLogs];
 
-//  try {
  // Get the asn from the last control point.  This ignores 
  // any asn increments between the last control point
  // write and a system crash and could result in asn numbers
  // being reused.  However this would just mean that some old 
  // records are held onto a bit longer before cleanup and is safe.
  asn.set(tLogControlPoint.getStartingAuditSeqNum());
-/*
-  // TODO: revisit
-  }
-  catch (Exception e2){
- if (LOG.isDebugEnabled()) LOG.debug("Exception setting the ASN " + 
e2);
- if (LOG.isDebugEnabled()) LOG.debug("Setting the ASN to 1");
- asn.set(1L);  // Couldn't read the asn so start asn at 1
-  }
-*/

[2/2] incubator-trafodion git commit: [TRAFODION-2129] Trafodion to avoid use of deprecated HBase APIs/Classes

2016-08-02 Thread selva
[TRAFODION-2129] Trafodion to avoid use of deprecated HBase APIs/Classes

References to the deprecated classes HConnection, HConnectionManager and
HBaseAdmin are reworked to use Connection, ConnectionFactory and Admin classes
respectively.

A connection object is created and it is passed around to ensure that the
same connection object is used within the process. Connection object is thread 
safe.

Admin object is created and closed after its use immediately.
Creation of admin object is lightweight and the object is not thread safe

Also fixed the random hang at the time of rollback transaction waiting for the 
response from the TM process.
The TM process hung because it assumed that RS didn't respond back when there 
is an exception in DDL
rollback or end-point coprocessor call.


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

Branch: refs/heads/master
Commit: 7fe96649f0155bfcc9a6d86328658ac17786258e
Parents: 2d7a91f
Author: selvaganesang 
Authored: Thu Jul 28 21:27:27 2016 +
Committer: selvaganesang 
Committed: Tue Aug 2 18:18:48 2016 +

--
 .../hbase/client/ClientScanner98.java.tmpl  |  24 +-
 .../client/TrafParallelClientScanner.java.tmpl  |   8 +-
 .../CommitUnsuccessfulException.java|   3 +-
 .../HBaseBackedTransactionLogger.java   |  44 +--
 .../OutOfOrderProtocolException.java|   3 +-
 .../hbase/client/transactional/RMInterface.java |  26 +-
 .../transactional/SsccTransactionalTable.java   |  30 +-
 .../SsccUpdateConflictException.java|   3 +-
 .../hbase/client/transactional/TmDDL.java   |  26 +-
 .../transactional/TransactionManager.java   | 342 +++
 .../TransactionalAggregationClient.java |  19 +-
 .../transactional/TransactionalTable.java   |  35 +-
 .../transactional/TransactionalTableClient.java |   3 +-
 .../transactional/UnsuccessfulDDLException.java |   3 +-
 .../trafodion/dtm/HBaseAuditControlPoint.java   |  23 +-
 .../java/org/trafodion/dtm/HBaseTxClient.java   |  41 ++-
 .../java/org/trafodion/dtm/TmAuditTlog.java |  52 +--
 .../main/java/org/trafodion/dtm/TrafInfo.java   |  13 +-
 core/sql/executor/ExExeUtilLoad.cpp |  12 -
 core/sql/executor/HBaseClient_JNI.cpp   |  44 ---
 core/sql/executor/HBaseClient_JNI.h |   5 +-
 core/sql/executor/SequenceFileReader.cpp|  26 --
 core/sql/executor/SequenceFileReader.h  |   2 -
 core/sql/regress/privs1/DIFF133.KNOWN   |  39 +--
 .../java/org/trafodion/sql/HBaseClient.java | 126 +++
 .../java/org/trafodion/sql/HBulkLoadClient.java |  62 ++--
 .../java/org/trafodion/sql/HTableClient.java|  36 +-
 .../org/trafodion/sql/SequenceFileWriter.java   |  40 +--
 .../java/org/trafodion/sql/TrafRegionStats.java |  16 +-
 29 files changed, 424 insertions(+), 682 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7fe96649/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/ClientScanner98.java.tmpl
--
diff --git 
a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/ClientScanner98.java.tmpl
 
b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/ClientScanner98.java.tmpl
index 4d9fad9..9287814 100644
--- 
a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/ClientScanner98.java.tmpl
+++ 
b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/ClientScanner98.java.tmpl
@@ -62,7 +62,7 @@ public class ClientScanner98 extends AbstractClientScanner {
 // Keep lastResult returned successfully in case we have to reset scanner.
 protected Result lastResult = null;
 protected final long maxScannerResultSize;
-private final HConnection connection;
+private final Connection connection;
 private final TableName tableName;
 protected final int scannerTimeout;
 protected boolean scanMetricsPublished = false;
@@ -70,7 +70,7 @@ public class ClientScanner98 extends AbstractClientScanner {
 protected RpcControllerFactory rpcControllerFactory;
 
 /**
- * Create a new ClientScanner for the specified table. An HConnection will 
be
+ * Create a new ClientScanner for the specified table. An Connection will 
be
  * retrieved using the passed Configuration.
  * Note that the passed {@link Scan}'s start row maybe changed changed.
  *
@@ -79,20 +79,24 @@ public class ClientScanner98 extends