Missing space before UNION when building CREATE VIEW
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 68/100
Piste de recherche
Commencez par CreateStatement::build() et reproduisez le problème avec l’exemple SQL via PhpMyAdmin\SqlParser\Parser. Vérifiez que la reconstruction de CREATE VIEW préserve l’espace blanc avant le corps UNION final et produise du SQL valide plutôt que 3union all.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- PHP
- Étoiles
- 485
- Forks
- 119
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de phpmyadmin/sql-parser
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
phpmyadmin/sql-parser#666 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 65/100
phpmyadmin/sql-parser#662 · 2 réactions ·
-
MariaDB and MySQL contexts Ouvertekind/support
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
phpmyadmin/sql-parser#653 · 1 réaction ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 70/100
phpmyadmin/sql-parser#649 ·
-
Support `PAGE_COMPRESSED`=1` Ouvertebug
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
phpmyadmin/sql-parser#643 · 1 commentaire ·
Toutes les issues de phpmyadmin/sql-parser
Issues similaires
-
Solved site promotion gate fails on runner PHP patch drift (expects 8.2.33, runner installs 8.2.34) Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Automattic/blocks-engine#2161 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Automattic/static-site-importer#1824 ·
-
[Chore] Keep one viget-block-generator skill and replicate it, instead of four tracked copies Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
Cannot reset column width Ouverte0. Needs triage bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
0. Needs triage 35-feedback bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100