Missing space before UNION when building CREATE VIEW
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 68/100
Direção de pesquisa
Comece em CreateStatement::build() e reproduza o problema com o exemplo de SQL por meio de PhpMyAdmin\SqlParser\Parser. Verifique se a reconstrução de CREATE VIEW preserva o espaço em branco antes do corpo UNION final e produz SQL válido em vez de 3union all.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- PHP
- Estrelas
- 485
- Forks
- 119
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de phpmyadmin/sql-parser
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
phpmyadmin/sql-parser#666 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 65/100
phpmyadmin/sql-parser#662 · 2 reações ·
-
MariaDB and MySQL contexts Abertakind/support
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
phpmyadmin/sql-parser#653 · 1 reação ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 70/100
phpmyadmin/sql-parser#649 ·
-
Support `PAGE_COMPRESSED`=1` Abertabug
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
phpmyadmin/sql-parser#643 · 1 comentário ·
Todas as issues de phpmyadmin/sql-parser
Issues semelhantes
-
sync-en
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 85/100
-
sync-en
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 85/100
-
Перевод устарел
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 78/100
-
[6.x]: "Cannot use object of type stdClass as array" loading Users index (regression of #19182) Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100