diff --git a/CHANGES.md b/CHANGES.md index 3512b26..048b727 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,8 @@ ## Unreleased - Propagate error traces properly, using the `error_trace` `connect_args` option, by using `crate-1.0.0dev1` +- Use slightly amended `do_execute`, `do_execute_no_params`, `do_executemany` + to store their responses into the request context instance ## 2024/08/29 0.39.0 - Added `quote_relation_name` support utility function diff --git a/src/sqlalchemy_cratedb/dialect.py b/src/sqlalchemy_cratedb/dialect.py index b26ce81..f630aeb 100644 --- a/src/sqlalchemy_cratedb/dialect.py +++ b/src/sqlalchemy_cratedb/dialect.py @@ -233,6 +233,30 @@ def connect(self, host=None, port=None, *args, **kwargs): return self.dbapi.connect(servers=servers, **kwargs) return self.dbapi.connect(**kwargs) + def do_execute(self, cursor, statement, parameters, context=None): + """ + Slightly amended to store its response into the request context instance. + """ + result = cursor.execute(statement, parameters) + if context is not None: + context.last_result = result + + def do_execute_no_params(self, cursor, statement, context=None): + """ + Slightly amended to store its response into the request context instance. + """ + result = cursor.execute(statement) + if context is not None: + context.last_result = result + + def do_executemany(self, cursor, statement, parameters, context=None): + """ + Slightly amended to store its response into the request context instance. + """ + result = cursor.executemany(statement, parameters) + if context is not None: + context.last_result = result + def _get_default_schema_name(self, connection): return "doc"