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 &corrName, NAMemory *heap,
-          desc_struct *inTableDesc = NULL);
+          TrafDesc *inTableDesc = NULL);
 
   NATable(BindWA *bindWA, const CorrName &corrName, NAMemory *heap,
           struct hive_tbl_desc*);
@@ -489,7 +489,7 @@ public:
                                       NABoolean *isPkey = NULL,
                                        NAList<int> *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 &partitionName) 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<HbaseCreateOption*> * 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 &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(&corrName.getExtendedQualNameObj());
       
       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()->
         getTableNameAsQualifiedName();
     }
+    else if (getExprNode()->castToStmtDDLNode()->castToStmtDDLAlterSchema())
+    {
+      isAlter_ = TRUE;
+      isSchema_ = TRUE;
+
+      isAlterSchema = TRUE;
+
+      qualObjName_ =
+        QualifiedName(NAString("dummy"),
+                      
getExprNode()->castToStmtDDLNode()->castToStmtDDLAlterSchema()->getSchemaNameAsQualifiedName().getSchemaName(),
+                      
getExprNode()->castToStmtDDLNode()->castToStmtDDLAlterSchema()->getSchemaNameAsQualifiedName().getCatalogName());
+    }
     else if (getExprNode()->castToStmtDDLNode()->castToStmtDDLAlterIndex())
     {
       isAlter_ = TRUE;
@@ -4356,11 +4375,12 @@ RelExpr * DDLExpr::bindNode(BindWA *bindWA)
           hbaseDDLNoUserXn_ = TRUE;
       }
 
