You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by rm...@apache.org on 2018/05/21 15:58:27 UTC

[2/3] trafodion git commit: TRAFODION-1573: Additional GET commands for privileges TRAFODION-3074: Failed to register/unregister user when security disabled

TRAFODION-1573: Additional GET commands for privileges
TRAFODION-3074: Failed to register/unregister user when security disabled

TRAFODION-1573 changes:

- Added support for the following commands:

  get privileges on <object>
  <object>: [LIBRARY | PROCEDURE | FUNCTION | TABLE_MAPPING FUNCTION | SEQUENCE]

- Added support for the FOR CLAUSE on all supported objects
  Removed the need to specify keyword 'USER" before username. If USER is
  included, then it is ignored.

  get privileges on <object> FOR [USER] <user or role name>
  <objects>: [TABLES, VIEWS, LIBRARIES, PROCEDURES, FUNCTIONS,
              TABLE_MAPPING FUNCTIONS, SEQUENCES]

- The following get command can only be run by DB__ROOT or a user that has been
  granted the DB__ROOTROLE or DB__HIVEROLE role

  get <objects> in schema hive.xx.xx;
  <objects>: [TABLES, OBJECTS, VIEWS]

- The following get command can only be run by DB__ROOT or a user that has been
  granted the DB__ROOTROLE or DB__HBASEROLE role

  get external hbase objects;

- The following get commands retrieve privilege details from Trafodion metadata;
  users can only see objects where they have been granted at least one privilege

  get hive registered tables in catalog trafodion;
  get hbase registered tables in catalog trafodion;

- get privileges commands now return owner's privileges in output
- Cleaned up code in the parser.

TRAFODION-3074 changes

- register user - fixed query to find next available authID
- unregister user - added checks to not read privilege metadata if authorization
  is not enabled


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

Branch: refs/heads/master
Commit: 88e2a742b019dd8d22c22c79d1b64048395cfdb1
Parents: 609d7a4
Author: Roberta Marton <ro...@apache.org>
Authored: Fri May 18 16:45:06 2018 +0000
Committer: Roberta Marton <ro...@apache.org>
Committed: Fri May 18 16:45:06 2018 +0000

----------------------------------------------------------------------
 core/sql/comexe/ComTdbExeUtil.h           |   4 +
 core/sql/executor/ExExeUtilGet.cpp        | 244 ++++++---
 core/sql/generator/GenRelExeUtil.cpp      |  14 +-
 core/sql/parser/ParKeyWords.cpp           |   2 -
 core/sql/parser/sqlparser.y               | 353 +++---------
 core/sql/regress/compGeneral/EXPECTEDTOK  |   3 +-
 core/sql/regress/compGeneral/EXPECTEDTOK2 |   3 +-
 core/sql/regress/core/EXPECTED116         | 197 +++++--
 core/sql/regress/privs1/EXPECTED125       | 729 +++++++++++++++++++++++++
 core/sql/regress/privs1/TEST125           |  51 ++
 core/sql/regress/privs2/EXPECTED144       | 301 +++++++++-
 core/sql/regress/privs2/EXPECTED146       | 125 ++++-
 core/sql/regress/privs2/TEST144           |  39 +-
 core/sql/regress/privs2/TEST146           |   7 +
 core/sql/sqlci/sqlci_lex.ll               |   2 -
 core/sql/sqlci/sqlci_yacc.y               |  11 -
 core/sql/sqlcomp/CmpSeabaseDDLauth.cpp    |  69 ++-
 core/sql/sqlcomp/CmpSeabaseDDLtable.cpp   |   2 +
 18 files changed, 1708 insertions(+), 448 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafodion/blob/88e2a742/core/sql/comexe/ComTdbExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/comexe/ComTdbExeUtil.h b/core/sql/comexe/ComTdbExeUtil.h
index 4716460..ef48954 100644
--- a/core/sql/comexe/ComTdbExeUtil.h
+++ b/core/sql/comexe/ComTdbExeUtil.h
@@ -2522,6 +2522,7 @@ public:
     PRIVILEGES_ON_TABLE_,
     PRIVILEGES_ON_MV_,
     PRIVILEGES_ON_VIEW_,
+    PRIVILEGES_ON_SEQUENCE_,
     SYNONYMS_ON_TABLE_,
 
     OBJECTS_ON_TABLE_,
@@ -2559,6 +2560,9 @@ public:
     PROCEDURES_FOR_LIBRARY_,
     FUNCTIONS_FOR_LIBRARY_,
     TABLE_FUNCTIONS_FOR_LIBRARY_,
+    PRIVILEGES_ON_LIBRARY_,
+    PRIVILEGES_ON_PROCEDURE_,
+    PRIVILEGES_ON_ROUTINE_,
 
     COMPONENTS_,
     COMPONENT_OPERATIONS_,

http://git-wip-us.apache.org/repos/asf/trafodion/blob/88e2a742/core/sql/executor/ExExeUtilGet.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilGet.cpp b/core/sql/executor/ExExeUtilGet.cpp
index 33865fa..163b190 100644
--- a/core/sql/executor/ExExeUtilGet.cpp
+++ b/core/sql/executor/ExExeUtilGet.cpp
@@ -558,8 +558,7 @@ static const QueryString getTrafPrivsOnObject[] =
   {"   case when bitextract(privileges_bitmap,58,1) = 1 then 'R' else '-' end || "},
   {"   case when bitextract(privileges_bitmap,57,1) = 1 then 'E' else '-' end as privs "},
   {" from %s.\"%s\".%s "},
-  {" where grantor_id <> -2 "},
-  {"  and object_uid = "},
+  {" where object_uid = "},
   {"  (select object_uid from %s.\"%s\".%s "},
   {"   where catalog_name = '%s' and schema_name = '%s' and object_name = '%s' "},
   {"     and object_type = '%s') %s "},
@@ -573,11 +572,11 @@ static const QueryString getTrafPrivsOnObject[] =
   {"  case when bitextract(privileges_bitmap,58,1) = 1 then 'R' else '-' end || "},
   {"  case when bitextract(privileges_bitmap,57,1) = 1 then 'E' else '-' end as privs "},
   {" from %s.\"%s\".%s "},
-  {" where grantor_id <> -2 "},
-  {"  and object_uid = "},
+  {" where object_uid = "},
   {"  (select object_uid from %s.\"%s\".%s "},
   {"   where catalog_name = '%s' and schema_name = '%s' and object_name = '%s' "},
   {"     and object_type = '%s') %s )"},
+  {" order by 1 "},
   {" ; "}
 };
 
@@ -599,9 +598,9 @@ static const QueryString getHiveRegObjectsInCatalogQuery[] =
   {"  (select object_type, case when object_type = 'SS' "      },
   {"   then lower(trim(catalog_name) || '.' || trim(schema_name)) "},
   {"   else lower(trim(catalog_name) || '.' || "               },
-  {"    trim(schema_name) || '.' || trim(object_name)) end "       },
+  {"    trim(schema_name) || '.' || trim(object_name)) end "   },
   {"   from %s.\"%s\".%s where catalog_name = 'HIVE' and "     },
-  {"                           %s) O(t, a) "                   },
+  {"                           %s %s) O(t, a) "                },
   {"  left join "                                              },
   {"   (select '%s' || '.' || trim(y) from "                   },
   {"    (get %s in catalog %s, no header) x(y)) G(b)"          },
@@ -617,7 +616,7 @@ static const QueryString getHBaseRegTablesInCatalogQuery[] =
   {" from "                                                    },
   {"  (select trim(schema_name), trim(object_name)            "},
   {"   from %s.\"%s\".%s where catalog_name = 'HBASE'     "    },
-  {"      and object_type = 'BT') O(s, o) "                    },
+  {"      and object_type = 'BT' %s) O(s, o) "                 },
   {"  left join "                                              },
   {"   (select trim(y) from "                                  },
   {"    (get external hbase objects) x(y)) G(b)"               },
@@ -636,7 +635,7 @@ static const QueryString getHiveExtTablesInCatalogQuery[] =
   {"                char_length(schema_name)-5))) "            },
   {"    || '.' || lower(trim(object_name)) "                   },
   {"   from %s.\"%s\".%s where object_type = '%s' "            },
-  {"    and schema_name like '|_HV|_%%|_' escape '|') O(a)   " },
+  {"    and schema_name like '|_HV|_%%|_' escape '|' %s) O(a)" },
   {"  left join "                                              },
   {"   (select '%s' || '.' || trim(y) from "                   },
   {"    (get %s in catalog %s, no header) x(y)) G(b) "         },
@@ -1013,6 +1012,12 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
       }
     break;
 
