Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Internal Parser Error when trying to parse (legit) syntax

Offen
#55 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

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

Rechercherichtung

Beginne mit dem Einstiegspunkt Parser.Parser.Parse sowie der bereitgestellten SQL-Anweisung und ParseOptions. Verfolge den Fehler durch VersionedParserBase.Parse und SqlCodeDom.SqlCodeObject.SetParentPointers und identifiziere mithilfe des Aufrufstapels das Nullobjekt. Die Aufgabe ist abgeschlossen, wenn die gezeigte Graphabfrage ohne SqlParserInternalParserError geparst wird und ein Regressionstest sie abdeckt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Using the below SMO version:

    <PackageReference Include="Microsoft.SqlServer.SqlManagementObjects" Version="161.46367.54" />

The below code throws SqlParserInternalParserError:

            var sql = @"SELECT * FROM n as n1, e, n as n2 WHERE MATCH (n1-(e)->n2)";

            Microsoft.SqlServer.Management.SqlParser.Parser.ParseOptions resultOptions;
            var res = Microsoft.SqlServer.Management.SqlParser.Parser.Parser.Parse(sql,
                new ParseOptions("GO",
                true,
                Microsoft.SqlServer.Management.SqlParser.Common.DatabaseCompatibilityLevel.Azure,
                Microsoft.SqlServer.Management.SqlParser.Common.TransactSqlVersion.Azure),
                out resultOptions);

Here is the associated call stack:

Unhandled exception. Microsoft.SqlServer.Management.SqlParser.SqlParserInternalParserError: Internal Parser Error
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.SetParentPointers()
   at Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.SetParentPointers()
   at Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.SetParentPointers()
   at Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.SetParentPointers()
   at Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlStatement.SetParentPointers()
   at Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.SetParentPointers()
   at Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.SetParentPointers()
   at Microsoft.SqlServer.Management.SqlParser.Parser.Internals.VersionedParserBase.Parse(Boolean isIncremental, String sql, SqlScript prevScript, ParseOptions options, ParseOptions& resultOptions)
   --- End of inner exception stack trace ---
   at Microsoft.SqlServer.Management.SqlParser.Parser.Internals.VersionedParserBase.Parse(Boolean isIncremental, String sql, SqlScript prevScript, ParseOptions options, ParseOptions& resultOptions)
   at Microsoft.SqlServer.Management.SqlParser.Parser.Parser.Parse(Boolean isIncremental, String sql, ParseResult prevResult, ParseOptions options, ParseOptions& resultOptions)
   at Microsoft.SqlServer.Management.SqlParser.Parser.Parser.Parse(String sql, ParseOptions options, ParseOptions& resultOptions)
Vorherrschende Sprache
C#
Sterne
143
Forks
28
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/sqlmanagementobjects

Alle Issues in microsoft/sqlmanagementobjects

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

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