增加了新的占位符
This commit is contained in:
@ -140,15 +140,15 @@ class DictCursor(DictCursorBase):
|
||||
super().__init__(*args, **kwargs)
|
||||
self._prefetch = True
|
||||
|
||||
def execute(self, query, vars=None):
|
||||
def execute(self, query, vars=None, place_holder = '%'):
|
||||
self.index = OrderedDict()
|
||||
self._query_executed = True
|
||||
return super().execute(query, vars)
|
||||
return super().execute(query, vars, place_holder)
|
||||
|
||||
def callproc(self, procname, vars=None):
|
||||
def callproc(self, procname, vars=None, place_holder = '%'):
|
||||
self.index = OrderedDict()
|
||||
self._query_executed = True
|
||||
return super().callproc(procname, vars)
|
||||
return super().callproc(procname, vars, place_holder)
|
||||
|
||||
def _build_index(self):
|
||||
if self._query_executed and self.description:
|
||||
@ -230,15 +230,15 @@ class RealDictCursor(DictCursorBase):
|
||||
kwargs['row_factory'] = RealDictRow
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def execute(self, query, vars=None):
|
||||
def execute(self, query, vars=None, place_holder = '%'):
|
||||
self.column_mapping = []
|
||||
self._query_executed = True
|
||||
return super().execute(query, vars)
|
||||
return super().execute(query, vars, place_holder)
|
||||
|
||||
def callproc(self, procname, vars=None):
|
||||
def callproc(self, procname, vars=None, place_holder = '%'):
|
||||
self.column_mapping = []
|
||||
self._query_executed = True
|
||||
return super().callproc(procname, vars)
|
||||
return super().callproc(procname, vars, place_holder)
|
||||
|
||||
def _build_index(self):
|
||||
if self._query_executed and self.description:
|
||||
@ -307,17 +307,17 @@ class NamedTupleCursor(_cursor):
|
||||
Record = None
|
||||
MAX_CACHE = 1024
|
||||
|
||||
def execute(self, query, vars=None):
|
||||
def execute(self, query, vars=None, place_holder = '%'):
|
||||
self.Record = None
|
||||
return super().execute(query, vars)
|
||||
return super().execute(query, vars, place_holder)
|
||||
|
||||
def executemany(self, query, vars):
|
||||
def executemany(self, query, vars, place_holder = '%'):
|
||||
self.Record = None
|
||||
return super().executemany(query, vars)
|
||||
return super().executemany(query, vars, place_holder)
|
||||
|
||||
def callproc(self, procname, vars=None):
|
||||
def callproc(self, procname, vars=None, place_holder = '%'):
|
||||
self.Record = None
|
||||
return super().callproc(procname, vars)
|
||||
return super().callproc(procname, vars, place_holder)
|
||||
|
||||
def fetchone(self):
|
||||
t = super().fetchone()
|
||||
@ -444,15 +444,15 @@ class LoggingConnection(_connection):
|
||||
class LoggingCursor(_cursor):
|
||||
"""A cursor that logs queries using its connection logging facilities."""
|
||||
|
||||
def execute(self, query, vars=None):
|
||||
def execute(self, query, vars=None, place_holder = '%'):
|
||||
try:
|
||||
return super().execute(query, vars)
|
||||
return super().execute(query, vars, place_holder)
|
||||
finally:
|
||||
self.connection.log(self.query, self)
|
||||
|
||||
def callproc(self, procname, vars=None):
|
||||
def callproc(self, procname, vars=None, place_holder = '%'):
|
||||
try:
|
||||
return super().callproc(procname, vars)
|
||||
return super().callproc(procname, vars, place_holder)
|
||||
finally:
|
||||
self.connection.log(self.query, self)
|
||||
|
||||
@ -488,13 +488,13 @@ class MinTimeLoggingConnection(LoggingConnection):
|
||||
class MinTimeLoggingCursor(LoggingCursor):
|
||||
"""The cursor sub-class companion to `MinTimeLoggingConnection`."""
|
||||
|
||||
def execute(self, query, vars=None):
|
||||
def execute(self, query, vars=None, place_holder = '%'):
|
||||
self.timestamp = _time.time()
|
||||
return LoggingCursor.execute(self, query, vars)
|
||||
return LoggingCursor.execute(self, query, vars, place_holder)
|
||||
|
||||
def callproc(self, procname, vars=None):
|
||||
def callproc(self, procname, vars=None, place_holder = '%'):
|
||||
self.timestamp = _time.time()
|
||||
return LoggingCursor.callproc(self, procname, vars)
|
||||
return LoggingCursor.callproc(self, procname, vars, place_holder)
|
||||
|
||||
|
||||
class LogicalReplicationConnection(_replicationConnection):
|
||||
@ -1099,8 +1099,7 @@ ORDER BY attnum;
|
||||
recs = curs.fetchall()
|
||||
|
||||
# revert the status of the connection as before the command
|
||||
if (conn_status != _ext.STATUS_IN_TRANSACTION
|
||||
and not conn.autocommit):
|
||||
if conn_status != _ext.STATUS_IN_TRANSACTION and not conn.autocommit:
|
||||
conn.rollback()
|
||||
|
||||
if not recs:
|
||||
@ -1161,8 +1160,7 @@ def _paginate(seq, page_size):
|
||||
yield page
|
||||
return
|
||||
|
||||
|
||||
def execute_batch(cur, sql, argslist, page_size=100):
|
||||
def execute_batch(cur, sql, argslist, page_size=100, place_holder = '%'):
|
||||
r"""Execute groups of statements in fewer server roundtrips.
|
||||
|
||||
Execute *sql* several times, against all parameters set (sequences or
|
||||
@ -1183,11 +1181,11 @@ def execute_batch(cur, sql, argslist, page_size=100):
|
||||
|
||||
"""
|
||||
for page in _paginate(argslist, page_size=page_size):
|
||||
sqls = [cur.mogrify(sql, args) for args in page]
|
||||
sqls = [cur.mogrify(sql, args, place_holder) for args in page]
|
||||
cur.execute(b";".join(sqls))
|
||||
|
||||
|
||||
def execute_values(cur, sql, argslist, template=None, page_size=100, fetch=False):
|
||||
def execute_values(cur, sql, argslist, template=None, page_size=100, fetch=False, place_holder = '%'):
|
||||
'''Execute a statement using :sql:`VALUES` with a sequence of parameters.
|
||||
|
||||
:param cur: the cursor to use to execute the query.
|
||||
@ -1264,7 +1262,7 @@ def execute_values(cur, sql, argslist, template=None, page_size=100, fetch=False
|
||||
template = b'(' + b','.join([b'%s'] * len(page[0])) + b')'
|
||||
parts = pre[:]
|
||||
for args in page:
|
||||
parts.append(cur.mogrify(template, args))
|
||||
parts.append(cur.mogrify(template, args, place_holder))
|
||||
parts.append(b',')
|
||||
parts[-1:] = post
|
||||
cur.execute(b''.join(parts))
|
||||
@ -1303,4 +1301,4 @@ def _split_sql(sql):
|
||||
if curr is pre:
|
||||
raise ValueError("the query doesn't contain any '%s' placeholder")
|
||||
|
||||
return pre, post
|
||||
return pre, post
|
||||
Reference in New Issue
Block a user