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 <m...@apache.org>
Authored: Tue Oct 11 16:27:33 2016 +0800
Committer: Ming LI <m...@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'),

Reply via email to