+    case ComTdbExeUtilGetMetadataInfo::HBASE_OBJECTS_:
+      {
+	str_sprintf(headingBuf_, "External HBase objects");
+      }
+    break;
+
     case ComTdbExeUtilGetMetadataInfo::HIVE_REG_VIEWS_IN_CATALOG_:
       {
 	str_sprintf(headingBuf_, "Hive Registered Views in Catalog %s",
@@ -1160,6 +1165,27 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
       }
     break;
 
+    case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_SEQUENCE_:
+      {
+        str_sprintf(headingBuf_, "Privileges on Sequence %s.%s",
+                    getMItdb().getSch(), getMItdb().getObj());
+      }
+    break;
+
+    case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_LIBRARY_:
+      {
+        str_sprintf(headingBuf_, "Privileges on Sequence %s.%s",
+                    getMItdb().getSch(), getMItdb().getObj());
+      }
+    break;
+
+    case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_ROUTINE_:
+      {
+        str_sprintf(headingBuf_, "Privileges on Routine %s.%s",
+                    getMItdb().getSch(), getMItdb().getObj());
+      }
+    break;
+
     case ComTdbExeUtilGetMetadataInfo::SYNONYMS_ON_TABLE_:
       {
 	str_sprintf(headingBuf_, "Synonyms on Table %s.%s",
@@ -1954,7 +1980,9 @@ short ExExeUtilGetMetadataInfoTcb::work()
               ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_ROLE_
               ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_USER_
               ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_TABLE_
-              ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_VIEW_)
+              ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_SEQUENCE_
+              ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_LIBRARY_
+              ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_ROUTINE_)
 	    {
                if (!CmpCommon::context()->isAuthorizationEnabled())
                {
@@ -2028,22 +2056,22 @@ short ExExeUtilGetMetadataInfoTcb::work()
 		}
 	      break;
 	      
-	      case ComTdbExeUtilGetMetadataInfo::HIVE_REG_TABLES_IN_CATALOG_:
-	      case ComTdbExeUtilGetMetadataInfo::HIVE_REG_VIEWS_IN_CATALOG_:
-	      case ComTdbExeUtilGetMetadataInfo::HIVE_REG_SCHEMAS_IN_CATALOG_:
-	      case ComTdbExeUtilGetMetadataInfo::HIVE_REG_OBJECTS_IN_CATALOG_:
-		{
-		  qs = getHiveRegObjectsInCatalogQuery;
-		  sizeOfqs = sizeof(getHiveRegObjectsInCatalogQuery);
+              case ComTdbExeUtilGetMetadataInfo::HIVE_REG_TABLES_IN_CATALOG_:
+              case ComTdbExeUtilGetMetadataInfo::HIVE_REG_VIEWS_IN_CATALOG_:
+              case ComTdbExeUtilGetMetadataInfo::HIVE_REG_SCHEMAS_IN_CATALOG_:
+              case ComTdbExeUtilGetMetadataInfo::HIVE_REG_OBJECTS_IN_CATALOG_:
+              {
+                qs = getHiveRegObjectsInCatalogQuery;
+                sizeOfqs = sizeof(getHiveRegObjectsInCatalogQuery);
 
-                  if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::HIVE_REG_TABLES_IN_CATALOG_)
-                    {
-                      strcpy(hiveGetType, "tables");
-                      str_sprintf(hiveObjType, " (object_type = '%s') ",
-                                  COM_BASE_TABLE_OBJECT_LIT);
+                if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::HIVE_REG_TABLES_IN_CATALOG_)
+                {
+                   strcpy(hiveGetType, "tables");
+                   str_sprintf(hiveObjType, " (object_type = '%s') ",
+                                COM_BASE_TABLE_OBJECT_LIT);
                     }
                   else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::HIVE_REG_VIEWS_IN_CATALOG_)
-                    {
+                   {
                       strcpy(hiveGetType, "views");
                       str_sprintf(hiveObjType, " (object_type = '%s') ",
                                   COM_VIEW_OBJECT_LIT);
@@ -2063,46 +2091,57 @@ short ExExeUtilGetMetadataInfoTcb::work()
                                   COM_SHARED_SCHEMA_OBJECT_LIT);
                     }
                     
-		  param_[0] = cat;
-		  param_[1] = sch;
-		  param_[2] = tab;
-		  param_[3] = hiveObjType;
-		  param_[4] = hiveSysCat;
-                  param_[5] = hiveGetType, 
-		  param_[6] = hiveSysCat;
+                  if (doPrivCheck)
+                    privWhereClause = getGrantedPrivCmd(authList, cat);
+
+                param_[0] = cat;
+                param_[1] = sch;
+                param_[2] = tab;
+                param_[3] = hiveObjType;
+                param_[4] = (char *)privWhereClause.data();
+                param_[5] = hiveSysCat;
+                param_[6] = hiveGetType, 
+                param_[7] = hiveSysCat;
 		}
 	      break;
 
-	      case ComTdbExeUtilGetMetadataInfo::HBASE_REG_TABLES_IN_CATALOG_:
-		{
-		  qs = getHBaseRegTablesInCatalogQuery;
-		  sizeOfqs = sizeof(getHBaseRegTablesInCatalogQuery);
+	     case ComTdbExeUtilGetMetadataInfo::HBASE_REG_TABLES_IN_CATALOG_:
+               {
+                 qs = getHBaseRegTablesInCatalogQuery;
+                 sizeOfqs = sizeof(getHBaseRegTablesInCatalogQuery);
 
-		  param_[0] = cat;
-		  param_[1] = sch;
-		  param_[2] = tab;
-		}
+                 if (doPrivCheck)
+                   privWhereClause = getGrantedPrivCmd(authList, cat);
+
+                 param_[0] = cat;
+                 param_[1] = sch;
+                 param_[2] = tab;
+                 param_[3] = (char *)privWhereClause.data();
+               }
 	      break;
 	      
-	      case ComTdbExeUtilGetMetadataInfo::HIVE_EXT_TABLES_IN_CATALOG_:
-		{
-		  qs = getHiveExtTablesInCatalogQuery;
-		  sizeOfqs = sizeof(getHiveExtTablesInCatalogQuery);
+              case ComTdbExeUtilGetMetadataInfo::HIVE_EXT_TABLES_IN_CATALOG_:
+                {
+                  qs = getHiveExtTablesInCatalogQuery;
+                  sizeOfqs = sizeof(getHiveExtTablesInCatalogQuery);
+
+                  if (doPrivCheck)
+                    privWhereClause = getGrantedPrivCmd(authList, cat);
 
                   strcpy(hiveObjType, COM_BASE_TABLE_OBJECT_LIT);
                   strcpy(hiveGetType, "tables");
 
-		  param_[0] = hiveSysCat;
-		  param_[1] = cat;
-		  param_[2] = sch;
-		  param_[3] = tab;
-		  param_[4] = hiveObjType;
-		  param_[5] = hiveSysCat;
-                  param_[6] = hiveGetType, 
-		  param_[7] = hiveSysCat;
-
-		}
-	      break;
+                  param_[0] = hiveSysCat;
+                  param_[1] = cat;
+                  param_[2] = sch;
+                  param_[3] = tab;
+                  param_[4] = hiveObjType;
+                  param_[5] = (char *)privWhereClause.data();
+                  param_[6] = hiveSysCat;
+                  param_[7] = hiveGetType, 
+                  param_[8] = hiveSysCat;
+                }
+              break;
 	      
 	      case ComTdbExeUtilGetMetadataInfo::VIEWS_IN_SCHEMA_:
 		{
@@ -2560,22 +2599,58 @@ short ExExeUtilGetMetadataInfoTcb::work()
 
               case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_TABLE_:
               case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_VIEW_:
+              case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_SEQUENCE_:
+              case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_LIBRARY_:
+              case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_ROUTINE_:
               {
                 qs = getTrafPrivsOnObject;
                 sizeOfqs = sizeof(getTrafPrivsOnObject);
 
+                // Determine the type of object
                 NAString objType;
                 if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_TABLE_)
                   objType = COM_BASE_TABLE_OBJECT_LIT;
-                else
+                else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_VIEW_)
                   objType = COM_VIEW_OBJECT_LIT;
+                else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_SEQUENCE_)
+                  objType = COM_SEQUENCE_GENERATOR_OBJECT_LIT;
+                else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_LIBRARY_)
+                  objType = COM_LIBRARY_OBJECT_LIT;
+                else
+                  objType = COM_USER_DEFINED_ROUTINE_OBJECT_LIT;
 
+                char buf[authList.length() + 100];
                 if (doPrivCheck)
-                {
-                   char buf[authList.length() + 100];
-                   str_sprintf(buf, "and grantee_id in %s ", authList.data());
-                   privWhereClause = buf;
-                }
+                  {
+                    if (getMItdb().getParam1() && 
+                        (strcmp(getMItdb().getParam1(), currContext->getDatabaseUserName()) != 0))
+                          str_sprintf(buf, "and grantee_id = -2 ");
+                    else
+                        str_sprintf(buf, " and grantee_id in %s ", authList.data());
+                    privWhereClause = buf;
+                  }
+                else
+                  {
+                    if (getMItdb().getParam1())
+                      {
+                        if (strcmp(getMItdb().getParam1(), currContext->getDatabaseUserName()) == 0)
+                          str_sprintf(buf, " and grantee_id in %s ", authList.data());
+                        else
+                          {
+                            Int32 authID = getAuthID(getMItdb().getParam1(), cat, sch, auths);
+                            char *userRoleList = getRoleList(authID, cat, pmsch, role_usage);
+                            if (userRoleList)
+                              {
+                                str_sprintf(buf, " and grantee_id in %s ", userRoleList);
+                                NADELETEBASIC(userRoleList, getHeap());
+                              }
+                            else
+                              str_sprintf(buf, " = %d ", authID);
+                          }
+                        privWhereClause = buf;
+                      }
+                  }
+
                 param_[0] = cat;
                 param_[1] = pmsch;
                 param_[2] = objPrivs;
