phpmyadmin / phpmyadmin/sql-parser

Formatter doesn't handle CASE expressions and statements

Abierto
#274 0 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug
Lenguaje dominante
PHP
Estrellas
485
Forks
119
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Formatter doesn't handle CASE expressions and CASE statements.

Related to #272.

Examples:

CASE expression:

-- original
SELECT CASE 1
    WHEN 1 THEN
        'one'
    WHEN 2 THEN
        'two'
    ELSE
        'more'
END;

-- formatted
SELECT CASE
    1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more'
END;

CASE statement:

-- original
CREATE PROCEDURE p()
BEGIN
    DECLARE
        v INT DEFAULT 1;
    CASE v
        WHEN 2 THEN
            SELECT v;
        WHEN 3 THEN
            SELECT 0;
        ELSE
            BEGIN
            END;
    END CASE;
END;

-- formatted
CREATE PROCEDURE p()
BEGIN
    DECLARE
        v INT DEFAULT 1; CASE v WHEN 2 THEN
    SELECT
        v; WHEN 3 THEN
    SELECT
        0; ELSE
    BEGIN
        END
            ;
    END CASE;
END;

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Usa las referencias de MySQL sobre la expresión CASE y la sentencia CASE, además de los dos ejemplos de formato, como casos de aceptación. Compara el comportamiento actual de formatter con el issue relacionado #272, luego localiza el punto de entrada de formatter y añade cobertura para ambas formas; se considera terminado cuando cada ejemplo conserva una indentación legible de CASE y de las cláusulas de la sentencia.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
mysql, php
Área
databases
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.