Metacat Performace: Rewrite the xml_access part of the query
The subpart of metacat search queries that does an access control check is inefficient. It first checks the user_owner field in xml_documents (of dubious value), and then it does two queries against xml_access to determine if the user has rights to query. The query as implemented in Metacat 1.6 is attached. Note in particular that the user_owner part of the query appears to be wrong -- at no point would the user_owner ever be 'public', so this part of the query can be omitted for public searches, avoiding a large subquery.
#2 Updated by Jing Tao over 15 years ago
The query part for search if the owner is public is omitted.
In extend query which will search return fields, it had a access part query too. The reason we needed it is because there was a subtree access control in first version of eml2. We decided to give up subtree access control in eml document, so there is no reason to keep the access query in return field part. This work is done.