phpmyadmin / phpmyadmin/sql-parser

CREATE TABLE statement not properly parsed or build

Offen
#256 7 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug help wanted
Vorherrschende Sprache
PHP
Sterne
485
Forks
119
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

$sql    = 'CREATE TABLE tab1 (`col1` TIMESTAMP /*!40100 DEFAULT NULL */)';
$parser = new Parser($sql);
$s3     = $parser->statements[0]->build();
// $s3 wrongly contains end-of-comment
// CREATE TABLE tab1 (
//  `col1` timestamp DEFAULT NULL */
//)

//PHP 7.1.18
//"name": "phpmyadmin/sql-parser",
//"version": "5.0.0",

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der PHP-Reproduktion unter Verwendung von Parser und statements[0]->build(), und untersuche dann, wie der versionierte MySQL-Kommentar in der CREATE TABLE-Anweisung tokenisiert und gerendert wird. Die Aufgabe ist abgeschlossen, wenn das generierte SQL nach DEFAULT NULL nicht mehr den schließenden Marker des Kommentars enthält und eine Regressionstestabdeckung für dieses Beispiel vorhanden ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
mysql, php, sql
Bereich
databases, devtools
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.