You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by cj...@apache.org on 2016/06/29 01:21:11 UTC
[53/80] [abbrv] incubator-hawq git commit: HAWQ-764. Remove
CTranslatorPlStmtToDXL Deadcode [#119102697]
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/752a98cd/src/backend/gpopt/utils/COptTasks.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/utils/COptTasks.cpp b/src/backend/gpopt/utils/COptTasks.cpp
index 6ff6556..4d6e2f7 100644
--- a/src/backend/gpopt/utils/COptTasks.cpp
+++ b/src/backend/gpopt/utils/COptTasks.cpp
@@ -41,7 +41,6 @@
#include "gpopt/translate/CTranslatorExprToDXL.h"
#include "gpopt/translate/CTranslatorUtils.h"
#include "gpopt/translate/CTranslatorQueryToDXL.h"
-#include "gpopt/translate/CTranslatorPlStmtToDXL.h"
#include "gpopt/translate/CTranslatorDXLToPlStmt.h"
#include "gpopt/translate/CTranslatorDXLToQuery.h"
#include "gpopt/translate/CContextDXLToPlStmt.h"
@@ -1234,64 +1233,6 @@ COptTasks::PvOptimizeMinidumpTask
return NULL;
}
-
-//---------------------------------------------------------------------------
-// @function:
-// COptTasks::PvDXLFromPlstmtTask
-//
-// @doc:
-// task that does the translation from planned stmt to XML
-//
-//---------------------------------------------------------------------------
-void*
-COptTasks::PvDXLFromPlstmtTask
- (
- void *pv
- )
-{
- GPOS_ASSERT(NULL != pv);
-
- SOptContext *poctx = SOptContext::PoptctxtConvert(pv);
-
- GPOS_ASSERT(NULL != poctx->m_pplstmt);
- GPOS_ASSERT(NULL == poctx->m_szPlanDXL);
-
- AUTO_MEM_POOL(amp);
- IMemoryPool *pmp = amp.Pmp();
-
- CIdGenerator idgtor(1);
-
- // relcache MD provider
- CMDProviderRelcache *pmdpr = GPOS_NEW(pmp) CMDProviderRelcache(pmp);
-
- {
- CAutoMDAccessor amda(pmp, pmdpr, sysidDefault);
-
- CMappingParamIdScalarId mapps(pmp);
-
- CTranslatorPlStmtToDXL tplstmtdxl(pmp, amda.Pmda(), &idgtor, (PlannedStmt*) poctx->m_pplstmt, &mapps);
- CDXLNode *pdxlnPlan = tplstmtdxl.PdxlnFromPlstmt();
-
- GPOS_ASSERT(NULL != pdxlnPlan);
-
- CWStringDynamic str(pmp);
- COstreamString oss(&str);
-
- // get chosen plan number
- ULLONG ullPlanId = (ULLONG) optimizer_plan_id;
- CWStringDynamic *pstrDXL = CDXLUtils::PstrSerializePlan(pmp, pdxlnPlan, ullPlanId, 0 /*ullPlanSpaceSize*/, true /*fSerializeHeaderFooter*/, true /*fIndent*/);
-
- poctx->m_szPlanDXL = SzFromWsz(pstrDXL->Wsz());
-
- // cleanup
- GPOS_DELETE(pstrDXL);
- pdxlnPlan->Release();
- }
-
- return NULL;
-}
-
-
//---------------------------------------------------------------------------
// @function:
// COptTasks::PvPlstmtFromDXLTask
@@ -1773,34 +1714,6 @@ COptTasks::SzDXL
//---------------------------------------------------------------------------
// @function:
-// COptTasks::SzDXL
-//
-// @doc:
-// serializes planned stmt to DXL
-//
-//---------------------------------------------------------------------------
-char *
-COptTasks::SzDXL
- (
- PlannedStmt *pplstmt
- )
-{
- Assert(pplstmt);
-
- SOptContext octx;
- octx.m_pplstmt = pplstmt;
- octx.m_fSerializePlanDXL = true;
- Execute(&PvDXLFromPlstmtTask, &octx);
-
- // clean up context
- octx.Free(octx.epinPlStmt, octx.epinPlanDXL);
-
- return octx.m_szPlanDXL;
-}
-
-
-//---------------------------------------------------------------------------
-// @function:
// COptTasks::PqueryFromXML
//
// @doc:
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/752a98cd/src/backend/gpopt/utils/funcs.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/utils/funcs.cpp b/src/backend/gpopt/utils/funcs.cpp
index c36a7e3..dbecb60 100644
--- a/src/backend/gpopt/utils/funcs.cpp
+++ b/src/backend/gpopt/utils/funcs.cpp
@@ -64,8 +64,6 @@ PG_FUNCTION_INFO_V1(DumpPlan);
PG_FUNCTION_INFO_V1(RestorePlan);
PG_FUNCTION_INFO_V1(DumpPlanToFile);
PG_FUNCTION_INFO_V1(RestorePlanFromFile);
-PG_FUNCTION_INFO_V1(DumpPlanDXL);
-PG_FUNCTION_INFO_V1(DumpPlanToDXLFile);
PG_FUNCTION_INFO_V1(RestorePlanDXL);
PG_FUNCTION_INFO_V1(RestorePlanFromDXLFile);
PG_FUNCTION_INFO_V1(DumpMDObjDXL);
@@ -381,37 +379,6 @@ DumpQueryToFile(PG_FUNCTION_ARGS)
//---------------------------------------------------------------------------
// @function:
-// DumpPlanDXL
-//
-// @doc:
-// Plan a query and dump out plan as xml text.
-// Input: sql query text
-// Output: plan in dxl
-//
-//---------------------------------------------------------------------------
-
-extern "C" {
-Datum
-DumpPlanDXL(PG_FUNCTION_ARGS)
-{
- char *szSqlText = textToString(PG_GETARG_TEXT_P(0));
-
- PlannedStmt *pplstmt = planQuery(szSqlText);
-
- Assert(pplstmt);
-
- char *szXmlString = COptTasks::SzDXL(pplstmt);
- if (NULL == szXmlString)
- {
- elog(ERROR, "Error translating plan to DXL");
- }
-
- PG_RETURN_TEXT_P(stringToText(szXmlString));
-}
-}
-
-//---------------------------------------------------------------------------
-// @function:
// DumpQueryDXL
//
// @doc:
@@ -760,39 +727,6 @@ RestorePlanFromDXLFile(PG_FUNCTION_ARGS)
//---------------------------------------------------------------------------
// @function:
-// DumpPlanToDXLFile
-//
-// @doc:
-//
-//
-//---------------------------------------------------------------------------
-
-extern "C" {
-Datum
-DumpPlanToDXLFile(PG_FUNCTION_ARGS)
-{
- char *szSql = textToString(PG_GETARG_TEXT_P(0));
- char *szFilename = textToString(PG_GETARG_TEXT_P(1));
-
- PlannedStmt *pplstmt = planQuery(szSql);
- Assert(pplstmt);
-
- char *szXmlString = COptTasks::SzDXL(pplstmt);
-
- int iLen = (int) gpos::clib::UlStrLen(szXmlString);
-
- CFileWriter fw;
- fw.Open(szFilename, S_IRUSR | S_IWUSR);
- fw.Write(reinterpret_cast<const BYTE*>(szXmlString), iLen + 1);
- fw.Close();
-
- PG_RETURN_INT32(iLen);
-
-}
-}
-
-//---------------------------------------------------------------------------
-// @function:
// DumpMDObjDXL
//
// @doc:
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/752a98cd/src/backend/gpopt/utils/load.sql
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/utils/load.sql b/src/backend/gpopt/utils/load.sql
index 90cf083..bfe7d67 100644
--- a/src/backend/gpopt/utils/load.sql
+++ b/src/backend/gpopt/utils/load.sql
@@ -14,12 +14,6 @@ language c strict;
create function gpoptutils.RestorePlanFromFile(text) returns text as '/Users/solimm1/greenplum-db-devel/lib/libgpoptudf.dylib', 'RestorePlanFromFile'
language c strict;
-create function gpoptutils.DumpPlanDXL(text) returns text as '/Users/solimm1/greenplum-db-devel/lib/libgpoptudf.dylib', 'DumpPlanDXL'
-language c strict;
-
-create function gpoptutils.DumpPlanToDXLFile(text, text) returns int as '/Users/solimm1/greenplum-db-devel/lib/libgpoptudf.dylib', 'DumpPlanToDXLFile'
-language c strict;
-
create function gpoptutils.RestorePlanDXL(text) returns text as '/Users/solimm1/greenplum-db-devel/lib/libgpoptudf.dylib', 'RestorePlanDXL' language c strict;
create function gpoptutils.RestorePlanFromDXLFile(text) returns text as '/Users/solimm1/greenplum-db-devel/lib/libgpoptudf.dylib', 'RestorePlanFromDXLFile' language c strict;
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/752a98cd/src/include/gpopt/translate/CTranslatorPlStmtToDXL.h
----------------------------------------------------------------------
diff --git a/src/include/gpopt/translate/CTranslatorPlStmtToDXL.h b/src/include/gpopt/translate/CTranslatorPlStmtToDXL.h
deleted file mode 100644
index 09b16d6..0000000
--- a/src/include/gpopt/translate/CTranslatorPlStmtToDXL.h
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-//---------------------------------------------------------------------------
-// @filename:
-// CTranslatorPlStmtToDXL.h
-//
-// @doc:
-// Class providing methods for translating GPDB's PlannedStmt into DXL Tree
-//
-// @test:
-//
-//
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CTranslatorPlStmtToDXL_H
-#define GPDXL_CTranslatorPlStmtToDXL_H
-
-#include "gpopt/translate/CTranslatorScalarToDXL.h"
-#include "gpopt/translate/CMappingParamIdScalarId.h"
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/operators/dxlops.h"
-#include "naucrates/dxl/CIdGenerator.h"
-
-#include "naucrates/md/IMDIndex.h"
-
-
-// fwd declarations
-namespace gpopt
-{
- class CMDAccessor;
-}
-
-struct Const;
-struct List;
-struct PlannedStmt;
-struct Scan;
-struct HashJoin;
-struct Hash;
-struct RangeTblEntry;
-struct NestLoop;
-struct MergeJoin;
-struct Motion;
-struct Limit;
-struct Agg;
-struct Append;
-struct Sort;
-struct SubqueryScan;
-struct Result;
-struct Unique;
-struct Material;
-struct ShareInputScan;
-struct IndexScan;
-
-typedef OpExpr DistintExpr;
-typedef Scan SeqScan;
-
-namespace gpdxl
-{
- using namespace gpopt;
-
- class CDXLNode;
- class CMappingVarColId;
-
- //---------------------------------------------------------------------------
- // @class:
- // CTranslatorPlStmtToDXL
- //
- // @doc:
- // Class providing methods for translating GPDB's PlannedStmt into DXL Tree.
- //
- //---------------------------------------------------------------------------
- class CTranslatorPlStmtToDXL
- {
- // shorthand for functions for translating GPDB expressions into DXL nodes
- typedef CDXLNode * (CTranslatorPlStmtToDXL::*PfPdxln)(const Plan *pplan);
-
- private:
-
- // pair of node tag and translator function
- struct STranslatorElem
- {
- NodeTag ent;
- PfPdxln pf;
- };
-
- // memory pool
- IMemoryPool *m_pmp;
-
- // meta data accessor
- CMDAccessor *m_pmda;
-
- // counter for generating unique column ids
- CIdGenerator *m_pidgtor;
-
- // planned stmt being translated
- PlannedStmt *m_pplstmt;
-
- // translator for scalar expressions
- CTranslatorScalarToDXL *m_psctranslator;
-
- // project lists of already translated shared scans indexed by the shared scan id
- HMUlPdxln *m_phmuldxlnSharedScanProjLists;
-
- // mapping from param id -> scalar id in subplans
- CMappingParamIdScalarId *m_pparammapping;
-
- // private copy ctor
- CTranslatorPlStmtToDXL(const CTranslatorPlStmtToDXL&);
-
- // create DXL table scan node from a scan plan node
- CDXLNode *PdxlnTblScanFromPlan(const Plan *pplan);
-
- // create DXL physical TVF node from a FunctionScan plan node
- CDXLNode *PdxlnFunctionScanFromPlan(const Plan *pplan);
-
- // create DXL physical result node from a folded function expression
- CDXLNode *PdxlnResultFromFoldedFuncExpr
- (
- const Expr *pexpr,
- CWStringDynamic *pstrAlias,
- CDXLPhysicalProperties *pdxlprop,
- CMappingVarColId *pmapvarcolid
- );
-
- // create DXL index scan node from an index plan node
- CDXLNode *PdxlnIndexScanFromPlan(const Plan *pplan);
-
- // create a DXL index (only) scan node from a GPDB index (only) scan node.
- CDXLNode *PdxlnIndexScanFromGPDBIndexScan(const IndexScan *pindexscan, BOOL fIndexOnlyScan);
-
- // create DXL hash join node from a hash join plan node
- CDXLNode *PdxlnHashjoinFromPlan(const Plan *pplan);
-
- // create DXL hash node from a hash plan node
- CDXLNode *PdxlnHashFromPlan(const Plan *pplan);
-
- // create DXL nested loop join node from a nested loop join plan node
- CDXLNode *PdxlnNLJoinFromPlan(const Plan *pplan);
-
- // create DXL merge join node from a merge join plan node
- CDXLNode *PdxlnMergeJoinFromPlan(const Plan *pplan);
-
- // create DXL result node from a result plan node
- CDXLNode *PdxlnResultFromPlan(const Plan *pplan);
-
- // create DXL Limit node from a Limit plan node
- CDXLNode *PdxlnLimitFromPlan(const Plan *pplan);
-
- // create DXL redistribute motion node from a motion plan node
- CDXLNode *PdxlnMotionFromPlan(const Plan *pplan);
-
- // create DXL aggregate node from an Agg plan node
- CDXLNode *PdxlnAggFromPlan(const Plan *pplan);
-
- // create DXL window node from an window plan node
- CDXLNode *PdxlnWindowFromPlan(const Plan *pplan);
-
- // create DXL aggregate node from a Unique plan node
- CDXLNode *PdxlnUniqueFromPlan(const Plan *pplan);
-
- // create DXL sort node from a Sort plan node
- CDXLNode *PdxlnSortFromPlan(const Plan *pplan);
-
- CDXLNode *PdxlnSubqueryScanFromPlan(const Plan *pplan);
-
- // create DXL append node from an Append plan node
- CDXLNode *PdxlnAppendFromPlan(const Plan *pplan);
-
- // create DXL shared scan node from a ShareInputScan plan node
- CDXLNode *PdxlnSharedScanFromPlan(const Plan *pplan);
-
- // create DXL materialize node from a Material plan node
- CDXLNode *PdxlnMaterializeFromPlan(const Plan *pplan);
-
- // create DXL sequence node from a Sequence plan node
- CDXLNode *PdxlnSequence(const Plan *pplan);
-
- // create DXL dynamic table scan node from the corresponding plan node
- CDXLNode *PdxlnDynamicTableScan(const Plan *pplan);
-
- // create a DXL table descriptor from a range table entry
- CDXLTableDescr *Pdxltabdesc(const RangeTblEntry *prte, const Scan *psscan);
-
- // create a DXL projection list of a scan node from GPDB target list
- CDXLNode *PdxlnPrLFromTL
- (
- List *plTargetList,
- CMappingVarColId *pmapvarcolid
- );
-
- // extract cost estimates from Plan structures and store them in a
- // DXL properties container
- CDXLPhysicalProperties *PdxlpropFromPlan(const Plan *pplan);
-
- // translate the hash expression list for a redistribute motion node into a DXL node
- CDXLNode *PdxlnHashExprLFromList(List *, List *, const CDXLNode *);
-
- // translate the sorting column list for a sort or motion node into a DXL node
- CDXLNode *PdxlnSortingColListFromPlan(AttrNumber *patnoSortColIds, OID *poidSortOpIds, ULONG ulNumCols, const CDXLNode *pdxlnPrL);
-
- // translate target and qual lists into DXL project list and filter,
- // respectively
- void TranslateTListAndQual
- (
- List *plTargetList,
- List *plQual,
- ULONG ulRTEIndex,
- const CDXLTableDescr *pdxltabdesc,
- const IMDIndex *pmdindex,
- const CDXLNode *pdxlnPrLLeft,
- const CDXLNode *pdxlnPrLRight,
- CDXLNode **ppdxlnPrLOut,
- CDXLNode **ppdxlnFilterOut
- );
-
- // populate the input and output segments id lists from a Motion node
- void TranslateMotionSegmentInfo
- (
- const Motion *pmotion,
- DrgPi *pdrgpiInputSegIds,
- DrgPi *pdrgpiOutputSegIds
- );
-
- // creates a DXL shared scan spool info structure from a GPDB shared scan node
- CDXLSpoolInfo *PspoolinfoFromSharedScan(const ShareInputScan *pshscan);
-
- public:
- // ctor/dtor
- CTranslatorPlStmtToDXL
- (
- IMemoryPool *pmp,
- CMDAccessor *pmda,
- CIdGenerator *pulIdGenerator,
- PlannedStmt *pplstmt,
- CMappingParamIdScalarId *pmapps
- );
-
- ~CTranslatorPlStmtToDXL();
-
- // main translation routine for PlannedStmt -> DXL tree
- CDXLNode *PdxlnFromPlstmt();
-
- // translates a PlannedStmt node into a DXL tree
- CDXLNode *PdxlnFromPlan(const Plan *pplan);
-
- };
-}
-
-#endif // !GPDXL_CTranslatorPlStmtToDXL_H
-
-// EOF
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/752a98cd/src/include/gpopt/utils/COptTasks.h
----------------------------------------------------------------------
diff --git a/src/include/gpopt/utils/COptTasks.h b/src/include/gpopt/utils/COptTasks.h
index cad5e29..a62155f 100644
--- a/src/include/gpopt/utils/COptTasks.h
+++ b/src/include/gpopt/utils/COptTasks.h
@@ -179,10 +179,6 @@ class COptTasks
static
void Execute ( void *(*pfunc) (void *), void *pfuncArg);
- // task that does the translation from planned stmt to XML
- static
- void* PvDXLFromPlstmtTask(void *pv);
-
// task that does the translation from xml to dxl to pplstmt
static
void* PvPlstmtFromDXLTask(void *pv);
@@ -285,10 +281,6 @@ class COptTasks
static
char *SzDXL(Query *pquery);
- // convert planned statement to DXL to xml string.
- static
- char *SzDXL(PlannedStmt *pplstmt);
-
// convert xml string to DXL and to Query
static
Query *PqueryFromXML(char *szXmlString);