def execute(self, object, *multiparams, **params):
raise NotImplementedError()
- def execute_clauseelement(self, elem, multiparams=None, params=None):
+ def _execute_clauseelement(self, elem, multiparams=None, params=None):
raise NotImplementedError()
class Connection(Connectable):
if params:
return [params]
else:
- return [{}]
+ return []
elif len(multiparams) == 1:
zero = multiparams[0]
if isinstance(zero, (list, tuple)):
return [multiparams]
def _execute_function(self, func, multiparams, params):
- return self.execute_clauseelement(func.select(), multiparams, params)
+ return self._execute_clauseelement(func.select(), multiparams, params)
- def _execute_default(self, default, multiparams=None, params=None):
+ def _execute_default(self, default, multiparams, params):
return self.engine.dialect.defaultrunner(self.__create_execution_context()).traverse_single(default)
- def execute_clauseelement(self, elem, multiparams=None, params=None):
+ def _execute_clauseelement(self, elem, multiparams, params):
params = self.__distill_params(multiparams, params)
if params:
keys = params[0].keys()
else:
- keys = None
+ keys = []
context = self.__create_execution_context(
compiled=elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1),
)
return self.__execute_context(context)
- def _execute_compiled(self, compiled, multiparams=None, params=None):
+ def _execute_compiled(self, compiled, multiparams, params):
"""Execute a sql.Compiled object."""
context = self.__create_execution_context(
# poor man's multimethod/generic function thingy
executors = {
expression._Function: _execute_function,
- expression.ClauseElement: execute_clauseelement,
+ expression.ClauseElement: _execute_clauseelement,
Compiled: _execute_compiled,
schema.SchemaItem: _execute_default,
schema.DDL: _execute_ddl,
def _execute_default(self, default):
connection = self.contextual_connect()
try:
- return connection._execute_default(default)
+ return connection._execute_default(default, (), {})
finally:
connection.close()
def scalar(self, statement, *multiparams, **params):
return self.execute(statement, *multiparams, **params).scalar()
- def execute_clauseelement(self, elem, multiparams=None, params=None):
+ def _execute_clauseelement(self, elem, multiparams=None, params=None):
connection = self.contextual_connect(close_with_result=True)
- return connection.execute_clauseelement(elem, multiparams, params)
+ return connection._execute_clauseelement(elem, multiparams, params)
def _execute_compiled(self, compiled, multiparams, params):
connection = self.contextual_connect(close_with_result=True)
def execute(self, object, *multiparams, **params):
return proxy.execute(self, super(ProxyConnection, self).execute, object, *multiparams, **params)
- def execute_clauseelement(self, elem, multiparams=None, params=None):
+ def _execute_clauseelement(self, elem, multiparams=None, params=None):
return proxy.execute(self, super(ProxyConnection, self).execute, elem, *(multiparams or []), **(params or {}))
def _cursor_execute(self, cursor, statement, parameters, context=None):
def exec_default_sql(self, default):
conn = self.context.connection
c = expression.select([default.arg]).compile(bind=conn)
- return conn._execute_compiled(c).scalar()
+ return conn._execute_compiled(c, (), {}).scalar()
def execute_string(self, stmt, params=None):
"""execute a string statement, using the raw cursor, and return a scalar result."""
]
else:
cursor = [
- ("CREATE TABLE t1", {}, None),
+ ("CREATE TABLE t1", {}, ()),
("INSERT INTO t1 (c1, c2)", {'c2': 'some data', 'c1': 5}, [5, 'some data']),
("INSERT INTO t1 (c1, c2)", {'c1': 6, "lower_2":"Foo"}, [6, "Foo"]), # bind param name 'lower_2' might be incorrect
- ("select * from t1", {}, None),
- ("DROP TABLE t1", {}, None)
+ ("select * from t1", {}, ()),
+ ("DROP TABLE t1", {}, ())
]
assert_stmts(compiled, stmts)
r = users.select().execute().fetchone()
self.assertEqual(len(r), 2)
r.close()
- r = testing.db.execute('select user_name, user_id from query_users', {}).fetchone()
+ r = testing.db.execute('select user_name, user_id from query_users').fetchone()
self.assertEqual(len(r), 2)
r.close()
- r = testing.db.execute('select user_name from query_users', {}).fetchone()
+ r = testing.db.execute('select user_name from query_users').fetchone()
self.assertEqual(len(r), 1)
r.close()
def test_column_order_with_text_query(self):
# should return values in query order
users.insert().execute(user_id=1, user_name='foo')
- r = testing.db.execute('select user_name, user_id from query_users', {}).fetchone()
+ r = testing.db.execute('select user_name, user_id from query_users').fetchone()
self.assertEqual(r[0], 'foo')
self.assertEqual(r[1], 1)
self.assertEqual([x.lower() for x in r.keys()], ['user_name', 'user_id'])