# HG changeset patch # User David Douard # Date 1493841341 -7200 # Node ID 2f9da7a8ecb607ccdd1d6a16ecde385c530730bb # Parent e4ee04d442bec698dfbbc5df676ad5f373ca5588 [server] fix deserialize_schema to handle properly pg schema (closes 17076486) Postgres behaviour is to look first for a table in the configured schema then fall back to 'public' if no table is found. This must be implemented in deserialize_schema when listing existing tables to check for computed relations (cw_cwcomputedrtype) otherwise computed relations may not work when using non-default pg schema. diff -r e4ee04d442be -r 2f9da7a8ecb6 cubicweb/server/schemaserial.py --- a/cubicweb/server/schemaserial.py Wed May 10 15:07:18 2017 +0200 +++ b/cubicweb/server/schemaserial.py Wed May 03 21:55:41 2017 +0200 @@ -92,6 +92,9 @@ # Computed Rtype tables = set(t.lower() for t in dbhelper.list_tables(cnx.cnxset.cu)) + # on postgres, ensure the default schema name (public) is also checked + if dbhelper.backend_name == 'postgres': + tables.update(t.lower() for t in dbhelper.list_tables(cnx.cnxset.cu, 'public')) has_computed_relations = 'cw_cwcomputedrtype' in tables # computed attribute try: