server/sources/native.py
changeset 6724 24bf6f181d0e
parent 6427 c8a5ac2d1eaa
child 6849 5a0c2cfc19bf
equal deleted inserted replaced
6723:a2ccbcbb08a6 6724:24bf6f181d0e
   324 
   324 
   325     def sqlexec(self, session, sql, args=None):
   325     def sqlexec(self, session, sql, args=None):
   326         """execute the query and return its result"""
   326         """execute the query and return its result"""
   327         return self.process_result(self.doexec(session, sql, args))
   327         return self.process_result(self.doexec(session, sql, args))
   328 
   328 
   329     def init_creating(self):
   329     def init_creating(self, pool=None):
   330         pool = self.repo._get_pool()
       
   331         pool.pool_set()
       
   332         # check full text index availibility
   330         # check full text index availibility
   333         if self.do_fti:
   331         if self.do_fti:
   334             if not self.dbhelper.has_fti_table(pool['system']):
   332             if pool is None:
       
   333                 _pool = self.repo._get_pool()
       
   334                 _pool.pool_set()
       
   335             else:
       
   336                 _pool = pool
       
   337             if not self.dbhelper.has_fti_table(_pool['system']):
   335                 if not self.repo.config.creating:
   338                 if not self.repo.config.creating:
   336                     self.critical('no text index table')
   339                     self.critical('no text index table')
   337                 self.do_fti = False
   340                 self.do_fti = False
   338         pool.pool_reset()
   341             if pool is None:
   339         self.repo._free_pool(pool)
   342                 _pool.pool_reset()
       
   343                 self.repo._free_pool(_pool)
   340 
   344 
   341     def backup(self, backupfile, confirm):
   345     def backup(self, backupfile, confirm):
   342         """method called to create a backup of the source's data"""
   346         """method called to create a backup of the source's data"""
   343         self.close_pool_connections()
   347         self.close_pool_connections()
   344         try:
   348         try:
   354             self.restore_from_file(backupfile, confirm, drop=drop)
   358             self.restore_from_file(backupfile, confirm, drop=drop)
   355         finally:
   359         finally:
   356             if self.repo.config.open_connections_pools:
   360             if self.repo.config.open_connections_pools:
   357                 self.open_pool_connections()
   361                 self.open_pool_connections()
   358 
   362 
   359     def init(self):
   363     def init(self, activated, session=None):
   360         self.init_creating()
   364         self.init_creating(session and session.pool)
   361 
   365 
   362     def shutdown(self):
   366     def shutdown(self):
   363         if self._eid_creation_cnx:
   367         if self._eid_creation_cnx:
   364             self._eid_creation_cnx.close()
   368             self._eid_creation_cnx.close()
   365             self._eid_creation_cnx = None
   369             self._eid_creation_cnx = None