From c2aa6374f3965c28aa2d56cbddf6dab3e1de18a2 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 8 Feb 2022 10:12:33 -0500 Subject: Accommodate escaped_bind_names for defaults/insert params Fixed issue in Oracle dialect where using a column name that requires quoting when written as a bound parameter, such as ``"_id"``, would not correctly track a Python generated default value due to the bound-parameter rewriting missing this value, causing an Oracle error to be raised. Fixes: #7676 Change-Id: I5a54426d24f2f9b336e3597d5595fb3e031aad97 --- lib/sqlalchemy/engine/default.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'lib/sqlalchemy/engine') diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 539af2507..4861214c4 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -1389,7 +1389,6 @@ class DefaultExecutionContext(interfaces.ExecutionContext): def _setup_ins_pk_from_empty(self): getter = self.compiled._inserted_primary_key_from_lastrowid_getter - return [getter(None, param) for param in self.compiled_parameters] def _setup_ins_pk_from_implicit_returning(self, result, rows): @@ -1664,7 +1663,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext): return self._exec_default(column, column.onupdate, column.type) def _process_executemany_defaults(self): - key_getter = self.compiled._key_getters_for_crud_column[2] + key_getter = self.compiled._within_exec_param_key_getter scalar_defaults = {} @@ -1702,7 +1701,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext): del self.current_parameters def _process_executesingle_defaults(self): - key_getter = self.compiled._key_getters_for_crud_column[2] + key_getter = self.compiled._within_exec_param_key_getter self.current_parameters = ( compiled_parameters ) = self.compiled_parameters[0] -- cgit v1.2.1