mirror of https://github.com/citusdata/citus.git
Refactors Object Type check code
parent
20caccb408
commit
f7dce78534
|
@ -154,6 +154,7 @@ static void RunPreprocessMainDBCommand(Node *parsetree, const char *queryString)
|
|||
static void RunPostprocessMainDBCommand(Node *parsetree);
|
||||
static bool IsStatementSupportedIn2PC(Node *parsetree);
|
||||
static bool DoesStatementRequireMarkDistributedFor2PC(Node *parsetree);
|
||||
static bool IsObjectTypeSupported(Node *parsetree, TwoPcStatementInfo twoPcSupportedStatement);
|
||||
|
||||
/*
|
||||
* ProcessUtilityParseTree is a convenience method to create a PlannedStmt out of
|
||||
|
@ -1701,18 +1702,7 @@ IsStatementSupportedIn2PC(Node *parsetree)
|
|||
{
|
||||
if (type == T_GrantStmt)
|
||||
{
|
||||
GrantStmt *stmt = castNode(GrantStmt, parsetree);
|
||||
/* check if stmt->objtype is in supportedObjectTypes */
|
||||
for (int j = 0; j <
|
||||
twoPcSupportedStatements[i].supportedObjectTypesSize; j++)
|
||||
{
|
||||
if (stmt->objtype ==
|
||||
twoPcSupportedStatements[i].supportedObjectTypes[j])
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return IsObjectTypeSupported(parsetree, twoPcSupportedStatements[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1721,6 +1711,25 @@ IsStatementSupportedIn2PC(Node *parsetree)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool IsObjectTypeSupported(Node *parsetree, TwoPcStatementInfo twoPcSupportedStatement)
|
||||
{
|
||||
NodeTag type = nodeTag(parsetree);
|
||||
if (type == T_GrantStmt)
|
||||
{
|
||||
GrantStmt *stmt = castNode(GrantStmt, parsetree);
|
||||
/* check if stmt->objtype is in supportedObjectTypes */
|
||||
for (int j = 0; j < twoPcSupportedStatement.supportedObjectTypesSize; j++)
|
||||
{
|
||||
if (stmt->objtype == twoPcSupportedStatement.supportedObjectTypes[j])
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* DoesStatementRequireMarkDistributedFor2PC returns true if the statement should be marked
|
||||
|
|
Loading…
Reference in New Issue