597 self.cache_miss += 1 |
597 self.cache_miss += 1 |
598 rqlst = self.parse(rql) |
598 rqlst = self.parse(rql) |
599 try: |
599 try: |
600 self.solutions(session, rqlst, args) |
600 self.solutions(session, rqlst, args) |
601 except UnknownEid: |
601 except UnknownEid: |
602 # we want queries such as "Any X WHERE X eid 9999" |
602 # we want queries such as "Any X WHERE X eid 9999" return an |
603 # return an empty result instead of raising UnknownEid |
603 # empty result instead of raising UnknownEid |
604 return empty_rset(rql, args, rqlst) |
604 return empty_rset(rql, args, rqlst) |
605 self._rql_cache[cachekey] = rqlst |
605 self._rql_cache[cachekey] = rqlst |
606 orig_rqlst = rqlst |
606 orig_rqlst = rqlst |
607 if not rqlst.TYPE == 'select': |
607 if not rqlst.TYPE == 'select': |
608 if session.read_security: |
608 if session.read_security: |
609 check_no_password_selected(rqlst) |
609 check_no_password_selected(rqlst) |
610 # write query, ensure session's mode is 'write' so connections |
610 # write query, ensure session's mode is 'write' so connections won't |
611 # won't be released until commit/rollback |
611 # be released until commit/rollback |
612 session.mode = 'write' |
612 session.mode = 'write' |
613 cachekey = None |
613 cachekey = None |
614 else: |
614 else: |
615 if session.read_security: |
615 if session.read_security: |
616 for select in rqlst.children: |
616 for select in rqlst.children: |