Qualify CREATE AGGREGATE stmts in Preprocess (#5834)

pull/5835/head
Ahmet Gedemenli 2022-03-21 13:55:09 +03:00 committed by GitHub
parent c18c63a930
commit 46c6630328
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 3 deletions

View File

@ -22,6 +22,20 @@
#include "utils/lsyscache.h" #include "utils/lsyscache.h"
/*
* PreprocessDefineAggregateStmt only qualifies the node with schema name.
* We will handle the rest in the Postprocess phase.
*/
List *
PreprocessDefineAggregateStmt(Node *node, const char *queryString,
ProcessUtilityContext processUtilityContext)
{
QualifyTreeNode((Node *) node);
return NIL;
}
/* /*
* PostprocessDefineAggregateStmt actually creates the plan we need to execute for * PostprocessDefineAggregateStmt actually creates the plan we need to execute for
* aggregate propagation. * aggregate propagation.
@ -37,8 +51,6 @@
List * List *
PostprocessDefineAggregateStmt(Node *node, const char *queryString) PostprocessDefineAggregateStmt(Node *node, const char *queryString)
{ {
QualifyTreeNode((Node *) node);
DefineStmt *stmt = castNode(DefineStmt, node); DefineStmt *stmt = castNode(DefineStmt, node);
if (!ShouldPropagate()) if (!ShouldPropagate())

View File

@ -44,7 +44,7 @@ static DistributeObjectOps Aggregate_AlterOwner = {
static DistributeObjectOps Aggregate_Define = { static DistributeObjectOps Aggregate_Define = {
.deparse = NULL, .deparse = NULL,
.qualify = QualifyDefineAggregateStmt, .qualify = QualifyDefineAggregateStmt,
.preprocess = NULL, .preprocess = PreprocessDefineAggregateStmt,
.postprocess = PostprocessDefineAggregateStmt, .postprocess = PostprocessDefineAggregateStmt,
.address = DefineAggregateStmtObjectAddress, .address = DefineAggregateStmtObjectAddress,
.markDistributed = true, .markDistributed = true,

View File

@ -123,6 +123,8 @@ typedef enum SearchForeignKeyColumnFlags
/* aggregate.c - forward declarations */ /* aggregate.c - forward declarations */
extern List * PreprocessDefineAggregateStmt(Node *node, const char *queryString,
ProcessUtilityContext processUtilityContext);
extern List * PostprocessDefineAggregateStmt(Node *node, const char *queryString); extern List * PostprocessDefineAggregateStmt(Node *node, const char *queryString);
/* cluster.c - forward declarations */ /* cluster.c - forward declarations */