--- /dev/null
+.. change::
+ :tags: bug, mariadb, regression
+ :tickets: 7738
+
+ Fixed regression in mariadbconnector dialect as of mariadb connector 1.0.10
+ where the DBAPI no longer pre-buffers cursor.lastrowid. The dialect now
+ fetches this value proactively for situations where it applies.
class MySQLExecutionContext_mariadbconnector(MySQLExecutionContext):
+ _lastrowid = None
+
def create_server_side_cursor(self):
return self._dbapi_connection.cursor(buffered=False)
def create_default_cursor(self):
return self._dbapi_connection.cursor(buffered=True)
+ def post_exec(self):
+ if self.isinsert and self.compiled.postfetch_lastrowid:
+ self._lastrowid = self.cursor.lastrowid
+
+ def get_lastrowid(self):
+ return self._lastrowid
+
class MySQLCompiler_mariadbconnector(MySQLCompiler):
pass
return self._setup_ins_pk_from_empty()
def _setup_ins_pk_from_lastrowid(self):
-
getter = self.compiled._inserted_primary_key_from_lastrowid_getter
lastrowid = self.get_lastrowid()
asyncmy = mysql+asyncmy://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4
asyncmy_fallback = mysql+asyncmy://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4&async_fallback=true
mariadb = mariadb+mysqldb://scott:tiger@127.0.0.1:3306/test
+mariadb_connector = mariadb+mariadbconnector://scott:tiger@127.0.0.1:3306/test
mssql = mssql+pyodbc://scott:tiger^5HHH@mssql2017:1433/test?driver=ODBC+Driver+13+for+SQL+Server
mssql_pymssql = mssql+pymssql://scott:tiger@ms_2008
docker_mssql = mssql+pymssql://scott:tiger^5HHH@127.0.0.1:1433/test
)
@testing.fails_if(
[
- "+mariadbconnector",
"+mysqlconnector",
"+mysqldb",
"+cymysql",