429 #: server.Repository object |
429 #: server.Repository object |
430 self.repo = session.repo |
430 self.repo = session.repo |
431 self.vreg = self.repo.vreg |
431 self.vreg = self.repo.vreg |
432 self._execute = self.repo.querier.execute |
432 self._execute = self.repo.querier.execute |
433 |
433 |
|
434 # other session utility |
|
435 self._session_timestamp = session._timestamp |
|
436 |
434 #: connection handling mode |
437 #: connection handling mode |
435 self.mode = session.default_mode |
438 self.mode = session.default_mode |
436 #: connection set used to execute queries on sources |
439 #: connection set used to execute queries on sources |
437 self._cnxset = None |
440 self._cnxset = None |
438 #: CnxSetTracker used to report cnxset usage |
441 #: CnxSetTracker used to report cnxset usage |
474 # other session utility |
477 # other session utility |
475 if session.user.login == '__internal_manager__': |
478 if session.user.login == '__internal_manager__': |
476 self.user = session.user |
479 self.user = session.user |
477 else: |
480 else: |
478 self._set_user(session.user) |
481 self._set_user(session.user) |
|
482 |
479 |
483 |
480 # shared data handling ################################################### |
484 # shared data handling ################################################### |
481 |
485 |
482 @property |
486 @property |
483 def data(self): |
487 def data(self): |
881 def execute(self, rql, kwargs=None, eid_key=None, build_descr=True): |
885 def execute(self, rql, kwargs=None, eid_key=None, build_descr=True): |
882 """db-api like method directly linked to the querier execute method. |
886 """db-api like method directly linked to the querier execute method. |
883 |
887 |
884 See :meth:`cubicweb.dbapi.Cursor.execute` documentation. |
888 See :meth:`cubicweb.dbapi.Cursor.execute` documentation. |
885 """ |
889 """ |
|
890 self._session_timestamp.touch() |
886 if eid_key is not None: |
891 if eid_key is not None: |
887 warn('[3.8] eid_key is deprecated, you can safely remove this argument', |
892 warn('[3.8] eid_key is deprecated, you can safely remove this argument', |
888 DeprecationWarning, stacklevel=2) |
893 DeprecationWarning, stacklevel=2) |
889 rset = self._execute(self, rql, kwargs, build_descr) |
894 rset = self._execute(self, rql, kwargs, build_descr) |
890 rset.req = self |
895 rset.req = self |
|
896 self._session_timestamp.touch() |
891 return rset |
897 return rset |
892 |
898 |
893 # resource accessors ###################################################### |
899 # resource accessors ###################################################### |
894 |
900 |
895 def system_sql(self, sql, args=None, rollback_on_failure=True): |
901 def system_sql(self, sql, args=None, rollback_on_failure=True): |
1300 def execute(self, *args, **kwargs): |
1306 def execute(self, *args, **kwargs): |
1301 """db-api like method directly linked to the querier execute method. |
1307 """db-api like method directly linked to the querier execute method. |
1302 |
1308 |
1303 See :meth:`cubicweb.dbapi.Cursor.execute` documentation. |
1309 See :meth:`cubicweb.dbapi.Cursor.execute` documentation. |
1304 """ |
1310 """ |
1305 self._timestamp.touch() # update timestamp |
|
1306 rset = self._cnx.execute(*args, **kwargs) |
1311 rset = self._cnx.execute(*args, **kwargs) |
1307 rset.req = self |
1312 rset.req = self |
1308 return rset |
1313 return rset |
1309 |
1314 |
1310 def close_cnx(self, cnxid): |
1315 def close_cnx(self, cnxid): |