Role problem of PostgreSQL
You are explicitly setting the role to noinherit so you will need to use set rolecp before your select to use the permissions from role cp (but I'm guessing you probably just want to inherit)

From the docs:


  INHERIT
  NOINHERIT  
  
  These clauses determine whether a role "inherits"
  the privileges of roles it is a member of. A role with the INHERIT
  attribute can automatically use whatever database privileges have been
  granted to all roles it is directly or indirectly a member of. Without
  INHERIT, membership in another role only grants the ability to SET
  ROLE to that other role; the privileges of the other role are only
  available after having done so. If not specified, INHERIT is the
  default.