mirror of https://github.com/citusdata/citus.git
Adds some logs
parent
c0e88f3774
commit
a50fc402b5
|
@ -344,9 +344,25 @@ DeferErrorIfCircularDependencyExists(const ObjectAddress *objectAddress)
|
||||||
{
|
{
|
||||||
char *objectDescription = getObjectDescription(objectAddress, false);
|
char *objectDescription = getObjectDescription(objectAddress, false);
|
||||||
|
|
||||||
|
// Iterate all objects in the 'dependencies' list, get the object names and create a string
|
||||||
|
ListCell *cell;
|
||||||
|
StringInfo objectNames = makeStringInfo();
|
||||||
|
foreach(cell, dependencies)
|
||||||
|
{
|
||||||
|
ObjectAddress *dependency1 = (ObjectAddress *) lfirst(cell);
|
||||||
|
char *objectName = getObjectDescription(dependency1, false);
|
||||||
|
appendStringInfo(objectNames, "%s\n", objectName);
|
||||||
|
}
|
||||||
|
//to show the circular dependency
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
StringInfo detailInfo = makeStringInfo();
|
StringInfo detailInfo = makeStringInfo();
|
||||||
appendStringInfo(detailInfo, "\"%s\" circularly depends itself, resolve "
|
appendStringInfo(detailInfo, "\"%s\" circularly depends itself, resolve "
|
||||||
"circular dependency first", objectDescription);
|
"circular dependency first", objectDescription);
|
||||||
|
appendStringInfo(detailInfo, "ependencies are:\n%s", objectNames->data);
|
||||||
|
|
||||||
return DeferredError(ERRCODE_FEATURE_NOT_SUPPORTED,
|
return DeferredError(ERRCODE_FEATURE_NOT_SUPPORTED,
|
||||||
"Citus can not handle circular dependencies "
|
"Citus can not handle circular dependencies "
|
||||||
|
|
|
@ -1819,6 +1819,8 @@ ExpandRolesToGroups(Oid roleid)
|
||||||
true, NULL, scanKeyCount, scanKey);
|
true, NULL, scanKeyCount, scanKey);
|
||||||
|
|
||||||
List *roles = NIL;
|
List *roles = NIL;
|
||||||
|
|
||||||
|
elog(NOTICE, "Originator Roleid: %s", GetUserNameFromId(roleid, true));
|
||||||
while ((tuple = systable_getnext(scanDescriptor)) != NULL)
|
while ((tuple = systable_getnext(scanDescriptor)) != NULL)
|
||||||
{
|
{
|
||||||
Form_pg_auth_members membership = (Form_pg_auth_members) GETSTRUCT(tuple);
|
Form_pg_auth_members membership = (Form_pg_auth_members) GETSTRUCT(tuple);
|
||||||
|
@ -1827,14 +1829,21 @@ ExpandRolesToGroups(Oid roleid)
|
||||||
definition->mode = DependencyObjectAddress;
|
definition->mode = DependencyObjectAddress;
|
||||||
ObjectAddressSet(definition->data.address, AuthIdRelationId, membership->roleid);
|
ObjectAddressSet(definition->data.address, AuthIdRelationId, membership->roleid);
|
||||||
|
|
||||||
|
//log the name of the membership->roleid
|
||||||
|
elog(NOTICE, "Dependency roleid granted: %s", GetUserNameFromId(membership->roleid, true));
|
||||||
|
|
||||||
|
|
||||||
roles = lappend(roles, definition);
|
roles = lappend(roles, definition);
|
||||||
|
|
||||||
DependencyDefinition *definition1 = palloc0(sizeof(DependencyDefinition));
|
DependencyDefinition *definition1 = palloc0(sizeof(DependencyDefinition));
|
||||||
definition1->mode = DependencyObjectAddress;
|
definition1->mode = DependencyObjectAddress;
|
||||||
ObjectAddressSet(definition1->data.address, AuthIdRelationId, membership->grantor);
|
ObjectAddressSet(definition1->data.address, AuthIdRelationId, membership->grantor);
|
||||||
|
elog(NOTICE, "Dependency roleid grantor: %s",GetUserNameFromId( membership->grantor,true));
|
||||||
|
elog(NOTICE, "Dependency roleid member: %s",GetUserNameFromId( membership->member,true));
|
||||||
|
|
||||||
roles = lappend(roles, definition1);
|
roles = lappend(roles, definition1);
|
||||||
}
|
}
|
||||||
|
elog(NOTICE, "Originator Roleid: %s completed", GetUserNameFromId(roleid, true));
|
||||||
|
|
||||||
systable_endscan(scanDescriptor);
|
systable_endscan(scanDescriptor);
|
||||||
table_close(pgAuthMembers, AccessShareLock);
|
table_close(pgAuthMembers, AccessShareLock);
|
||||||
|
|
|
@ -27,6 +27,8 @@ grant role4 to "role5'_test" with admin option;
|
||||||
|
|
||||||
grant role4 to role1 with admin option GRANTED BY "role5'_test";
|
grant role4 to role1 with admin option GRANTED BY "role5'_test";
|
||||||
|
|
||||||
|
SELECT roleid::regrole::text AS role, member::regrole::text, grantor::regrole::text, admin_option, inherit_option,set_option FROM pg_auth_members pa;
|
||||||
|
|
||||||
grant role4 to role3 with admin option GRANTED BY role1;
|
grant role4 to role3 with admin option GRANTED BY role1;
|
||||||
|
|
||||||
grant role3 to role1 with admin option GRANTED BY role4;
|
grant role3 to role1 with admin option GRANTED BY role4;
|
||||||
|
|
Loading…
Reference in New Issue