diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/tdsparser.java b/src/main/java/com/microsoft/sqlserver/jdbc/tdsparser.java index 3e6a60785..df34c8e6d 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/tdsparser.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/tdsparser.java @@ -160,6 +160,9 @@ class TDSTokenHandler { private StreamError databaseError; + /** TDS protocol diagnostics logger */ + private static Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc.internals.TDS.TOKEN"); + final StreamError getDatabaseError() { return databaseError; } @@ -227,7 +230,10 @@ boolean onOrder(TDSReader tdsReader) throws SQLServerException { } boolean onColMetaData(TDSReader tdsReader) throws SQLServerException { - TDSParser.throwUnexpectedTokenException(tdsReader, logContext); + //SHOWPLAN might be ON, instead of throwing an exception, ignore the column meta data + if (logger.isLoggable(Level.SEVERE)) + logger.severe(tdsReader.toString() + ": " + logContext + ": Encountered " + + TDS.getTokenName(tdsReader.peekTokenType()) + ". SHOWPLAN is ON, ignoring."); return false; }