You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by ml...@apache.org on 2016/10/11 08:28:15 UTC
incubator-hawq git commit: Revert "HAWQ-1093. Bump Orca version and
enable Orca related exception propagation"
Repository: incubator-hawq
Updated Branches:
refs/heads/master 85192f8e4 -> b276946be
Revert "HAWQ-1093. Bump Orca version and enable Orca related exception propagation"
This reverts commit 19f3fa81b1e4ca548d3534eeae2e114c66e4b717.
Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/b276946b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/b276946b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/b276946b
Branch: refs/heads/master
Commit: b276946be7b7ccd10ab85eecb4f042697b2b4b67
Parents: 85192f8
Author: Ming LI <ml...@apache.org>
Authored: Tue Oct 11 16:27:33 2016 +0800
Committer: Ming LI <ml...@apache.org>
Committed: Tue Oct 11 16:27:33 2016 +0800
----------------------------------------------------------------------
depends/thirdparty/gporca.commit | 2 +-
depends/thirdparty/gpos.commit | 2 +-
src/backend/gpopt/CGPOptimizer.cpp | 20 +------
src/backend/gpopt/gpdbwrappers.cpp | 7 +--
.../gpopt/translate/CTranslatorQueryToDXL.cpp | 2 +
src/backend/gpopt/utils/COptTasks.cpp | 62 ++++++--------------
src/include/gpopt/utils/COptTasks.h | 4 --
src/test/regress/expected/errors.out | 4 --
src/test/regress/expected/horology.out | 5 +-
src/test/regress/sql/errors.sql | 5 +-
src/test/regress/sql/horology.sql | 6 +-
11 files changed, 28 insertions(+), 91 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/depends/thirdparty/gporca.commit
----------------------------------------------------------------------
diff --git a/depends/thirdparty/gporca.commit b/depends/thirdparty/gporca.commit
index b7aef6e..cf4eaaa 100644
--- a/depends/thirdparty/gporca.commit
+++ b/depends/thirdparty/gporca.commit
@@ -1 +1 @@
-https://github.com/greenplum-db/gporca.git master cdd832b193a1fb21c8fa43bc5161ea381aa2b621
+https://github.com/greenplum-db/gporca.git master c5e40f283703b5fa4c2eb40f367ab7c1b1ab4d0d
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/depends/thirdparty/gpos.commit
----------------------------------------------------------------------
diff --git a/depends/thirdparty/gpos.commit b/depends/thirdparty/gpos.commit
index 04c74ca..5455581 100644
--- a/depends/thirdparty/gpos.commit
+++ b/depends/thirdparty/gpos.commit
@@ -1 +1 @@
-https://github.com/greenplum-db/gpos.git master 7f1bd6eec40fcaaa032edeac88dd54660f2f0943
+https://github.com/greenplum-db/gpos.git master 6af760fb96f5bd48783e8644e7d63c39132b8c08
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/src/backend/gpopt/CGPOptimizer.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/CGPOptimizer.cpp b/src/backend/gpopt/CGPOptimizer.cpp
index bcace95..db3cab8 100644
--- a/src/backend/gpopt/CGPOptimizer.cpp
+++ b/src/backend/gpopt/CGPOptimizer.cpp
@@ -37,8 +37,6 @@
#include "gpopt/init.h"
#include "gpos/_api.h"
-#include "naucrates/exception.h"
-
//---------------------------------------------------------------------------
// @function:
// CGPOptimizer::TouchLibraryInitializers
@@ -71,23 +69,7 @@ CGPOptimizer::PplstmtOptimize
bool *pfUnexpectedFailure // output : set to true if optimizer unexpectedly failed to produce plan
)
{
- GPOS_TRY
- {
- return COptTasks::PplstmtOptimize(pquery, pfUnexpectedFailure);
- }
- GPOS_CATCH_EX(ex)
- {
- if (GPOS_MATCH_EX(ex, gpdxl::ExmaDXL, gpdxl::ExmiWarningAsError))
- {
- elog(ERROR, "PQO unable to generate plan, please see the above message for details.");
- }
- if (GPOS_MATCH_EX(ex, gpdxl::ExmaGPDB, gpdxl::ExmiGPDBError))
- {
- elog(ERROR, "GPDB exception. Aborting PQO plan generation.");
- }
- }
- GPOS_CATCH_END;
- return NULL;
+ return COptTasks::PplstmtOptimize(pquery, pfUnexpectedFailure);
}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/src/backend/gpopt/gpdbwrappers.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/gpdbwrappers.cpp b/src/backend/gpopt/gpdbwrappers.cpp
index 1d6a071..7d72823 100644
--- a/src/backend/gpopt/gpdbwrappers.cpp
+++ b/src/backend/gpopt/gpdbwrappers.cpp
@@ -237,13 +237,8 @@
#define GP_WRAP_END \
} \
- else \
- { \
- EmitErrorReport(); \
- FlushErrorState(); \
- GPOS_RAISE(gpdxl::ExmaGPDB, gpdxl::ExmiGPDBError); \
- } \
} \
+ GPOS_RAISE(gpdxl::ExmaGPDB, gpdxl::ExmiGPDBError)
using namespace gpos;
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/src/backend/gpopt/translate/CTranslatorQueryToDXL.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/translate/CTranslatorQueryToDXL.cpp b/src/backend/gpopt/translate/CTranslatorQueryToDXL.cpp
index 2985378..e03a542 100644
--- a/src/backend/gpopt/translate/CTranslatorQueryToDXL.cpp
+++ b/src/backend/gpopt/translate/CTranslatorQueryToDXL.cpp
@@ -447,6 +447,8 @@ CTranslatorQueryToDXL::CheckSupportedCmdType
GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiQuery2DXLUnsupportedFeature, mapelem.m_wsz);
}
}
+
+ GPOS_ASSERT(!"Unrecognized command type");
}
//---------------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/src/backend/gpopt/utils/COptTasks.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/utils/COptTasks.cpp b/src/backend/gpopt/utils/COptTasks.cpp
index aa00410..ca20e4c 100644
--- a/src/backend/gpopt/utils/COptTasks.cpp
+++ b/src/backend/gpopt/utils/COptTasks.cpp
@@ -50,7 +50,6 @@
#include "utils/guc.h"
#include "gpos/base.h"
-#include "gpos/error/CException.h"
#undef setstate
#include "gpos/_api.h"
@@ -179,37 +178,6 @@ COptTasks::SOptContext::SOptContext()
m_szErrorMsg(NULL)
{}
-//---------------------------------------------------------------------------
-// @function:
-// COptTasks::SOptContext::HandleError
-//
-// @doc:
-// If there is an error print as warning and throw GPOS_EXCEPTION to abort
-// plan generation. Calling elog::ERROR will result in longjump and hence
-// a memory leak.
-//---------------------------------------------------------------------------
-void
-COptTasks::SOptContext::HandleError
- (
- BOOL *pfUnexpectedFailure
- )
-{
- BOOL bhasError = false;
- if (NULL != m_szErrorMsg)
- {
- bhasError = true;
- elog(WARNING, "%s", m_szErrorMsg);
- }
- *pfUnexpectedFailure = m_fUnexpectedFailure;
-
- // clean up context
- Free(epinQuery, epinPlStmt);
- if (bhasError)
- {
- GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiWarningAsError);
- }
-}
-
//---------------------------------------------------------------------------
// @function:
@@ -758,11 +726,9 @@ COptTasks::PdrgPssLoad
}
GPOS_CATCH_EX(ex)
{
- if (GPOS_MATCH_EX(ex, gpdxl::ExmaGPDB, gpdxl::ExmiGPDBError)) {
- GPOS_RETHROW(ex);
- }
- elog(DEBUG2, "\n[OPT]: Using default search strategy");
GPOS_RESET_EX;
+
+ elog(DEBUG2, "\n[OPT]: Using default search strategy");
}
GPOS_CATCH_END;
@@ -1562,6 +1528,13 @@ COptTasks::PvEvalExprFromDXLTask
{
CMDCache::Shutdown();
}
+ // Catch GPDB exceptions
+ if (GPOS_MATCH_EX(ex, gpdxl::ExmaGPDB, gpdxl::ExmiGPDBError))
+ {
+ elog(NOTICE, "Found non const expression. Please check log for more information.");
+ GPOS_RESET_EX;
+ return NULL;
+ }
if (FErrorOut(ex))
{
IErrorContext *perrctxt = CTask::PtskSelf()->Perrctxt();
@@ -1643,18 +1616,17 @@ COptTasks::PplstmtOptimize
SOptContext octx;
octx.m_pquery = pquery;
octx.m_fGeneratePlStmt= true;
- GPOS_TRY
- {
- Execute(&PvOptimizeTask, &octx);
- }
+ Execute(&PvOptimizeTask, &octx);
- GPOS_CATCH_EX(ex)
+ if (NULL != octx.m_szErrorMsg)
{
- octx.HandleError(pfUnexpectedFailure);
- GPOS_RETHROW(ex);
+ elog(ERROR, octx.m_szErrorMsg);
}
- GPOS_CATCH_END;
- octx.HandleError(pfUnexpectedFailure);
+ *pfUnexpectedFailure = octx.m_fUnexpectedFailure;
+
+ // clean up context
+ octx.Free(octx.epinQuery, octx.epinPlStmt);
+
return octx.m_pplstmt;
}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/src/include/gpopt/utils/COptTasks.h
----------------------------------------------------------------------
diff --git a/src/include/gpopt/utils/COptTasks.h b/src/include/gpopt/utils/COptTasks.h
index fe24475..580ab1d 100644
--- a/src/include/gpopt/utils/COptTasks.h
+++ b/src/include/gpopt/utils/COptTasks.h
@@ -114,10 +114,6 @@ class COptTasks
// ctor
SOptContext();
- // If there is an error print as warning and throw exception to abort
- // plan generation
- void HandleError(BOOL *pfUnexpectedFailure);
-
// free all members except input and output pointers
void Free(EPin epinInput, EPin epinOutput);
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/src/test/regress/expected/errors.out
----------------------------------------------------------------------
diff --git a/src/test/regress/expected/errors.out b/src/test/regress/expected/errors.out
index 6f2f5e9..2e53cdc 100755
--- a/src/test/regress/expected/errors.out
+++ b/src/test/regress/expected/errors.out
@@ -483,13 +483,9 @@ create function infinite_recurse() returns int as
-- # mpp-2756
-- m/(ERROR|WARNING|CONTEXT|NOTICE):.*stack depth limit exceeded\s+at\s+character/
-- s/\s+at\s+character.*//
--- m/ERROR:.*GPDB exception. Aborting PQO.*/
--- s/ERROR:.*GPDB exception. Aborting PQO.*//
-- end_matchsubs
--- start_ignore
select infinite_recurse();
ERROR: stack depth limit exceeded
--- end_ignore
select 1; -- test that this works
?column?
----------
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/src/test/regress/expected/horology.out
----------------------------------------------------------------------
diff --git a/src/test/regress/expected/horology.out b/src/test/regress/expected/horology.out
index 9786e5a..4b79ed8 100755
--- a/src/test/regress/expected/horology.out
+++ b/src/test/regress/expected/horology.out
@@ -10,9 +10,8 @@ INSERT INTO ABSTIME_HOROLOGY_TBL (f1) VALUES ('Jan 14, 1973 03:14:21'),
(abstime 'epoch'),
(abstime 'infinity'),
(abstime '-infinity'),
-(abstime 'May 10, 1947 23:59:12');
--- orca will fail for this
-INSERT INTO ABSTIME_HOROLOGY_TBL (f1) VALUES('Jun 10, 1843');
+(abstime 'May 10, 1947 23:59:12'),
+('Jun 10, 1843');
CREATE TABLE INTERVAL_HOROLOGY_TBL (f1 interval);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'f1' as the Greenplum Database data distribution key for this table.
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/src/test/regress/sql/errors.sql
----------------------------------------------------------------------
diff --git a/src/test/regress/sql/errors.sql b/src/test/regress/sql/errors.sql
index 9416057..5138407 100644
--- a/src/test/regress/sql/errors.sql
+++ b/src/test/regress/sql/errors.sql
@@ -400,10 +400,7 @@ create function infinite_recurse() returns int as
-- # mpp-2756
-- m/(ERROR|WARNING|CONTEXT|NOTICE):.*stack depth limit exceeded\s+at\s+character/
-- s/\s+at\s+character.*//
--- m/ERROR:.*GPDB exception. Aborting PQO.*/
--- s/ERROR:.*GPDB exception. Aborting PQO.*//
-- end_matchsubs
--- start_ignore
select infinite_recurse();
--- end_ignore
+
select 1; -- test that this works
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b276946b/src/test/regress/sql/horology.sql
----------------------------------------------------------------------
diff --git a/src/test/regress/sql/horology.sql b/src/test/regress/sql/horology.sql
index 8f54e71..65eee0a 100644
--- a/src/test/regress/sql/horology.sql
+++ b/src/test/regress/sql/horology.sql
@@ -8,10 +8,8 @@ INSERT INTO ABSTIME_HOROLOGY_TBL (f1) VALUES ('Jan 14, 1973 03:14:21'),
(abstime 'epoch'),
(abstime 'infinity'),
(abstime '-infinity'),
-(abstime 'May 10, 1947 23:59:12');
-
--- orca will fail for this
-INSERT INTO ABSTIME_HOROLOGY_TBL (f1) VALUES('Jun 10, 1843');
+(abstime 'May 10, 1947 23:59:12'),
+('Jun 10, 1843');
CREATE TABLE INTERVAL_HOROLOGY_TBL (f1 interval);
INSERT INTO INTERVAL_HOROLOGY_TBL (f1) VALUES ('@ 1 minute'),