Skip to content

Commit

Permalink
Adds some logs
Browse files Browse the repository at this point in the history
  • Loading branch information
gurkanindibay committed Mar 19, 2024
1 parent c0e88f3 commit a50fc40
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/backend/distributed/commands/dependencies.c
Original file line number Diff line number Diff line change
Expand Up @@ -344,9 +344,25 @@ DeferErrorIfCircularDependencyExists(const ObjectAddress *objectAddress)
{
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();
appendStringInfo(detailInfo, "\"%s\" circularly depends itself, resolve "
"circular dependency first", objectDescription);
appendStringInfo(detailInfo, "ependencies are:\n%s", objectNames->data);

return DeferredError(ERRCODE_FEATURE_NOT_SUPPORTED,
"Citus can not handle circular dependencies "
Expand Down
9 changes: 9 additions & 0 deletions src/backend/distributed/metadata/dependency.c
Original file line number Diff line number Diff line change
Expand Up @@ -1819,6 +1819,8 @@ ExpandRolesToGroups(Oid roleid)
true, NULL, scanKeyCount, scanKey);

List *roles = NIL;

elog(NOTICE, "Originator Roleid: %s", GetUserNameFromId(roleid, true));
while ((tuple = systable_getnext(scanDescriptor)) != NULL)
{
Form_pg_auth_members membership = (Form_pg_auth_members) GETSTRUCT(tuple);
Expand All @@ -1827,14 +1829,21 @@ ExpandRolesToGroups(Oid roleid)
definition->mode = DependencyObjectAddress;
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);

DependencyDefinition *definition1 = palloc0(sizeof(DependencyDefinition));
definition1->mode = DependencyObjectAddress;
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);
}
elog(NOTICE, "Originator Roleid: %s completed", GetUserNameFromId(roleid, true));

systable_endscan(scanDescriptor);
table_close(pgAuthMembers, AccessShareLock);
Expand Down
2 changes: 2 additions & 0 deletions src/test/regress/sql/granted_by_support.sql
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ grant role4 to "role5'_test" with admin option;

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 role3 to role1 with admin option GRANTED BY role4;
Expand Down

0 comments on commit a50fc40

Please sign in to comment.