phpMyAdmin 5.2.3 export fails with RuntimeException: No statement inside WITH for views containing nested CTEs
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 55/100
Rechercherichtung
Beginne damit, den Fehler mit der View mit verschachteltem CTE und einem MariaDB-Schema-SQL-Export zu reproduzieren, wobei die gemeldete RuntimeException als Ausgangspunkt dient. Verfolge die Verarbeitung der temporären Platzhalter-View-Definition durch den Parser; abgeschlossen ist die Arbeit, wenn der Export erfolgreich abgeschlossen wird und die vollständige CREATE VIEW-Definition enthält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
When exporting a database/schema from phpMyAdmin 5.2.3, the export fails if a view contains a nested CTE (WITH inside another WITH).
The view itself is valid in MariaDB and can be created, queried, and retrieved successfully using SHOW CREATE VIEW. However, during phpMyAdmin export, phpMyAdmin creates the temporary stand-in definition for the view and then terminates with:
RuntimeException: No statement inside WITH
Because the export terminates at this point, the final CREATE VIEW definitions that phpMyAdmin normally writes near the end of the export are missing from the generated SQL file.
Simple reproduction steps: (MariaDB 10.11.16)
DROP VIEW IF EXISTS test_nested_cte_view;
CREATE VIEW test_nested_cte_view AS
WITH outer_cte AS
(
WITH inner_cte AS
(
SELECT 1 AS id, 'test' AS name
)
SELECT id, name
FROM inner_cte
)
SELECT id, name
FROM outer_cte;
Then perform a SQL export of the database/schema through phpMyAdmin.
The export then terminates with:
RuntimeException: No statement inside WITH
Expected result
phpMyAdmin should successfully export a valid MariaDB view containing nested CTEs and include its complete CREATE VIEW definition in the SQL export.
- Vorherrschende Sprache
- PHP
- Sterne
- 485
- Forks
- 119
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus phpmyadmin/sql-parser
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
phpmyadmin/sql-parser#655 · 1 Reaktion ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 65/100
phpmyadmin/sql-parser#662 · 2 Reaktionen ·
-
kind/support
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
phpmyadmin/sql-parser#653 · 1 Reaktion ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 70/100
phpmyadmin/sql-parser#649 ·
-
bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 25/100
phpmyadmin/sql-parser#643 · 1 Kommentar ·
Alle Issues in phpmyadmin/sql-parser
Ähnliche Issues
-
Bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
Automattic/safe-publish#594 ·
-
HttpClient
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
symfony/symfony-docs#23092 ·
-
sync-en
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
-
sync-en
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 95/100
-
Перевод устарел
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100