@@ -2956,7 +3031,7 @@ short ExExeUtilGetMetadataInfoTcb::work()
 		step_ = HANDLE_ERROR_;
 		break;
 	      }
-
+ 
 	    if (fetchAllRows(infoList_, queryBuf_, numOutputEntries_,
 			     FALSE, retcode) < 0)
 	      {
@@ -2992,7 +3067,10 @@ short ExExeUtilGetMetadataInfoTcb::work()
             if ((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_USER_) ||
                 (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_ROLE_) ||
                 (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_VIEW_) ||
-                (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_TABLE_))
+                (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_TABLE_) || 
+                (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_SEQUENCE_) || 
+                (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_LIBRARY_) || 
+                (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_ROUTINE_))
 
             {
               // output:  privileges<4spaces>object name
@@ -3909,6 +3987,16 @@ short ExExeUtilGetHbaseObjectsTcb::work()
 
         case SETUP_HBASE_QUERY_:
           {
+            // Since HBase tables are native and Trafodion does not manage them
+            // limit who can view these objects
+            if (((currContext->getSqlParserFlags() & 0x20000) == 0) &&
+                !ComUser::isRootUserID() && 
+                !ComUser::currentUserHasRole(ROOT_ROLE_ID) &&
+                !ComUser::currentUserHasRole(HBASE_ROLE_ID))
+              {
+                step_ = DONE_;
+                break;
+              }
             hbaseTables_ = ehi_->listAll("");
             if (! hbaseTables_)
               {
@@ -3918,10 +4006,33 @@ short ExExeUtilGetHbaseObjectsTcb::work()
 
             currIndex_ = 0;
 
-            step_ = PROCESS_NEXT_ROW_;
+            if (currIndex_ == hbaseTables_->entries())
+              {
+                step_ = DONE_;
+                break;
+              }
+
+            step_ = DISPLAY_HEADING_;
           }
           break;
 
+        case DISPLAY_HEADING_:
+          {
+            retcode = displayHeading();
+            if (retcode == 1)
+              return WORK_OK;
+            else if (retcode < 0)
+              {
+                step_ = HANDLE_ERROR_;
+                break;
+              }
+
+            headingReturned_ = TRUE;
+
+            step_ = PROCESS_NEXT_ROW_;
+          }
+        break;
+
         case PROCESS_NEXT_ROW_:
           {
             if (currIndex_ == hbaseTables_->entries())
@@ -4545,6 +4656,17 @@ short ExExeUtilGetHiveMetadataInfoTcb::work()
 		break;
 	      }
 	    
+            // Since Hive tables are native and Trafodion does not manage them
+            // limit the users that can see the data.
+            if (((currContext->getSqlParserFlags() & 0x20000) == 0) &&
+                !ComUser::isRootUserID() && 
+                !ComUser::currentUserHasRole(ROOT_ROLE_ID) &&
+                !ComUser::currentUserHasRole(HIVE_ROLE_ID))
+              {
+                step_ = DONE_;
+                break;
+              }
+
 	    short rc = 0;
 	    retcode = fetchAllHiveRows(infoList_, 1, rc);
 	    if (retcode < 0)

http://git-wip-us.apache.org/repos/asf/trafodion/blob/88e2a742/core/sql/generator/GenRelExeUtil.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelExeUtil.cpp b/core/sql/generator/GenRelExeUtil.cpp
index 570c3e5..1b0adb4 100644
--- a/core/sql/generator/GenRelExeUtil.cpp
+++ b/core/sql/generator/GenRelExeUtil.cpp
@@ -1615,8 +1615,10 @@ short ExeUtilGetMetadataInfo::codeGen(Generator * generator)
     {  "SYSTEM", "TABLES",    "IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::TABLES_IN_SCHEMA_ },
     {  "ALL",    "TABLES",    "IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::TABLES_IN_SCHEMA_ },
 
-    {  "ALL",    "SEQUENCES",    "IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::SEQUENCES_IN_SCHEMA_ },
-    {  "USER",   "SEQUENCES",    "IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::SEQUENCES_IN_SCHEMA_ },
+    {  "ALL",    "SEQUENCES",    "IN", "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::SEQUENCES_IN_SCHEMA_ },
+    {  "ALL",    "PRIVILEGES",   "ON", "SEQUENCE", 1,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_SEQUENCE_  },
+    {  "USER",   "SEQUENCES",    "IN", "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::SEQUENCES_IN_SCHEMA_ },
+    {  "USER",   "PRIVILEGES",   "ON", "SEQUENCE", 1,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_SEQUENCE_  },
 
     {  "USER",   "OBJECTS",   "IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_SCHEMA_ },
     {  "SYSTEM", "OBJECTS",   "IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_SCHEMA_ },
@@ -1639,7 +1641,10 @@ short ExeUtilGetMetadataInfo::codeGen(Generator * generator)
     {  "ALL",    "LIBRARIES", "IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::LIBRARIES_IN_SCHEMA_ },
     {  "ALL",    "PROCEDURES","IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::PROCEDURES_IN_SCHEMA_ },
     {  "ALL",    "FUNCTIONS", "IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::FUNCTIONS_IN_SCHEMA_ },
-    {  "ALL",    "TABLE_FUNCTIONS", "IN","SCHEMA",  1,     2,        0,      0,      ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_IN_SCHEMA_ },
+    {  "ALL",    "TABLE_FUNCTIONS", "IN","SCHEMA", 1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_IN_SCHEMA_ },
+    {  "ALL",    "PRIVILEGES", "ON", "LIBRARY",    1,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_LIBRARY_ },
+    {  "ALL",    "PRIVILEGES", "ON", "PROCEDURE",  1,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_ROUTINE_ },
+    {  "ALL",    "PRIVILEGES", "ON", "ROUTINE",    1,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_ROUTINE_ },
 //    {  "ALL",    "MVS",       "IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::MVS_IN_SCHEMA_ },
 //    {  "ALL",    "MVGROUPS",  "IN",    "SCHEMA",   0,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::MVGROUPS_IN_SCHEMA_ },
 //    {  "ALL",    "SYNONYMS",  "IN",    "SCHEMA",   1,      2,        0,      0,      ComTdbExeUtilGetMetadataInfo::SYNONYMS_IN_SCHEMA_ },
@@ -1650,12 +1655,9 @@ short ExeUtilGetMetadataInfo::codeGen(Generator * generator)
     {  "USER",   "INDEXES",   "ON",    "TABLE",    0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::INDEXES_ON_TABLE_ },
     {  "USER",   "VIEWS",     "ON",    "TABLE",    0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::VIEWS_ON_TABLE_ },
     {  "USER",   "OBJECTS",   "ON",    "TABLE",    0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::OBJECTS_ON_TABLE_ },
-    {  "USER",   "PRIVILEGES","ON",    "TABLE",    0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_TABLE_ },
-    {  "USER",   "PRIVILEGES","ON",    "VIEW",     0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_VIEW_ },
 //    {  "USER",   "INDEXES",   "ON",    "MV",       0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::INDEXES_ON_MV_ },
 //    {  "USER",   "MVS",       "ON",    "TABLE",    0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::MVS_ON_TABLE_ },
 //    {  "USER",   "MVGROUPS",  "ON",    "TABLE",    0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::MVGROUPS_ON_TABLE_ },
-//    {  "USER",   "PRIVILEGES","ON",    "MV",       0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_MV_ },
 //    {  "USER",   "SYNONYMS",  "ON",    "TABLE",    0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::SYNONYMS_ON_TABLE_ },
 
     {  "ALL",    "INDEXES",   "ON",    "TABLE",    0,      3,        0,      0,      ComTdbExeUtilGetMetadataInfo::INDEXES_ON_TABLE_ },

http://git-wip-us.apache.org/repos/asf/trafodion/blob/88e2a742/core/sql/parser/ParKeyWords.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/ParKeyWords.cpp b/core/sql/parser/ParKeyWords.cpp
index a213458..0a152ce 100644
--- a/core/sql/parser/ParKeyWords.cpp
+++ b/core/sql/parser/ParKeyWords.cpp
@@ -988,8 +988,6 @@ ParKeyWord ParKeyWords::keyWords_[] = {
   ParKeyWord("SHOW",               TOK_SHOW,        NONRESTOKEN_),
   ParKeyWord("SHOWCONTROL",        TOK_SHOWCONTROL, NONRESTOKEN_),
   ParKeyWord("SHOWDDL",            TOK_SHOWDDL,     NONRESTOKEN_|FIRST_),
-  ParKeyWord("SHOWLABEL",          TOK_SHOWLABEL,   NONRESTOKEN_),
-  ParKeyWord("SHOWLEAKS",          TOK_SHOWLEAKS,   NONRESTOKEN_),
   ParKeyWord("SHOWPLAN",           TOK_SHOWPLAN,    NONRESTOKEN_),
   ParKeyWord("SHOWSET",            TOK_SHOWSET,     NONRESTOKEN_),
   ParKeyWord("SHOWSHAPE",          TOK_SHOWSHAPE,   NONRESTOKEN_),

http://git-wip-us.apache.org/repos/asf/trafodion/blob/88e2a742/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y
index 455447e..7e32e8a 100755
--- a/core/sql/parser/sqlparser.y
+++ b/core/sql/parser/sqlparser.y
@@ -1046,8 +1046,6 @@ static void enableMakeQuotedStringISO88591Mechanism()
 %token <tokval> TOK_SHOWDDL_LIBRARY
 %token <tokval> TOK_SHOWDDL_SEQUENCE
 %token <tokval> TOK_SHOWDDL             /* Tandem extension non-reserved word */
-%token <tokval> TOK_SHOWLABEL           /* Tandem extension     reserved word */
-%token <tokval> TOK_SHOWLEAKS           /* Tandem extension non-reserved word*/
 %token <tokval> TOK_SYSDATE
 %token <tokval> TOK_SYSTIMESTAMP
 %token <tokval> TOK_TARGET
@@ -1908,8 +1906,6 @@ static void enableMakeQuotedStringISO88591Mechanism()
 %type <tokval>    		sign
 %type <corrName>  		table_name
 %type <corrName>		special_table_name
-%type <corrName>  		label_name
-%type <corrName>  		extended_label_name
 %type <corrName>  		actual_table_name
 %type <corrName>  		actual_table_name2
 %type <corrName>		exception_table_name
@@ -2223,10 +2219,7 @@ static void enableMakeQuotedStringISO88591Mechanism()
 %type <corrName>                optional_showddl_action_name_clause
 %type <longint>                 showddl_options_list
 %type <longint>                 showddl_options
-%type <longint>                 showlabel_options
 %type <describeType>            showcontrol_type
-%type <uint>                    showleaks_process
-%type <uint>                    showleaks_session
 //%type <uint>      		returning_clause
 %type <item>      		input_hostvar_expression
 %type <item>      		hostvar_expression
@@ -5533,34 +5526,6 @@ actual_routine_action_name : routine_action_name
 		     $$->getQualifiedNameObj().setObjectNameSpace(COM_UUDF_ACTION_NAME);
 		  }
 
-/* type corrName */
-label_name : qualified_name
-		  {
-		     //
-		     // note that corrNameFromStrings()
-		     // contains code that deletes $1
-		     //
-		     $$ = corrNameFromStrings($1);
-		     if ($$ == NULL) YYABORT;
-		  }
-              | guardian_location_name
-	          {
-		    ComLocationName locName(*$1,
-		      ComLocationName::GUARDIAN_LOCATION_NAME_FORMAT);
-		    if (NOT locName.isValid())
-		      {
-			// The format of the specified location name
-			// $0~string0 is invalid.
-			*SqlParser_Diags << DgSqlCode(-3061)
-			  << DgString0($1->data());
-		      }
-		    delete $1;
-		    CorrName *result = new (PARSERHEAP()) CorrName();
-		    result->setLocationName(locName.
-		      getGuardianFullyQualifiedName());
-		    $$ = result;
-		  }
-
 /* 100% identical to "actual_table_name", actual_table_name2 is provided only
  * for use in the "select_list_item" productions.  By doing so, it
  * provides a way to get around a reduce/reduce problem that would
@@ -15448,68 +15413,82 @@ exe_util_get_metadata_info :
             $$ = gmi;
           }
 
-user_or_role : TOK_USER | TOK_ROLE
-
-exe_util_get_metadata_info :   
-          TOK_GET get_info_aus_clause 
-          TOK_PRIVILEGES TOK_ON object_identifier table_name 
-          optional_for_user_clause 
+        | TOK_GET get_info_aus_clause TOK_PRIVILEGES TOK_ON object_identifier 
+          table_name optional_for_user_clause 
           optional_no_header_and_match_pattern_clause
           {
-				 if ((*$5 != "TABLE") && (*$5 != "SCHEMA") &&
-				     (*$5 != "VIEW" ) && (*$5 != "MV") &&
-                                     (*$5 != "USER" ) && (*$5 != "ROLE"))
-				   {
-				     YYERROR;
-				   }
+            NAString aus("ALL");
 
-				 NAString aus(*$2);
-				 if (*$2 == "ALL")
-				   aus = "ALL";
-				 else if (*$2 == "USER")
-				   aus = "USER";
-                                 else if (*$2 == "NONE")
-                                   aus = "USER";
-				 else
-				   YYERROR;
-
-				 NAString infoType("PRIVILEGES");
-				 NABoolean getVersion = FALSE;
-				 PtrPlaceHolder * pph = $8;
-				 NAString * noHeader =
-				   (NAString *)pph->ptr1_;
-				 NAString * pattern =
-				   (NAString *)pph->ptr2_;
-				 NAString * fullyQualNames =
-				   (NAString *)pph->ptr3_;
-
-				 NAString iof("ON");
-				 NAString nas("");
-				 ExeUtilGetMetadataInfo * gmi =
-				   new (PARSERHEAP ()) ExeUtilGetMetadataInfo
-				   (aus, infoType, iof, *$5, 
-				    *$6, pattern,
-				    (fullyQualNames ? TRUE : FALSE),
-				    getVersion,
-				    $7,
-				    PARSERHEAP ());
-				 
-				 if (noHeader)
-				   gmi->setNoHeader(TRUE);
-				 else if (NOT ((CmpCommon::getDefault(IS_SQLCI) == DF_ON) ||
-					       (CmpCommon::getDefault(NVCI_PROCESS) == DF_ON)))
-				   {
-				     gmi->setNoHeader(TRUE);
-				   }
+            NAString infoType("PRIVILEGES");
+            NABoolean getVersion = FALSE;
+            PtrPlaceHolder * pph = $8;
+            NAString * noHeader = (NAString *)pph->ptr1_;
+            NAString * pattern = (NAString *)pph->ptr2_;
+            NAString * fullyQualNames = (NAString *)pph->ptr3_;
+
+            NAString iof("ON");
+            NAString nas("");
+            ExeUtilGetMetadataInfo * gmi =
+              new (PARSERHEAP ()) ExeUtilGetMetadataInfo
+              (aus, infoType, iof, *$5, 
+               *$6, pattern,
+               (fullyQualNames ? TRUE : FALSE),
+               getVersion,
+               $7,
+               PARSERHEAP ());
+		 
+            if (noHeader)
+              gmi->setNoHeader(TRUE);
+            else if (NOT ((CmpCommon::getDefault(IS_SQLCI) == DF_ON) ||
+                 (CmpCommon::getDefault(NVCI_PROCESS) == DF_ON)))
+              {
+               gmi->setNoHeader(TRUE);
+              }
+
+            $$ = gmi;
+          }
+    
+      // Created a special production for getting privileges on procedures
+      // TOK_PROCEDURE as an object_identifier causes lots of parser conflicts
+      | TOK_GET get_info_aus_clause TOK_PRIVILEGES TOK_ON TOK_PROCEDURE
+        table_name optional_for_user_clause
+        optional_no_header_and_match_pattern_clause
+        {
+          NAString aus("ALL");
+          NAString infoType("PRIVILEGES");
+          NABoolean getVersion = FALSE;
+          PtrPlaceHolder * pph = $8;
+          NAString * noHeader = (NAString *)pph->ptr1_;
+          NAString * pattern = (NAString *)pph->ptr2_;
+          NAString * fullyQualNames = (NAString *)pph->ptr3_;
+
+          NAString iof("ON");
+          NAString nas("");
+          NAString ptype("PROCEDURE");
+          ExeUtilGetMetadataInfo * gmi =
+            new (PARSERHEAP ()) ExeUtilGetMetadataInfo
+            (aus, infoType, iof, ptype,
+             *$6, pattern,
+             (fullyQualNames ? TRUE : FALSE),
+             getVersion,
+             $7,
+             PARSERHEAP ());
+
+          if (noHeader)
+            gmi->setNoHeader(TRUE);
+          else if (NOT ((CmpCommon::getDefault(IS_SQLCI) == DF_ON) ||
+                        (CmpCommon::getDefault(NVCI_PROCESS) == DF_ON)))
+            {
+              gmi->setNoHeader(TRUE);
+            }
+
+          $$ = gmi;
+        }
 
-				 $$ = gmi;
-			       }
-     
       | TOK_GET get_info_aus_clause TOK_COMPONENTS 
           optional_no_header_and_match_pattern_clause
           // GET COMPONENTS
           {
-            // exe_util_get_metadata_info ::= TOK_GET TOK_COMPONENTS
             NAString aus(*$2);
             if (*$2 == "ALL")
               aus = "ALL";
@@ -15551,8 +15530,6 @@ exe_util_get_metadata_info :
         | TOK_GET get_info_aus_clause TOK_COMPONENT TOK_PRIVILEGES 
           TOK_ON component_name optional_authid_clause 
           optional_drop_behavior optional_no_header_and_match_pattern_clause 
-          // GET [CURRENT_USER] COMPONENT PRIVILEGES ON <name> or
-          // GET [CURRENT_USER] COMPONENT PRIVILEGES ON <name> FOR <authid>
           {
             NAString aus(*$2);
             if (*$2 == "ALL")
@@ -15711,10 +15688,16 @@ exe_util_get_metadata_info :
            $$ = gmi;
          }
 
+user_or_role : TOK_USER | TOK_ROLE
+
 optional_for_user_clause : empty { $$ = NULL; }
+                         | TOK_FOR authorization_identifier
+                         {
+                           $$ = new(PARSERHEAP()) NAString(*$2);
+                         }
                          | TOK_FOR TOK_USER authorization_identifier
                          {
-			                  $$ = new(PARSERHEAP()) NAString(*$3);
+                           $$ = new(PARSERHEAP()) NAString(*$3);
                          }
 
 optional_authid_clause : empty { $$ = NULL; }
@@ -15732,16 +15715,14 @@ get_info_aus_clause :  empty { $$ = new (PARSERHEAP()) NAString("NONE"); }
                      | TOK_TEMP_TABLE   { $$ = new (PARSERHEAP()) NAString("TRIGTEMP");}
                      | TOK_SYSTEM { $$ = new (PARSERHEAP()) NAString("SYSTEM"); }
                      | TOK_EXTERNAL { $$ = new (PARSERHEAP()) NAString("EXTERNAL"); }
-                     | TOK_VERSION TOK_OF { $$ = new (PARSERHEAP()) NAString("VERSION_USER"); }
-                     | TOK_VERSION TOK_OF TOK_ALL { $$ = new (PARSERHEAP()) NAString("VERSION_ALL"); }
-                     | TOK_VERSION TOK_OF TOK_USER { $$ = new (PARSERHEAP()) NAString("VERSION_USER"); }
-                     | TOK_VERSION TOK_OF TOK_SYSTEM { $$ = new (PARSERHEAP()) NAString("VERSION_SYSTEM"); }
 
 object_identifier : 
                     TOK_CATALOG  { $$ = new (PARSERHEAP()) NAString("CATALOG"); }
                   | TOK_CONSTRAINT{ $$ = new (PARSERHEAP()) NAString("CONSTRAINT"); }
                   | TOK_INDEX    { $$ = new (PARSERHEAP()) NAString("INDEX"); }
                   | TOK_LIBRARY  { $$ = new (PARSERHEAP()) NAString("LIBRARY"); }
+                  | TOK_TABLE_MAPPING TOK_FUNCTION  { $$ = new (PARSERHEAP()) NAString("ROUTINE"); }
+                  | TOK_FUNCTION  { $$ = new (PARSERHEAP()) NAString("ROUTINE"); }
                   | TOK_MV       { $$ = new (PARSERHEAP()) NAString("MV"); }
                   | TOK_SCHEMA   { $$ = new (PARSERHEAP()) NAString("SCHEMA"); }
                   | TOK_SYNONYM  { $$ = new (PARSERHEAP()) NAString("SYNONYM"); }
@@ -22559,19 +22540,6 @@ showcontrol_type:
           | TOK_TABLE			{ $$ = Describe::CONTROL_TABLE_; }
           | TOK_SESSION			{ $$ = Describe::CONTROL_SESSION_; }
 
-/*showleaks process*/
-showleaks_process:
-	    TOK_ARKCMP                  { $$ = LeakDescribe::FLAG_ARKCMP; }
-          | TOK_BOTH                    { $$ = LeakDescribe::FLAG_BOTH; }
-          |                             { $$ = LeakDescribe::FLAG_SQLCI; }  
-
-/*session control*/
-showleaks_session:
-	    TOK_CONTINUE                { $$ = LeakDescribe::FLAG_CONTINUE; }
-          | TOK_OFF                     { $$ = LeakDescribe::FLAG_OFF; }
-          | TOK_PROMPT                  { $$ = LeakDescribe::FLAG_PROMPT; }
-	  |                             { $$ = 0; }
-	  
 /* type relx */
 show_statement:
 	     TOK_SHOWCONTROL showcontrol_type 
@@ -22831,72 +22799,6 @@ show_statement:
                delete $3; // CorrName * actual_routine_name of UDF or UUDF
                delete $4; // CorrName * actual_routine_name of routine action
              }
-         | TOK_SHOWLABEL extended_label_name showlabel_options
-             {
-               // Determine the ANSI namespace.
-               ExtendedQualName::SpecialTableType stt = $2->getSpecialType();
-               ComAnsiNameSpace labelAnsiNameSpace = COM_UNKNOWN_NAME;
-               switch (stt) 
-               {
-               case ExtendedQualName::NORMAL_TABLE:
-                 labelAnsiNameSpace = COM_TABLE_NAME;
-                 break;
-               case ExtendedQualName::INDEX_TABLE:
-                 labelAnsiNameSpace = COM_INDEX_NAME;
-                 break;
-               case ExtendedQualName::GHOST_TABLE:
-                 labelAnsiNameSpace = COM_GHOST_TABLE_NAME;
-                 break;
-               case ExtendedQualName::GHOST_INDEX_TABLE:
-                 labelAnsiNameSpace = COM_GHOST_INDEX_NAME;
-                 break;
-               case ExtendedQualName::ISP_TABLE:
-                 labelAnsiNameSpace = COM_TABLE_NAME;
-                 break;
-               case ExtendedQualName::IUD_LOG_TABLE:
-                 labelAnsiNameSpace = COM_IUD_LOG_TABLE_NAME;
-                 break;
-               case ExtendedQualName::RANGE_LOG_TABLE:
-                 labelAnsiNameSpace = COM_RANGE_LOG_TABLE_NAME;
-                 break;
-               case ExtendedQualName::TRIGTEMP_TABLE:
-                 labelAnsiNameSpace = COM_TRIGTEMP_TABLE_NAME;
-                 break;
-               default :
-                 // There should be a case for every special type that
-                 // is specified by the production extended_label_name.
-                 ABORT("internal logic error");
-                 break;
-               }
-
-	       $$ = new (PARSERHEAP())
-		 RelRoot(new (PARSERHEAP())
-			 Describe(SQLTEXT(),
-				  *$2/*label_name*/,
-				  Describe::LABEL_,
-				  labelAnsiNameSpace,
-				  $3 /*showlabel_options*/),
-			 REL_ROOT,	
-			 new (PARSERHEAP())
-			 ColReference(new (PARSERHEAP()) ColRefName(TRUE, PARSERHEAP())));
-	     }
-  //ACH        TOK_SHOWLIBRARY label_name 
-             
-	  | TOK_SHOWLEAKS showleaks_process showleaks_session
-	     {
-	       HEAPLOG_CONTROL(LOG_DELETE_ONLY);  
-	       CorrName c;
-	       $$ = new (PARSERHEAP())
-		 RelRoot(new (PARSERHEAP())
-			 Describe(SQLTEXT(),
-				  c,
-				  Describe::LEAKS_,
-				  COM_TABLE_NAME,
-				  ($2 | $3)),
-			 REL_ROOT,	
-			 new (PARSERHEAP())
-			 ColReference(new (PARSERHEAP()) ColRefName(TRUE, PARSERHEAP())));
-	     }  
 	   | TOK_INVOKE table_name
 	     {
 	       $$ = new (PARSERHEAP())
@@ -23845,105 +23747,6 @@ optional_showddl_role_option : empty
              $$ = 16;
            }
 
-/* type longint */
-showlabel_options : empty
-           {
-              $$ = 0;
-           }
-     |  ',' TOK_DETAIL
-           {
-             $$ = 1;
-           }
-     |  ',' TOK_DETAIL ',' TOK_PRIVILEGES
-           {
-             $$ = 17;
-           }
-     |  ',' TOK_PRIVILEGES ',' TOK_DETAIL
-           {
-             $$ = 17;
-           }
-     |  ',' TOK_PRIVILEGES
-           {
-             $$ = 16;
-           }
-
-/* type corrName */
-// With the introduction of ghost objects we now use extended_label_name 
-// where we used to use two productions: optional_ansi_name_space label_name
-// Two productions is neater, but we do this to avoid introducing a 
-// shift/reduce conflict.
-extended_label_name : label_name
-           {
-             $$ = $1 /* label_name */;
-             $$->setSpecialType(ExtendedQualName::NORMAL_TABLE);
-           }
-
-     |  TOK_INDEX label_name
-           {
-             $$ = $2 /* label_name */;
-             $$->setSpecialType(ExtendedQualName::INDEX_TABLE);
-           }
-
-     |  TOK_TABLE label_name
-           {
-             $$ = $2 /* label_name */;
-             $$->setSpecialType(ExtendedQualName::NORMAL_TABLE);
-           }
-
-     |  ghost TOK_INDEX label_name
-           {
-             $$ = $3 /* label_name */;
-             $$->setSpecialType(ExtendedQualName::GHOST_INDEX_TABLE);
-           }
-  
-     |  ghost TOK_TABLE label_name
-           {
-             $$ = $3 /* label_name */;
-             $$->setSpecialType(ExtendedQualName::GHOST_TABLE);
-           }
-  
-     |  TOK_PROCEDURE label_name
-           {
-             $$ = $2 /* label_name */;
-             $$->setSpecialType(ExtendedQualName::ISP_TABLE);
-           }
-     |  TOK_IUDLOG TOK_TABLE label_name
-           {
-              if (Get_SqlParser_Flags(ALLOW_SPECIALTABLETYPE))
-              {
-                 $$ = $3 /* label_name */;
-                 $$->setSpecialType(ExtendedQualName::IUD_LOG_TABLE);
-              }
-              else
-              { 
-                 yyerror(""); YYERROR; /*internal syntax only!*/
-              }
-           }
-     |  TOK_RANGELOG TOK_TABLE label_name
-           {
-              if (Get_SqlParser_Flags(ALLOW_SPECIALTABLETYPE))
-              {
-                 $$ = $3 /* label_name */;
-                 $$->setSpecialType(ExtendedQualName::RANGE_LOG_TABLE);
-              }
-              else
-              { 
-                 yyerror(""); YYERROR; /*internal syntax only!*/
-              }
-           }
-     |  TOK_TEMP_TABLE TOK_TABLE label_name
-           {
-              if (Get_SqlParser_Flags(ALLOW_SPECIALTABLETYPE))
-              {
-                 $$ = $3 /* label_name */;
-                 $$->setSpecialType(ExtendedQualName::TRIGTEMP_TABLE);
-              }
-              else
-              { 
-                 yyerror(""); YYERROR; /*internal syntax only!*/
-              }
-           }
-
 /* type pStmtDDL */
 
 schema_definition : TOK_CREATE schema_class TOK_SCHEMA schema_name_clause char_set collation_option
@@ -34046,7 +33849,6 @@ nonreserved_word :      TOK_ABORT
                       | TOK_SHAPE
                       | TOK_SHARE
                       | TOK_SHARED
-	              | TOK_SHOWLEAKS                  
                       | TOK_SIGNED
 		      | TOK_SINGLEDELTA // MV
 //                      | TOK_SIZE
@@ -34132,7 +33934,6 @@ nonreserved_word :      TOK_ABORT
                       | TOK_INVOKE
 		      | TOK_SHOWCONTROL
 		      | TOK_SHOWDDL
-		      | TOK_SHOWLABEL
 		      | TOK_SHOWPLAN
 		      | TOK_SHOWSHAPE
                       | TOK_SHOWSET 		      

http://git-wip-us.apache.org/repos/asf/trafodion/blob/88e2a742/core/sql/regress/compGeneral/EXPECTEDTOK
----------------------------------------------------------------------
diff --git a/core/sql/regress/compGeneral/EXPECTEDTOK b/core/sql/regress/compGeneral/EXPECTEDTOK
index 87d8497..9c3aa03 100644
--- a/core/sql/regress/compGeneral/EXPECTEDTOK
+++ b/core/sql/regress/compGeneral/EXPECTEDTOK
@@ -1,4 +1,4 @@
-sqlparser.y: warning: 62 shift/reduce conflicts [-Wconflicts-sr]
+sqlparser.y: warning: 61 shift/reduce conflicts [-Wconflicts-sr]
 sqlparser.y: warning: 12 reduce/reduce conflicts [-Wconflicts-rr]
  
 nnnn conflicts: 1 shift/reduce nnnn olap_sequence_function: set_function_specification . TOK_OVER '(' opt_olap_part_clause opt_olap_order_clause ')'
@@ -9,7 +9,6 @@ nnnn conflicts: 9 shift/reduce nnnn row_subquery: '(' row_subquery . ')'
 nnnn conflicts: 1 reduce/reduce nnnn row_subquery: rel_subquery .
 nnnn conflicts: 1 reduce/reduce nnnn transaction_statement: TOK_BEGIN .
 nnnn conflicts: 1 shift/reduce nnnn show_statement: TOK_SHOWCONTROL showcontrol_type . optional_control_identifier optional_comma_match_clause
-nnnn conflicts: 1 shift/reduce nnnn extended_label_name: TOK_INDEX . label_name
 nnnn conflicts: 1 shift/reduce nnnn table_as_stream_any: table_as_stream .
 nnnn conflicts: 1 shift/reduce nnnn row_subquery: '(' row_subquery . ')'
 nnnn conflicts: 1 shift/reduce nnnn input_hostvar_expression: HOSTVAR .

http://git-wip-us.apache.org/repos/asf/trafodion/blob/88e2a742/core/sql/regress/compGeneral/EXPECTEDTOK2
----------------------------------------------------------------------
diff --git a/core/sql/regress/compGeneral/EXPECTEDTOK2 b/core/sql/regress/compGeneral/EXPECTEDTOK2
index 87d8497..9c3aa03 100644
--- a/core/sql/regress/compGeneral/EXPECTEDTOK2
+++ b/core/sql/regress/compGeneral/EXPECTEDTOK2
@@ -1,4 +1,4 @@
-sqlparser.y: warning: 62 shift/reduce conflicts [-Wconflicts-sr]
+sqlparser.y: warning: 61 shift/reduce conflicts [-Wconflicts-sr]
 sqlparser.y: warning: 12 reduce/reduce conflicts [-Wconflicts-rr]
  
 nnnn conflicts: 1 shift/reduce nnnn olap_sequence_function: set_function_specification . TOK_OVER '(' opt_olap_part_clause opt_olap_order_clause ')'
@@ -9,7 +9,6 @@ nnnn conflicts: 9 shift/reduce nnnn row_subquery: '(' row_subquery . ')'
 nnnn conflicts: 1 reduce/reduce nnnn row_subquery: rel_subquery .
 nnnn conflicts: 1 reduce/reduce nnnn transaction_statement: TOK_BEGIN .
 nnnn conflicts: 1 shift/reduce nnnn show_statement: TOK_SHOWCONTROL showcontrol_type . optional_control_identifier optional_comma_match_clause
-nnnn conflicts: 1 shift/reduce nnnn extended_label_name: TOK_INDEX . label_name
 nnnn conflicts: 1 shift/reduce nnnn table_as_stream_any: table_as_stream .
 nnnn conflicts: 1 shift/reduce nnnn row_subquery: '(' row_subquery . ')'
 nnnn conflicts: 1 shift/reduce nnnn input_hostvar_expression: HOSTVAR .

http://git-wip-us.apache.org/repos/asf/trafodion/blob/88e2a742/core/sql/regress/core/EXPECTED116
----------------------------------------------------------------------
diff --git a/core/sql/regress/core/EXPECTED116 b/core/sql/regress/core/EXPECTED116
index 0d65c19..a67e957 100644
--- a/core/sql/regress/core/EXPECTED116
+++ b/core/sql/regress/core/EXPECTED116
@@ -15,11 +15,17 @@
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T1';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T1
 
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T2';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T2
 
 --- SQL operation complete.
@@ -29,9 +35,17 @@ TRAFODION.SCH.T116T2
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T1';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T2';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>
 >>--repeat the same tables again
@@ -47,11 +61,17 @@ TRAFODION.SCH.T116T2
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T1';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T1
 
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T2';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T2
 
 --- SQL operation complete.
@@ -60,9 +80,17 @@ TRAFODION.SCH.T116T2
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T1';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T2';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>
 >>-- unique constraint
@@ -78,11 +106,17 @@ TRAFODION.SCH.T116T2
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T1';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T1
 
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.TC1';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.TC1
 
 --- SQL operation complete.
@@ -91,9 +125,17 @@ TRAFODION.SCH.TC1
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T1';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.TC1';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>
 >>--setup two tables
@@ -121,6 +163,9 @@ TRAFODION.SCH.TC1
 >>--------------------------
 >>get user hbase objects, match 'TRAFODION.SCH.T116T1';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T1
 
 --- SQL operation complete.
@@ -135,6 +180,10 @@ TRAFODION.SCH.T116T1
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T1';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>
 >>--drop table with rollback
@@ -142,6 +191,9 @@ TRAFODION.SCH.T116T1
 >>--sh `echo "exists '$TEST_SCHEMA.T116T2'" | regrhbase.ksh >> LOG116`;
 >>get user hbase objects, match 'TRAFODION.SCH.T116T2';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T2
 
 --- SQL operation complete.
@@ -177,6 +229,9 @@ A1           C1           B1
 
 >>get user hbase objects, match 'TRAFODION.SCH.T116T2';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T2
 
 --- SQL operation complete.
@@ -185,6 +240,9 @@ TRAFODION.SCH.T116T2
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T2';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T2
 
 --- SQL operation complete.
@@ -213,11 +271,18 @@ A1           C1           B1
 >>-------------------------------------
 >>get user hbase objects, match 'TRAFODION.SCH.T116T2';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T2
 
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T3';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>begin work;
 
@@ -230,11 +295,17 @@ TRAFODION.SCH.T116T2
 --- 1 row(s) inserted.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T2';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T2
 
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T3';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T3
 
 --- SQL operation complete.
@@ -246,9 +317,16 @@ TRAFODION.SCH.T116T3
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T2';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T3';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T3
 
 --- SQL operation complete.
@@ -257,11 +335,18 @@ TRAFODION.SCH.T116T3
 >>---------------------------------------------------
 >>get user hbase objects, match 'TRAFODION.SCH.T116T3';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T3
 
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T4';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>begin work;
 
@@ -274,11 +359,17 @@ TRAFODION.SCH.T116T3
 --- 1 row(s) inserted.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T3';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T3
 
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T4';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T4
 
 --- SQL operation complete.
@@ -301,6 +392,9 @@ A1           C1           B1
 
 >>get user hbase objects, match 'TRAFODION.SCH.T116T3';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T3
 
 --- SQL operation complete.
@@ -309,11 +403,18 @@ TRAFODION.SCH.T116T3
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T3';
 
+External HBase objects
+======================
+
 TRAFODION.SCH.T116T3
 
 --- SQL operation complete.
 >>get user hbase objects, match 'TRAFODION.SCH.T116T4';
 
+External HBase objects
+======================
+
+
 --- SQL operation complete.
 >>select * from t116t3;
 
@@ -341,7 +442,7 @@ A1           C1           B1
 >>invoke t116t1;
 
 -- Definition of Trafodion table TRAFODION.SCH.T116T1
--- Definition current  Wed Dec 21 21:00:30 2016
+-- Definition current  Wed May 16 06:17:20 2018
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -359,7 +460,7 @@ A1           C1           B1
 >>invoke t116t1;
 
 -- Definition of Trafodion table TRAFODION.SCH.T116T1
--- Definition current  Wed Dec 21 21:00:30 2016
+-- Definition current  Wed May 16 06:17:20 2018
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -374,7 +475,7 @@ A1           C1           B1
 >>invoke t116v1;
 
 -- Definition of Trafodion view TRAFODION.SCH.T116V1
--- Definition current  Wed Dec 21 21:00:31 2016
+-- Definition current  Wed May 16 06:17:22 2018
 
   (
     A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -391,7 +492,7 @@ A1           C1           B1
 >>invoke t116t1;
 
 -- Definition of Trafodion table TRAFODION.SCH.T116T1
--- Definition current  Wed Dec 21 21:00:43 2016
+-- Definition current  Wed May 16 06:17:36 2018
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -406,7 +507,7 @@ A1           C1           B1
 >>invoke t116v1;
 
 -- Definition of Trafodion view TRAFODION.SCH.T116V1
--- Definition current  Wed Dec 21 21:00:44 2016
+-- Definition current  Wed May 16 06:17:37 2018
 
   (
     A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -423,7 +524,7 @@ A1           C1           B1
 >>invoke t116t1;
 
 -- Definition of Trafodion table TRAFODION.SCH.T116T1
--- Definition current  Wed Dec 21 21:00:47 2016
+-- Definition current  Wed May 16 06:17:42 2018
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -438,7 +539,7 @@ A1           C1           B1
 >>invoke t116v1;
 
 -- Definition of Trafodion view TRAFODION.SCH.T116V1
--- Definition current  Wed Dec 21 21:00:48 2016
+-- Definition current  Wed May 16 06:17:43 2018
 
   (
     A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -456,7 +557,7 @@ A1           C1           B1
 >>invoke t116t1;
 
 -- Definition of Trafodion table TRAFODION.SCH.T116T1
--- Definition current  Wed Dec 21 21:00:48 2016
+-- Definition current  Wed May 16 06:17:43 2018
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -471,7 +572,7 @@ A1           C1           B1
 >>invoke t116v1;
 
 -- Definition of Trafodion view TRAFODION.SCH.T116V1
--- Definition current  Wed Dec 21 21:00:48 2016
+-- Definition current  Wed May 16 06:17:43 2018
 
   (
     A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -488,7 +589,7 @@ A1           C1           B1
 >>invoke t116t1;
 
 -- Definition of Trafodion table TRAFODION.SCH.T116T1
--- Definition current  Wed Dec 21 21:01:00 2016
+-- Definition current  Wed May 16 06:17:58 2018
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -503,7 +604,7 @@ A1           C1           B1
 >>invoke t116v1;
 
 -- Definition of Trafodion view TRAFODION.SCH.T116V1
--- Definition current  Wed Dec 21 21:01:01 2016
+-- Definition current  Wed May 16 06:17:59 2018
 
   (
     A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -521,7 +622,7 @@ A1           C1           B1
 >>invoke t116t1;
 
 -- Definition of Trafodion table TRAFODION.SCH.T116T1
--- Definition current  Wed Dec 21 21:01:07 2016
+-- Definition current  Wed May 16 06:18:04 2018
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -536,7 +637,7 @@ A1           C1           B1
 >>invoke t116v1;
 
 -- Definition of Trafodion view TRAFODION.SCH.T116V1
--- Definition current  Wed Dec 21 21:01:08 2016
+-- Definition current  Wed May 16 06:18:05 2018
 
   (
     A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -560,8 +661,8 @@ A1           C1           B1
 --- SQL operation complete.
 >>
 >>sh sqlci -iTEST116\(concurrent_ddl\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_ddl
 >>cqd ddl_transactions 'ON';
 
@@ -595,7 +696,7 @@ End of MXCI Session
 >>invoke t116t1;
 
 -- Definition of Trafodion table TRAFODION.SCH.T116T1
--- Definition current  Wed Dec 21 21:01:31 2016
+-- Definition current  Wed May 16 06:18:30 2018
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -718,7 +819,7 @@ T116T1
 >>invoke t116t2;
 
 -- Definition of Trafodion table TRAFODION.SCH.T116T2
--- Definition current  Wed Dec 21 21:02:32 2016
+-- Definition current  Wed May 16 06:19:38 2018
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -744,7 +845,7 @@ T116T1
 >>invoke t116t2;
 
 -- Definition of Trafodion table TRAFODION.SCH.T116T2
--- Definition current  Wed Dec 21 21:02:51 2016
+-- Definition current  Wed May 16 06:19:49 2018
 
   (
     SYSKEY                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -872,8 +973,8 @@ T116T1
 >>
 >>-- insert a row using a concurrent hbase xn
 >>sh sqlci -iTEST116\(concurrent_hbase_xn_ins\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_hbase_xn_ins
 >>cqd traf_use_region_xn 'OFF';
 
@@ -925,8 +1026,8 @@ A            B
 >>
 >>-- insert a row using a concurrent region xn
 >>sh sqlci -iTEST116\(concurrent_region_xn_ins\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_region_xn_ins
 >>cqd traf_use_region_xn 'ON';
 
@@ -955,8 +1056,8 @@ End of MXCI Session
 >>-- should show conflict
 >>commit work;
 
-*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. Detail :org.trafodion.dtm.TransactionManagerException: org.apache.hadoop.hbase.coprocessor.transactional.CommitConflictException: java.io.IOException: Transaction [[transactionId: 16975 regionTX: false status: PENDING scan Size: 2 write Size: 1 startSQ: 2]] has scan which conflicts with [[transactionId: 1554361158723058 regionTX: true status: COMMITED scan Size: 2 write Size: 1 startSQ: 2 commitedSQ:2]]: region [TRAFODION.SCH.T116T6,,1482354300713.03a05b08f387a4eb4ef6323976d73e36.], scanRange[startRow: \x80\x00\x00\x01, endRow: \x80\x00\x00\x01], inserted row[\x80\x00\x00\x01]
-org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:513)
+*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. Detail :org.trafodion.dtm.TransactionManagerException: org.apache.hadoop.hbase.coprocessor.transactional.CommitConflictException: java.io.IOException: This Transaction [[transactionId: 4642 regionTX: false status: PENDING neverReadOnly: false scan Size: 2 write Size: 1 startSQ: 2 prepareEditSize: 0 endEditSize: 0 editSize: 1]] has a scan, scanRange[startRow: \x80\x00\x00\x01, endRow: \x80\x00\x00\x01] that conflicts with a committed Transaction [[transactionId: 1600600654243836 regionTX: true status: COMMITED neverReadOnly: false scan Size: 2 write Size: 1 startSQ: 2 prepareEditSize: 1 endEditSize: 1 editSize: 1 commitedSQ:2]] which , inserted a row with key[\x80\x00\x00\x01], in the region [TRAFODION.SCH.T116T6,,1526451716937.fa9bf89e5ceeac7ed4ee428544f09af0.]
+org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:525)
 
 --- SQL operation failed with errors.
 >>select * from t116t6;
@@ -981,8 +1082,8 @@ A            B
 >>
 >>-- upsert a row using a concurrent hbase xn
 >>sh sqlci -iTEST116\(concurrent_hbase_xn_ups\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_hbase_xn_ups
 >>cqd traf_use_region_xn 'OFF';
 
@@ -1034,8 +1135,8 @@ A            B
 >>
 >>-- insert a row using a concurrent region xn
 >>sh sqlci -iTEST116\(concurrent_region_xn_ups\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_region_xn_ups
 >>cqd traf_use_region_xn 'ON';
 
@@ -1064,8 +1165,8 @@ End of MXCI Session
 >>-- should show conflict
 >>commit work;
 
-*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. Detail :org.trafodion.dtm.TransactionManagerException: org.apache.hadoop.hbase.coprocessor.transactional.CommitConflictException: java.io.IOException: Transaction [[transactionId: 16979 regionTX: false status: PENDING scan Size: 1 write Size: 1 startSQ: 6]] has scan which conflicts with [[transactionId: 1554361174452391 regionTX: true status: COMMITED scan Size: 1 write Size: 1 startSQ: 6 commitedSQ:6]]: region [TRAFODION.SCH.T116T6,,1482354300713.03a05b08f387a4eb4ef6323976d73e36.], scanRange[startRow: \x80\x00\x00\x01, endRow: \x80\x00\x00\x01], inserted row[\x80\x00\x00\x01]
-org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:513)iona
+*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. Detail :org.trafodion.dtm.TransactionManagerException: org.apache.hadoop.hbase.coprocessor.transactional.CommitConflictException: java.io.IOException: This Transaction [[transactionId: 4646 regionTX: false status: PENDING neverReadOnly: false scan Size: 1 write Size: 1 startSQ: 6 prepareEditSize: 0 endEditSize: 0 editSize: 1]] has a scan, scanRange[startRow: \x80\x00\x00\x01, endRow: \x80\x00\x00\x01] that conflicts with a committed Transaction [[transactionId: 1600600673118601 regionTX: true status: COMMITED neverReadOnly: false scan Size: 1 write Size: 1 startSQ: 6 prepareEditSize: 1 endEditSize: 1 editSize: 1 commitedSQ:6]] which , inserted a row with key[\x80\x00\x00\x01], in the region [TRAFODION.SCH.T116T6,,1526451716937.fa9bf89e5ceeac7ed4ee428544f09af0.]
+org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:525)
 
 --- SQL operation failed with errors.
 >>select * from t116t6;
@@ -1093,8 +1194,8 @@ A            B
 >>
 >>-- delete a row using a concurrent hbase xn
 >>sh sqlci -iTEST116\(concurrent_hbase_xn_del\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_hbase_xn_del
 >>cqd traf_use_region_xn 'OFF';
 
@@ -1144,8 +1245,8 @@ End of MXCI Session
 >>
 >>-- delete a row using a concurrent region xn
 >>sh sqlci -iTEST116\(concurrent_region_xn_del\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_region_xn_del
 >>cqd traf_use_region_xn 'ON';
 
@@ -1174,8 +1275,8 @@ End of MXCI Session
 >>-- should show conflict
 >>commit work;
 
-*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. Detail :org.trafodion.dtm.TransactionManagerException: org.apache.hadoop.hbase.coprocessor.transactional.CommitConflictException: java.io.IOException: Transaction [[transactionId: 16985 regionTX: false status: PENDING scan Size: 1 write Size: 1 startSQ: 11]] has scan which conflicts with [[transactionId: 1554361190181566 regionTX: true status: COMMITED scan Size: 0 write Size: 1 startSQ: 11 commitedSQ:11]]: region [TRAFODION.SCH.T116T6,,1482354300713.03a05b08f387a4eb4ef6323976d73e36.], scanRange[startRow: \x80\x00\x00\x01, endRow: \x80\x00\x00\x01], deleted row[\x80\x00\x00\x01]
-org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:513)
+*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. Detail :org.trafodion.dtm.TransactionManagerException: org.apache.hadoop.hbase.coprocessor.transactional.CommitConflictException: java.io.IOException: This Transaction [[transactionId: 4652 regionTX: false status: PENDING neverReadOnly: false scan Size: 1 write Size: 1 startSQ: 11 prepareEditSize: 0 endEditSize: 0 editSize: 1]] has a scan, scanRange[startRow: \x80\x00\x00\x01, endRow: \x80\x00\x00\x01] that conflicts with a committed Transaction [[transactionId: 1600600691993433 regionTX: true status: COMMITED neverReadOnly: false scan Size: 0 write Size: 1 startSQ: 11 prepareEditSize: 1 endEditSize: 1 editSize: 1 commitedSQ:11]] which , deleted a row with key[\x80\x00\x00\x01], in the region [TRAFODION.SCH.T116T6,,1526451716937.fa9bf89e5ceeac7ed4ee428544f09af0.]
+org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:525)
 
 --- SQL operation failed with errors.
 >>select * from t116t6;
@@ -1198,8 +1299,8 @@ org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:513)
 >>
 >>-- delete a row using a concurrent hbase xn
 >>sh sqlci -iTEST116\(concurrent_hbase_xn_checkanddel\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_hbase_xn_checkanddel
 >>cqd traf_use_region_xn 'OFF';
 
@@ -1249,8 +1350,8 @@ End of MXCI Session
 >>
 >>-- delete a row using a concurrent region xn
 >>sh sqlci -iTEST116\(concurrent_region_xn_checkanddel\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_region_xn_checkanddel
 >>cqd traf_use_region_xn 'ON';
 
@@ -1279,8 +1380,8 @@ End of MXCI Session
 >>-- should show conflict
 >>commit work;
 
-*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. Detail :org.trafodion.dtm.TransactionManagerException: org.apache.hadoop.hbase.coprocessor.transactional.CommitConflictException: java.io.IOException: Transaction [[transactionId: 16991 regionTX: false status: PENDING scan Size: 1 write Size: 1 startSQ: 15]] has scan which conflicts with [[transactionId: 1554361202764668 regionTX: true status: COMMITED scan Size: 0 write Size: 1 startSQ: 15 commitedSQ:15]]: region [TRAFODION.SCH.T116T6,,1482354300713.03a05b08f387a4eb4ef6323976d73e36.], scanRange[startRow: \x80\x00\x00\x01, endRow: \x80\x00\x00\x01], deleted row[\x80\x00\x00\x01]
-org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:513)Za
+*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. Detail :org.trafodion.dtm.TransactionManagerException: org.apache.hadoop.hbase.coprocessor.transactional.CommitConflictException: java.io.IOException: This Transaction [[transactionId: 4658 regionTX: false status: PENDING neverReadOnly: false scan Size: 1 write Size: 1 startSQ: 15 prepareEditSize: 0 endEditSize: 0 editSize: 1]] has a scan, scanRange[startRow: \x80\x00\x00\x01, endRow: \x80\x00\x00\x01] that conflicts with a committed Transaction [[transactionId: 1600600710868339 regionTX: true status: COMMITED neverReadOnly: false scan Size: 0 write Size: 1 startSQ: 15 prepareEditSize: 1 endEditSize: 1 editSize: 1 commitedSQ:15]] which , deleted a row with key[\x80\x00\x00\x01], in the region [TRAFODION.SCH.T116T6,,1526451716937.fa9bf89e5ceeac7ed4ee428544f09af0.]
+org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:525)
 
 --- SQL operation failed with errors.
 >>select * from t116t6;
@@ -1303,8 +1404,8 @@ org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:513)Za
 >>
 >>-- update row using a concurrent hbase xn
 >>sh sqlci -iTEST116\(concurrent_hbase_xn_checkandupd\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_hbase_xn_checkandupd
 >>cqd traf_use_region_xn 'OFF';
 
@@ -1359,8 +1460,8 @@ A            B
 >>
 >>-- update row using a concurrent region xn
 >>sh sqlci -iTEST116\(concurrent_region_xn_checkandupd\) >> LOG116;
-Apache Trafodion Conversational Interface 2.1.0
-Copyright (c) 2015-2016 Apache Software Foundation
+Apache Trafodion Conversational Interface 2.3.0
+Copyright (c) 2015-2017 Apache Software Foundation
 >>?section concurrent_region_xn_checkandupd
 >>cqd traf_use_region_xn 'ON';
 
@@ -1389,8 +1490,8 @@ End of MXCI Session
 >>-- should show conflict
 >>commit work;
 
-*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. Detail :org.trafodion.dtm.TransactionManagerException: org.apache.hadoop.hbase.coprocessor.transactional.CommitConflictException: java.io.IOException: Transaction [[transactionId: 16997 regionTX: false status: PENDING scan Size: 2 write Size: 1 startSQ: 20]] has scan which conflicts with [[transactionId: 1554361218493621 regionTX: true status: COMMITED scan Size: 1 write Size: 1 startSQ: 20 commitedSQ:20]]: region [TRAFODION.SCH.T116T6,,1482354300713.03a05b08f387a4eb4ef6323976d73e36.], scanRange[startRow: \x80\x00\x00\x01, endRow: \x80\x00\x00\x01], inserted row[\x80\x00\x00\x01]
-org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:513)1
+*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. Detail :org.trafodion.dtm.TransactionManagerException: org.apache.hadoop.hbase.coprocessor.transactional.CommitConflictException: java.io.IOException: This Transaction [[transactionId: 4664 regionTX: false status: PENDING neverReadOnly: false scan Size: 2 write Size: 1 startSQ: 20 prepareEditSize: 0 endEditSize: 0 editSize: 1]] has a scan, scanRange[startRow: \x80\x00\x00\x01, endRow: \x80\x00\x00\x01] that conflicts with a committed Transaction [[transactionId: 1600600729743055 regionTX: true status: COMMITED neverReadOnly: false scan Size: 1 write Size: 1 startSQ: 20 prepareEditSize: 1 endEditSize: 1 editSize: 1 commitedSQ:20]] which , inserted a row with key[\x80\x00\x00\x01], in the region [TRAFODION.SCH.T116T6,,1526451716937.fa9bf89e5ceeac7ed4ee428544f09af0.]
+org.trafodion.dtm.HBaseTxClient.prepareCommit(HBaseTxClient.java:525)
 
 --- SQL operation failed with errors.
 >>select * from t116t6;