From d75edd0dbe6c72535d9fad40d9b3397e3367056a Mon Sep 17 00:00:00 2001 From: Udeesha Gautam <46980425+udeeshagautam@users.noreply.github.com> Date: Wed, 30 Oct 2019 14:51:41 -0700 Subject: [PATCH] Revert "Explicitly erroring out on some failing commands that were not already included (#882)" (#887) This reverts commit 57b7126ccf1d430f4a184c7c412228ca7a5eb4f1. --- .../ExecutionEngineCode/ExecutionEngine.cs | 7 +------ .../BatchParser/Parser.cs | 21 ++++++++++++------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/Microsoft.SqlTools.ManagedBatchParser/BatchParser/ExecutionEngineCode/ExecutionEngine.cs b/src/Microsoft.SqlTools.ManagedBatchParser/BatchParser/ExecutionEngineCode/ExecutionEngine.cs index 03241572..99d5c8cc 100644 --- a/src/Microsoft.SqlTools.ManagedBatchParser/BatchParser/ExecutionEngineCode/ExecutionEngine.cs +++ b/src/Microsoft.SqlTools.ManagedBatchParser/BatchParser/ExecutionEngineCode/ExecutionEngine.cs @@ -485,12 +485,7 @@ namespace Microsoft.SqlTools.ServiceLayer.BatchParser.ExecutionEngineCode } catch (BatchParserException ex) { - if (ex.ErrorCode == ErrorCode.UnsupportedCommand) - { - result = ScriptExecutionResult.Failure; - RaiseScriptError(string.Format(CultureInfo.CurrentCulture, ex.Message), ScriptMessageType.FatalError); - } - else if (ex.ErrorCode != ErrorCode.Aborted) + if (ex.ErrorCode != ErrorCode.Aborted) { result = ScriptExecutionResult.Failure; string info = ex.Text; diff --git a/src/Microsoft.SqlTools.ManagedBatchParser/BatchParser/Parser.cs b/src/Microsoft.SqlTools.ManagedBatchParser/BatchParser/Parser.cs index 35489968..e1a87ed4 100644 --- a/src/Microsoft.SqlTools.ManagedBatchParser/BatchParser/Parser.cs +++ b/src/Microsoft.SqlTools.ManagedBatchParser/BatchParser/Parser.cs @@ -370,6 +370,12 @@ namespace Microsoft.SqlTools.ServiceLayer.BatchParser LexerTokenType tokenType = LookaheadTokenType; switch (tokenType) { + case LexerTokenType.OnError: + RemoveLastWhitespaceToken(); + Token onErrorToken = LookaheadToken; + Accept(); + ParseOnErrorCommand(onErrorToken); + break; case LexerTokenType.Eof: if (tokenBuffer.Count > 0) { @@ -381,6 +387,11 @@ namespace Microsoft.SqlTools.ServiceLayer.BatchParser Accept(); ParseGo(); break; + case LexerTokenType.Include: + RemoveLastWhitespaceToken(); + Accept(); + ParseInclude(); + break; case LexerTokenType.Comment: case LexerTokenType.NewLine: case LexerTokenType.Text: @@ -394,21 +405,17 @@ namespace Microsoft.SqlTools.ServiceLayer.BatchParser Accept(); ParseSetvar(setvarToken); break; - // Supported by SSMS but not by ADS - case LexerTokenType.Include: - case LexerTokenType.OnError: case LexerTokenType.Connect: + case LexerTokenType.Ed: case LexerTokenType.ErrorCommand: case LexerTokenType.Execute: case LexerTokenType.Exit: - case LexerTokenType.Out: - case LexerTokenType.Quit: - // not supported on SSMS or ADS - case LexerTokenType.Ed: case LexerTokenType.Help: case LexerTokenType.List: case LexerTokenType.ListVar: + case LexerTokenType.Out: case LexerTokenType.Perftrace: + case LexerTokenType.Quit: case LexerTokenType.Reset: case LexerTokenType.Serverlist: case LexerTokenType.Xml: