From ed7faaef5a9940f6b4a3a332020c74f0ea0aabc3 Mon Sep 17 00:00:00 2001 From: Brandon Chong Date: Wed, 17 Jun 2020 14:51:37 -0700 Subject: [PATCH] Internal Query : Fix Remove Antlr dependency for now (#1626) * backing out Antlr dependancy for now * removed check for zero query plan calls --- .../src/Microsoft.Azure.Cosmos.csproj | 1 - .../src/Query/Core/Parser/CstToAstVisitor.cs | 34 ++++++++++--------- .../src/Query/Core/Parser/ErrorListener.cs | 2 ++ .../src/Query/Core/Parser/IsqlListener.cs | 2 ++ .../src/Query/Core/Parser/IsqlVisitor.cs | 2 ++ .../src/Query/Core/Parser/LASets.cs | 3 ++ .../src/Query/Core/Parser/sqlBaseVisitor.cs | 2 ++ .../src/Query/Core/Parser/sqlLexer.cs | 2 ++ .../src/Query/Core/Parser/sqlParser.cs | 4 ++- .../src/SqlObjects/SqlQuery.cs | 9 +++++ .../Query/SanityQueryTests.cs | 2 ++ 11 files changed, 45 insertions(+), 18 deletions(-) diff --git a/Microsoft.Azure.Cosmos/src/Microsoft.Azure.Cosmos.csproj b/Microsoft.Azure.Cosmos/src/Microsoft.Azure.Cosmos.csproj index e5f715eca14..81f97fd6da3 100644 --- a/Microsoft.Azure.Cosmos/src/Microsoft.Azure.Cosmos.csproj +++ b/Microsoft.Azure.Cosmos/src/Microsoft.Azure.Cosmos.csproj @@ -82,7 +82,6 @@ - diff --git a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/CstToAstVisitor.cs b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/CstToAstVisitor.cs index 722cf6f2ab3..fad58f5f84f 100644 --- a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/CstToAstVisitor.cs +++ b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/CstToAstVisitor.cs @@ -4,6 +4,7 @@ namespace Microsoft.Azure.Cosmos.Query.Core.Parser { +#if false using System; using System.Collections.Generic; using Antlr4.Runtime.Tree; @@ -126,7 +127,7 @@ public override SqlObject VisitSql_query(sqlParser.Sql_queryContext context) sqlOffsetLimitClause); } - #region SELECT + #region SELECT public override SqlObject VisitSelect_clause(sqlParser.Select_clauseContext context) { SqlSelectSpec sqlSelectSpec = (SqlSelectSpec)this.Visit(context.selection()); @@ -200,8 +201,8 @@ public override SqlObject VisitTop_spec(sqlParser.Top_specContext context) Number64 topCount = CstToAstVisitor.GetNumber64ValueFromNode(context.NUMERIC_LITERAL()); return SqlTopSpec.Create(SqlNumberLiteral.Create(topCount)); } - #endregion - #region FROM + #endregion + #region FROM public override SqlObject VisitFrom_clause(sqlParser.From_clauseContext context) { Contract.Requires(context != null); @@ -310,16 +311,16 @@ public override SqlObject VisitStringPathExpression(sqlParser.StringPathExpressi return SqlStringPathExpression.Create(pathExpression, stringIndex); } - #endregion - #region WHERE + #endregion + #region WHERE public override SqlObject VisitWhere_clause(sqlParser.Where_clauseContext context) { Contract.Requires(context != null); SqlScalarExpression sqlScalarExpression = (SqlScalarExpression)this.Visit(context.scalar_expression()); return SqlWhereClause.Create(sqlScalarExpression); } - #endregion - #region GROUP BY + #endregion + #region GROUP BY public override SqlObject VisitGroup_by_clause(sqlParser.Group_by_clauseContext context) { Contract.Requires(context != null); @@ -332,8 +333,8 @@ public override SqlObject VisitGroup_by_clause(sqlParser.Group_by_clauseContext return SqlGroupByClause.Create(groupByColumns); } - #endregion - #region ORDER BY + #endregion + #region ORDER BY public override SqlObject VisitOrder_by_clause(sqlParser.Order_by_clauseContext context) { Contract.Requires(context != null); @@ -365,8 +366,8 @@ public override SqlObject VisitOrder_by_clause(sqlParser.Order_by_clauseContext return SqlOrderbyClause.Create(orderByItems); } - #endregion - #region OFFSET LIMIT + #endregion + #region OFFSET LIMIT public override SqlObject VisitOffset_limit_clause(sqlParser.Offset_limit_clauseContext context) { Contract.Requires(context != null); @@ -383,8 +384,8 @@ public override SqlObject VisitOffset_limit_clause(sqlParser.Offset_limit_clause return SqlOffsetLimitClause.Create(sqlOffsetSpec, sqlLimitSpec); } - #endregion - #region ScalarExpressions + #endregion + #region ScalarExpressions public override SqlObject VisitArrayCreateScalarExpression(sqlParser.ArrayCreateScalarExpressionContext context) { Contract.Requires(context != null); @@ -637,9 +638,9 @@ public override SqlObject VisitUnaryScalarExpression(sqlParser.UnaryScalarExpres return SqlUnaryScalarExpression.Create(unaryOperator, expression); } - #endregion + #endregion - #region NOT IMPLEMENTED ON PURPOSE + #region NOT IMPLEMENTED ON PURPOSE public override SqlObject VisitBinary_operator(sqlParser.Binary_operatorContext context) { throw new NotSupportedException(); @@ -689,7 +690,7 @@ public override SqlObject VisitScalar_expression_list(sqlParser.Scalar_expressio { throw new NotSupportedException(); } - #endregion + #endregion private sealed class UnknownSqlObjectException : ArgumentOutOfRangeException { @@ -724,4 +725,5 @@ private static Number64 GetNumber64ValueFromNode(IParseTree parseTree) return number64; } } +#endif } diff --git a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/ErrorListener.cs b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/ErrorListener.cs index ee201c73e57..2f04662eec8 100644 --- a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/ErrorListener.cs +++ b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/ErrorListener.cs @@ -6,6 +6,7 @@ namespace Microsoft.Azure.Cosmos.Query.Core.Parser { + #if false using System; using System.Collections.Generic; using System.IO; @@ -66,4 +67,5 @@ public ErrorListener(Parser parser, Lexer lexer, CommonTokenStream token_stream) base.SyntaxError(output, recognizer, offendingSymbol, line, col, msg, e); } } +#endif } \ No newline at end of file diff --git a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/IsqlListener.cs b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/IsqlListener.cs index b77c525ef34..0b7d1cd50fa 100644 --- a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/IsqlListener.cs +++ b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/IsqlListener.cs @@ -21,6 +21,7 @@ namespace Microsoft.Azure.Cosmos.Query.Core.Parser { + #if false using Antlr4.Runtime.Misc; using IParseTreeListener = Antlr4.Runtime.Tree.IParseTreeListener; @@ -582,4 +583,5 @@ internal interface IsqlListener : IParseTreeListener /// The parse tree. void ExitLiteral([NotNull] sqlParser.LiteralContext context); } +#endif } diff --git a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/IsqlVisitor.cs b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/IsqlVisitor.cs index 802ad222cae..830df594607 100644 --- a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/IsqlVisitor.cs +++ b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/IsqlVisitor.cs @@ -21,6 +21,7 @@ namespace Microsoft.Azure.Cosmos.Query.Core.Parser { + #if false using Antlr4.Runtime.Misc; using Antlr4.Runtime.Tree; using IToken = Antlr4.Runtime.IToken; @@ -359,4 +360,5 @@ internal interface IsqlVisitor : IParseTreeVisitor /// The visitor result. Result VisitLiteral([NotNull] sqlParser.LiteralContext context); } +#endif } \ No newline at end of file diff --git a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/LASets.cs b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/LASets.cs index 3b3dccb9419..eb5e79db540 100644 --- a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/LASets.cs +++ b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/LASets.cs @@ -6,6 +6,7 @@ namespace Microsoft.Azure.Cosmos.Query.Core.Parser { +#if false using System; using System.Collections.Generic; using System.Diagnostics; @@ -17,6 +18,7 @@ namespace Microsoft.Azure.Cosmos.Query.Core.Parser internal class LASets { + private readonly Dictionary, bool> visited = new Dictionary, bool>(); private readonly bool logParse = false; private readonly bool logClosure = false; @@ -795,4 +797,5 @@ private string PrintResult(List> all_parses) return sb.ToString(); } } +#endif } diff --git a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlBaseVisitor.cs b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlBaseVisitor.cs index 11a2fb31b1a..f2189c00cd1 100644 --- a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlBaseVisitor.cs +++ b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlBaseVisitor.cs @@ -21,6 +21,7 @@ namespace Microsoft.Azure.Cosmos.Query.Core.Parser { + #if false using Antlr4.Runtime.Misc; using Antlr4.Runtime.Tree; @@ -562,4 +563,5 @@ internal partial class sqlBaseVisitor : AbstractParseTreeVisitor /// The visitor result. public virtual Result VisitLiteral([NotNull] sqlParser.LiteralContext context) { return VisitChildren(context); } } +#endif } \ No newline at end of file diff --git a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlLexer.cs b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlLexer.cs index 6d10bc8dc0a..cd6dd563976 100644 --- a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlLexer.cs +++ b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlLexer.cs @@ -21,6 +21,7 @@ namespace Microsoft.Azure.Cosmos.Query.Core.Parser { + #if false using System; using System.IO; using Antlr4.Runtime; @@ -562,4 +563,5 @@ static sqlLexer() public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN); } +#endif } diff --git a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlParser.cs b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlParser.cs index 0811b9af4ea..cc93367f5e4 100644 --- a/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlParser.cs +++ b/Microsoft.Azure.Cosmos/src/Query/Core/Parser/sqlParser.cs @@ -21,6 +21,7 @@ namespace Microsoft.Azure.Cosmos.Query.Core.Parser { + #if false using System; using System.IO; using Antlr4.Runtime; @@ -3325,4 +3326,5 @@ private bool scalar_expression_sempred(Scalar_expressionContext _localctx, int p public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN); } -} +#endif +} \ No newline at end of file diff --git a/Microsoft.Azure.Cosmos/src/SqlObjects/SqlQuery.cs b/Microsoft.Azure.Cosmos/src/SqlObjects/SqlQuery.cs index bb8d470bf86..20da8827da5 100644 --- a/Microsoft.Azure.Cosmos/src/SqlObjects/SqlQuery.cs +++ b/Microsoft.Azure.Cosmos/src/SqlObjects/SqlQuery.cs @@ -5,8 +5,10 @@ namespace Microsoft.Azure.Cosmos.Sql { using System; using System.Runtime.ExceptionServices; +#if false using Antlr4.Runtime; using Antlr4.Runtime.Misc; +#endif using Microsoft.Azure.Cosmos.Query.Core.Parser; internal sealed class SqlQuery : SqlObject @@ -66,6 +68,7 @@ public static bool TryParse(string text, out SqlQuery sqlQuery) throw new ArgumentNullException(nameof(text)); } +#if false AntlrInputStream str = new AntlrInputStream(text); sqlLexer lexer = new sqlLexer(str); CommonTokenStream tokens = new CommonTokenStream(lexer); @@ -95,8 +98,13 @@ public static bool TryParse(string text, out SqlQuery sqlQuery) sqlQuery = (SqlQuery)CstToAstVisitor.Singleton.Visit(programContext); return true; +#else + sqlQuery = default; + return false; +#endif } +#if false private sealed class ThrowExceptionOnErrors : IAntlrErrorStrategy { public static readonly ThrowExceptionOnErrors Singleton = new ThrowExceptionOnErrors(); @@ -137,5 +145,6 @@ public void Sync(Parser recognizer) // Do nothing } } +#endif } } diff --git a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Query/SanityQueryTests.cs b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Query/SanityQueryTests.cs index 5da1ac134bd..228db1a6d61 100644 --- a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Query/SanityQueryTests.cs +++ b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/Query/SanityQueryTests.cs @@ -675,10 +675,12 @@ async Task> AssertPassthroughAsync(string query, Cosmos.Part Assert.IsTrue(feedOptions.TestSettings.Stats.PipelineType.HasValue); Assert.AreEqual(TestInjections.PipelineType.Passthrough, feedOptions.TestSettings.Stats.PipelineType.Value); +#if false if (pk.HasValue) { Assert.AreEqual(0, cosmosQueryClientCore.QueryPlanCalls); } +#endif return queryResults; }