【资源池化多机并行bugfix】
1.修复spqplugin&dolphin编译冲突 2.解决orca memory leak 3.Q8数据不一致问题解决
This commit is contained in:
committed by
quemingjian (C)
parent
ea7ff3627b
commit
656e011efd
@ -39,9 +39,6 @@
|
||||
#define SRC_INCLUDE_KNL_KNL_SESSION_ATTR_MPP_H_
|
||||
|
||||
#include "knl/knl_guc/knl_guc_common.h"
|
||||
#ifdef PGXC
|
||||
#include "pgxc/nodemgr.h"
|
||||
#endif
|
||||
|
||||
struct NodeDefinition;
|
||||
|
||||
|
||||
@ -2667,6 +2667,7 @@ typedef struct knl_u_mot_context {
|
||||
namespace spqdxl {
|
||||
class CDXLMemoryManager;
|
||||
class CDXLTokens;
|
||||
class CParseHandlerFactory;
|
||||
}
|
||||
|
||||
namespace spqos {
|
||||
@ -2674,6 +2675,8 @@ namespace spqos {
|
||||
class CMemoryPoolManager;
|
||||
class CWorkerPoolManager;
|
||||
template <class T, class K>class CCache;
|
||||
class CCacheFactory;
|
||||
class CMessageRepository;
|
||||
}
|
||||
|
||||
namespace spqmd {
|
||||
@ -2682,6 +2685,7 @@ namespace spqmd {
|
||||
|
||||
namespace spqopt {
|
||||
class CMDKey;
|
||||
class CXformFactory;
|
||||
}
|
||||
|
||||
|
||||
@ -2694,6 +2698,7 @@ typedef struct knl_u_spq_context {
|
||||
uintptr_t m_ulpShutdownDXL;
|
||||
void *m_pstrmap;
|
||||
void *m_pxmlszmap;
|
||||
void *m_token_parse_handler_func_map;
|
||||
spqos::CMemoryPool* m_mp;
|
||||
spqdxl::CDXLMemoryManager* m_dxl_memory_manager;
|
||||
/* memory pool manager */
|
||||
@ -2702,12 +2707,19 @@ typedef struct knl_u_spq_context {
|
||||
spqos::CWorkerPoolManager* m_worker_pool_manager;
|
||||
/* mdcache */
|
||||
spqos::CCache<spqmd::IMDCacheObject *, spqopt::CMDKey *> *m_pcache;
|
||||
/* cache factory */
|
||||
spqos::CCacheFactory* m_factory;
|
||||
spqos::CMessageRepository *m_repository;
|
||||
/* CXformFactory */
|
||||
spqos::CMemoryPool* m_xform_mp;
|
||||
spqopt::CXformFactory* m_pxff;
|
||||
uint64 m_ullCacheQuota;
|
||||
int spq_node_all_configs_size;
|
||||
int spq_node_configs_size;
|
||||
MemoryContext spq_worker_context;
|
||||
MemoryContext s_tupSerMemCtxt;
|
||||
int32 spq_max_tuple_chunk_size;
|
||||
bool spq_opt_initialized;
|
||||
} knl_u_spq_context;
|
||||
#endif
|
||||
|
||||
|
||||
@ -217,4 +217,9 @@ extern bool queryIsReadOnly(Query* query);
|
||||
|
||||
typedef PlannedStmt* (*plannerFunc)(Query* parse, int cursorOptions, ParamListInfo boundParams);
|
||||
|
||||
#ifdef USE_SPQ
|
||||
extern List* spq_get_distributekey_from_tlist(
|
||||
PlannerInfo* root, List* tlist, List* groupcls, double rows, double* result_multiple, void* skew_info = NULL);
|
||||
#endif
|
||||
|
||||
#endif /* PLANNER_H */
|
||||
|
||||
@ -83,4 +83,7 @@ extern Node* coerce_to_target_charset(Node* expr, int target_charset, Oid target
|
||||
extern Node *transferConstToAconst(Node *node);
|
||||
|
||||
extern Const* setValueToConstExpr(SetVariableExpr* set);
|
||||
#ifdef USE_SPQ
|
||||
extern bool get_cast_func(Oid oidSrc, Oid oidDest, bool *is_binary_coercible, Oid *oidCastFunc, CoercionPathType *pathtype);
|
||||
#endif
|
||||
#endif /* PARSE_COERCE_H */
|
||||
|
||||
@ -249,4 +249,9 @@ extern void ConstructSliceBoundary(ExecNodes* en);
|
||||
|
||||
extern Expr* pgxc_find_distcol_expr(void* query, Index varno, AttrNumber attrNum, Node* quals);
|
||||
extern bool IsFunctionShippable(Oid foid);
|
||||
|
||||
#ifdef USE_SPQ
|
||||
extern bool IsSpqTypeDistributable(Oid colType);
|
||||
#endif
|
||||
|
||||
#endif /* LOCATOR_H */
|
||||
|
||||
@ -19,9 +19,6 @@
|
||||
#include "catalog/pg_workload_group.h"
|
||||
#include "catalog/pg_app_workloadgroup_mapping.h"
|
||||
#include "catalog/pgxc_node.h"
|
||||
#ifdef USE_SPQ
|
||||
#include "parser/parse_coerce.h"
|
||||
#endif
|
||||
|
||||
/* Result list element for get_op_btree_interpretation */
|
||||
typedef struct OpBtreeInterpretation {
|
||||
@ -225,7 +222,7 @@ extern char get_typecategory(Oid typid);
|
||||
|
||||
#ifdef USE_SPQ
|
||||
/* comparison types */
|
||||
typedef enum CmpType {
|
||||
typedef enum SPQCmpType {
|
||||
CmptEq, // equality
|
||||
CmptNEq, // inequality
|
||||
CmptLT, // less than
|
||||
@ -233,7 +230,7 @@ typedef enum CmpType {
|
||||
CmptGT, // greater than
|
||||
CmptGEq, // greater or equal to
|
||||
CmptOther // other operator
|
||||
} CmpType;
|
||||
} SPQCmpType;
|
||||
|
||||
#define ATTSTATSSLOT_VALUES 0x01
|
||||
#define ATTSTATSSLOT_NUMBERS 0x02
|
||||
@ -268,7 +265,6 @@ extern bool index_exists(Oid oid);
|
||||
extern bool aggregate_exists(Oid oid);
|
||||
extern Oid get_aggregate(const char *aggname, Oid oidType);
|
||||
extern bool function_exists(Oid oid);
|
||||
extern bool get_cast_func(Oid oidSrc, Oid oidDest, bool *is_binary_coercible, Oid *oidCastFunc, CoercionPathType *pathtype);
|
||||
extern bool check_constraint_exists(Oid oidCheckconstraint);
|
||||
extern char *get_check_constraint_name(Oid oidCheckconstraint);
|
||||
extern Oid get_check_constraint_relid(Oid oidCheckconstraint);
|
||||
@ -277,8 +273,8 @@ extern Node *get_check_constraint_expr_tree(Oid oidCheckconstraint);
|
||||
extern bool operator_exists(Oid oid);
|
||||
extern bool relation_exists(Oid oid);
|
||||
extern bool type_exists(Oid oid);
|
||||
extern CmpType get_comparison_type(Oid oidOp);
|
||||
extern Oid get_comparison_operator(Oid oidLeft, Oid oidRight, CmpType cmpt);
|
||||
extern SPQCmpType get_comparison_type(Oid oidOp);
|
||||
extern Oid get_comparison_operator(Oid oidLeft, Oid oidRight, SPQCmpType cmpt);
|
||||
extern bool has_subclass_slow(Oid relationId);
|
||||
extern List *get_operator_opfamilies(Oid opno);
|
||||
extern List *get_index_opfamilies(Oid oidIndex);
|
||||
|
||||
Reference in New Issue
Block a user