-    if ((isCreateSchema || isDropSchema) ||
+    if ((isCreateSchema || isDropSchema || isAlterSchema) ||
         ((isTable_ || isIndex_ || isView_ || isRoutine_ || isLibrary_ || 
isSeq) &&
          (isCreate_ || isDrop_ || purgedataHbase_ ||
           (isAlter_ && (alterAddCol || alterDropCol || alterDisableIndex || 
alterEnableIndex || 
                        alterAddConstr || alterDropConstr || alterRenameTable ||
+                        alterStoredDesc ||
                         alterIdentityCol || alterColDatatype || alterColRename 
||
                         alterHBaseOptions || alterLibrary || otherAlters)))))
       {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/RelExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelExeUtil.h b/core/sql/optimizer/RelExeUtil.h
index 2591926..4de738e 100644
--- a/core/sql/optimizer/RelExeUtil.h
+++ b/core/sql/optimizer/RelExeUtil.h
@@ -122,7 +122,7 @@ public:
 
   virtual NABoolean producesOutput() { return FALSE; }
   virtual const char   *getVirtualTableName() { return NULL;};
-  virtual desc_struct  *createVirtualTableDesc() { return NULL;};
+  virtual TrafDesc     *createVirtualTableDesc() { return NULL;};
   TableDesc * getVirtualTableDesc() const
   {
     return virtualTabId_;
@@ -230,6 +230,7 @@ public:
     isCreate_(FALSE), isCreateLike_(FALSE), isVolatile_(FALSE), 
     isDrop_(FALSE), isAlter_(FALSE), isCleanup_(FALSE),
     isTable_(FALSE), isIndex_(FALSE), isMV_(FALSE), isView_(FALSE),
+    isSchema_(FALSE),
     isLibrary_(FALSE), isRoutine_(FALSE),
     isUstat_(FALSE),
     isHbase_(FALSE),
@@ -270,6 +271,7 @@ public:
     isCreate_(FALSE), isCreateLike_(FALSE), isVolatile_(FALSE), 
     isDrop_(FALSE), isAlter_(FALSE), isCleanup_(FALSE),
     isTable_(FALSE), isIndex_(FALSE), isMV_(FALSE), isView_(FALSE),
+    isSchema_(FALSE),
     isLibrary_(FALSE), isRoutine_(FALSE),
     isUstat_(FALSE),
     isHbase_(FALSE),
@@ -310,6 +312,7 @@ public:
     isCreate_(FALSE), isCreateLike_(FALSE), isVolatile_(FALSE), 
     isDrop_(FALSE), isAlter_(FALSE), isCleanup_(FALSE),
     isTable_(FALSE), isIndex_(FALSE), isMV_(FALSE), isView_(FALSE),
+    isSchema_(FALSE),
     isUstat_(FALSE),
     isHbase_(FALSE),
     isNative_(FALSE),
@@ -355,7 +358,7 @@ public:
 
   virtual NABoolean producesOutput() { return returnStatus_;}
   virtual const char   *getVirtualTableName();
-  virtual desc_struct  *createVirtualTableDesc();
+  virtual TrafDesc     *createVirtualTableDesc();
 
   ExprNode * getDDLNode(){return getExprNode();};
 
@@ -475,6 +478,7 @@ public:
   NABoolean isCreate_;
   NABoolean isCreateLike_;
   NABoolean isVolatile_;
+  NABoolean isSchema_;
   NABoolean isTable_;
   NABoolean isIndex_;
   NABoolean isMV_;
@@ -606,7 +610,7 @@ public:
 
   virtual NABoolean producesOutput() { return FALSE; }
   virtual const char   *getVirtualTableName();
-  virtual desc_struct  *createVirtualTableDesc();
+  virtual TrafDesc     *createVirtualTableDesc();
 
   // exeutil statements whose query type need to be returned as 
   // SQL_EXE_UTIL. Set during RelRoot::codeGen in ComTdbRoot class.
@@ -680,7 +684,7 @@ public:
   virtual short codeGen(Generator*);
 
   virtual const char   *getVirtualTableName();
-  virtual desc_struct  *createVirtualTableDesc();
+  virtual TrafDesc     *createVirtualTableDesc();
 
   virtual NABoolean producesOutput() { return TRUE; }
 
@@ -1771,7 +1775,7 @@ public:
   virtual const char   *getVirtualTableName();
   static const char * getVirtualTableNameStr() 
   { return "EXE_UTIL_REGION_STATS__";}
-  virtual desc_struct  *createVirtualTableDesc();
+  virtual TrafDesc     *createVirtualTableDesc();
 
   virtual NABoolean producesOutput() { return TRUE; }
 
@@ -1818,7 +1822,7 @@ public:
   virtual const char   *getVirtualTableName();
   static const char * getVirtualTableNameStr() 
   { return "EXE_UTIL_LOB_INFO__";}
-  virtual desc_struct  *createVirtualTableDesc();
+  virtual TrafDesc     *createVirtualTableDesc();
 
   virtual NABoolean producesOutput() { return TRUE; }
 
@@ -1947,7 +1951,7 @@ public:
   virtual short codeGen(Generator*);
 
   virtual const char   *getVirtualTableName();
-  virtual desc_struct  *createVirtualTableDesc();
+  virtual TrafDesc     *createVirtualTableDesc();
 
 private:
   // using this enum from MaintainObject class as it serves the
@@ -1976,7 +1980,7 @@ public:
   virtual short codeGen(Generator*);
 
   virtual const char   *getVirtualTableName();
-  virtual desc_struct  *createVirtualTableDesc();
+  virtual TrafDesc     *createVirtualTableDesc();
 
 private:
   NAString statement_;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/RelMisc.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelMisc.h b/core/sql/optimizer/RelMisc.h
index baf86d7..e4632bf 100644
--- a/core/sql/optimizer/RelMisc.h
+++ b/core/sql/optimizer/RelMisc.h
@@ -48,7 +48,7 @@
 #include "SequenceGeneratorAttributes.h"
 #include "ComSecurityKey.h"
 
-struct desc_struct;
+class TrafDesc;
 
 // -----------------------------------------------------------------------
 // contents of this file

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/RelRoutine.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelRoutine.cpp 
b/core/sql/optimizer/RelRoutine.cpp
index b7a0385..0c08c3d 100644
--- a/core/sql/optimizer/RelRoutine.cpp
+++ b/core/sql/optimizer/RelRoutine.cpp
@@ -68,6 +68,7 @@
 #include "ElemDDLColDefArray.h"
 #include "CmpSeabaseDDL.h"
 #include "UdfDllInteraction.h"
+#include "TrafDDLdesc.h"
 
 
 // -----------------------------------------------------------------------
@@ -951,7 +952,7 @@ NARoutine * TableMappingUDF::getRoutineMetadata(
   NARoutine *result = NULL;
   CmpSeabaseDDL cmpSBD((NAHeap *)bindWA->wHeap());
 
-  desc_struct *tmudfMetadata =
+  TrafDesc *tmudfMetadata =
     cmpSBD.getSeabaseRoutineDesc(
          routineName.getCatalogName(),
          routineName.getSchemaName(),
@@ -968,7 +969,7 @@ NARoutine * TableMappingUDF::getRoutineMetadata(
 
   ComRoutineType udfType ;
 
-  udfType = tmudfMetadata->body.routine_desc.UDRType ;
+  udfType = tmudfMetadata->routineDesc()->UDRType ;
 
   // IS req 6: Check ROUTINE_TYPE column of ROUTINES table.
   // Emit error if invalid type.
@@ -1609,7 +1610,7 @@ const NAString *ProxyFunc::getColumnHeading(ComUInt32 i) 
const
 
 //! ProxyFunc::populateColumnDesc method 
 void ProxyFunc::populateColumnDesc(char *tableNam,
-                                   desc_struct *&colDescs,
+                                   TrafDesc *&colDescs,
                                    Lng32 &reclen) const
 {
     ElemDDLColDefArray colArray;
@@ -1651,19 +1652,19 @@ void ProxyFunc::populateColumnDesc(char *tableNam,
                                                                   numCols) ;
 
   // calculate the record length 
-  desc_struct *tempDescs = colDescs;
+  TrafDesc *tempDescs = colDescs;
   for (ComUInt32 colNum = 0; colNum < numCols; colNum++)
   { 
     NAType *naType = getColumn(colNum).getColumnDataType();
     Int32 fsType = naType->getFSDatatype();
 
-    if (tempDescs->body.columns_desc.null_flag)
+    if (tempDescs->columnsDesc()->isNullable())
       reclen += SQL_NULL_HDR_SIZE;
     if (DFS2REC::isSQLVarChar(fsType))
       reclen += SQL_VARCHAR_HDR_SIZE;
 
-    reclen += tempDescs->body.columns_desc.length;
-    tempDescs = tempDescs->header.next;
+    reclen += tempDescs->columnsDesc()->length;
+    tempDescs = tempDescs->next;
   }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/RelRoutine.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelRoutine.h b/core/sql/optimizer/RelRoutine.h
index 3cd37eb..823924a 100644
--- a/core/sql/optimizer/RelRoutine.h
+++ b/core/sql/optimizer/RelRoutine.h
@@ -484,12 +484,12 @@ public:
   inline void setTableDesc(TableDesc * tdesc) { tabId_ = tdesc; };
 
   //! createVirtualTableDesc method
-  //  creates a desc_struct for the Virtual Table
-  virtual desc_struct *createVirtualTableDesc();
+  //  creates a TrafDesc for the Virtual Table
+  virtual TrafDesc *createVirtualTableDesc();
 
   //! deleteVirtualTableDesc method
-  //  deletes the given desc_struct
-  virtual  void deleteVirtualTableDesc(desc_struct *vtd);
+  //  deletes the given TrafDesc
+  virtual  void deleteVirtualTableDesc(TrafDesc *vtd);
 
   //! bindNode method
   // a virtual function for performing name binding within the query tree
@@ -752,7 +752,7 @@ public :
   virtual PredefinedTableMappingFunction * 
castToPredefinedTableMappingFunction();
 
   virtual RelExpr* bindNode(BindWA* bindWA); 
-  virtual desc_struct   *createVirtualTableDesc();
+  virtual TrafDesc   *createVirtualTableDesc();
   virtual void transformNode(NormWA & normWARef,
     ExprGroupId & locationOfPointerToMe);
   virtual void rewriteNode(NormWA & normWARef) ;
@@ -1211,8 +1211,8 @@ public:
   // mutators
 
   //! createVirtualTableDesc method
-  //  creates a desc_struct for the Virtual Table
-  virtual desc_struct *createVirtualTableDesc();
+  //  creates a TrafDesc for the Virtual Table
+  virtual TrafDesc *createVirtualTableDesc();
 
   //! getPotentialOutputValues method
   //  computes the output values the node can generate
@@ -1335,8 +1335,8 @@ public:
 
   // mutators
   //! createVirtualTableDesc method
-  //  returns a desc_struct pointer to the name of the Virtual Table descriptor
-  virtual desc_struct *createVirtualTableDesc();
+  //  returns a TrafDesc pointer to the name of the Virtual Table descriptor
+  virtual TrafDesc *createVirtualTableDesc();
 
 
   //! preCodeGen method
@@ -1410,8 +1410,8 @@ public:
   // mutators
 
   //! createVirtualTableDesc method
-  //  creates a desc_struct for the Virtual Table
-  virtual desc_struct *createVirtualTableDesc();
+  //  creates a TrafDesc for the Virtual Table
+  virtual TrafDesc *createVirtualTableDesc();
 
   //! getPotentialOutputValues method
   //  computes the output values the node can generate
@@ -1567,12 +1567,12 @@ public:
   //! populateColumnDesc method
   // Copy attributes getColumns to colDescs
 void populateColumnDesc(char *tableNam,
-                        desc_struct *&colDescs,
+                        TrafDesc *&colDescs,
                         Lng32 &reclen) const;
 
   //! createVirtualTableDesc method
-  //  create the desc_struct for the Virtual Table
-  virtual desc_struct *createVirtualTableDesc();
+  //  create the TrafDesc for the Virtual Table
+  virtual TrafDesc *createVirtualTableDesc();
 
   // The RelExpr interface
   //! bindNode method

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/RelScan.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelScan.h b/core/sql/optimizer/RelScan.h
index 50797f7..ee596ed 100644
--- a/core/sql/optimizer/RelScan.h
+++ b/core/sql/optimizer/RelScan.h
@@ -872,7 +872,7 @@ public:
                          char* &hdfsHostName,
                          Int32 &hdfsPort);
   
- static desc_struct *createHbaseTableDesc(const char * table_name);
+ static TrafDesc *createHbaseTableDesc(const char * table_name);
 
   // Return a (short-lived) reference to the respective predicates
   const ValueIdList & getBeginKeyPred() const    { return beginKeyPred_; }
@@ -1273,14 +1273,14 @@ public:
   // mutators
 
   //! createVirtualTableDesc method
-  //  creates a desc_struct for the Virtual Table
-  //  virtual desc_struct *createVirtualTableDesc();
-  static desc_struct *createVirtualTableDesc(const char * name,
+  //  creates a TrafDesc for the Virtual Table
+  //  virtual TrafDesc *createVirtualTableDesc();
+  static TrafDesc *createVirtualTableDesc(const char * name,
                                             NABoolean isRW = FALSE,
                                             NABoolean isCW = FALSE, 
                                              NAArray<HbaseStr> * hbaseKeys = 
NULL);
 
-  static desc_struct *createVirtualTableDesc(const char * name,
+  static TrafDesc *createVirtualTableDesc(const char * name,
                                             NAList<char*> &colNameList,
                                             NAList<char*> &colValList);
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/RelStoredProc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelStoredProc.cpp 
b/core/sql/optimizer/RelStoredProc.cpp
index 35e6247..43e5cff 100644
--- a/core/sql/optimizer/RelStoredProc.cpp
+++ b/core/sql/optimizer/RelStoredProc.cpp
@@ -384,7 +384,7 @@ RelExpr* RelInternalSP::bindNode(BindWA *bindWA)
       CmpSPOutputFormat outFormat(bindWA->currentCmpContext());
       if ( !cmpInternalSP->OutputFormat(outFormat) )
         return 0;      
-      desc_struct* outTableDesc = outFormat.tableDesc();      
+      TrafDesc* outTableDesc = outFormat.tableDesc();      
       
       // the outTableDesc is expected to be deleteed in NATable::NATable
       if (outTableDesc)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/optimizer/ValueDesc.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ValueDesc.cpp b/core/sql/optimizer/ValueDesc.cpp
index 9e45fbc..6ee6e32 100644
--- a/core/sql/optimizer/ValueDesc.cpp
+++ b/core/sql/optimizer/ValueDesc.cpp
@@ -62,6 +62,7 @@
 //
 #include "NATable.h"
 #include "EncodedKeyValue.h"
+#include "TrafDDLdesc.h"
 
 #include "SqlParserGlobals.h"          // must be last #include
 
@@ -6580,9 +6581,9 @@ ValueIdList::computeEncodedKey(const TableDesc* tDesc, 
NABoolean isMaxKey,
    }
 
    const NAFileSet * naf = naTable->getClusteringIndex();
-   const desc_struct * tableDesc = naTable->getTableDesc();
-   desc_struct * colDescs = tableDesc->body.table_desc.columns_desc;
-   desc_struct * keyDescs = (desc_struct*)naf->getKeysDesc();
+   const TrafDesc * tableDesc = naTable->getTableDesc();
+   TrafDesc * colDescs = tableDesc->tableDesc()->columns_desc;
+   TrafDesc * keyDescs = (TrafDesc*)naf->getKeysDesc();
 
    // cast away const since the method may compute and store the length
    keyBufLen = ((NAFileSet*)naf)->getEncodedKeyLength(); 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/parser/AllStmtDDL.h
----------------------------------------------------------------------
diff --git a/core/sql/parser/AllStmtDDL.h b/core/sql/parser/AllStmtDDL.h
index 4b3cc95..7427f21 100644
--- a/core/sql/parser/AllStmtDDL.h
+++ b/core/sql/parser/AllStmtDDL.h
@@ -45,6 +45,7 @@
 #include "AllStmtDDLAlter.h" // MV - RG
 #include "AllStmtDDLGive.h"
 #include "StmtDDLAlterCatalog.h"
+#include "StmtDDLAlterSchema.h"
 #include "StmtDDLAlterTrigger.h"
 #include "StmtDDLAlterIndexAttribute.h"
 #include "StmtDDLAlterIndexHBaseOptions.h"

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/parser/AllStmtDDLAlterTable.h
----------------------------------------------------------------------
diff --git a/core/sql/parser/AllStmtDDLAlterTable.h 
b/core/sql/parser/AllStmtDDLAlterTable.h
index 630d66e..ddab2f4 100644
--- a/core/sql/parser/AllStmtDDLAlterTable.h
+++ b/core/sql/parser/AllStmtDDLAlterTable.h
@@ -61,6 +61,7 @@
 #include "StmtDDLAlterTableMove.h"
 #include "StmtDDLAlterTablePartition.h"
 #include "StmtDDLAlterTableRename.h"
+#include "StmtDDLAlterTableStoredDesc.h"
 #include "StmtDDLAlterTableNamespace.h"
 #include "StmtDDLAlterTableSetConstraint.h"
 #include "StmtDDLAlterTableToggleConstraint.h"

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/parser/BindStmtDDL.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/BindStmtDDL.cpp b/core/sql/parser/BindStmtDDL.cpp
index 9894181..f01d746 100644
--- a/core/sql/parser/BindStmtDDL.cpp
+++ b/core/sql/parser/BindStmtDDL.cpp
@@ -1848,6 +1848,37 @@ StmtDDLDropSchema::bindNode(BindWA * pBindWA)
   return this;
 }
 
+// -----------------------------------------------------------------------
+// definition of method bindNode() for class StmtDDLAlterSchema
+// -----------------------------------------------------------------------
+
+//
+// a virtual function for performing name
+// binding within the AlterSchema tree
+//
+ExprNode *
+StmtDDLAlterSchema::bindNode(BindWA * pBindWA)
+{
+  ComASSERT(pBindWA);
+  if (pBindWA->raiseAccessDefaultSchemaOnlyError())
+    return this;
+
+  // expand schema Name.
+
+  if (schemaQualName_.getCatalogName().isNull())
+  {
+    schemaQualName_.setCatalogName(pBindWA->getDefaultSchema().
+                                   getCatalogName());
+  }
+     
+  schemaName_ = ToAnsiIdentifier(schemaQualName_.getCatalogName()) + "." + 
+                ToAnsiIdentifier(schemaQualName_.getSchemaName()) ;
+
+  markAsBound();
+
+  return this;
+}
+
 // ----------------------------------------------------------------------
 // definition of method bindNode() for class StmtDDLDropSynonym
 // ----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/parser/ElemDDLNode.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/ElemDDLNode.cpp b/core/sql/parser/ElemDDLNode.cpp
index a91f9bd..f243f35 100644
--- a/core/sql/parser/ElemDDLNode.cpp
+++ b/core/sql/parser/ElemDDLNode.cpp
@@ -1286,6 +1286,12 @@ ElemDDLNode::castToStmtDDLAlterCatalog()
   return NULL;
 }
 
+StmtDDLAlterSchema *
+ElemDDLNode::castToStmtDDLAlterSchema()
+{
+  return NULL;
+}
+
 StmtDDLAlterSynonym *
 ElemDDLNode::castToStmtDDLAlterSynonym()
 {
@@ -1390,6 +1396,12 @@ ElemDDLNode::castToStmtDDLAlterTableRename()
   return NULL;
 }
 
+StmtDDLAlterTableStoredDesc *
+ElemDDLNode::castToStmtDDLAlterTableStoredDesc()
+{
+  return NULL;
+}
+
 StmtDDLAlterTableNamespace *
 ElemDDLNode::castToStmtDDLAlterTableNamespace()
 {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/parser/ElemDDLNode.h
----------------------------------------------------------------------
diff --git a/core/sql/parser/ElemDDLNode.h b/core/sql/parser/ElemDDLNode.h
index 6d90249..3203ba0 100644
--- a/core/sql/parser/ElemDDLNode.h
+++ b/core/sql/parser/ElemDDLNode.h
@@ -259,6 +259,7 @@ class StmtDDLAddConstraintRI;
 class StmtDDLAddConstraintUnique;
 class StmtDDLAlterAuditConfig;
 class StmtDDLAlterCatalog;
+class StmtDDLAlterSchema;
 class StmtDDLAlterIndex;
 class StmtDDLAlterIndexAttribute;
 class StmtDDLAlterIndexHBaseOptions;
@@ -274,6 +275,7 @@ class StmtDDLAlterTableColumn;
 class StmtDDLAlterTableMove;
 class StmtDDLAlterTablePartition;
 class StmtDDLAlterTableRename;
+class StmtDDLAlterTableStoredDesc;
 class StmtDDLAlterTableNamespace;
 class StmtDDLAlterTableAlterColumnDatatype;
 class StmtDDLAlterTableAlterColumnRename;
@@ -586,6 +588,7 @@ public:
   virtual StmtDDLAddConstraintUnique    * castToStmtDDLAddConstraintUnique(); 
   virtual StmtDDLAlterAuditConfig       * castToStmtDDLAlterAuditConfig();
   virtual StmtDDLAlterCatalog           * castToStmtDDLAlterCatalog();
+  virtual StmtDDLAlterSchema            * castToStmtDDLAlterSchema();
   virtual StmtDDLAlterIndex             * castToStmtDDLAlterIndex();
   virtual StmtDDLAlterIndexAttribute    * castToStmtDDLAlterIndexAttribute();
   virtual StmtDDLAlterIndexHBaseOptions * 
castToStmtDDLAlterIndexHBaseOptions();
@@ -604,6 +607,7 @@ public:
   virtual StmtDDLAlterTableHBaseOptions * 
castToStmtDDLAlterTableHBaseOptions();
   virtual StmtDDLAlterTablePartition    * castToStmtDDLAlterTablePartition();
   virtual StmtDDLAlterTableRename       * castToStmtDDLAlterTableRename();
+  virtual StmtDDLAlterTableStoredDesc   * castToStmtDDLAlterTableStoredDesc();
   virtual StmtDDLAlterTableNamespace    * castToStmtDDLAlterTableNamespace();
   virtual StmtDDLAlterTableAlterColumnDefaultValue* 
                 castToStmtDDLAlterTableAlterColumnDefaultValue();

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/parser/StmtDDLAlter.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/StmtDDLAlter.cpp b/core/sql/parser/StmtDDLAlter.cpp
index bab9829..31efde0 100644
--- a/core/sql/parser/StmtDDLAlter.cpp
+++ b/core/sql/parser/StmtDDLAlter.cpp
@@ -60,6 +60,7 @@
 #include "AllElemDDLFileAttr.h"
 #include "StmtDDLAlterAuditConfig.h"
 #include "StmtDDLAlterCatalog.h"
+#include "StmtDDLAlterSchema.h"
 #include "StmtDDLAlterLibrary.h"
 #include "StmtDDLAlterSynonym.h"
 #include "StmtDDLAlterTableDisableIndex.h"
@@ -441,6 +442,96 @@ StmtDDLAlterCatalog::setAllPrivileges(NABoolean isAll)
 
 
 // -----------------------------------------------------------------------
+// Methods for class StmtDDLAlterSchema
+// -----------------------------------------------------------------------
+
+void StmtDDLAlterSchema::initChecks()
+{
+  if (schemaQualName_.getCatalogName().isNull())
+    {
+      schemaName_ = ToAnsiIdentifier(schemaQualName_.getSchemaName());
+    }
+  else
+    {
+      schemaName_ = ToAnsiIdentifier(schemaQualName_.getCatalogName()) + "." +
+        ToAnsiIdentifier(schemaQualName_.getSchemaName());
+    }
+  
+  // If the schema name specified is reserved name, users cannot drop them.
+  // They can only be dropped internally.
+  if ((! Get_SqlParser_Flags(INTERNAL_QUERY_FROM_EXEUTIL)) &&
+      (ComIsTrafodionReservedSchemaName(schemaQualName_.getSchemaName())) &&
+      (!ComIsTrafodionExternalSchemaName(schemaQualName_.getSchemaName())))
+    {
+      // error.
+      *SqlParser_Diags << DgSqlCode(-1430)
+                       << DgSchemaName(schemaName_);
+    }
+}
+
+StmtDDLAlterSchema::StmtDDLAlterSchema(const ElemDDLSchemaName & 
aSchemaNameParseNode,
+                                       CollHeap    * heap)
+: StmtDDLNode(DDL_ALTER_SCHEMA),
+  schemaQualName_(aSchemaNameParseNode.getSchemaName(), heap),
+  dropAllTables_(TRUE),
+  renameSchema_(FALSE),
+  alterStoredDesc_(FALSE)
+{
+  initChecks();
+}
+
+StmtDDLAlterSchema::StmtDDLAlterSchema(const ElemDDLSchemaName & 
aSchemaNameParseNode,
+                                       NAString &renamedSchName,
+                                       CollHeap    * heap)
+: StmtDDLNode(DDL_ALTER_SCHEMA),
+  schemaQualName_(aSchemaNameParseNode.getSchemaName(), heap),
+  dropAllTables_(FALSE),
+  renameSchema_(TRUE),
+  renamedSchName_(renamedSchName),
+  alterStoredDesc_(FALSE)
+{
+  initChecks();
+}
+
+StmtDDLAlterSchema::StmtDDLAlterSchema(const ElemDDLSchemaName & 
aSchemaNameParseNode,
+                                       const 
StmtDDLAlterTableStoredDesc::AlterStoredDescType oper,
+                                       CollHeap    * heap)
+     
+: StmtDDLNode(DDL_ALTER_SCHEMA),
+  schemaQualName_(aSchemaNameParseNode.getSchemaName(), heap),
+  dropAllTables_(FALSE),
+  renameSchema_(FALSE),
+  alterStoredDesc_(TRUE),
+  storedDescOper_(oper)
+{
+  initChecks();
+}
+
+StmtDDLAlterSchema::~StmtDDLAlterSchema()
+{}
+
+// cast
+
+StmtDDLAlterSchema *
+StmtDDLAlterSchema::castToStmtDDLAlterSchema()
+{
+   return this;
+}
+
+// for tracing
+const NAString
+StmtDDLAlterSchema::displayLabel1() const
+{
+   return NAString("Schema name: " ) + getSchemaName();
+}
+
+const NAString
+StmtDDLAlterSchema::getText() const
+{
+   return "StmtDDLAlterSchema";
+}
+
+// -----------------------------------------------------------------------
 // Methods for class StmtDDLAlterSynonym
 // -----------------------------------------------------------------------
 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/parser/StmtDDLAlterSchema.h
----------------------------------------------------------------------
diff --git a/core/sql/parser/StmtDDLAlterSchema.h 
b/core/sql/parser/StmtDDLAlterSchema.h
new file mode 100644
index 0000000..eedf9cd
--- /dev/null
+++ b/core/sql/parser/StmtDDLAlterSchema.h
@@ -0,0 +1,177 @@
+/**********************************************************************
+// @@@ 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 STMTDDLALTERSCHEMA_H
+#define STMTDDLALTERSCHEMA_H
+
+/* -*-C++-*-
+ *****************************************************************************
+ *
+ * File:         StmtDDLAlterSchema.h
+ * Description:  Alter Schema Statement (parse node)
+ *
+ *
+ * Created:     
+ * Language:     C++
+ *
+ *
+ *
+ *
+ *****************************************************************************
+ */
+
+
+#include "ElemDDLSchemaName.h"
+#include "StmtDDLNode.h"
+#include "StmtDDLAlterTableStoredDesc.h"
+
+// -----------------------------------------------------------------------
+// contents of this file
+// -----------------------------------------------------------------------
+class StmtDDLAlterSchema;
+
+// -----------------------------------------------------------------------
+// forward references
+// -----------------------------------------------------------------------
+// None.
+
+
+// -----------------------------------------------------------------------
+// Alter Schema statement
+// -----------------------------------------------------------------------
+class StmtDDLAlterSchema : public StmtDDLNode
+{
+public:
+
+  // called for 'drop all tables'
+  StmtDDLAlterSchema(const ElemDDLSchemaName & aSchemaNameParseNode,
+                     CollHeap    * heap = PARSERHEAP());
+  
+  // called for 'rename schema'
+  StmtDDLAlterSchema(const ElemDDLSchemaName & aSchemaNameParseNode,
+                     NAString &renamedSchName,
+                     CollHeap    * heap = PARSERHEAP());
+  
+  // called for 'stored descriptor' processing
+  StmtDDLAlterSchema(const ElemDDLSchemaName & aSchemaNameParseNode,
+                     const StmtDDLAlterTableStoredDesc::AlterStoredDescType 
oper,
+                     CollHeap    * heap = PARSERHEAP());
+
+  void initChecks();
+
+  // virtual destructor
+  virtual ~StmtDDLAlterSchema();
+
+  // cast
+  virtual StmtDDLAlterSchema * castToStmtDDLAlterSchema();
+
+  //
+  // accessors
+  //
+
+  inline const NAString & getSchemaName() const;
+  inline const SchemaName & getSchemaNameAsQualifiedName() const;
+  inline       SchemaName & getSchemaNameAsQualifiedName();
+
+  //
+  // other public methods
+  //
+
+  NABoolean isDropAllTables() { return dropAllTables_; }
+  const NABoolean isDropAllTables() const { return dropAllTables_; }
+
+  NABoolean isRenameSchema() { return renameSchema_; }
+  const NABoolean isRenameSchema() const { return renameSchema_; }
+
+  NABoolean isAlterStoredDesc() { return alterStoredDesc_; }
+  const NABoolean isAlterStoredDesc() const { return alterStoredDesc_; }
+
+  NAString &getRenamedSchemaName() { return renamedSchName_; }
+  const NAString &getRenamedSchemaName() const { return renamedSchName_; }
+
+  StmtDDLAlterTableStoredDesc::AlterStoredDescType &getStoredDescOperation()
+  { return storedDescOper_; }
+
+  // method for processing
+  ExprNode * bindNode(BindWA *bindWAPtr);
+
+  // method for collecting information
+  //  void synthesize();
+
+  // methods for tracing
+  virtual const NAString displayLabel1() const;
+  virtual const NAString getText() const;
+
+private:
+
+  // ---------------------------------------------------------------------
+  // private methods
+  // ---------------------------------------------------------------------
+
+  //
+  // please do not use the following methods
+  //
+  
+  StmtDDLAlterSchema();                                         // DO NOT USE
+  StmtDDLAlterSchema(const StmtDDLAlterSchema &);              // DO NOT USE
+  StmtDDLAlterSchema & operator=(const StmtDDLAlterSchema &);  // DO NOT USE
+
+  // ---------------------------------------------------------------------
+  // private data members
+  // ---------------------------------------------------------------------
+  
+  NAString schemaName_;
+  SchemaName schemaQualName_;
+  NABoolean dropAllTables_;
+  NABoolean renameSchema_;
+  NAString renamedSchName_;
+  NABoolean alterStoredDesc_;
+  StmtDDLAlterTableStoredDesc::AlterStoredDescType storedDescOper_;
+
+}; // class StmtDDLAlterSchema
+
+// -----------------------------------------------------------------------
+// definitions of inline methods for class StmtDDLAlterSchema
+// -----------------------------------------------------------------------
+
+//
+// accessors
+//
+inline SchemaName &
+StmtDDLAlterSchema::getSchemaNameAsQualifiedName() 
+{
+  return schemaQualName_;
+}
+
+inline const SchemaName &
+StmtDDLAlterSchema::getSchemaNameAsQualifiedName() const
+{
+  return schemaQualName_;
+}
+
+inline const NAString &
+StmtDDLAlterSchema::getSchemaName() const
+{
+  return schemaName_;
+}
+
+#endif // STMTDDLALTERSCHEMA_H

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y
index 9dfdb2b..da577dd 100755
--- a/core/sql/parser/sqlparser.y
+++ b/core/sql/parser/sqlparser.y
@@ -2489,10 +2489,12 @@ static void enableMakeQuotedStringISO88591Mechanism()
 
 %type <pStmtDDL>               alter_audit_config_statement
 %type <pStmtDDL>               alter_catalog_statement
+%type <pStmtDDL>               alter_schema_statement
 %type <pElemDDL>               alter_table_move_clause
 %type <pStmtDDL>               alter_table_rename_clause
-%type <pStmtDDL>           alter_table_enable_index_clause
-%type <pStmtDDL>           alter_table_disable_index_clause
+%type <pStmtDDL>                alter_table_enable_index_clause
+%type <pStmtDDL>                alter_table_disable_index_clause
+%type <uint>                   alter_stored_descriptor_option
 %type <boolean>                optional_cascade
 %type <pStmtDDL>               alter_table_add_column_clause
 %type <pStmtDDL>               alter_table_drop_column_clause
@@ -14221,6 +14223,10 @@ sql_schema_manipulation_statement :
                                {
                                }
 
+             | alter_schema_statement
+                               {
+                               }
+
               | alter_index_statement
                                {
                                }
@@ -31017,6 +31023,47 @@ alter_catalog_statement: TOK_ALTER TOK_CATALOG 
sql_mx_catalog_name enable_status
                                        TRUE,    //disable/enable_create
                                       *$8);
                                 }
+
+/* type pStmtDDL */
+alter_schema_statement: TOK_ALTER TOK_SCHEMA schema_name_clause 
alter_stored_descriptor_option
+                       {
+                          $$ = new (PARSERHEAP()) 
+                            StmtDDLAlterSchema
+                            (*$3,
+                             
(StmtDDLAlterTableStoredDesc::AlterStoredDescType)$4);
+
+                        }
+                     |  TOK_ALTER TOK_SCHEMA schema_name_clause TOK_DROP 
TOK_ALL TOK_TABLES
+                       {
+                          NAString 
extSchName($3->getSchemaName().getSchemaNameAsAnsiString());
+                          if (! validateVolatileSchemaName(extSchName))
+                            {
+                              YYERROR;
+                            }
+                          
+                          $$ = new (PARSERHEAP())
+                            StmtDDLDropSchema(
+                                 *$3 /*schema_name_clause*/,
+                                 COM_CASCADE_DROP_BEHAVIOR,
+                                 FALSE /*optional_cleanup*/,
+                                 TRUE);
+                          delete $3 /*schema_name*/;
+                        }
+                     |  TOK_ALTER TOK_SCHEMA schema_name_clause TOK_RENAME 
TOK_TO identifier
+                       {
+                          NAString 
extSchName($3->getSchemaName().getSchemaNameAsAnsiString());
+                          if (! validateVolatileSchemaName(extSchName))
+                            {
+                              YYERROR;
+                            }
+                          
+                          $$ = new (PARSERHEAP())
+                            StmtDDLAlterSchema(
+                                 *$3 /*schema_name_clause*/,
+                                 *$6);
+                          delete $3 /*schema_name*/;
+                          delete $6; // renamed schema
+                        }
                                 
 /* type pStmtDDL */
 alter_library_statement : TOK_ALTER TOK_LIBRARY ddl_qualified_name 
@@ -31429,6 +31476,12 @@ alter_table_action : add_table_constraint_definition
                                  
StmtDDLAlterTableHBaseOptions($2->castToElemDDLHbaseOptions());
                         }
                        
+                      | alter_stored_descriptor_option
+                        {
+                          $$ = new (PARSERHEAP()) StmtDDLAlterTableStoredDesc
+                            
((StmtDDLAlterTableStoredDesc::AlterStoredDescType)$1);
+                        }
+
 
 /* type pStmtDDL */
 alter_synonym_statement : TOK_ALTER TOK_SYNONYM ddl_qualified_name 
@@ -31825,6 +31878,29 @@ alter_table_drop_column_clause : TOK_DROP 
optional_col_keyword TOK_IF TOK_EXISTS
                                    $$ = pNode;
                                   }
 
+/* type uint */
+alter_stored_descriptor_option : TOK_GENERATE TOK_STORED TOK_DESCRIPTOR
+              {
+                $$ = (Int32)StmtDDLAlterTableStoredDesc::GENERATE;
+              }
+              | TOK_CHECK TOK_STORED TOK_DESCRIPTOR
+              {
+                $$ = (Int32)StmtDDLAlterTableStoredDesc::CHECK;
+              }
+              | TOK_DELETE TOK_STORED TOK_DESCRIPTOR
+              {
+                $$ = (Int32)StmtDDLAlterTableStoredDesc::DELETE;
+              }
+              | TOK_ENABLE TOK_STORED TOK_DESCRIPTOR
+              {
+                $$ = (Int32)StmtDDLAlterTableStoredDesc::ENABLE;
+              }
+              | TOK_DISABLE TOK_STORED TOK_DESCRIPTOR
+              {
+                $$ = (Int32)StmtDDLAlterTableStoredDesc::DISABLE;
+              }
+
+
 /* type pStmtDDL */
 
 drop_sql : TOK_DROP TOK_SQL extension_drop_behavior

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/regress/executor/EXPECTED013.SB
----------------------------------------------------------------------
diff --git a/core/sql/regress/executor/EXPECTED013.SB 
b/core/sql/regress/executor/EXPECTED013.SB
index 8a64c9f..da6f64b 100644
--- a/core/sql/regress/executor/EXPECTED013.SB
+++ b/core/sql/regress/executor/EXPECTED013.SB
@@ -450,6 +450,8 @@ CONTROL QUERY DEFAULT
   HBASE_SMALL_SCANNER                  SYSTEM
   HBASE_FILTER_PREDS                   2
   TRAF_INDEX_CREATE_OPT                ON
+  TRAF_READ_OBJECT_DESC                ON
+  TRAF_STORE_OBJECT_DESC               ON
   HBASE_ASYNC_DROP_TABLE               OFF
   POS                                  OFF
   SCHEMA                               TRAFODION.T013_SCH

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/regress/executor/TEST122
----------------------------------------------------------------------
diff --git a/core/sql/regress/executor/TEST122 
b/core/sql/regress/executor/TEST122
index 2290b42..f2e0c72 100755
--- a/core/sql/regress/executor/TEST122
+++ b/core/sql/regress/executor/TEST122
@@ -389,6 +389,7 @@ log LOG122;
 ?section drop_tab
 
 set schema $$TEST_SCHEMA$$;
+obey $$scriptsdir$$/tools/sbdefs;
 
 log LOG122;
 
@@ -400,6 +401,7 @@ insert into t122t1 values ('i'), ('ii'), ('iii'), ('iv');
 
 ?section alter_tbl_add
 set schema $$TEST_SCHEMA$$;
+obey $$scriptsdir$$/tools/sbdefs;
 
 log LOG122;
 -- add columns, constraints, and indexes
@@ -412,6 +414,8 @@ create index t122t3_index on t122t3(c2);
 
 ?section alter_tbl_drop
 set schema $$TEST_SCHEMA$$;
+obey $$scriptsdir$$/tools/sbdefs;
+
 log LOG122;
 -- drop columns, constraints, and indexes
 alter table t122t3_col drop column c3;
@@ -423,6 +427,8 @@ drop index t122t3_index;
 
 ?section drop_view
 set schema $$TEST_SCHEMA$$;
+obey $$scriptsdir$$/tools/sbdefs;
+
 log LOG122;
 
 drop view t122_v7;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/regress/fullstack2/EXPECTED062
----------------------------------------------------------------------
diff --git a/core/sql/regress/fullstack2/EXPECTED062 
b/core/sql/regress/fullstack2/EXPECTED062
index ca88f6d..11fc562 100644
--- a/core/sql/regress/fullstack2/EXPECTED062
+++ b/core/sql/regress/fullstack2/EXPECTED062
@@ -501,6 +501,8 @@ CONTROL QUERY DEFAULT
   HBASE_SMALL_SCANNER                  SYSTEM
   HBASE_FILTER_PREDS                   2
   TRAF_INDEX_CREATE_OPT                ON
+  TRAF_READ_OBJECT_DESC                ON
+  TRAF_STORE_OBJECT_DESC               ON
   SHOWCONTROL_SHOW_ALL                 ON
   SCHEMA                               AAA.BBB
   CATALOG                              CCC
@@ -545,6 +547,8 @@ CONTROL QUERY DEFAULT
   HBASE_SMALL_SCANNER                  SYSTEM
   HBASE_FILTER_PREDS                   2
   TRAF_INDEX_CREATE_OPT                ON
+  TRAF_READ_OBJECT_DESC                ON
+  TRAF_STORE_OBJECT_DESC               ON
   SHOWCONTROL_SHOW_ALL                 ON
   DEF_CHUNK_SIZE                       1000
   CPUCOST_DM_GET                       .001
@@ -580,6 +584,8 @@ CONTROL QUERY DEFAULT
   HBASE_SMALL_SCANNER                  SYSTEM
   HBASE_FILTER_PREDS                   2
   TRAF_INDEX_CREATE_OPT                ON
+  TRAF_READ_OBJECT_DESC                ON
+  TRAF_STORE_OBJECT_DESC               ON
   SHOWCONTROL_SHOW_ALL                 ON
   DEF_CHUNK_SIZE                       1000
   CPUCOST_DM_GET                       .001

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/regress/fullstack2/EXPECTED062.RELEASE
----------------------------------------------------------------------
diff --git a/core/sql/regress/fullstack2/EXPECTED062.RELEASE 
b/core/sql/regress/fullstack2/EXPECTED062.RELEASE
index 4b48a87..849ddf7 100644
--- a/core/sql/regress/fullstack2/EXPECTED062.RELEASE
+++ b/core/sql/regress/fullstack2/EXPECTED062.RELEASE
@@ -501,6 +501,8 @@ CONTROL QUERY DEFAULT
   HBASE_SMALL_SCANNER                  SYSTEM
   HBASE_FILTER_PREDS                   2
   TRAF_INDEX_CREATE_OPT                ON
+  TRAF_READ_OBJECT_DESC                ON
+  TRAF_STORE_OBJECT_DESC               ON
   SHOWCONTROL_SHOW_ALL                 ON
   SCHEMA                               AAA.BBB
   CATALOG                              CCC
@@ -545,6 +547,8 @@ CONTROL QUERY DEFAULT
   HBASE_SMALL_SCANNER                  SYSTEM
   HBASE_FILTER_PREDS                   2
   TRAF_INDEX_CREATE_OPT                ON
+  TRAF_READ_OBJECT_DESC                ON
+  TRAF_STORE_OBJECT_DESC               ON
   SHOWCONTROL_SHOW_ALL                 ON
   DEF_CHUNK_SIZE                       1000
   CPUCOST_DM_GET                       .001
@@ -580,6 +584,8 @@ CONTROL QUERY DEFAULT
   HBASE_SMALL_SCANNER                  SYSTEM
   HBASE_FILTER_PREDS                   2
   TRAF_INDEX_CREATE_OPT                ON
+  TRAF_READ_OBJECT_DESC                ON
+  TRAF_STORE_OBJECT_DESC               ON
   SHOWCONTROL_SHOW_ALL                 ON
   DEF_CHUNK_SIZE                       1000
   CPUCOST_DM_GET                       .001

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/regress/hive/EXPECTED018
----------------------------------------------------------------------
diff --git a/core/sql/regress/hive/EXPECTED018 
b/core/sql/regress/hive/EXPECTED018
index 883e349..14cd75a 100644
--- a/core/sql/regress/hive/EXPECTED018
+++ b/core/sql/regress/hive/EXPECTED018
@@ -150,9 +150,9 @@ Task:  CLEANUP         Status: Started    Object: 
TRAFODION.HBASE.CUSTOMER_ADDRE
 Task:  CLEANUP         Status: Ended      Object: 
TRAFODION.HBASE.CUSTOMER_ADDRESS
 Task:  PREPARATION     Status: Started    Object: 
TRAFODION.HBASE.CUSTOMER_ADDRESS
        Rows Processed: 50000 
-Task:  PREPARATION     Status: Ended      ET: 00:00:09.733
+Task:  PREPARATION     Status: Ended      ET: 00:00:08.019
 Task:  COMPLETION      Status: Started    Object: 
TRAFODION.HBASE.CUSTOMER_ADDRESS
-Task:  COMPLETION      Status: Ended      ET: 00:00:00.398
+Task:  COMPLETION      Status: Ended      ET: 00:00:00.251
 
 --- 50000 row(s) loaded.
 >>--
@@ -181,9 +181,9 @@ Task:  CLEANUP         Status: Started    Object: 
TRAFODION.HBASE.CUSTOMER_DEMOG
 Task:  CLEANUP         Status: Ended      Object: 
TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS
 Task:  PREPARATION     Status: Started    Object: 
TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS
        Rows Processed: 20000 
-Task:  PREPARATION     Status: Ended      ET: 00:00:12.160
+Task:  PREPARATION     Status: Ended      ET: 00:00:10.738
 Task:  COMPLETION      Status: Started    Object: 
TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS
-Task:  COMPLETION      Status: Ended      ET: 00:00:00.362
+Task:  COMPLETION      Status: Ended      ET: 00:00:00.182
 
 --- 20000 row(s) loaded.
 >>--
@@ -213,9 +213,9 @@ Task:  CLEANUP         Status: Started    Object: 
TRAFODION.HBASE.CUSTOMER_DEMOG
 Task:  CLEANUP         Status: Ended      Object: 
TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS_SALT
 Task:  PREPARATION     Status: Started    Object: 
TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS_SALT
        Rows Processed: 20000 
-Task:  PREPARATION     Status: Ended      ET: 00:00:08.208
+Task:  PREPARATION     Status: Ended      ET: 00:00:08.632
 Task:  COMPLETION      Status: Started    Object: 
TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS_SALT
-Task:  COMPLETION      Status: Ended      ET: 00:00:00.327
+Task:  COMPLETION      Status: Ended      ET: 00:00:00.165
 
 --- 20000 row(s) loaded.
 >>--                                                                           
 >>   
@@ -235,9 +235,9 @@ Task:  CLEANUP         Status: Started    Object: 
TRAFODION.HBASE.CUSTOMER_SALT
 Task:  CLEANUP         Status: Ended      Object: TRAFODION.HBASE.CUSTOMER_SALT
 Task:  PREPARATION     Status: Started    Object: TRAFODION.HBASE.CUSTOMER_SALT
        Rows Processed: 100000 
-Task:  PREPARATION     Status: Ended      ET: 00:00:10.404
+Task:  PREPARATION     Status: Ended      ET: 00:00:07.306
 Task:  COMPLETION      Status: Started    Object: TRAFODION.HBASE.CUSTOMER_SALT
-Task:  COMPLETION      Status: Ended      ET: 00:00:00.332
+Task:  COMPLETION      Status: Ended      ET: 00:00:00.192
 
 --- 100000 row(s) loaded.
 >>--
@@ -266,9 +266,9 @@ Task:  CLEANUP         Status: Started    Object: 
TRAFODION.HBASE.STORE_SALES_SA
 Task:  CLEANUP         Status: Ended      Object: 
TRAFODION.HBASE.STORE_SALES_SALT
 Task:  PREPARATION     Status: Started    Object: 
TRAFODION.HBASE.STORE_SALES_SALT
        Rows Processed: 160756 
-Task:  PREPARATION     Status: Ended      ET: 00:00:13.314
+Task:  PREPARATION     Status: Ended      ET: 00:00:10.315
 Task:  COMPLETION      Status: Started    Object: 
TRAFODION.HBASE.STORE_SALES_SALT
-Task:  COMPLETION      Status: Ended      ET: 00:00:00.309
+Task:  COMPLETION      Status: Ended      ET: 00:00:00.168
 
 --- 160756 row(s) loaded.
 >>--
@@ -356,10 +356,10 @@ a
 +>   select * from null_format_src;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 10 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.334
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.219
 
 --- 10 row(s) unloaded.
 >>select * from hive.hive.null_format_default;
@@ -385,10 +385,10 @@ a
 +>   select * from null_format_src;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.008
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  EXTRACT         Status: Started
        Rows Processed: 10 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.325
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.196
 
 --- 10 row(s) unloaded.
 >>select * from hive.hive.null_format_empty;
@@ -414,10 +414,10 @@ a                                                         
    ?
 +>   select * from null_format_src;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 10 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.409
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.199
 
 --- 10 row(s) unloaded.
 >>select * from hive.hive.null_format_colon;
@@ -445,6 +445,15 @@ a
 >>
 >>sh  regrhbase.ksh $REGRTSTDIR/TEST018_create_hbase_objects.hbase &> 
 >>$REGRRUNDIR/LOG018_create_hbase_tables.log ;
 >>
+>>alter table hbase.customer_address generate stored descriptor;
+
+--- SQL operation complete.
+>>alter table hbase.customer_demographics_salt generate stored descriptor;
+
+--- SQL operation complete.
+>>alter table hbase.customer_salt generate stored descriptor;
+
+--- SQL operation complete.
 >>
 >>--exp1
 >>explain options 'f' 
@@ -471,12 +480,12 @@ LC   RC   OP   OPERATOR              OPT       
DESCRIPTION           CARD
 +>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.024
 Task:  EXTRACT         Status: Started
        Rows Processed: 50000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:04.200
+Task:  EXTRACT         Status: Ended      ET: 00:00:02.162
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.064
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.038
 
 --- 50000 row(s) unloaded.
 >>log;
@@ -509,12 +518,12 @@ LC   RC   OP   OPERATOR              OPT       
DESCRIPTION           CARD
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.006
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.146
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.631
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.039
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.017
 
 --- 20000 row(s) unloaded.
 >>log;
@@ -533,12 +542,12 @@ cat /tmp/merged_customer_demogs | wc -l
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.006
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.983
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.593
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.024
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.036
 
 --- 20000 row(s) unloaded.
 >>log;
@@ -570,12 +579,12 @@ LC   RC   OP   OPERATOR              OPT       
DESCRIPTION           CARD
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.010
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.386
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.790
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.052
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.028
 
 --- 20000 row(s) unloaded.
 >>
@@ -593,12 +602,12 @@ regrhadoop.ksh fs -du -s 
/bulkload/customer_demographics_salt/merged_customer_de
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.911
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.560
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.049
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.032
 
 --- 20000 row(s) unloaded.
 >>
@@ -631,10 +640,10 @@ LC   RC   OP   OPERATOR              OPT       
DESCRIPTION           CARD
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.244
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.467
 
 --- 20000 row(s) unloaded.
 >>
@@ -654,12 +663,12 @@ regrhadoop.ksh fs -ls 
/bulkload/customer_demographics_salt/file* |  grep file |
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.010
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.009
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.058
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.504
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.057
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.030
 
 --- 20000 row(s) unloaded.
 >>
@@ -792,12 +801,12 @@ CD_DEMO_SK   CD_GENDER
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.982
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.560
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.048
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.035
 
 --- 20000 row(s) unloaded.
 >>log;
@@ -832,12 +841,12 @@ regrhadoop.ksh fs -ls 
/bulkload/customer_demographics_salt/merged* | grep merge
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.007
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.064
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.477
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.059
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.074
 
 --- 20000 row(s) unloaded.
 >>--sh sleep 10;
@@ -890,7 +899,7 @@ Task:  EMPTY TARGET    Status: Started
 Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.995
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.448
 
 --- 20000 row(s) unloaded.
 >>--sh sleep 10;
@@ -941,10 +950,10 @@ CD_DEMO_SK   CD_GENDER
 +>select * from trafodion.hbase.customer_address ;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 50000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:02.475
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.450
 
 --- 50000 row(s) unloaded.
 >>--sh sleep 10;
@@ -994,10 +1003,10 @@ CA_ADDRESS_SK  CA_ADDRESS_ID
 +>select * from trafodion.hbase.customer_address ;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.011
 Task:  EXTRACT         Status: Started
        Rows Processed: 50000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:02.595
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.355
 
 --- 50000 row(s) unloaded.
 >>--sh sleep 10;
@@ -1060,10 +1069,10 @@ CA_ADDRESS_SK  CA_ADDRESS_ID
 +>select * from trafodion.hbase.customer_salt;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.006
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 100000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:07.642
+Task:  EXTRACT         Status: Ended      ET: 00:00:04.708
 
 --- 100000 row(s) unloaded.
 >>--sh sleep 10;
@@ -1114,10 +1123,10 @@ C_CUSTOMER_SK  C_CUSTOMER_ID
 +>select * from trafodion.hbase.customer_demographics_salt;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.019
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.008
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.228
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.708
 
 --- 20000 row(s) unloaded.
 >>--sh sleep 10;
@@ -1170,9 +1179,9 @@ Task:  EMPTY TARGET    Status: Started
 Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 99 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.216
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.200
 Task:  MERGE FILES     Status: Started
-Task:  MERGE FILES     Status: Ended      ET: 00:00:00.023
+Task:  MERGE FILES     Status: Ended      ET: 00:00:00.020
 
 --- 99 row(s) unloaded.
 >>
@@ -1211,7 +1220,7 @@ Task:  EMPTY TARGET    Status: Started
 Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  EXTRACT         Status: Started
        Rows Processed: 12349 
-Task:  EXTRACT         Status: Ended      ET: 00:00:10.062
+Task:  EXTRACT         Status: Ended      ET: 00:00:05.157
 
 --- 12349 row(s) unloaded.
 >>--sh sleep 10;
@@ -1330,10 +1339,10 @@ SS_SOLD_DATE_SK  SS_STORE_SK  SS_QUANTITY
 +>select * from trafodion.hbase.customer_salt c join 
trafodion.hbase.customer_address ca on c.c_current_addr_sk = ca.ca_address_sk ;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  EXTRACT         Status: Started
        Rows Processed: 100000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:09.838
+Task:  EXTRACT         Status: Ended      ET: 00:00:05.823
 
 --- 100000 row(s) unloaded.
 >>--sh sleep 10;
@@ -1384,7 +1393,7 @@ Task:  EMPTY TARGET    Status: Started
 Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
 Task:  EXTRACT         Status: Started
        Rows Processed: 1998 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.695
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.449
 
 --- 1998 row(s) unloaded.
 >>--sh sleep 10;
@@ -1495,7 +1504,7 @@ ESP_EXCHANGE ==============================  SEQ_NO 3     
   ONLY CHILD 2
   use_snapshot_scan ...... TRUE
   full_table_name ........ TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS_SALT
   snapshot_name .......... TRAFODION.HBASE.CUSTOMER_DEMOGRAPHICS_SALT_SNAP111
-  snapshot_temp_location   /bulkload/20160708212424/
+  snapshot_temp_location   /bulkload/20160728184715/
 grep -i -e 'explain reg' -e snapshot -e full_table_name  -e esp_exchange  
LOG018_REGULAR_SCAN_PLAN.TXT | grep -v snapshot_scan_run_id
 >>--no snapshot
 >>explain reg;
@@ -1575,7 +1584,7 @@ grep -i -e 'explain snp' -e snapshot -e full_table_name 
-e esp_exchange LOG018_S
   use_snapshot_scan ...... TRUE
   full_table_name ........ TRAFODION.HBASE.CUSTOMER_ADDRESS
   snapshot_name .......... TRAFODION.HBASE.CUSTOMER_ADDRESS_SNAP111
-  snapshot_temp_location   /bulkload/20160708212436/
+  snapshot_temp_location   /bulkload/20160728184722/
 grep -i -e 'explain reg' -e snapshot -e full_table_name  -e esp_exchange  
LOG018_REGULAR_SCAN_PLAN.TXT | grep -v snapshot_scan_run_id
 >>--no snapshot
 >>explain reg;
@@ -1657,11 +1666,11 @@ grep -i -e 'explain snp' -e snapshot -e full_table_name 
-e esp_exchange LOG018_S
   use_snapshot_scan ...... TRUE
   full_table_name ........ TRAFODION.HBASE.CUSTOMER_SALT
   snapshot_name .......... TRAFODION.HBASE.CUSTOMER_SALT_SNAP111
-  snapshot_temp_location   /bulkload/20160708212512/
+  snapshot_temp_location   /bulkload/20160728184741/
   use_snapshot_scan ...... TRUE
   full_table_name ........ TRAFODION.HBASE.CUSTOMER_ADDRESS
   snapshot_name .......... TRAFODION.HBASE.CUSTOMER_ADDRESS_SNAP111
-  snapshot_temp_location   /bulkload/20160708212512/
+  snapshot_temp_location   /bulkload/20160728184741/
 grep -i -e 'explain reg' -e snapshot -e full_table_name  -e esp_exchange  
LOG018_REGULAR_SCAN_PLAN.TXT | grep -v snapshot_scan_run_id
 >>--no snapshot
 >>explain reg;
@@ -1774,13 +1783,13 @@ LC   RC   OP   OPERATOR              OPT       
DESCRIPTION           CARD
 +><<+ cardinality 10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.025
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  VERIFY SNAPSHO  Status: Started
        Snapshots verified: 1 
-Task:  VERIFY SNAPSHO  Status: Ended      ET: 00:00:00.494
+Task:  VERIFY SNAPSHO  Status: Ended      ET: 00:00:00.294
 Task:  EXTRACT         Status: Started
        Rows Processed: 50000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:03.271
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.446
 
 --- 50000 row(s) unloaded.
 >>
@@ -1852,13 +1861,13 @@ LC   RC   OP   OPERATOR              OPT       
DESCRIPTION           CARD
 +>select * from trafodion.hbase.customer_demographics_salt <<+ cardinality 
10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.002
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  VERIFY SNAPSHO  Status: Started
        Snapshots verified: 1 
-Task:  VERIFY SNAPSHO  Status: Ended      ET: 00:00:00.374
+Task:  VERIFY SNAPSHO  Status: Ended      ET: 00:00:00.297
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:02.347
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.827
 
 --- 20000 row(s) unloaded.
 >>
@@ -1906,16 +1915,16 @@ CD_DEMO_SK   CD_GENDER
 +>select * from trafodion.hbase.customer_demographics_salt <<+ cardinality 
10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.008
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.007
 Task:  CREATE SNAPSHO  Status: Started
        Snapshots created: 1 
-Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:01.520
+Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:00.436
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.725
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.026
 Task:  DELETE SNAPSHO  Status: Started
        Snapshots deleted: 1 
-Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.028
+Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.010
 
 --- 20000 row(s) unloaded.
 >>
@@ -1967,16 +1976,16 @@ CD_DEMO_SK   CD_GENDER
 +>select * from trafodion.hbase.customer_demographics_salt <<+ cardinality 
10e10 >>;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.009
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.007
 Task:  CREATE SNAPSHO  Status: Started
        Snapshots created: 1 
-Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:01.458
+Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:00.590
 Task:  EXTRACT         Status: Started
        Rows Processed: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.347
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.996
 Task:  DELETE SNAPSHO  Status: Started
        Snapshots deleted: 1 
-Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.006
+Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.004
 
 --- 20000 row(s) unloaded.
 >>
@@ -2029,16 +2038,16 @@ CD_DEMO_SK   CD_GENDER
 +>select * from customer_address where ca_address_sk < 1000 union select * 
from customer_address where ca_address_sk > 40000  and ca_address_sk < 41000;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.006
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
 Task:  CREATE SNAPSHO  Status: Started
        Snapshots created: 1 
-Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:01.079
+Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:00.500
 Task:  EXTRACT         Status: Started
        Rows Processed: 1998 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.725
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.562
 Task:  DELETE SNAPSHO  Status: Started
        Snapshots deleted: 1 
-Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.005
+Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.003
 
 --- 1998 row(s) unloaded.
 >>
@@ -2113,16 +2122,16 @@ CA_ADDRESS_SK  CA_ADDRESS_ID
 +>select * from trafodion.hbase.customer_salt c join 
trafodion.hbase.customer_address ca on c.c_current_addr_sk = ca.ca_address_sk ;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.004
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.003
 Task:  CREATE SNAPSHO  Status: Started
        Snapshots created: 2 
-Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:03.077
+Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:01.644
 Task:  EXTRACT         Status: Started
        Rows Processed: 100000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:09.442
+Task:  EXTRACT         Status: Ended      ET: 00:00:06.607
 Task:  DELETE SNAPSHO  Status: Started
        Snapshots deleted: 2 
-Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.009
+Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.006
 
 --- 100000 row(s) unloaded.
 >>--sh sleep 10;
@@ -2190,16 +2199,16 @@ LC   RC   OP   OPERATOR              OPT       
DESCRIPTION           CARD
 +>select c_first_name,c_last_name from trafodion.hbase.customer_salt;
 Task: UNLOAD           Status: Started
 Task:  EMPTY TARGET    Status: Started
-Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.005
+Task:  EMPTY TARGET    Status: Ended      ET: 00:00:00.009
 Task:  CREATE SNAPSHO  Status: Started
        Snapshots created: 1 
-Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:00.640
+Task:  CREATE SNAPSHO  Status: Ended      ET: 00:00:00.361
 Task:  EXTRACT         Status: Started
        Rows Processed: 100000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:01.597
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.350
 Task:  DELETE SNAPSHO  Status: Started
        Snapshots deleted: 1 
-Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.007
+Task:  DELETE SNAPSHO  Status: Ended      ET: 00:00:00.004
 
 --- 100000 row(s) unloaded.
 >>--sh sleep 10;
@@ -2280,7 +2289,7 @@ unload with delimiter 0 into '/bulkload/test' select * 
from CUSTOMER_ADDRESS;
 Task: UNLOAD           Status: Started
 Task:  EXTRACT         Status: Started
        Rows Processed: 50000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:02.827
+Task:  EXTRACT         Status: Ended      ET: 00:00:01.328
 
 --- 50000 row(s) unloaded.
 >>--unload  24 -- should give an error
@@ -2345,7 +2354,7 @@ regrhadoop.ksh fs -rm 
/user/hive/exttables/unload_customer_demographics/*
 Task: UNLOAD           Status: Started
 Task:  EXTRACT         Status: Started
        Rows Processed but NOT Written to Disk: 20000 
-Task:  EXTRACT         Status: Ended      ET: 00:00:00.904
+Task:  EXTRACT         Status: Ended      ET: 00:00:00.435
 
 --- 20000 row(s) unloaded.
 >>--sh sleep 10;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/regress/hive/TEST018
----------------------------------------------------------------------
diff --git a/core/sql/regress/hive/TEST018 b/core/sql/regress/hive/TEST018
index 5f1b611..8a17313 100644
--- a/core/sql/regress/hive/TEST018
+++ b/core/sql/regress/hive/TEST018
@@ -279,6 +279,9 @@ create index customer_idx1 on customer_salt(c_first_name, 
c_last_name);
 
 sh  regrhbase.ksh $REGRTSTDIR/TEST018_create_hbase_objects.hbase &> 
$REGRRUNDIR/LOG018_create_hbase_tables.log ;
 
+alter table hbase.customer_address generate stored descriptor;
+alter table hbase.customer_demographics_salt generate stored descriptor;
+alter table hbase.customer_salt generate stored descriptor;
 
 --exp1
 explain options 'f' 

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/regress/seabase/EXPECTED031
----------------------------------------------------------------------
diff --git a/core/sql/regress/seabase/EXPECTED031 
b/core/sql/regress/seabase/EXPECTED031
index 873ed2c..b6f3a9d 100644
--- a/core/sql/regress/seabase/EXPECTED031
+++ b/core/sql/regress/seabase/EXPECTED031
@@ -1,6 +1,6 @@
 >>
 >>-- tests for PRIMARY KEY constraint usage
->>drop table if exists t031t1;
+>>drop table if exists t031t1 cascade;
 
 --- SQL operation complete.
 >>create table t031t1 (a int not null, b int not null, constraint ppk primary 
 >>key(a));
@@ -431,19 +431,19 @@ Z            Z            (EXPR)  (EXPR)
 --- 1 row(s) selected.
 >>select substring(a, 1, 10), cast(b as char(10)) from hive.hive.t031hive;
 
-(EXPR)                                    (EXPR)
-----------------------------------------  
----------------------------------------
+(EXPR)      (EXPR)    
+----------  ----------
 
-aaaaaaaaaa                                def                                  
   
-aaaaaaaaaa                                zzz                                  
   
-aaaaaaaaaa                                zzz                                  
   
-aaaaaaaaaa                                zzz                                  
   
-aaaaaaaaaa                                zzz                                  
   
-aaaaaaaaaa                                zzz                                  
   
-a                                         zzz                                  
   
-aaaaaaaaaa                                ?                                    
   
-aaaaaaaaaa                                ?                                    
   
-aaaaaaaaaa                                ?                                    
   
+aaaaaaaaaa  def       
+aaaaaaaaaa  zzz       
+aaaaaaaaaa  zzz       
+aaaaaaaaaa  zzz       
+aaaaaaaaaa  zzz       
+aaaaaaaaaa  zzz       
+a           zzz       
+aaaaaaaaaa  ?         
+aaaaaaaaaa  ?         
+aaaaaaaaaa  ?         
 
 --- 10 row(s) selected.
 >>select [last 0] * from hive.hive.t031hive;
@@ -482,7 +482,7 @@ aaaaaaaaaa                                ?
 >>invoke t031t1;
 
 -- Definition of Trafodion table TRAFODION.SCH.T031T1
--- Definition current  Wed Jul 13 23:30:01 2016
+-- Definition current  Tue Aug  2 19:11:21 2016
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -513,7 +513,7 @@ A            B
 >>invoke t031t1;
 
 -- Definition of Trafodion table TRAFODION.SCH.T031T1
--- Definition current  Wed Jul 13 23:30:02 2016
+-- Definition current  Tue Aug  2 19:11:28 2016
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -548,4 +548,244 @@ A            B                     C
 
 --- 3 row(s) selected.
 >>
+>>-- metadata stored descriptor tests
+>>cqd traf_store_object_desc 'OFF';
+
+--- SQL operation complete.
+>>cqd traf_read_object_desc 'OFF';
+
+--- SQL operation complete.
+>>drop table if exists t031t1 cascade;
+
+--- SQL operation complete.
+>>create table t031t1 (a int);
+
+--- SQL operation complete.
+>>invoke t031t1;
+
+-- Definition of Trafodion table TRAFODION.SCH.T031T1
+-- Definition current  Tue Aug  2 19:11:35 2016
+
+  (
+    SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+  , A                                INT DEFAULT NULL
+  )
+
+--- SQL operation complete.
+>>alter table t031t1 check stored descriptor;
+
+*** ERROR[4493] Stored Descriptor Status: Does not exist. It needs to be 
regenerated.
+
+--- SQL operation failed with errors.
+>>
+>>cqd traf_store_object_desc 'ON';
+
+--- SQL operation complete.
+>>cqd traf_read_object_desc 'ON';
+
+--- SQL operation complete.
+>>drop table if exists t031t1;
+
+--- SQL operation complete.
+>>create table t031t1 (a int);
+
+--- SQL operation complete.
+>>invoke t031t1;
+
+-- Definition of Trafodion table TRAFODION.SCH.T031T1
+-- Definition current  Tue Aug  2 19:11:42 2016
+
+  (
+    SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+  , A                                INT DEFAULT NULL
+  )
+
+--- SQL operation complete.
+>>alter table t031t1 check stored descriptor;
+
+*** WARNING[4493] Stored Descriptor Status: Uptodate and current.
+
+--- SQL operation complete.
+>>
+>>alter table t031t1 delete stored descriptor;
+
+--- SQL operation complete.
+>>alter table t031t1 check stored descriptor;
+
+*** ERROR[4493] Stored Descriptor Status: Does not exist. It needs to be 
regenerated.
+
+--- SQL operation failed with errors.
+>>invoke t031t1;
+
+-- Definition of Trafodion table TRAFODION.SCH.T031T1
+-- Definition current  Tue Aug  2 19:11:51 2016
+
+  (
+    SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+  , A                                INT DEFAULT NULL
+  )
+
+--- SQL operation complete.
+>>
+>>alter table t031t1 generate stored descriptor;
+
+--- SQL operation complete.
+>>alter table t031t1 check stored descriptor;
+
+*** WARNING[4493] Stored Descriptor Status: Uptodate and current.
+
+--- SQL operation complete.
+>>invoke t031t1;
+
+-- Definition of Trafodion table TRAFODION.SCH.T031T1
+-- Definition current  Tue Aug  2 19:11:53 2016
+
+  (
+    SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+  , A                                INT DEFAULT NULL
+  )
+
+--- SQL operation complete.
+>>
+>>create view t031v1 as select * from t031t1;
+
+--- SQL operation complete.
+>>invoke t031v1;
+
+-- Definition of Trafodion view TRAFODION.SCH.T031V1
+-- Definition current  Tue Aug  2 19:11:54 2016
+
+  (
+    A                                INT DEFAULT NULL
+  )
+
+--- SQL operation complete.
+>>alter table t031v1 check stored descriptor;
+
+*** WARNING[4493] Stored Descriptor Status: Uptodate and current.
+
+--- SQL operation complete.
+>>alter table t031v1 delete stored descriptor;
+
+--- SQL operation complete.
+>>alter table t031v1 check stored descriptor;
+
+*** ERROR[4493] Stored Descriptor Status: Does not exist. It needs to be 
regenerated.
+
+--- SQL operation failed with errors.
+>>invoke t031v1;
+
+-- Definition of Trafodion view TRAFODION.SCH.T031V1
+-- Definition current  Tue Aug  2 19:11:59 2016
+
+  (
+    A                                INT DEFAULT NULL
+  )
+
+--- SQL operation complete.
+>>alter table t031v1 generate stored descriptor;
+
+--- SQL operation complete.
+>>alter table t031v1 check stored descriptor;
+
+*** WARNING[4493] Stored Descriptor Status: Uptodate and current.
+
+--- SQL operation complete.
+>>invoke t031v1;
+
+-- Definition of Trafodion view TRAFODION.SCH.T031V1
+-- Definition current  Tue Aug  2 19:12:01 2016
+
+  (
+    A                                INT DEFAULT NULL
+  )
+
+--- SQL operation complete.
+>>
+>>create index t031t1i1 on t031t1(a);
+
+--- SQL operation complete.
+>>showddl t031t1;
+
+CREATE TABLE TRAFODION.SCH.T031T1
+  (
+    A                                INT DEFAULT NULL
+  )
+;
+
+CREATE INDEX T031T1I1 ON TRAFODION.SCH.T031T1
+  (
+    A ASC
+  )
+;
+
+--- SQL operation complete.
+>>alter table t031t1 check stored descriptor;
+
+*** WARNING[4493] Stored Descriptor Status: Uptodate and current.
+
+--- SQL operation complete.
+>>alter table t031t1 delete stored descriptor;
+
+--- SQL operation complete.
+>>alter table t031t1 check stored descriptor;
+
+*** ERROR[4493] Stored Descriptor Status: Does not exist. It needs to be 
regenerated.
+
+--- SQL operation failed with errors.
+>>showddl t031t1;
+
+CREATE TABLE TRAFODION.SCH.T031T1
+  (
+    A                                INT DEFAULT NULL
+  )
+;
+
+CREATE INDEX T031T1I1 ON TRAFODION.SCH.T031T1
+  (
+    A ASC
+  )
+;
+
+--- SQL operation complete.
+>>alter table t031t1 generate stored descriptor;
+
+--- SQL operation complete.
+>>alter table t031t1 check stored descriptor;
+
+*** WARNING[4493] Stored Descriptor Status: Uptodate and current.
+
+--- SQL operation complete.
+>>showddl t031t1;
+
+CREATE TABLE TRAFODION.SCH.T031T1
+  (
+    A                                INT DEFAULT NULL
+  )
+;
+
+CREATE INDEX T031T1I1 ON TRAFODION.SCH.T031T1
+  (
+    A ASC
+  )
+;
+
+--- SQL operation complete.
+>>
+>>set parserflags 1;
+
+--- SQL operation complete.
+>>invoke table(index_table t031t1i1);
+
+-- Definition of Trafodion table TRAFODION.SCH.T031T1I1
+-- Definition current  Tue Aug  2 19:12:17 2016
+
+  (
+    "A@"                             INT NO DEFAULT
+  , SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+  )
+  PRIMARY KEY ("A@" ASC, SYSKEY ASC)
+
+--- SQL operation complete.
+>>
 >>log;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/regress/seabase/TEST031
----------------------------------------------------------------------
diff --git a/core/sql/regress/seabase/TEST031 b/core/sql/regress/seabase/TEST031
index 382e18f..94b2122 100644
--- a/core/sql/regress/seabase/TEST031
+++ b/core/sql/regress/seabase/TEST031
@@ -25,7 +25,7 @@
 log LOG031 clear;
 
 -- tests for PRIMARY KEY constraint usage
-drop table if exists t031t1;
+drop table if exists t031t1 cascade;
 create table t031t1 (a int not null, b int not null, constraint ppk primary 
key(a));
 alter table t031t1 add constraint ppk primary key(b);
 alter table t031t1 add constraint ppk2 primary key(b);
@@ -179,4 +179,50 @@ select * from t031t1;
 insert into t031t1 default values;
 select * from t031t1;
 
+-- metadata stored descriptor tests
+cqd traf_store_object_desc 'OFF';
+cqd traf_read_object_desc 'OFF';
+drop table if exists t031t1 cascade;
+create table t031t1 (a int);
+invoke t031t1;
+alter table t031t1 check stored descriptor;
+
+cqd traf_store_object_desc 'ON';
+cqd traf_read_object_desc 'ON';
+drop table if exists t031t1;
+create table t031t1 (a int);
+invoke t031t1;
+alter table t031t1 check stored descriptor;
+
+alter table t031t1 delete stored descriptor;
+alter table t031t1 check stored descriptor;
+invoke t031t1;
+
+alter table t031t1 generate stored descriptor;
+alter table t031t1 check stored descriptor;
+invoke t031t1;
+
+create view t031v1 as select * from t031t1;
+invoke t031v1;
+alter table t031v1 check stored descriptor;
+alter table t031v1 delete stored descriptor;
+alter table t031v1 check stored descriptor;
+invoke t031v1;
+alter table t031v1 generate stored descriptor;
+alter table t031v1 check stored descriptor;
+invoke t031v1;
+
+create index t031t1i1 on t031t1(a);
+showddl t031t1;
+alter table t031t1 check stored descriptor;
+alter table t031t1 delete stored descriptor;
+alter table t031t1 check stored descriptor;
+showddl t031t1;
+alter table t031t1 generate stored descriptor;
+alter table t031t1 check stored descriptor;
+showddl t031t1;
+
+set parserflags 1;
+invoke table(index_table t031t1i1);
+
 log;

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/19c96b1e/core/sql/regress/tools/sbdefs
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/sbdefs b/core/sql/regress/tools/sbdefs
index ec6d988..20e09f5 100644
--- a/core/sql/regress/tools/sbdefs
+++ b/core/sql/regress/tools/sbdefs
@@ -33,6 +33,8 @@ cqd traf_aligned_row_format 'OFF';
 --cqd traf_default_col_charset 'UTF8';
 cqd traf_index_create_opt 'ON';
 --cqd ddl_transactions 'ON';
+cqd traf_read_object_desc 'ON';
+cqd traf_store_object_desc 'ON';
 cqd schema '$$TEST_SCHEMA$$';
 set SCHEMA $$TEST_SCHEMA$$;
 #endif

Reply via email to