Bug #78179 [PATCH]: MariaDB 10.3 broke mysqli::begin_transaction()

From: Date: Tue, 21 Jul 2020 07:35:49 +0000
Subject: Bug #78179 [PATCH]: MariaDB 10.3 broke mysqli::begin_transaction()
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-228156@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=78179&edit=1 ID: 78179 Patch added by: daniel@mariadb.org Reported by: david dot bergeron5 at usherbrooke dot ca Summary: MariaDB 10.3 broke mysqli::begin_transaction() Status: Wont fix Type: Bug Package: MySQLi related Operating System: Debian 9 PHP Version: Irrelevant Block user comment: N Private report: N New Comment: The following pull request has been associated: Patch Name: Fix #78179: mysqli/mysqlnd transaction extensions On GitHub: https://github.com/php/php-src/pull/5877 Patch: https://github.com/php/php-src/pull/5877.patch Previous Comments: ------------------------------------------------------------------------ [2019-08-08 14:00:11] david dot bergeron5 at usherbrooke dot ca I don't know if this could help. If I do a HELP 'lock'; It return this. And we can see what is supported by the current version of the server. We should probably ask MySQL and MariaDB to have a more easy to parse definition of theirs statements. David --------------------------------------------------- Syntax: LOCK TABLES tbl_name [[AS] alias] lock_type [, tbl_name [[AS] alias] lock_type] ... lock_type: READ [LOCAL] | [LOW_PRIORITY] WRITE UNLOCK TABLES MySQL enables client sessions to acquire table locks explicitly for the purpose of cooperating with other sessions for access to tables, or to prevent other sessions from modifying tables during periods when a session requires exclusive access to them. A session can acquire or release locks only for itself. One session cannot acquire locks for another session or release locks held by another session. Locks may be used to emulate transactions or to get more speed when updating tables. This is explained in more detail later in this section. LOCK TABLES explicitly acquires table locks for the current client session. Table locks can be acquired for base tables or views. You must have the LOCK TABLES privilege, and the SELECT privilege for each object to be locked. For view locking, LOCK TABLES adds all base tables used in the view to the set of tables to be locked and locks them automatically. If you lock a table explicitly with LOCK TABLES, any tables used in triggers are also locked implicitly, as described in http://dev.mysql.com/doc/refman/5.5/en/lock-tables-and-triggers.html. UNLOCK TABLES explicitly releases any table locks held by the current session. LOCK TABLES implicitly releases any table locks held by the current session before acquiring new locks. Another use for UNLOCK TABLES is to release the global read lock acquired with the FLUSH TABLES WITH READ LOCK statement, which enables you to lock all tables in all databases. See [HELP FLUSH]. (This is a very convenient way to get backups if you have a file system such as Veritas that can take snapshots in time.) URL: http://dev.mysql.com/doc/refman/5.5/en/lock-tables.html ------------------------------------------------------------------------ [2019-08-08 13:36:53] david dot bergeron5 at usherbrooke dot ca A little bit harsh but I understand. My only question than is why is mysqlnd is not doing what We ask it to do, not using transaction if MariaDB support it at version 10.3 ? From what I can know of the protocol there is nothing in the protocol that say check the version number before doing a LOCK. Not that I am a fan of MariaDB to change the versioning schema, but there probably should be a other way in MySQL and MariaDB to find what features is available in the current server. ------------------------------------------------------------------------ [2019-08-08 13:27:53] andrey@php.net mysqlnd implements the MySQL Client/Server protocol. If MariaDB doesn't follow the reference implementation then this is a problem of MariaDB, not of mysqlnd. I am going to revert this patch. ------------------------------------------------------------------------ [2019-08-02 14:46:45] cmb@php.net Automatic comment on behalf of cmbecker69@gmx.de Revision: http://git.php.net/?p=php-src.git;a=commit;h=f9f4a68368406a2ba2bd9fab0494261090183e8e Log: Fix #78179: MariaDB server version incorrectly detected ------------------------------------------------------------------------ [2019-07-24 13:35:36] cmb@php.net The following pull request has been associated: Patch Name: Fix #78179: MariaDB server version incorrectly detected On GitHub: https://github.com/php/php-src/pull/4472 Patch: https://github.com/php/php-src/pull/4472.patch ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=78179 -- Edit this bug report at https://bugs.php.net/bug.php?id=78179&edit=1

« previous php.bugs (#228156) next »