Repository: trafodion
Updated Branches:
  refs/heads/master 2236a6571 -> 0cf2e6b0b


[TRAFODION-3007] update statistics report error on volatile table


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

Branch: refs/heads/master
Commit: 9ae9c5999cd87544e96410c6082caccc9ebd4650
Parents: 3e26f86
Author: Andy Yang <[email protected]>
Authored: Thu Mar 22 09:08:59 2018 +0800
Committer: Andy Yang <[email protected]>
Committed: Thu Mar 22 09:08:59 2018 +0800

----------------------------------------------------------------------
 core/sql/optimizer/BindRelExpr.cpp       | 5 ++++-
 core/sql/optimizer/ObjectNames.cpp       | 7 +++++++
 core/sql/optimizer/ObjectNames.h         | 1 +
 core/sql/regress/executor/EXPECTED013.SB | 4 +---
 core/sql/sqlcomp/CmpSeabaseDDLschema.cpp | 7 +++++--
 core/sql/ustat/hs_parser.cpp             | 7 -------
 6 files changed, 18 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafodion/blob/9ae9c599/core/sql/optimizer/BindRelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/BindRelExpr.cpp 
b/core/sql/optimizer/BindRelExpr.cpp
index 0faae6f..e6c3eb3 100644
--- a/core/sql/optimizer/BindRelExpr.cpp
+++ b/core/sql/optimizer/BindRelExpr.cpp
@@ -1521,7 +1521,10 @@ NATable *BindWA::getNATable(CorrName& corrName,
           ((bindWA->inViewDefinition()) ||
            (bindWA->inMVDefinition())))
       {
-        if (! 
CmpCommon::context()->sqlSession()->validateVolatileQualifiedSchemaName
+        // for Histogram, support to use VOLATILE SCHEMA
+        // or else, don't support
+        if (!corrName.getQualifiedNameObj().isHistogramTable() && 
+            
!CmpCommon::context()->sqlSession()->validateVolatileQualifiedSchemaName
             (corrName.getQualifiedNameObj()))
         {
           bindWA->setErrStatus();

http://git-wip-us.apache.org/repos/asf/trafodion/blob/9ae9c599/core/sql/optimizer/ObjectNames.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ObjectNames.cpp 
b/core/sql/optimizer/ObjectNames.cpp
index fb4f9b1..1101c2d 100644
--- a/core/sql/optimizer/ObjectNames.cpp
+++ b/core/sql/optimizer/ObjectNames.cpp
@@ -1441,6 +1441,13 @@ NABoolean QualifiedName::isHistogramIntervals() const
    return (getObjectName() == HBASE_HISTINT_NAME);
 }
 
+NABoolean QualifiedName::isHistogramTable() const
+{
+   const NAString objName = getObjectName();
+   return (objName == HBASE_HIST_NAME || 
+           objName == HBASE_HISTINT_NAME ||
+           objName == HBASE_PERS_SAMP_NAME );
+}
 
 void ExtendedQualName::print(FILE* ofd, const char* indent, const char* title) 
const
 {

http://git-wip-us.apache.org/repos/asf/trafodion/blob/9ae9c599/core/sql/optimizer/ObjectNames.h
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ObjectNames.h b/core/sql/optimizer/ObjectNames.h
index 5ed7450..afa95fc 100644
--- a/core/sql/optimizer/ObjectNames.h
+++ b/core/sql/optimizer/ObjectNames.h
@@ -332,6 +332,7 @@ public:
 
   NABoolean isHistograms() const;
   NABoolean isHistogramIntervals() const;
+  NABoolean isHistogramTable() const;
   NABoolean isLOBDesc() const;
   void setObjectName(const NAString &objName)   { objectName_ = objName; }
   void setObjectNameSpace(ComAnsiNameSpace objNameSpace)   { objectNameSpace_ 
= objNameSpace; }

http://git-wip-us.apache.org/repos/asf/trafodion/blob/9ae9c599/core/sql/regress/executor/EXPECTED013.SB
----------------------------------------------------------------------
diff --git a/core/sql/regress/executor/EXPECTED013.SB 
b/core/sql/regress/executor/EXPECTED013.SB
index db07760..bb94d75 100644
--- a/core/sql/regress/executor/EXPECTED013.SB
+++ b/core/sql/regress/executor/EXPECTED013.SB
@@ -93,9 +93,7 @@ A            B
 >>
 >>update statistics for table t013t1 on every column;
 
-*** ERROR[9247] UPDATE STATISTICS is not supported on volatile tables 
presently.
-
---- SQL operation failed with errors.
+--- SQL operation complete.
 >>
 >>select * from t013_sch.t013t1;
 

http://git-wip-us.apache.org/repos/asf/trafodion/blob/9ae9c599/core/sql/sqlcomp/CmpSeabaseDDLschema.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLschema.cpp 
b/core/sql/sqlcomp/CmpSeabaseDDLschema.cpp
index d2f0c89..dcc7971 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLschema.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLschema.cpp
@@ -302,7 +302,7 @@ void CmpSeabaseDDL::createSeabaseSchema(
    // not reserved
    NAString tableNotCreated;
 
-   if (!createSchemaNode->isVolatile() && 
!ComIsTrafodionReservedSchemaName(schName))
+   if (!ComIsTrafodionReservedSchemaName(schName))
    {
       if (createHistogramTables(&cliInterface, schemaName.getExternalName(), 
                                 FALSE, tableNotCreated))
@@ -1742,7 +1742,10 @@ Lng32 cliRC = 0;
 
 
 
-   if (isVolatile)
+   if (isVolatile && 
+       strcmp(objectName, HBASE_HIST_NAME) != 0 && 
+       strcmp(objectName, HBASE_HISTINT_NAME) != 0 && 
+       strcmp(objectName, HBASE_PERS_SAMP_NAME) != 0)
       strcpy(volatileString,"VOLATILE");
 
    if (ifExists)

http://git-wip-us.apache.org/repos/asf/trafodion/blob/9ae9c599/core/sql/ustat/hs_parser.cpp
----------------------------------------------------------------------
diff --git a/core/sql/ustat/hs_parser.cpp b/core/sql/ustat/hs_parser.cpp
index c01a6d9..2b0fff2 100644
--- a/core/sql/ustat/hs_parser.cpp
+++ b/core/sql/ustat/hs_parser.cpp
@@ -243,13 +243,6 @@ Lng32 AddTableName( const hs_table_type type
           }
         else 
           {
-            // This is for UPDATE STATISTICS; the volatile schema name exists.
-            // For now, UPDATE STATISTICS is not supported. (See also JIRA 
Trafodion-2004.)
-
-            HSFuncMergeDiags(-UERR_VOLATILE_TABLES_NOT_SUPPORTED);
-            retcode = -1;
-            HSHandleError(retcode); // causes a return from this function
-
             // The code below is old code that will be needed once we turn on
             // support for UPDATE STATISTICS on volatile tables. We leave it 
here
             // until the code changes described in JIRA Trafodion-2004 are 
complete.

Reply via email to