This is consistent with cartodb behaviour, but not exactly
the same as the contract that the 'public' role guarantees
access to public resources. Possibly a better fix would be
to audit (ug) everything and make sure that it's really
using the public role to mean public, rather than the
'publicuser' connection role. That CDB creates.
This fixes the following problem found during testing:
```
ALTER EXTENSION cartodb UPDATE TO '0.8.0';
ERROR: cannot change return type of existing function
HINT: Use DROP FUNCTION cdb_usertables(text) first.
```
Roles are not created anymore, previously private functions for table
information extraction (CDB_UserTables, CDB_TableIndexes, CDB_ColumnNames,
CDB_ColumnType) will now be callable by anyone while only returning
information about tables over which the calling user has SELECT privilege.
Closes#36
We'll bet on no old signature being left around.
Presence of an old signature would break at runtime
with a message like:
ERROR: function CDB_UserTables() is not unique
Closes#25
NOTE: also makes CDB_TableMetadata triggers still functional
when user quota and varnish invalidation functions are missing
from the database (currently installed by cartodb ruby)