788 self.debug('calling service %s', regid) |
788 self.debug('calling service %s', regid) |
789 service = self.vreg['services'].select(regid, self, **kwargs) |
789 service = self.vreg['services'].select(regid, self, **kwargs) |
790 return service.call(**kwargs) |
790 return service.call(**kwargs) |
791 |
791 |
792 @_open_only |
792 @_open_only |
793 def system_sql(self, sql, args=None, rollback_on_failure=True): |
793 def system_sql(self, sql, args=None, rollback_on_failure=True, rql_query_tracing_token=None): |
794 """return a sql cursor on the system database""" |
794 """return a sql cursor on the system database""" |
795 source = self.repo.system_source |
795 source = self.repo.system_source |
796 try: |
796 try: |
797 return source.doexec(self, sql, args, rollback=rollback_on_failure) |
797 return source.doexec(self, sql, args, rollback=rollback_on_failure, |
|
798 rql_query_tracing_token=rql_query_tracing_token) |
798 except (source.OperationalError, source.InterfaceError): |
799 except (source.OperationalError, source.InterfaceError): |
799 if not rollback_on_failure: |
800 if not rollback_on_failure: |
800 raise |
801 raise |
801 source.warning("trying to reconnect") |
802 source.warning("trying to reconnect") |
802 self.cnxset.reconnect() |
803 self.cnxset.reconnect() |