Repository: incubator-hawq Updated Branches: refs/heads/master 83adc06ab -> 8906240f4
Revert "HAWQ-934. Populate canSetTag of PlannedStmt from Query object" This reverts commit eae0585f6109534c7ead553604c44b1dd483d8a3. Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/8906240f Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/8906240f Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/8906240f Branch: refs/heads/master Commit: 8906240f47aa0bec895e716a41e08930ce8bc2a0 Parents: 83adc06 Author: Ming LI <[email protected]> Authored: Tue Aug 2 10:48:45 2016 +0800 Committer: Ming LI <[email protected]> Committed: Tue Aug 2 10:48:45 2016 +0800 ---------------------------------------------------------------------- .../gpopt/translate/CTranslatorDXLToPlStmt.cpp | 5 +- src/backend/gpopt/utils/COptTasks.cpp | 9 ++-- .../gpopt/translate/CTranslatorDXLToPlStmt.h | 2 +- src/include/gpopt/utils/COptTasks.h | 2 +- src/test/regress/expected/gp_optimizer.out | 52 -------------------- src/test/regress/sql/gp_optimizer.sql | 40 --------------- 6 files changed, 8 insertions(+), 102 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/8906240f/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp ---------------------------------------------------------------------- diff --git a/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp b/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp index e1daa1c..fe68cbd 100644 --- a/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp +++ b/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp @@ -227,8 +227,7 @@ CTranslatorDXLToPlStmt::InitTranslators() PlannedStmt * CTranslatorDXLToPlStmt::PplstmtFromDXL ( - const CDXLNode *pdxln, - const Query *pquery + const CDXLNode *pdxln ) { GPOS_ASSERT(NULL != pdxln); @@ -265,7 +264,7 @@ CTranslatorDXLToPlStmt::PplstmtFromDXL // store partitioned table indexes in planned stmt pplstmt->queryPartOids = m_pctxdxltoplstmt->PlPartitionedTables(); - pplstmt->canSetTag = pquery->canSetTag; + pplstmt->canSetTag = true; pplstmt->relationOids = plOids; pplstmt->numSelectorsPerScanId = m_pctxdxltoplstmt->PlNumPartitionSelectors(); http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/8906240f/src/backend/gpopt/utils/COptTasks.cpp ---------------------------------------------------------------------- diff --git a/src/backend/gpopt/utils/COptTasks.cpp b/src/backend/gpopt/utils/COptTasks.cpp index 03de99e..5be6431 100644 --- a/src/backend/gpopt/utils/COptTasks.cpp +++ b/src/backend/gpopt/utils/COptTasks.cpp @@ -661,8 +661,7 @@ COptTasks::Pplstmt ( IMemoryPool *pmp, CMDAccessor *pmda, - const CDXLNode *pdxln, - const Query *pquery + const CDXLNode *pdxln ) { @@ -688,7 +687,7 @@ COptTasks::Pplstmt // translate DXL -> PlannedStmt CTranslatorDXLToPlStmt trdxltoplstmt(pmp, pmda, &ctxdxltoplstmt, gpdb::UlSegmentCountGP()); - return trdxltoplstmt.PplstmtFromDXL(pdxln, pquery); + return trdxltoplstmt.PplstmtFromDXL(pdxln); } @@ -1044,7 +1043,7 @@ COptTasks::PvOptimizeTask // translate DXL->PlStmt only when needed if (poctx->m_fGeneratePlStmt) { - poctx->m_pplstmt = (PlannedStmt *) gpdb::PvCopyObject(Pplstmt(pmp, &mda, pdxlnPlan, ptrquerytodxl->Pquery())); + poctx->m_pplstmt = (PlannedStmt *) gpdb::PvCopyObject(Pplstmt(pmp, &mda, pdxlnPlan)); } CStatisticsConfig *pstatsconf = pocconf->Pstatsconf(); @@ -1293,7 +1292,7 @@ COptTasks::PvPlstmtFromDXLTask // translate DXL -> PlannedStmt CTranslatorDXLToPlStmt trdxltoplstmt(pmp, amda.Pmda(), &ctxdxlplstmt, gpdb::UlSegmentCountGP()); - PlannedStmt *pplstmt = trdxltoplstmt.PplstmtFromDXL(pdxlnOriginal, poctx->m_pquery); + PlannedStmt *pplstmt = trdxltoplstmt.PplstmtFromDXL(pdxlnOriginal); if (optimizer_print_plan) { elog(NOTICE, "Plstmt: %s", gpdb::SzNodeToString(pplstmt)); http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/8906240f/src/include/gpopt/translate/CTranslatorDXLToPlStmt.h ---------------------------------------------------------------------- diff --git a/src/include/gpopt/translate/CTranslatorDXLToPlStmt.h b/src/include/gpopt/translate/CTranslatorDXLToPlStmt.h index dda7c9d..acc84bf 100644 --- a/src/include/gpopt/translate/CTranslatorDXLToPlStmt.h +++ b/src/include/gpopt/translate/CTranslatorDXLToPlStmt.h @@ -275,7 +275,7 @@ namespace gpdxl ); // main translation routine for DXL tree -> PlannedStmt - PlannedStmt *PplstmtFromDXL(const CDXLNode *pdxln, const Query *pquery); + PlannedStmt *PplstmtFromDXL(const CDXLNode *pdxln); // translate the join types from its DXL representation to the GPDB one static JoinType JtFromEdxljt(EdxlJoinType edxljt); http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/8906240f/src/include/gpopt/utils/COptTasks.h ---------------------------------------------------------------------- diff --git a/src/include/gpopt/utils/COptTasks.h b/src/include/gpopt/utils/COptTasks.h index abd478b..8916814 100644 --- a/src/include/gpopt/utils/COptTasks.h +++ b/src/include/gpopt/utils/COptTasks.h @@ -221,7 +221,7 @@ class COptTasks // translate a DXL tree into a planned statement static - PlannedStmt *Pplstmt(IMemoryPool *pmp, CMDAccessor *pmda, const CDXLNode *pdxln, const Query *pquery); + PlannedStmt *Pplstmt(IMemoryPool *pmp, CMDAccessor *pmda, const CDXLNode *pdxln); // load search strategy from given path static http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/8906240f/src/test/regress/expected/gp_optimizer.out ---------------------------------------------------------------------- diff --git a/src/test/regress/expected/gp_optimizer.out b/src/test/regress/expected/gp_optimizer.out index fd3a686..23b1e5a 100644 --- a/src/test/regress/expected/gp_optimizer.out +++ b/src/test/regress/expected/gp_optimizer.out @@ -8678,58 +8678,6 @@ SELECT cc, sum(nn) over() FROM v1_mpp_20470; drop view v1_mpp_20470; drop table t_mpp_20470; - --- Checking if ORCA correctly populates canSetTag in PlannedStmt for multiple statements because of rules -drop table if exists can_set_tag_target; -NOTICE: table "can_set_tag_target" does not exist, skipping -create table can_set_tag_target -( - x int, - y int, - z char -); -NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'x' 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. -drop table if exists can_set_tag_audit; -NOTICE: table "can_set_tag_audit" does not exist, skipping -create table can_set_tag_audit -( - t timestamp without time zone, - x int, - y int, - z char -); -NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 't' 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. -create rule can_set_tag_audit_update AS - ON UPDATE TO can_set_tag_target DO INSERT INTO can_set_tag_audit (t, x, y, z) - VALUES (now(), old.x, old.y, old.z); -insert into can_set_tag_target select i, i + 1, i + 2 from generate_series(1,2) as i; -create role unpriv; -NOTICE: resource queue required -- using default resource queue "pg_default" -grant all on can_set_tag_target to unpriv; -grant all on can_set_tag_audit to unpriv; -set role unpriv; -show optimizer; - optimizer ------------ - on -(1 row) - -update can_set_tag_target set y = y + 1; -select count(1) from can_set_tag_audit; - count -------- - 2 -(1 row) - -reset role; -revoke all on can_set_tag_target from unpriv; -revoke all on can_set_tag_audit from unpriv; -drop role unpriv; -drop table can_set_tag_target; -drop table can_set_tag_audit; - -- clean up drop schema orca cascade; NOTICE: drop cascades to table orca.bm_dyn_test_onepart_1_prt_part5 http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/8906240f/src/test/regress/sql/gp_optimizer.sql ---------------------------------------------------------------------- diff --git a/src/test/regress/sql/gp_optimizer.sql b/src/test/regress/sql/gp_optimizer.sql index c1ab7a1..9d02ae5 100644 --- a/src/test/regress/sql/gp_optimizer.sql +++ b/src/test/regress/sql/gp_optimizer.sql @@ -776,45 +776,5 @@ SELECT cc, sum(nn) over() FROM v1_mpp_20470; drop view v1_mpp_20470; drop table t_mpp_20470; - --- Checking if ORCA correctly populates canSetTag in PlannedStmt for multiple statements because of rules -drop table if exists can_set_tag_target; -create table can_set_tag_target -( - x int, - y int, - z char -); - -drop table if exists can_set_tag_audit; -create table can_set_tag_audit -( - t timestamp without time zone, - x int, - y int, - z char -); - -create rule can_set_tag_audit_update AS - ON UPDATE TO can_set_tag_target DO INSERT INTO can_set_tag_audit (t, x, y, z) - VALUES (now(), old.x, old.y, old.z); - -insert into can_set_tag_target select i, i + 1, i + 2 from generate_series(1,2) as i; - -create role unpriv; -grant all on can_set_tag_target to unpriv; -grant all on can_set_tag_audit to unpriv; -set role unpriv; -show optimizer; -update can_set_tag_target set y = y + 1; -select count(1) from can_set_tag_audit; -reset role; - -revoke all on can_set_tag_target from unpriv; -revoke all on can_set_tag_audit from unpriv; -drop role unpriv; -drop table can_set_tag_target; -drop table can_set_tag_audit; - -- clean up drop schema orca cascade;
