I'm wondering if we could provide a more helpful error message in this case, something along the lines of:
DETAIL: 'usage' permission required on schema 'test_schema'
The actual error message is not just "permission denied", it is already:
ERROR: permission denied for schema test_schema
Given that, I don't think the additional DETAIL upon ERROR would be all that helpful.
I think a more useful change (if any) would be a NOTICE or WARNING when granting privs on a object in a schema, to a user who does not already have privs on the schema itself. I thought there was already a similar situation, where a NOTICE was issued where a permission change was executed which didn't do anything, because it was already done. But now I can't find.