def query(self, query_string, max_rows=1000): self._register() for qs in query_string.split('\0'): qs = qs.strip() if qs: if match_select(qs): raise NotSupportedError( "can not SELECT in deferred connections") self._sql_string_list.append(qs) return (), ()
def __init__(self, connection): """ Parse the connection string. Initiate a trial connection with the database to check transactionality once instead of once per DB instance. """ self._connection = connection self._parse_connection_string() self._forceReconnection() transactional = self.db.server_capabilities & CLIENT.TRANSACTIONS if self._try_transactions == '-': transactional = 0 elif not transactional and self._try_transactions == '+': raise NotSupportedError( "transactions not supported by this server") self._transactions = transactional self._use_TM = transactional or self._mysql_lock
import re import MySQLdb from MySQLdb import OperationalError, NotSupportedError, ProgrammingError, _mysql import warnings from contextlib import contextmanager if six.PY2: from contextlib import nested else: from contextlib import ExitStack as nested from Products.ERP5Type.Timeout import TimeoutReachedError, getTimeLeft MySQLdb_version_required = (0, 9, 2) _v = getattr(_mysql, 'version_info', (0, 0, 0)) if _v < MySQLdb_version_required: raise NotSupportedError("ZMySQLDA requires at least MySQLdb %s, %s found" % (MySQLdb_version_required, _v)) from MySQLdb.converters import conversions from MySQLdb.constants import FIELD_TYPE, CR, ER, CLIENT from Shared.DC.ZRDB.TM import TM from DateTime import DateTime from zLOG import LOG, ERROR, WARNING from ZODB.POSException import ConflictError from Products.ERP5Type.Utils import str2bytes hosed_connection = (CR.SERVER_GONE_ERROR, CR.SERVER_LOST) query_syntax_error = (ER.BAD_FIELD_ERROR, ) lock_error = ( ER.LOCK_WAIT_TIMEOUT,