citus/src/include/distributed/extended_op_node_utils.h

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_ */