Changes to call HBaseAdmin.listSnaphots conditionally when CQD TRAF_TABLE_SNAPSHOT is set to 'LATEST'
diff --git a/core/sql/generator/GenRelScan.cpp b/core/sql/generator/GenRelScan.cpp
index 74dccec..2205dea 100644
--- a/core/sql/generator/GenRelScan.cpp
+++ b/core/sql/generator/GenRelScan.cpp
@@ -2172,6 +2172,7 @@
   }
   return (snpType_ != SNP_NONE);
 }
+
 short HbaseAccess::createSortValue(ItemExpr * col_node,
 				   std::vector<SortValue> &myvector,
 				   NABoolean isSecondaryIndex)
@@ -2475,34 +2476,44 @@
   char * tablename = NULL;
   char * snapshotName = NULL;
   LatestSnpSupportEnum  latestSnpSupport=  latest_snp_supported;
-  if ((getTableDesc()->getNATable()->isHbaseRowTable()) ||
-      (getTableDesc()->getNATable()->isHbaseCellTable()) ||
-      (getTableName().getQualifiedNameObj().isHbaseMappedName()))
-    {
-      tablename =
-        space->AllocateAndCopyToAlignedSpace(
-                                             GenGetQualifiedName(getTableName().getQualifiedNameObj().getObjectName()), 0);
-      latestSnpSupport = latest_snp_not_trafodion_table;
-    }
-  else
-    {
-      if (getIndexDesc() && getIndexDesc()->getNAFileSet())
-      {
+  Int32 computedHBaseRowSizeFromMetaData = getTableDesc()->getNATable()->computeHBaseRowSizeFromMetaData();
+  if (CmpCommon::getDefault(TRAF_TABLE_SNAPSHOT_SCAN) != DF_NONE)
+  {
+      if (!getTableDesc()->getNATable()->isSeabaseTable()
+          || getTableDesc()->getNATable()->isSeabaseMDTable()
+          || (getTableDesc()->getNATable()->getTableName().getObjectName() == HBASE_HIST_NAME)
+          || (getTableDesc()->getNATable()->getTableName().getObjectName() == HBASE_HISTINT_NAME))
+         snpType_ = SNP_NONE;
+     else if ((getTableDesc()->getNATable()->isHbaseRowTable()) ||
+         (getTableDesc()->getNATable()->isHbaseCellTable()) ||
+         (getTableName().getQualifiedNameObj().isHbaseMappedName())) 
+     {
+        latestSnpSupport = latest_snp_not_trafodion_table;
+     }
+     else if (computedHBaseRowSizeFromMetaData * getEstRowsAccessed().getValue()  <
+                getDefault(TRAF_TABLE_SNAPSHOT_SCAN_TABLE_SIZE_THRESHOLD)*1024*1024)
+        latestSnpSupport = latest_snp_small_table;
+     else
+     {
+        if (getIndexDesc() && getIndexDesc()->getNAFileSet())
+        {
          tablename = space->AllocateAndCopyToAlignedSpace(GenGetQualifiedName(getIndexDesc()->getNAFileSet()->getFileSetName()), 0);
          if (getIndexDesc()->isClusteringIndex())
          {
-              //Base table
-              Lng32 retcode = HBaseClient_JNI::getLatestSnapshot(tablename, snapshotName, generator->wHeap()); 
-              if (retcode != HBC_OK)
-                 GenAssert(0,"HBaseClient_JNI::getLatestSnapshot failed");
-              if (snapshotName == NULL)
-                 latestSnpSupport = latest_snp_no_snapshot_available;
+              if (CmpCommon::getDefault(TRAF_TABLE_SNAPSHOT_SCAN) == DF_LATEST) {
+                  //Base table
+                 Lng32 retcode = HBaseClient_JNI::getLatestSnapshot(tablename, snapshotName, generator->wHeap()); 
+                 if (retcode != HBC_OK)
+                     GenAssert(0,"HBaseClient_JNI::getLatestSnapshot failed");
+                 if (snapshotName == NULL)
+                     latestSnpSupport = latest_snp_no_snapshot_available;
+             }
           }
           else
             latestSnpSupport = latest_snp_index_table;
       }
     }
-
+  } 
   if (! tablename) 
      tablename =
         space->AllocateAndCopyToAlignedSpace(
@@ -3069,11 +3080,6 @@
       upqueuelength = ((buffersize / bufRowlen) * numBuffers)/2;
     }
 
-  Int32 computedHBaseRowSizeFromMetaData = getTableDesc()->getNATable()->computeHBaseRowSizeFromMetaData();
-  if (computedHBaseRowSizeFromMetaData * getEstRowsAccessed().getValue()  <
-                getDefault(TRAF_TABLE_SNAPSHOT_SCAN_TABLE_SIZE_THRESHOLD)*1024*1024)
-    latestSnpSupport = latest_snp_small_table;
-
   NAString serverNAS = ActiveSchemaDB()->getDefaults().getValue(HBASE_SERVER);
   NAString zkPortNAS = ActiveSchemaDB()->getDefaults().getValue(HBASE_ZOOKEEPER_PORT);
   char * server = space->allocateAlignedSpace(serverNAS.length() + 1);