Subquery in expressions support
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
Piste de recherche
Commencez par examiner le chemin existant d’analyse des expressions et le parseur standard décrit dans les exemples. Déterminez comment un ExpressionParser séparé pourrait représenter et extraire des sous-requêtes tout en préservant la compatibilité, puis vérifiez que les exemples SELECT et WHERE IN produisent des sous-requêtes analysées exploitables.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
It seems to subqueries are poorly supported
Some examples first:
They are not parsed at all
SELECT * FROM (SELECT * FROM b) a
results in
...
PhpMyAdmin\SqlParser\Components\Expression Object
(
[database] =>
[table] =>
[column] =>
[expr] => (SELECT * FROM b)
[alias] => a
[function] =>
[subquery] => SELECT
)
...
not even extracted properly (see #254)
SELECT * FROM a WHERE a.field IN (SELECT * FROM b)
results in
...
...
PhpMyAdmin\SqlParser\Components\Condition Object
(
[identifiers] => Array
(
[0] => a
[1] => field
[2] => b
)
[isOperator] =>
[expr] => a.field IN (SELECT * FROM b)
)
...
So I have an idea. May be there must be separate ExpressionParser generating AST for expression? Those (including me) who needed parsed expression can use it (and extract subselects, and parse it with regular parser), and there will be no compatibility break.
Does it sounds as a good plan? If it does, I would like to implement it.
- 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é 2/5 1-3 heures Accessibilité débutants 68/100
phpmyadmin/sql-parser#655 · 1 réaction ·
-
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 ·
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