MDX Parser for Java and .NET

General SQL Parser (GSP) parses MDX — Multidimensional Expressions for Analysis Services cubes — with a dedicated, hand-tuned grammar: full AST access, offline syntax validation, and column-level data lineage for cube queries. One commercial SDK, available for Java and .NET.

55
MDX test SQL files in the regression corpus
Weekly
release cadence — dialect fixes ship in days

MDX queries that GSP parses

SELECT [Measures].[Sales Amount] ON COLUMNS,
  [Product].[Category].Members ON ROWS
FROM [Adventure Works];

Parse it in Java

import gudusoft.gsqlparser.*;

TGSqlParser parser = new TGSqlParser(EDbVendor.dbvmdx);
parser.sqltext = sql; // the MDX query above
if (parser.parse() == 0) {
    System.out.println(parser.sqlstatements.size() + " statement(s) parsed");
} else {
    System.out.println(parser.getErrormessage());
}

Parse it in C#

using gudusoft.gsqlparser;

TGSqlParser parser = new TGSqlParser(EDbVendor.dbvmdx);
parser.sqltext = sql; // the MDX query above
if (parser.parse() == 0)
{
    Console.WriteLine(parser.sqlstatements.size() + " statement(s) parsed");
}
else
{
    Console.WriteLine(parser.Errormessage);
}

Same grammar, .NET-idiomatic API — properties instead of Java getters. See the C# quick start or the .NET SQL Parser SDK.

What GSP handles in MDX

Beyond parsing, the same AST powers table/column extraction, validation, formatting, and column-level lineage for MDX.

Recent MDX parser updates

Full history in the release notes.

MDX resources

Common questions

Do I need a live MDX connection to validate queries?

No. GSP validates MDX syntax completely offline. You get error line and column positions, the offending token, and a hint — with no server, driver, or credentials involved.

Can I use the MDX parser from C# / .NET?

Yes. The .NET edition parses MDX with the same grammar, and the API is idiomatic .NET rather than a Java transliteration: where Java has parser.getErrormessage() and stmt.getResultColumnList(), C# has parser.Errormessage and stmt.ResultColumnList. The package id is gudusoft.gsqlparser, multi-targeting net10.0 and netstandard2.0, so .NET Framework 4.6.2+ hosts are covered too.

Can GSP extract column-level lineage from MDX queries?

Yes. The built-in DataFlowAnalyzer produces column-level lineage, impact analysis, and call graphs from MDX scripts — it is the engine behind Gudu SQLFlow and the lineage integrations for DataHub and OpenMetadata.