Match PDO MySQL lastInsertId() behavior in edge cases
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
Línea de trabajo
Comienza con WP_MySQL_On_SQLite::lastInsertId() y el trabajo de cobertura de PDO mencionado en #471. Añade cobertura para los casos INSERT y REPLACE indicados y verifica que los IDs devueltos coincidan con el comportamiento de PDO MySQL, en lugar de con el last row ID a nivel de conexión de SQLite.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
WP_MySQL_On_SQLite::lastInsertId() snapshots SQLite's last row ID, but SQLite and PDO MySQL differ in several cases:
- A multi-row insert returns SQLite's last generated ID; PDO MySQL returns the first.
- An insert into a table without
AUTO_INCREMENTcan expose a SQLite row ID; PDO MySQL returns"0". - A fully ignored insert can expose a stale or advanced SQLite ID; PDO MySQL returns
"0".
The PDO coverage work in #471 handles initialization, operation resets, and isolation from internal SQLite writes, but not these differences.
Expected behavior
Derive the ID from the user-issued MySQL INSERT or REPLACE operation rather than directly exposing SQLite's connection-level last row ID.
Add coverage for single-row, multi-row, explicit-ID, non-auto-increment, ignored, replace, and duplicate-key-update cases.
- Lenguaje dominante
- PHP
- Estrellas
- 363
- Forks
- 72
- Merge medio
- 3 d 7 h
- PR fusionados (30 d)
- 13
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Sin 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.
Más de WordPress/sqlite-database-integration
-
MySQL-on-SQLite does not translate DATE arithmetic with INTERVAL HOURPosiblemente ocupada @samuelmbabhazi la tomó hace 28 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
WordPress/sqlite-database-integration#454 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
WordPress/sqlite-database-integration#538 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 40/100
WordPress/sqlite-database-integration#531 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
WordPress/sqlite-database-integration#529 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
WordPress/sqlite-database-integration#528 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de WordPress/sqlite-database-integration
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
nextcloud/integration_openai#446 ·
-
bug customer-reported
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
MagnaCapax/PMSS#1101 ·
Los mantenedores suelen responder en 5 días
-
InvoiceSettled is answered 200 when the invoice cannot be re-fetched, so BTCPay never redelivers itAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
btcpayserver/woocommerce-greenfield-plugin#93 ·
Los mantenedores suelen responder en 1 día
-
kind/bug status/triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
🐛 [Bug] Bulk CSV import stores hide_from_combined_view=FALSE as a string, which hides every account from Sent, Junk, Trash and DraftsPosiblemente ocupada @exSnake la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día