extract rename DistributeObjectOps

refactor/dist-ops-linker
Nils Dijk 2020-02-07 01:45:29 +01:00
parent 4ca33dde64
commit 7fe71eb124
No known key found for this signature in database
GPG Key ID: CA1177EF9434F241
3 changed files with 18 additions and 17 deletions

View File

@ -23,21 +23,6 @@ static DistributeObjectOps NoDistributeOps = {
.address = NULL, .address = NULL,
}; };
static DistributeObjectOps Any_Rename = {
.deparse = NULL,
.qualify = NULL,
.preprocess = PreprocessRenameStmt,
.postprocess = NULL,
.address = NULL,
};
REGISTER_DISTRIBUTED_OPERATION_NESTED(RenameStmt, renameType, OBJECT_TABLE, Any_Rename);
REGISTER_DISTRIBUTED_OPERATION_NESTED(RenameStmt, renameType, OBJECT_FOREIGN_TABLE,
Any_Rename);
REGISTER_DISTRIBUTED_OPERATION_NESTED(RenameStmt, renameType, OBJECT_COLUMN, Any_Rename);
REGISTER_DISTRIBUTED_OPERATION_NESTED(RenameStmt, renameType, OBJECT_TABCONSTRAINT,
Any_Rename);
REGISTER_DISTRIBUTED_OPERATION_NESTED(RenameStmt, renameType, OBJECT_INDEX, Any_Rename);
/* TODO this is a 2 level nested statement which we do not currently support */ /* TODO this is a 2 level nested statement which we do not currently support */
static DistributeObjectOps Attribute_Rename = { static DistributeObjectOps Attribute_Rename = {
.deparse = DeparseRenameAttributeStmt, .deparse = DeparseRenameAttributeStmt,

View File

@ -18,6 +18,23 @@
#include "nodes/parsenodes.h" #include "nodes/parsenodes.h"
/* DistributeObjectOps */
static List * PreprocessRenameStmt(Node *node, const char *renameCommand);
static DistributeObjectOps Any_Rename = {
.deparse = NULL,
.qualify = NULL,
.preprocess = PreprocessRenameStmt,
.postprocess = NULL,
.address = NULL,
};
REGISTER_DISTRIBUTED_OPERATION_NESTED(RenameStmt, renameType, OBJECT_TABLE, Any_Rename);
REGISTER_DISTRIBUTED_OPERATION_NESTED(RenameStmt, renameType, OBJECT_FOREIGN_TABLE,
Any_Rename);
REGISTER_DISTRIBUTED_OPERATION_NESTED(RenameStmt, renameType, OBJECT_COLUMN, Any_Rename);
REGISTER_DISTRIBUTED_OPERATION_NESTED(RenameStmt, renameType, OBJECT_TABCONSTRAINT,
Any_Rename);
REGISTER_DISTRIBUTED_OPERATION_NESTED(RenameStmt, renameType, OBJECT_INDEX, Any_Rename);
/* /*
* PreprocessRenameStmt first determines whether a given rename statement involves * PreprocessRenameStmt first determines whether a given rename statement involves
* a distributed table. If so (and if it is supported, i.e. renames a column), * a distributed table. If so (and if it is supported, i.e. renames a column),
@ -25,7 +42,7 @@
* portion of DDL execution before returning that DDLJob in a List. If no dis- * portion of DDL execution before returning that DDLJob in a List. If no dis-
* tributed table is involved, this function returns NIL. * tributed table is involved, this function returns NIL.
*/ */
List * static List *
PreprocessRenameStmt(Node *node, const char *renameCommand) PreprocessRenameStmt(Node *node, const char *renameCommand)
{ {
RenameStmt *renameStmt = castNode(RenameStmt, node); RenameStmt *renameStmt = castNode(RenameStmt, node);

View File

@ -188,7 +188,6 @@ extern void DropPolicyEventExtendNames(DropStmt *stmt, const char *schemaName, u
/* rename.c - forward declarations*/ /* rename.c - forward declarations*/
extern List * PreprocessRenameStmt(Node *renameStmt, const char *renameCommand);
extern void ErrorIfUnsupportedRenameStmt(RenameStmt *renameStmt); extern void ErrorIfUnsupportedRenameStmt(RenameStmt *renameStmt);
extern List * PreprocessRenameAttributeStmt(Node *stmt, const char *queryString); extern List * PreprocessRenameAttributeStmt(Node *stmt, const char *queryString);