Missing space before UNION when building CREATE VIEW
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
Direzione di ricerca
Parti da CreateStatement::build() e riproduci il problema con l’esempio SQL tramite PhpMyAdmin\SqlParser\Parser. Verifica che la ricostruzione di CREATE VIEW conservi lo spazio bianco prima del corpo UNION finale e produca SQL valido invece di 3union all.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
When CreateStatement::build() reconstructs a CREATE VIEW ... AS SELECT ... UNION ...
statement, the output misses the whitespace between the built SELECT and the
trailing body tokens. Result: invalid SQL such as ... WHERE 3 = 3union all (...).
This was previously reported downstream in phpMyAdmin:
- phpmyadmin/phpmyadmin#19692
- phpmyadmin/phpmyadmin#18515 (same bug, older)
Reproduction
use PhpMyAdmin\SqlParser\Parser;
$sql = "CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER "
. "VIEW `v1` AS select 1 AS `a` where 3 = 3 union all (select 2 AS `a`)";
echo (new Parser($sql))->statements[0]->build();
Actual output:
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS SELECT 1 AS `a` WHERE 3 = 3union all (select 2 AS `a`)
(note: 3 = 3union all — no space).
Expected: a space before union all, producing valid SQL.
Environment
- Library version: current
master(headf440917e) - PHP: 8.4
- Lingua principale
- PHP
- Stelle
- 485
- Fork
- 119
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di phpmyadmin/sql-parser
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
phpmyadmin/sql-parser#666 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
phpmyadmin/sql-parser#662 · 2 reazioni ·
-
MariaDB and MySQL contexts Apertakind/support
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
phpmyadmin/sql-parser#653 · 1 reazione ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 70/100
phpmyadmin/sql-parser#649 ·
-
Support `PAGE_COMPRESSED`=1` Apertabug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
phpmyadmin/sql-parser#643 · 1 commento ·
Tutte le issue di phpmyadmin/sql-parser
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
phpstan/phpstan-doctrine#794 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
SocialiteProviders/Providers#1493 ·
-
support
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
sync-en
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100