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.
