mirror of https://github.com/citusdata/citus.git
Fixes review notes
parent
86817ff094
commit
b51183b2f6
|
@ -110,11 +110,12 @@ typedef struct NonMainDbDistributedStatementInfo
|
||||||
bool explicitlyMarkAsDistributed;
|
bool explicitlyMarkAsDistributed;
|
||||||
} NonMainDbDistributedStatementInfo;
|
} NonMainDbDistributedStatementInfo;
|
||||||
|
|
||||||
typedef struct ObjectInfo
|
typedef struct MarkObjectDistributedParams
|
||||||
{
|
{
|
||||||
char *name;
|
char *name;
|
||||||
Oid id;
|
Oid id;
|
||||||
} ObjectInfo;
|
uint16 catalogRelId;
|
||||||
|
} MarkObjectDistributedParams;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NonMainDbSupportedStatements is an array of statements that are supported
|
* NonMainDbSupportedStatements is an array of statements that are supported
|
||||||
|
@ -158,7 +159,7 @@ static void RunPostprocessMainDBCommand(Node *parsetree);
|
||||||
static bool IsStatementSupportedFromNonMainDb(Node *parsetree);
|
static bool IsStatementSupportedFromNonMainDb(Node *parsetree);
|
||||||
static bool StatementRequiresMarkDistributedFromNonMainDb(Node *parsetree);
|
static bool StatementRequiresMarkDistributedFromNonMainDb(Node *parsetree);
|
||||||
static void MarkObjectDistributedOnNonMainDb(Node *parsetree);
|
static void MarkObjectDistributedOnNonMainDb(Node *parsetree);
|
||||||
static ObjectInfo GetObjectInfo(Node *parsetree);
|
static MarkObjectDistributedParams GetMarkObjectDistributedParams(Node *parsetree);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ProcessUtilityParseTree is a convenience method to create a PlannedStmt out of
|
* ProcessUtilityParseTree is a convenience method to create a PlannedStmt out of
|
||||||
|
@ -1638,7 +1639,6 @@ DropSchemaOrDBInProgress(void)
|
||||||
static void
|
static void
|
||||||
RunPreprocessMainDBCommand(Node *parsetree)
|
RunPreprocessMainDBCommand(Node *parsetree)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!IsStatementSupportedFromNonMainDb(parsetree))
|
if (!IsStatementSupportedFromNonMainDb(parsetree))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
@ -1724,29 +1724,31 @@ StatementRequiresMarkDistributedFromNonMainDb(Node *parsetree)
|
||||||
static void
|
static void
|
||||||
MarkObjectDistributedOnNonMainDb(Node *parsetree)
|
MarkObjectDistributedOnNonMainDb(Node *parsetree)
|
||||||
{
|
{
|
||||||
ObjectInfo objectInfo = GetObjectInfo(parsetree);
|
MarkObjectDistributedParams markObjectDistributedParams =
|
||||||
|
GetMarkObjectDistributedParams(parsetree);
|
||||||
StringInfo mainDBQuery = makeStringInfo();
|
StringInfo mainDBQuery = makeStringInfo();
|
||||||
appendStringInfo(mainDBQuery,
|
appendStringInfo(mainDBQuery,
|
||||||
MARK_OBJECT_DISTRIBUTED,
|
MARK_OBJECT_DISTRIBUTED,
|
||||||
AuthIdRelationId,
|
markObjectDistributedParams.catalogRelId,
|
||||||
quote_literal_cstr(objectInfo.name),
|
quote_literal_cstr(markObjectDistributedParams.name),
|
||||||
objectInfo.id,
|
markObjectDistributedParams.id,
|
||||||
quote_literal_cstr(CurrentUserName()));
|
quote_literal_cstr(CurrentUserName()));
|
||||||
RunCitusMainDBQuery(mainDBQuery->data);
|
RunCitusMainDBQuery(mainDBQuery->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GetObjectInfo returns ObjectInfo for the target object of given parsetree.
|
* GetMarkObjectDistributedParams returns ObjectInfo for the target object of given parsetree.
|
||||||
*/
|
*/
|
||||||
static ObjectInfo
|
static MarkObjectDistributedParams
|
||||||
GetObjectInfo(Node *parsetree)
|
GetMarkObjectDistributedParams(Node *parsetree)
|
||||||
{
|
{
|
||||||
if (IsA(parsetree, CreateRoleStmt))
|
if (IsA(parsetree, CreateRoleStmt))
|
||||||
{
|
{
|
||||||
CreateRoleStmt *stmt = castNode(CreateRoleStmt, parsetree);
|
CreateRoleStmt *stmt = castNode(CreateRoleStmt, parsetree);
|
||||||
ObjectInfo info = {
|
MarkObjectDistributedParams info = {
|
||||||
.name = stmt->role,
|
.name = stmt->role,
|
||||||
|
.catalogRelId = AuthIdRelationId,
|
||||||
.id = get_role_oid(stmt->role, false)
|
.id = get_role_oid(stmt->role, false)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue