mirror of https://github.com/citusdata/citus.git
39 lines
1.0 KiB
C
39 lines
1.0 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* extended_op_node_utils.h
|
|
* General Citus planner code.
|
|
*
|
|
* Copyright (c) 2018, Citus Data, Inc.
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef EXTENDED_OP_NODE_UTILS_H_
|
|
#define EXTENDED_OP_NODE_UTILS_H_
|
|
|
|
#include "distributed/multi_logical_planner.h"
|
|
|
|
|
|
/*
|
|
* ExtendedOpNodeProperties is a helper structure that is used to
|
|
* share the common information among the worker and master extended
|
|
* op nodes.
|
|
*
|
|
* It is designed to be a read-only singleton object per extended op node
|
|
* generation and processing.
|
|
*/
|
|
typedef struct ExtendedOpNodeProperties
|
|
{
|
|
bool groupedByDisjointPartitionColumn;
|
|
bool repartitionSubquery;
|
|
bool hasNonPartitionColumnDistinctAgg;
|
|
bool pullDistinctColumns;
|
|
bool pushDownWindowFunctions;
|
|
} ExtendedOpNodeProperties;
|
|
|
|
|
|
extern ExtendedOpNodeProperties BuildExtendedOpNodeProperties(MultiExtendedOp *
|
|
extendedOpNode);
|
|
|
|
|
|
#endif /* EXTENDED_OP_NODE_UTILS_H_ */
|