No exception on `mysqli::rollback` when transaction is no longer active
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C
- Estrellas
- 40.4k
- Forks
- 8.2k
- Merge medio
- 2 d 13 h
- PR fusionados (30 d)
- 96
Descripción
Description
Repro steps:
- have an open mysqli connection
- start transaction using
mysqli::begin_transaction - run some query like
analyze table xx, this is "administrative statement" [1] which implicit autocommit - rollback transaction using
mysqli::rollbackand notice no exception is thrown
Since PHP 8.0, PDO checks if a transaction is active and throws an exception: PDOException: There is no active transaction
mysqli must throw the same exception as well.
Related MariaDB tickets:
[1] docs https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html and repro: https://dbfiddle.uk/coUjimLq
PHP Version
7.4 - master
Operating System
any
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza en el punto de entrada mysqli::rollback y reproduce la secuencia de begin_transaction, administrative-statement y rollback descrita en el issue. Compara el comportamiento del estado de la transacción con el comportamiento de excepciones de PDO en PHP 8 y añade cobertura que muestre que rollback informa de una excepción cuando la transacción ya no está activa.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- c, php
- Área
- databases
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100