public final class com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData implements java.sql.DatabaseMetaData, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -116977606028371577

  private com.microsoft.sqlserver.jdbc.SQLServerConnection connection;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
    flags: (0x0002) ACC_PRIVATE

  static final java.lang.String urlprefix;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "jdbc:sqlserver://"

  private static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.logging.Logger loggerExternal;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.concurrent.atomic.AtomicInteger baseID;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.String traceID;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final int MAXLOBSIZE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2147483647

  static final int uniqueidentifierSize;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 36

  java.util.EnumMap<com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles, com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$HandleAssociation> handleMap;
    descriptor: Ljava/util/EnumMap;
    flags: (0x0000) 
    Signature: Ljava/util/EnumMap<Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$HandleAssociation;>;

  private static final java.lang.String ASC_OR_DESC;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ASC_OR_DESC"

  private static final java.lang.String ATTR_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ATTR_NAME"

  private static final java.lang.String ATTR_TYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ATTR_TYPE_NAME"

  private static final java.lang.String ATTR_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ATTR_SIZE"

  private static final java.lang.String ATTR_DEF;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ATTR_DEF"

  private static final java.lang.String BASE_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "BASE_TYPE"

  private static final java.lang.String BUFFER_LENGTH;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "BUFFER_LENGTH"

  private static final java.lang.String CARDINALITY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "CARDINALITY"

  private static final java.lang.String CHAR_OCTET_LENGTH;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "CHAR_OCTET_LENGTH"

  private static final java.lang.String CLASS_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "CLASS_NAME"

  private static final java.lang.String COLUMN_DEF;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "COLUMN_DEF"

  private static final java.lang.String COLUMN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "COLUMN_NAME"

  private static final java.lang.String COLUMN_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "COLUMN_SIZE"

  private static final java.lang.String COLUMN_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "COLUMN_TYPE"

  private static final java.lang.String DATA_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "DATA_TYPE"

  private static final java.lang.String DECIMAL_DIGITS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "DECIMAL_DIGITS"

  private static final java.lang.String DEFERRABILITY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "DEFERRABILITY"

  private static final java.lang.String DELETE_RULE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "DELETE_RULE"

  private static final java.lang.String FILTER_CONDITION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FILTER_CONDITION"

  private static final java.lang.String FK_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FK_NAME"

  private static final java.lang.String FKCOLUMN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FKCOLUMN_NAME"

  private static final java.lang.String FKTABLE_CAT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FKTABLE_CAT"

  private static final java.lang.String FKTABLE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FKTABLE_NAME"

  private static final java.lang.String FKTABLE_SCHEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FKTABLE_SCHEM"

  private static final java.lang.String GRANTEE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "GRANTEE"

  private static final java.lang.String GRANTOR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "GRANTOR"

  private static final java.lang.String INDEX_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "INDEX_NAME"

  private static final java.lang.String INDEX_QUALIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "INDEX_QUALIFIER"

  private static final java.lang.String IS_GRANTABLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "IS_GRANTABLE"

  private static final java.lang.String IS_NULLABLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "IS_NULLABLE"

  private static final java.lang.String KEY_SEQ;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "KEY_SEQ"

  private static final java.lang.String LENGTH;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "LENGTH"

  private static final java.lang.String NON_UNIQUE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "NON_UNIQUE"

  private static final java.lang.String NULLABLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "NULLABLE"

  private static final java.lang.String NUM_INPUT_PARAMS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "NUM_INPUT_PARAMS"

  private static final java.lang.String NUM_OUTPUT_PARAMS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "NUM_OUTPUT_PARAMS"

  private static final java.lang.String NUM_PREC_RADIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "NUM_PREC_RADIX"

  private static final java.lang.String NUM_RESULT_SETS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "NUM_RESULT_SETS"

  private static final java.lang.String ORDINAL_POSITION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ORDINAL_POSITION"

  private static final java.lang.String PAGES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PAGES"

  private static final java.lang.String PK_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PK_NAME"

  private static final java.lang.String PKCOLUMN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PKCOLUMN_NAME"

  private static final java.lang.String PKTABLE_CAT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PKTABLE_CAT"

  private static final java.lang.String PKTABLE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PKTABLE_NAME"

  private static final java.lang.String PKTABLE_SCHEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PKTABLE_SCHEM"

  private static final java.lang.String PRECISION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PRECISION"

  private static final java.lang.String PRIVILEGE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PRIVILEGE"

  private static final java.lang.String PROCEDURE_CAT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PROCEDURE_CAT"

  private static final java.lang.String PROCEDURE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PROCEDURE_NAME"

  private static final java.lang.String PROCEDURE_SCHEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PROCEDURE_SCHEM"

  private static final java.lang.String PROCEDURE_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PROCEDURE_TYPE"

  private static final java.lang.String PSEUDO_COLUMN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PSEUDO_COLUMN"

  private static final java.lang.String RADIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "RADIX"

  private static final java.lang.String REMARKS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "REMARKS"

  private static final java.lang.String SCALE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SCALE"

  private static final java.lang.String SCOPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SCOPE"

  private static final java.lang.String SCOPE_CATALOG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SCOPE_CATALOG"

  private static final java.lang.String SCOPE_SCHEMA;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SCOPE_SCHEMA"

  private static final java.lang.String SCOPE_TABLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SCOPE_TABLE"

  private static final java.lang.String SOURCE_DATA_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SOURCE_DATA_TYPE"

  private static final java.lang.String SQL_DATA_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SQL_DATA_TYPE"

  private static final java.lang.String SQL_DATETIME_SUB;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SQL_DATETIME_SUB"

  private static final java.lang.String SS_DATA_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SS_DATA_TYPE"

  private static final java.lang.String SUPERTABLE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SUPERTABLE_NAME"

  private static final java.lang.String SUPERTYPE_CAT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SUPERTYPE_CAT"

  private static final java.lang.String SUPERTYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SUPERTYPE_NAME"

  private static final java.lang.String SUPERTYPE_SCHEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SUPERTYPE_SCHEM"

  private static final java.lang.String TABLE_CAT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "TABLE_CAT"

  private static final java.lang.String TABLE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "TABLE_NAME"

  private static final java.lang.String TABLE_SCHEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "TABLE_SCHEM"

  private static final java.lang.String TABLE_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "TABLE_TYPE"

  private static final java.lang.String TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "TYPE"

  private static final java.lang.String TYPE_CAT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "TYPE_CAT"

  private static final java.lang.String TYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "TYPE_NAME"

  private static final java.lang.String TYPE_SCHEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "TYPE_SCHEM"

  private static final java.lang.String UPDATE_RULE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "UPDATE_RULE"

  private static final java.lang.String FUNCTION_CAT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FUNCTION_CAT"

  private static final java.lang.String FUNCTION_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FUNCTION_NAME"

  private static final java.lang.String FUNCTION_SCHEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FUNCTION_SCHEM"

  private static final java.lang.String FUNCTION_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FUNCTION_TYPE"

  private static final java.lang.String SS_IS_SPARSE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SS_IS_SPARSE"

  private static final java.lang.String SS_IS_COLUMN_SET;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SS_IS_COLUMN_SET"

  private static final java.lang.String IS_GENERATEDCOLUMN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "IS_GENERATEDCOLUMN"

  private static final java.lang.String IS_AUTOINCREMENT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "IS_AUTOINCREMENT"

  private static final java.lang.String SQL_KEYWORDS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.util.LinkedHashMap<java.lang.Integer, java.lang.String> getColumnsDWColumns;
    descriptor: Ljava/util/LinkedHashMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/LinkedHashMap<Ljava/lang/Integer;Ljava/lang/String;>;

  private static java.util.LinkedHashMap<java.lang.Integer, java.lang.String> getImportedKeysDWColumns;
    descriptor: Ljava/util/LinkedHashMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/LinkedHashMap<Ljava/lang/Integer;Ljava/lang/String;>;

  private static final java.lang.String[] getColumnPrivilegesColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] getTablesColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final char LEFT_BRACKET;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 91

  static final char RIGHT_BRACKET;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 93

  static final char ESCAPE;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 92

  static final char PERCENT;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 37

  static final char UNDERSCORE;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 95

  static final char[] DOUBLE_RIGHT_BRACKET;
    descriptor: [C
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] getFunctionsColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] getFunctionsColumnsColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] getBestRowIdentifierColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] getIndexInfoColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] getPrimaryKeysColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] getProcedureColumnsColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] getProceduresColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] getTablePrivilegesColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] getVersionColumnsColumnNames;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 35
            ldc Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.$assertionsDisabled:Z
         3: .line 46
            ldc "com.microsoft.sqlserver.jdbc.internals.SQLServerDatabaseMetaData"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
         4: .line 45
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.logger:Ljava/util/logging/Logger;
         5: .line 49
            ldc "com.microsoft.sqlserver.jdbc.internals.DatabaseMetaData"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
         6: .line 48
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
         7: .line 51
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.baseID:Ljava/util/concurrent/atomic/AtomicInteger;
         8: .line 266
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.createSqlKeyWords:()Ljava/lang/String;
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.SQL_KEYWORDS:Ljava/lang/String;
         9: .line 269
            aconst_null
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getColumnsDWColumns:Ljava/util/LinkedHashMap;
        10: .line 270
            aconst_null
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getImportedKeysDWColumns:Ljava/util/LinkedHashMap;
        11: .line 488
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
            ldc "TABLE_CAT"
            aastore
            dup
            iconst_1
            ldc "TABLE_SCHEM"
            aastore
            dup
            iconst_2
        12: .line 489
            ldc "TABLE_NAME"
            aastore
            dup
            iconst_3
            ldc "COLUMN_NAME"
            aastore
            dup
            iconst_4
            ldc "GRANTOR"
            aastore
            dup
            iconst_5
            ldc "GRANTEE"
            aastore
            dup
            bipush 6
            ldc "PRIVILEGE"
            aastore
            dup
            bipush 7
        13: .line 490
            ldc "IS_GRANTABLE"
            aastore
        14: .line 488
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getColumnPrivilegesColumnNames:[Ljava/lang/String;
        15: .line 515
            iconst_5
            anewarray java.lang.String
            dup
            iconst_0
            ldc "TABLE_CAT"
            aastore
            dup
            iconst_1
            ldc "TABLE_SCHEM"
            aastore
            dup
            iconst_2
            ldc "TABLE_NAME"
            aastore
            dup
            iconst_3
        16: .line 516
            ldc "TABLE_TYPE"
            aastore
            dup
            iconst_4
            ldc "REMARKS"
            aastore
        17: .line 515
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getTablesColumnNames:[Ljava/lang/String;
        18: .line 557
            iconst_2
            newarray 5
            dup
            iconst_0
            bipush 93
            castore
            dup
            iconst_1
            bipush 93
            castore
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.DOUBLE_RIGHT_BRACKET:[C
        19: .line 816
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
            ldc "FUNCTION_CAT"
            aastore
            dup
            iconst_1
            ldc "FUNCTION_SCHEM"
            aastore
            dup
            iconst_2
        20: .line 817
            ldc "FUNCTION_NAME"
            aastore
            dup
            iconst_3
            ldc "NUM_INPUT_PARAMS"
            aastore
            dup
            iconst_4
            ldc "NUM_OUTPUT_PARAMS"
            aastore
            dup
            iconst_5
            ldc "NUM_RESULT_SETS"
            aastore
            dup
            bipush 6
        21: .line 818
            ldc "REMARKS"
            aastore
            dup
            bipush 7
            ldc "FUNCTION_TYPE"
            aastore
        22: .line 816
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getFunctionsColumnNames:[Ljava/lang/String;
        23: .line 844
            bipush 19
            anewarray java.lang.String
            dup
            iconst_0
            ldc "FUNCTION_CAT"
            aastore
            dup
            iconst_1
            ldc "FUNCTION_SCHEM"
            aastore
            dup
            iconst_2
        24: .line 845
            ldc "FUNCTION_NAME"
            aastore
            dup
            iconst_3
            ldc "COLUMN_NAME"
            aastore
            dup
            iconst_4
            ldc "COLUMN_TYPE"
            aastore
            dup
            iconst_5
            ldc "DATA_TYPE"
            aastore
            dup
            bipush 6
            ldc "TYPE_NAME"
            aastore
            dup
            bipush 7
        25: .line 846
            ldc "PRECISION"
            aastore
            dup
            bipush 8
            ldc "LENGTH"
            aastore
            dup
            bipush 9
            ldc "SCALE"
            aastore
            dup
            bipush 10
            ldc "RADIX"
            aastore
            dup
            bipush 11
            ldc "NULLABLE"
            aastore
            dup
            bipush 12
            ldc "REMARKS"
            aastore
            dup
            bipush 13
        26: .line 847
            ldc "COLUMN_DEF"
            aastore
            dup
            bipush 14
            ldc "SQL_DATA_TYPE"
            aastore
            dup
            bipush 15
            ldc "SQL_DATETIME_SUB"
            aastore
            dup
            bipush 16
            ldc "CHAR_OCTET_LENGTH"
            aastore
            dup
            bipush 17
        27: .line 848
            ldc "ORDINAL_POSITION"
            aastore
            dup
            bipush 18
            ldc "IS_NULLABLE"
            aastore
        28: .line 844
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getFunctionsColumnsColumnNames:[Ljava/lang/String;
        29: .line 902
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
            ldc "SCOPE"
            aastore
            dup
            iconst_1
            ldc "COLUMN_NAME"
            aastore
            dup
            iconst_2
        30: .line 903
            ldc "DATA_TYPE"
            aastore
            dup
            iconst_3
            ldc "TYPE_NAME"
            aastore
            dup
            iconst_4
            ldc "COLUMN_SIZE"
            aastore
            dup
            iconst_5
            ldc "BUFFER_LENGTH"
            aastore
            dup
            bipush 6
            ldc "DECIMAL_DIGITS"
            aastore
            dup
            bipush 7
        31: .line 904
            ldc "PSEUDO_COLUMN"
            aastore
        32: .line 902
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getBestRowIdentifierColumnNames:[Ljava/lang/String;
        33: .line 1115
            bipush 13
            anewarray java.lang.String
            dup
            iconst_0
            ldc "TABLE_CAT"
            aastore
            dup
            iconst_1
            ldc "TABLE_SCHEM"
            aastore
            dup
            iconst_2
        34: .line 1116
            ldc "TABLE_NAME"
            aastore
            dup
            iconst_3
            ldc "NON_UNIQUE"
            aastore
            dup
            iconst_4
            ldc "INDEX_QUALIFIER"
            aastore
            dup
            iconst_5
            ldc "INDEX_NAME"
            aastore
            dup
            bipush 6
            ldc "TYPE"
            aastore
            dup
            bipush 7
        35: .line 1117
            ldc "ORDINAL_POSITION"
            aastore
            dup
            bipush 8
            ldc "COLUMN_NAME"
            aastore
            dup
            bipush 9
            ldc "ASC_OR_DESC"
            aastore
            dup
            bipush 10
            ldc "CARDINALITY"
            aastore
            dup
            bipush 11
            ldc "PAGES"
            aastore
            dup
            bipush 12
        36: .line 1118
            ldc "FILTER_CONDITION"
            aastore
        37: .line 1115
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getIndexInfoColumnNames:[Ljava/lang/String;
        38: .line 1300
            bipush 6
            anewarray java.lang.String
            dup
            iconst_0
            ldc "TABLE_CAT"
            aastore
            dup
            iconst_1
            ldc "TABLE_SCHEM"
            aastore
            dup
            iconst_2
        39: .line 1301
            ldc "TABLE_NAME"
            aastore
            dup
            iconst_3
            ldc "COLUMN_NAME"
            aastore
            dup
            iconst_4
            ldc "KEY_SEQ"
            aastore
            dup
            iconst_5
            ldc "PK_NAME"
            aastore
        40: .line 1300
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getPrimaryKeysColumnNames:[Ljava/lang/String;
        41: .line 1320
            bipush 19
            anewarray java.lang.String
            dup
            iconst_0
            ldc "PROCEDURE_CAT"
            aastore
            dup
            iconst_1
            ldc "PROCEDURE_SCHEM"
            aastore
            dup
            iconst_2
        42: .line 1321
            ldc "PROCEDURE_NAME"
            aastore
            dup
            iconst_3
            ldc "COLUMN_NAME"
            aastore
            dup
            iconst_4
            ldc "COLUMN_TYPE"
            aastore
            dup
            iconst_5
            ldc "DATA_TYPE"
            aastore
            dup
            bipush 6
            ldc "TYPE_NAME"
            aastore
            dup
            bipush 7
        43: .line 1322
            ldc "PRECISION"
            aastore
            dup
            bipush 8
            ldc "LENGTH"
            aastore
            dup
            bipush 9
            ldc "SCALE"
            aastore
            dup
            bipush 10
            ldc "RADIX"
            aastore
            dup
            bipush 11
            ldc "NULLABLE"
            aastore
            dup
            bipush 12
            ldc "REMARKS"
            aastore
            dup
            bipush 13
        44: .line 1323
            ldc "COLUMN_DEF"
            aastore
            dup
            bipush 14
            ldc "SQL_DATA_TYPE"
            aastore
            dup
            bipush 15
            ldc "SQL_DATETIME_SUB"
            aastore
            dup
            bipush 16
            ldc "CHAR_OCTET_LENGTH"
            aastore
            dup
            bipush 17
        45: .line 1324
            ldc "ORDINAL_POSITION"
            aastore
            dup
            bipush 18
            ldc "IS_NULLABLE"
            aastore
        46: .line 1320
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getProcedureColumnsColumnNames:[Ljava/lang/String;
        47: .line 1365
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
            ldc "PROCEDURE_CAT"
            aastore
            dup
            iconst_1
            ldc "PROCEDURE_SCHEM"
            aastore
            dup
            iconst_2
        48: .line 1366
            ldc "PROCEDURE_NAME"
            aastore
            dup
            iconst_3
            ldc "NUM_INPUT_PARAMS"
            aastore
            dup
            iconst_4
            ldc "NUM_OUTPUT_PARAMS"
            aastore
            dup
            iconst_5
            ldc "NUM_RESULT_SETS"
            aastore
            dup
            bipush 6
        49: .line 1367
            ldc "REMARKS"
            aastore
            dup
            bipush 7
            ldc "PROCEDURE_TYPE"
            aastore
        50: .line 1365
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getProceduresColumnNames:[Ljava/lang/String;
        51: .line 1565
            bipush 7
            anewarray java.lang.String
            dup
            iconst_0
            ldc "TABLE_CAT"
            aastore
            dup
            iconst_1
            ldc "TABLE_SCHEM"
            aastore
            dup
            iconst_2
        52: .line 1566
            ldc "TABLE_NAME"
            aastore
            dup
            iconst_3
            ldc "GRANTOR"
            aastore
            dup
            iconst_4
            ldc "GRANTEE"
            aastore
            dup
            iconst_5
            ldc "PRIVILEGE"
            aastore
            dup
            bipush 6
            ldc "IS_GRANTABLE"
            aastore
        53: .line 1565
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getTablePrivilegesColumnNames:[Ljava/lang/String;
        54: .line 1709
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
            ldc "SCOPE"
            aastore
            dup
            iconst_1
            ldc "COLUMN_NAME"
            aastore
            dup
            iconst_2
        55: .line 1710
            ldc "DATA_TYPE"
            aastore
            dup
            iconst_3
            ldc "TYPE_NAME"
            aastore
            dup
            iconst_4
            ldc "COLUMN_SIZE"
            aastore
            dup
            iconst_5
            ldc "BUFFER_LENGTH"
            aastore
            dup
            bipush 6
            ldc "DECIMAL_DIGITS"
            aastore
            dup
            bipush 7
        56: .line 1711
            ldc "PSEUDO_COLUMN"
            aastore
        57: .line 1709
            putstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getVersionColumnsColumnNames:[Ljava/lang/String;
        58: .line 1711
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int nextInstanceID();
    descriptor: ()I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 132
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.baseID:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public final java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 141
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.traceID:Ljava/lang/String;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;

  public void <init>(com.microsoft.sqlserver.jdbc.SQLServerConnection);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection con
         0: .line 150
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 128
            aload 0 /* this */
            new java.util.EnumMap
            dup
            ldc Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;
            invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
            putfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.handleMap:Ljava/util/EnumMap;
         2: .line 151
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc " SQLServerDatabaseMetaData:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.nextInstanceID:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.traceID:Ljava/lang/String;
         3: .line 152
            aload 0 /* this */
            aload 1 /* con */
            putfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
         4: .line 153
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 6
         5: .line 154
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " created by ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
         6: .line 156
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData com.microsoft.sqlserver.jdbc.SQLServerConnection
      StackMap stack:
            return
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection con
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            0    7     1   con  Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
    MethodParameters:
      Name  Flags
      con   

  public boolean isWrapperFor(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // java.lang.Class iface
         0: .line 160
            aload 1 /* iface */
            aload 0 /* this */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            istore 2 /* f */
        start local 2 // boolean f
         1: .line 161
            iload 2 /* f */
            ireturn
        end local 2 // boolean f
        end local 1 // java.lang.Class iface
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            0    2     1  iface  Ljava/lang/Class<*>;
            1    2     2      f  Z
    Exceptions:
      throws java.sql.SQLException
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      iface  

  public <T> T unwrap(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // java.lang.Class iface
         0: .line 168
            aload 1 /* iface */
            aload 0 /* this */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* t */
        start local 2 // java.lang.Object t
         1: .line 169
            goto 4
        end local 2 // java.lang.Object t
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
         2: astore 3 /* e */
        start local 3 // java.lang.ClassCastException e
         3: .line 170
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 3 /* e */
            invokevirtual java.lang.ClassCastException.getMessage:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.ClassCastException e
        start local 2 // java.lang.Object t
         4: .line 172
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* t */
            areturn
        end local 2 // java.lang.Object t
        end local 1 // java.lang.Class iface
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            0    5     1  iface  Ljava/lang/Class<TT;>;
            1    2     2      t  TT;
            4    5     2      t  TT;
            3    4     3      e  Ljava/lang/ClassCastException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassCastException
    Exceptions:
      throws java.sql.SQLException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      iface  

  private void checkClosed();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 176
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.isClosed:()Z
            ifeq 4
         1: .line 177
            aconst_null
            aconst_null
            ldc "R_connectionIsClosed"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
         2: .line 178
            ldc "08003"
            iconst_0
         3: .line 177
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
         4: .line 180
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  private com.microsoft.sqlserver.jdbc.SQLServerResultSet getResultSetFromInternalQueries(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // java.lang.String catalog
        start local 2 // java.lang.String query
         0: .line 284
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 285
            aconst_null
            astore 3 /* orgCat */
        start local 3 // java.lang.String orgCat
         2: .line 286
            aload 0 /* this */
            aload 1 /* catalog */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.switchCatalogs:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* orgCat */
         3: .line 287
            aconst_null
            astore 4 /* rs */
        start local 4 // com.microsoft.sqlserver.jdbc.SQLServerResultSet rs
         4: .line 289
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.createStatement:()Ljava/sql/Statement;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerStatement
            astore 5 /* statement */
        start local 5 // com.microsoft.sqlserver.jdbc.SQLServerStatement statement
         5: .line 290
            aload 5 /* statement */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerStatement.closeOnCompletion:()V
         6: .line 291
            aload 5 /* statement */
            aload 2 /* query */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQueryInternal:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            astore 4 /* rs */
        end local 5 // com.microsoft.sqlserver.jdbc.SQLServerStatement statement
         7: .line 292
            goto 12
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet
      StackMap stack: java.lang.Throwable
         8: astore 6
         9: .line 293
            aload 3 /* orgCat */
            ifnull 11
        10: .line 294
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 3 /* orgCat */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.setCatalog:(Ljava/lang/String;)V
        11: .line 296
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        12: .line 293
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet
      StackMap stack:
            aload 3 /* orgCat */
            ifnull 14
        13: .line 294
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 3 /* orgCat */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.setCatalog:(Ljava/lang/String;)V
        14: .line 297
      StackMap locals:
      StackMap stack:
            aload 4 /* rs */
            areturn
        end local 4 // com.microsoft.sqlserver.jdbc.SQLServerResultSet rs
        end local 3 // java.lang.String orgCat
        end local 2 // java.lang.String query
        end local 1 // java.lang.String catalog
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            0   15     1    catalog  Ljava/lang/String;
            0   15     2      query  Ljava/lang/String;
            2   15     3     orgCat  Ljava/lang/String;
            4   15     4         rs  Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            5    7     5  statement  Lcom/microsoft/sqlserver/jdbc/SQLServerStatement;
      Exception table:
        from    to  target  type
           4     8       8  any
    Exceptions:
      throws java.sql.SQLException, java.sql.SQLTimeoutException
    MethodParameters:
         Name  Flags
      catalog  
      query    

  private java.sql.CallableStatement getCallableStatementHandle(com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles, java.lang.String);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;Ljava/lang/String;)Ljava/sql/CallableStatement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles request
        start local 2 // java.lang.String catalog
         0: .line 305
            aconst_null
            astore 3 /* CS */
        start local 3 // java.sql.CallableStatement CS
         1: .line 306
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.handleMap:Ljava/util/EnumMap;
            aload 1 /* request */
            invokevirtual java.util.EnumMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$HandleAssociation
            astore 4 /* hassoc */
        start local 4 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$HandleAssociation hassoc
         2: .line 308
            aload 4 /* hassoc */
            ifnonnull 7
         3: .line 309
            aload 1 /* request */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles.prepare:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)Ljava/sql/CallableStatement;
            astore 3 /* CS */
         4: .line 310
            new com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$HandleAssociation
            dup
            aload 0 /* this */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$HandleAssociation.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;)V
            astore 4 /* hassoc */
         5: .line 311
            aload 4 /* hassoc */
            aload 2 /* catalog */
            aload 3 /* CS */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$HandleAssociation.addToMap:(Ljava/lang/String;Ljava/sql/CallableStatement;)V
         6: .line 312
            goto 11
         7: .line 313
      StackMap locals: java.sql.CallableStatement com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$HandleAssociation
      StackMap stack:
            aload 4 /* hassoc */
            aload 2 /* catalog */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$HandleAssociation.getMappedStatement:(Ljava/lang/String;)Ljava/sql/CallableStatement;
            astore 3 /* CS */
         8: .line 315
            aload 3 /* CS */
            ifnull 9
            aload 3 /* CS */
            invokeinterface java.sql.CallableStatement.isClosed:()Z
            ifeq 11
         9: .line 316
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles.prepare:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)Ljava/sql/CallableStatement;
            astore 3 /* CS */
        10: .line 317
            aload 4 /* hassoc */
            aload 2 /* catalog */
            aload 3 /* CS */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$HandleAssociation.addToMap:(Ljava/lang/String;Ljava/sql/CallableStatement;)V
        11: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.handleMap:Ljava/util/EnumMap;
            aload 1 /* request */
            aload 4 /* hassoc */
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 321
            goto 15
      StackMap locals:
      StackMap stack: java.sql.SQLException
        13: astore 5 /* e */
        start local 5 // java.sql.SQLException e
        14: .line 322
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 3 /* CS */
            aload 5 /* e */
            invokevirtual java.sql.SQLException.toString:()Ljava/lang/String;
            aconst_null
            iconst_0
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        end local 5 // java.sql.SQLException e
        15: .line 324
      StackMap locals:
      StackMap stack:
            aload 3 /* CS */
            areturn
        end local 4 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$HandleAssociation hassoc
        end local 3 // java.sql.CallableStatement CS
        end local 2 // java.lang.String catalog
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles request
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            0   16     1  request  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;
            0   16     2  catalog  Ljava/lang/String;
            1   16     3       CS  Ljava/sql/CallableStatement;
            2   16     4   hassoc  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$HandleAssociation;
           14   15     5        e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           2    12      13  Class java.sql.SQLException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
         Name  Flags
      request  
      catalog  

  private com.microsoft.sqlserver.jdbc.SQLServerResultSet getResultSetFromStoredProc(java.lang.String, com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles, java.lang.String[]);
    descriptor: (Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;[Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // java.lang.String catalog
        start local 2 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles procedure
        start local 3 // java.lang.String[] arguments
         0: .line 341
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 342
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.$assertionsDisabled:Z
            ifne 2
            aload 3 /* arguments */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 343
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* orgCat */
        start local 4 // java.lang.String orgCat
         3: .line 344
            aload 0 /* this */
            aload 1 /* catalog */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.switchCatalogs:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* orgCat */
         4: .line 345
            aconst_null
            astore 5 /* rs */
        start local 5 // com.microsoft.sqlserver.jdbc.SQLServerResultSet rs
         5: .line 347
            aload 0 /* this */
            aload 2 /* procedure */
         6: .line 348
            aload 1 /* catalog */
         7: .line 347
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getCallableStatementHandle:(Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;Ljava/lang/String;)Ljava/sql/CallableStatement;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerCallableStatement
            astore 6 /* call */
        start local 6 // com.microsoft.sqlserver.jdbc.SQLServerCallableStatement call
         8: .line 350
            iconst_1
            istore 7 /* i */
        start local 7 // int i
         9: goto 12
        10: .line 352
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles java.lang.String[] java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet com.microsoft.sqlserver.jdbc.SQLServerCallableStatement int
      StackMap stack:
            aload 6 /* call */
            iload 7 /* i */
            aload 3 /* arguments */
            iload 7 /* i */
            iconst_1
            isub
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.setString:(ILjava/lang/String;)V
        11: .line 350
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 7 /* i */
            aload 3 /* arguments */
            arraylength
            if_icmple 10
        end local 7 // int i
        13: .line 354
            aload 6 /* call */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.executeQueryInternal:()Ljava/sql/ResultSet;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerResultSet
            astore 5 /* rs */
        end local 6 // com.microsoft.sqlserver.jdbc.SQLServerCallableStatement call
        14: .line 355
            goto 19
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles java.lang.String[] java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet
      StackMap stack: java.lang.Throwable
        15: astore 8
        16: .line 356
            aload 4 /* orgCat */
            ifnull 18
        17: .line 357
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 4 /* orgCat */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.setCatalog:(Ljava/lang/String;)V
        18: .line 359
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles java.lang.String[] java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet top top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        19: .line 356
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles java.lang.String[] java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet
      StackMap stack:
            aload 4 /* orgCat */
            ifnull 21
        20: .line 357
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 4 /* orgCat */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.setCatalog:(Ljava/lang/String;)V
        21: .line 360
      StackMap locals:
      StackMap stack:
            aload 5 /* rs */
            areturn
        end local 5 // com.microsoft.sqlserver.jdbc.SQLServerResultSet rs
        end local 4 // java.lang.String orgCat
        end local 3 // java.lang.String[] arguments
        end local 2 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles procedure
        end local 1 // java.lang.String catalog
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   22     0       this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            0   22     1    catalog  Ljava/lang/String;
            0   22     2  procedure  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;
            0   22     3  arguments  [Ljava/lang/String;
            3   22     4     orgCat  Ljava/lang/String;
            5   22     5         rs  Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            8   14     6       call  Lcom/microsoft/sqlserver/jdbc/SQLServerCallableStatement;
            9   13     7          i  I
      Exception table:
        from    to  target  type
           5    15      15  any
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException, java.sql.SQLTimeoutException
    MethodParameters:
           Name  Flags
      catalog    
      procedure  
      arguments  

  private com.microsoft.sqlserver.jdbc.SQLServerResultSet getResultSetWithProvidedColumnNames(java.lang.String, com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles, java.lang.String[], java.lang.String[]);
    descriptor: (Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;[Ljava/lang/String;[Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // java.lang.String catalog
        start local 2 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles procedure
        start local 3 // java.lang.String[] arguments
        start local 4 // java.lang.String[] columnNames
         0: .line 366
            aload 0 /* this */
            aload 1 /* catalog */
            aload 2 /* procedure */
            aload 3 /* arguments */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getResultSetFromStoredProc:(Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;[Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            astore 5 /* rs */
        start local 5 // com.microsoft.sqlserver.jdbc.SQLServerResultSet rs
         1: .line 369
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 5
         3: .line 370
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerResultSet int
      StackMap stack:
            aload 5 /* rs */
            iconst_1
            iload 6 /* i */
            iadd
            aload 4 /* columnNames */
            iload 6 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.setColumnName:(ILjava/lang/String;)V
         4: .line 369
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 6 /* i */
            aload 4 /* columnNames */
            arraylength
            if_icmplt 3
        end local 6 // int i
         6: .line 371
            aload 5 /* rs */
            areturn
        end local 5 // com.microsoft.sqlserver.jdbc.SQLServerResultSet rs
        end local 4 // java.lang.String[] columnNames
        end local 3 // java.lang.String[] arguments
        end local 2 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles procedure
        end local 1 // java.lang.String catalog
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            0    7     1      catalog  Ljava/lang/String;
            0    7     2    procedure  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;
            0    7     3    arguments  [Ljava/lang/String;
            0    7     4  columnNames  [Ljava/lang/String;
            1    7     5           rs  Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            2    6     6            i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException, java.sql.SQLTimeoutException
    MethodParameters:
             Name  Flags
      catalog      
      procedure    
      arguments    
      columnNames  

  private java.lang.String switchCatalogs(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // java.lang.String catalog
         0: .line 383
            aload 1 /* catalog */
            ifnonnull 2
         1: .line 384
            aconst_null
            areturn
         2: .line 385
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* sCurr */
        start local 2 // java.lang.String sCurr
         3: .line 386
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getCatalog:()Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 2 /* sCurr */
         4: .line 387
            aload 1 /* catalog */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 3 /* sNew */
        start local 3 // java.lang.String sNew
         5: .line 388
            aload 2 /* sCurr */
            aload 3 /* sNew */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 389
            aconst_null
            areturn
         7: .line 390
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 3 /* sNew */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.setCatalog:(Ljava/lang/String;)V
         8: .line 391
            aload 2 /* sCurr */
            ifnull 9
            aload 2 /* sCurr */
            invokevirtual java.lang.String.length:()I
            ifne 10
         9: .line 392
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        10: .line 393
      StackMap locals:
      StackMap stack:
            aload 2 /* sCurr */
            areturn
        end local 3 // java.lang.String sNew
        end local 2 // java.lang.String sCurr
        end local 1 // java.lang.String catalog
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            0   11     1  catalog  Ljava/lang/String;
            3   11     2    sCurr  Ljava/lang/String;
            5   11     3     sNew  Ljava/lang/String;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
         Name  Flags
      catalog  

  public boolean allProceduresAreCallable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 400
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 401
            iconst_1
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  public boolean allTablesAreSelectable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 406
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 407
            iconst_1
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  public boolean autoCommitFailureClosesAllResultSets();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 412
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 413
            iconst_0
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws java.sql.SQLException

  public boolean dataDefinitionCausesTransactionCommit();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 418
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 419
            iconst_0
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  public boolean dataDefinitionIgnoredInTransactions();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 424
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 425
            iconst_0
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  public boolean doesMaxRowSizeIncludeBlobs();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 430
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 431
            iconst_0
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  public boolean generatedKeyAlwaysReturned();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 436
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 438
            iconst_1
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws java.sql.SQLException

  public long getMaxLogicalLobSize();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 443
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 444
            ldc 2147483647
            lreturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws java.sql.SQLException

  public boolean supportsRefCursors();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 449
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 450
            iconst_0
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws java.sql.SQLException

  public boolean supportsSharding();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 454
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tThe method supportsSharding() of type SQLServerDatabaseMetaData must override or implement a supertype method\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws java.sql.SQLException

  public java.sql.ResultSet getCatalogs();
    descriptor: ()Ljava/sql/ResultSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 462
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 2
            invokestatic com.microsoft.sqlserver.jdbc.Util.isActivityTraceOn:()Z
            ifeq 2
         1: .line 463
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ActivityId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.microsoft.sqlserver.jdbc.ActivityCorrelator.getNext:()Lcom/microsoft/sqlserver/jdbc/ActivityId;
            invokevirtual com.microsoft.sqlserver.jdbc.ActivityId.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         2: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         3: .line 467
            ldc "SELECT name AS TABLE_CAT FROM sys.databases order by name"
            astore 1 /* s */
        start local 1 // java.lang.String s
         4: .line 473
            aload 0 /* this */
            aconst_null
            aload 1 /* s */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getResultSetFromInternalQueries:(Ljava/lang/String;Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            areturn
        end local 1 // java.lang.String s
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            4    5     1     s  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException, java.sql.SQLTimeoutException

  public java.lang.String getCatalogSeparator();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 478
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 479
            ldc "."
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  public java.lang.String getCatalogTerm();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
         0: .line 484
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         1: .line 485
            ldc "database"
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  public java.sql.ResultSet getColumnPrivileges(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // java.lang.String catalog
        start local 2 // java.lang.String schema
        start local 3 // java.lang.String table
        start local 4 // java.lang.String col
         0: .line 495
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 2
            invokestatic com.microsoft.sqlserver.jdbc.Util.isActivityTraceOn:()Z
            ifeq 2
         1: .line 496
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ActivityId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.microsoft.sqlserver.jdbc.ActivityCorrelator.getNext:()Lcom/microsoft/sqlserver/jdbc/ActivityId;
            invokevirtual com.microsoft.sqlserver.jdbc.ActivityId.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         2: .line 498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         3: .line 500
            aload 4 /* col */
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.EscapeIDName:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* col */
         4: .line 506
            iconst_4
            anewarray java.lang.String
            astore 5 /* arguments */
        start local 5 // java.lang.String[] arguments
         5: .line 507
            aload 5 /* arguments */
            iconst_0
            aload 3 /* table */
            aastore
         6: .line 508
            aload 5 /* arguments */
            iconst_1
            aload 2 /* schema */
            aastore
         7: .line 509
            aload 5 /* arguments */
            iconst_2
            aload 1 /* catalog */
            aastore
         8: .line 510
            aload 5 /* arguments */
            iconst_3
            aload 4 /* col */
            aastore
         9: .line 511
            aload 0 /* this */
            aload 1 /* catalog */
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles.SP_COLUMN_PRIVILEGES:Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;
            aload 5 /* arguments */
        10: .line 512
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getColumnPrivilegesColumnNames:[Ljava/lang/String;
        11: .line 511
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getResultSetWithProvidedColumnNames:(Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;[Ljava/lang/String;[Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            areturn
        end local 5 // java.lang.String[] arguments
        end local 4 // java.lang.String col
        end local 3 // java.lang.String table
        end local 2 // java.lang.String schema
        end local 1 // java.lang.String catalog
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            0   12     1    catalog  Ljava/lang/String;
            0   12     2     schema  Ljava/lang/String;
            0   12     3      table  Ljava/lang/String;
            0   12     4        col  Ljava/lang/String;
            5   12     5  arguments  [Ljava/lang/String;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException, java.sql.SQLTimeoutException
    MethodParameters:
         Name  Flags
      catalog  
      schema   
      table    
      col      

  public java.sql.ResultSet getTables(java.lang.String, java.lang.String, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/ResultSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // java.lang.String catalog
        start local 2 // java.lang.String schema
        start local 3 // java.lang.String table
        start local 4 // java.lang.String[] types
         0: .line 521
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 2
            invokestatic com.microsoft.sqlserver.jdbc.Util.isActivityTraceOn:()Z
            ifeq 2
         1: .line 522
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ActivityId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.microsoft.sqlserver.jdbc.ActivityCorrelator.getNext:()Lcom/microsoft/sqlserver/jdbc/ActivityId;
            invokevirtual com.microsoft.sqlserver.jdbc.ActivityId.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         2: .line 524
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         3: .line 527
            aload 3 /* table */
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.EscapeIDName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* table */
         4: .line 528
            aload 2 /* schema */
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.EscapeIDName:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* schema */
         5: .line 534
            iconst_4
            anewarray java.lang.String
            astore 5 /* arguments */
        start local 5 // java.lang.String[] arguments
         6: .line 535
            aload 5 /* arguments */
            iconst_0
            aload 3 /* table */
            aastore
         7: .line 536
            aload 5 /* arguments */
            iconst_1
            aload 2 /* schema */
            aastore
         8: .line 537
            aload 5 /* arguments */
            iconst_2
            aload 1 /* catalog */
            aastore
         9: .line 539
            aload 4 /* types */
            ifnull 20
        10: .line 540
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 6 /* tableTypes */
        start local 6 // java.lang.StringBuilder tableTypes
        11: .line 541
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        12: goto 17
        13: .line 542
      StackMap locals: java.lang.String[] java.lang.StringBuilder int
      StackMap stack:
            iload 7 /* i */
            ifle 15
        14: .line 543
            aload 6 /* tableTypes */
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 544
      StackMap locals:
      StackMap stack:
            aload 6 /* tableTypes */
            ldc "''"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* types */
            iload 7 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "''"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 541
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 7 /* i */
            aload 4 /* types */
            arraylength
            if_icmplt 13
        end local 7 // int i
        18: .line 546
            aload 6 /* tableTypes */
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 547
            aload 5 /* arguments */
            iconst_3
            aload 6 /* tableTypes */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        end local 6 // java.lang.StringBuilder tableTypes
        20: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* catalog */
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData$CallableHandles.SP_TABLES:Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;
            aload 5 /* arguments */
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getTablesColumnNames:[Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getResultSetWithProvidedColumnNames:(Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData$CallableHandles;[Ljava/lang/String;[Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            areturn
        end local 5 // java.lang.String[] arguments
        end local 4 // java.lang.String[] types
        end local 3 // java.lang.String table
        end local 2 // java.lang.String schema
        end local 1 // java.lang.String catalog
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            0   21     1     catalog  Ljava/lang/String;
            0   21     2      schema  Ljava/lang/String;
            0   21     3       table  Ljava/lang/String;
            0   21     4       types  [Ljava/lang/String;
            6   21     5   arguments  [Ljava/lang/String;
           11   20     6  tableTypes  Ljava/lang/StringBuilder;
           12   18     7           i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException, java.sql.SQLTimeoutException
    MethodParameters:
         Name  Flags
      catalog  
      schema   
      table    
      types    

  private static java.lang.String EscapeIDName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.String inID
         0: .line 568
            aload 0 /* inID */
            ifnonnull 2
         1: .line 569
            aload 0 /* inID */
            areturn
         2: .line 582
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* inID */
            invokevirtual java.lang.String.length:()I
            iconst_2
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* outID */
        start local 2 // java.lang.StringBuilder outID
         3: .line 584
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 20
         5: .line 585
      StackMap locals: java.lang.String top java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* inID */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 1 /* ch */
        start local 1 // char ch
         6: .line 586
            bipush 92
            iload 1 /* ch */
            if_icmpne 18
            iinc 3 /* i */ 1
            iload 3 /* i */
            aload 0 /* inID */
            invokevirtual java.lang.String.length:()I
            if_icmpge 18
         7: .line 587
            aload 0 /* inID */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 1 /* ch */
         8: .line 588
            iload 1 /* ch */
            lookupswitch { // 5
                   37: 9
                   91: 9
                   92: 13
                   93: 13
                   95: 9
              default: 15
          }
         9: .line 592
      StackMap locals: java.lang.String int java.lang.StringBuilder int
      StackMap stack:
            aload 2 /* outID */
            bipush 91
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        10: .line 593
            aload 2 /* outID */
            iload 1 /* ch */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        11: .line 594
            aload 2 /* outID */
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 595
            goto 19
        13: .line 598
      StackMap locals:
      StackMap stack:
            aload 2 /* outID */
            iload 1 /* ch */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 599
            goto 19
        15: .line 601
      StackMap locals:
      StackMap stack:
            aload 2 /* outID */
            bipush 92
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        16: .line 602
            aload 2 /* outID */
            iload 1 /* ch */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        17: .line 605
            goto 19
        18: .line 607
      StackMap locals:
      StackMap stack:
            aload 2 /* outID */
            iload 1 /* ch */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        19: .line 584
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        end local 1 // char ch
      StackMap locals: java.lang.String top java.lang.StringBuilder int
      StackMap stack:
        20: iload 3 /* i */
            aload 0 /* inID */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 3 // int i
        21: .line 610
            aload 2 /* outID */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder outID
        end local 0 // java.lang.String inID
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   inID  Ljava/lang/String;
            6   20     1     ch  C
            3   22     2  outID  Ljava/lang/StringBuilder;
            4   21     3      i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
      Name  Flags
      inID  

  public java.sql.ResultSet getColumns(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=16, args_size=5
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData this
        start local 1 // java.lang.String catalog
        start local 2 // java.lang.String schema
        start local 3 // java.lang.String table
        start local 4 // java.lang.String col
         0: .line 615
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 2
            invokestatic com.microsoft.sqlserver.jdbc.Util.isActivityTraceOn:()Z
            ifeq 2
         1: .line 616
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ActivityId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.microsoft.sqlserver.jdbc.ActivityCorrelator.getNext:()Lcom/microsoft/sqlserver/jdbc/ActivityId;
            invokevirtual com.microsoft.sqlserver.jdbc.ActivityId.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         2: .line 618
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.checkClosed:()V
         3: .line 619
            aload 0 /* this */
            aload 1 /* catalog */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.switchCatalogs:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* originalCatalog */
        start local 5 // java.lang.String originalCatalog
         4: .line 620
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.isAzureDW:()Z
            ifne 46
         5: .line 621
            ldc "DECLARE @mssqljdbc_temp_sp_columns_result TABLE(TABLE_QUALIFIER SYSNAME, TABLE_OWNER SYSNAME,TABLE_NAME SYSNAME, COLUMN_NAME SYSNAME, DATA_TYPE SMALLINT, TYPE_NAME SYSNAME, PRECISION INT,LENGTH INT, SCALE SMALLINT, RADIX SMALLINT, NULLABLE SMALLINT, REMARKS VARCHAR(254), COLUMN_DEF NVARCHAR(4000),SQL_DATA_TYPE SMALLINT, SQL_DATETIME_SUB SMALLINT, CHAR_OCTET_LENGTH INT, ORDINAL_POSITION INT,IS_NULLABLE VARCHAR(254), SS_IS_SPARSE SMALLINT, SS_IS_COLUMN_SET SMALLINT, SS_IS_COMPUTED SMALLINT,SS_IS_IDENTITY SMALLINT, SS_UDT_CATALOG_NAME NVARCHAR(128), SS_UDT_SCHEMA_NAME NVARCHAR(128),SS_UDT_ASSEMBLY_TYPE_NAME NVARCHAR(max), SS_XML_SCHEMACOLLECTION_CATALOG_NAME NVARCHAR(128),SS_XML_SCHEMACOLLECTION_SCHEMA_NAME NVARCHAR(128), SS_XML_SCHEMACOLLECTION_NAME NVARCHAR(128),SS_DATA_TYPE TINYINT);INSERT INTO @mssqljdbc_temp_sp_columns_result EXEC sp_columns_100 ?,?,?,?,?,?;SELECT TABLE_QUALIFIER AS TABLE_CAT, TABLE_OWNER AS TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, DATA_TYPE,TYPE_NAME, PRECISION AS COLUMN_SIZE, LENGTH AS BUFFER_LENGTH, SCALE AS DECIMAL_DIGITS, RADIX AS NUM_PREC_RADIX,NULLABLE, REMARKS, COLUMN_DEF, SQL_DATA_TYPE, SQL_DATETIME_SUB, CHAR_OCTET_LENGTH, ORDINAL_POSITION, IS_NULLABLE,NULL AS SCOPE_CATALOG, NULL AS SCOPE_SCHEMA, NULL AS SCOPE_TABLE, SS_DATA_TYPE AS SOURCE_DATA_TYPE,CASE SS_IS_IDENTITY WHEN 0 THEN 'NO' WHEN 1 THEN 'YES' WHEN '' THEN '' END AS IS_AUTOINCREMENT,CASE SS_IS_COMPUTED WHEN 0 THEN 'NO' WHEN 1 THEN 'YES' WHEN '' THEN '' END AS IS_GENERATEDCOLUMN, SS_IS_SPARSE, SS_IS_COLUMN_SET, SS_UDT_CATALOG_NAME, SS_UDT_SCHEMA_NAME, SS_UDT_ASSEMBLY_TYPE_NAME,SS_XML_SCHEMACOLLECTION_CATALOG_NAME, SS_XML_SCHEMACOLLECTION_SCHEMA_NAME, SS_XML_SCHEMACOLLECTION_NAME FROM @mssqljdbc_temp_sp_columns_result ORDER BY TABLE_CAT, TABLE_SCHEM, TABLE_NAME, ORDINAL_POSITION;"
            astore 6 /* spColumnsSql */
        start local 6 // java.lang.String spColumnsSql
         6: .line 642
            aconst_null
            astore 7 /* rs */
        start local 7 // com.microsoft.sqlserver.jdbc.SQLServerResultSet rs
         7: .line 643
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 6 /* spColumnsSql */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
            astore 8 /* pstmt */
        start local 8 // java.sql.PreparedStatement pstmt
         8: .line 644
            aload 8 /* pstmt */
            invokeinterface java.sql.PreparedStatement.closeOnCompletion:()V
         9: .line 646
            aload 8 /* pstmt */
            iconst_1
            aload 3 /* table */
            ifnull 10
            aload 3 /* table */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 10
            aload 3 /* table */
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.EscapeIDName:(Ljava/lang/String;)Ljava/lang/String;
            goto 11
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement
      StackMap stack: java.sql.PreparedStatement int
        10: ldc "%"
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement
      StackMap stack: java.sql.PreparedStatement int java.lang.String
        11: invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        12: .line 647
            aload 8 /* pstmt */
            iconst_2
            aload 2 /* schema */
            ifnull 13
            aload 2 /* schema */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 13
            aload 2 /* schema */
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.EscapeIDName:(Ljava/lang/String;)Ljava/lang/String;
            goto 14
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement
      StackMap stack: java.sql.PreparedStatement int
        13: ldc "%"
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement
      StackMap stack: java.sql.PreparedStatement int java.lang.String
        14: invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        15: .line 648
            aload 8 /* pstmt */
            iconst_3
            aload 1 /* catalog */
            ifnull 16
            aload 1 /* catalog */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 16
            aload 1 /* catalog */
            goto 17
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement
      StackMap stack: java.sql.PreparedStatement int
        16: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getCatalog:()Ljava/lang/String;
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement
      StackMap stack: java.sql.PreparedStatement int java.lang.String
        17: invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        18: .line 649
            aload 8 /* pstmt */
            iconst_4
            aload 4 /* col */
            ifnull 19
            aload 4 /* col */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 19
            aload 4 /* col */
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.EscapeIDName:(Ljava/lang/String;)Ljava/lang/String;
            goto 20
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement
      StackMap stack: java.sql.PreparedStatement int
        19: ldc "%"
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement
      StackMap stack: java.sql.PreparedStatement int java.lang.String
        20: invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        21: .line 650
            aload 8 /* pstmt */
            iconst_5
            iconst_2
            invokeinterface java.sql.PreparedStatement.setInt:(II)V
        22: .line 651
            aload 8 /* pstmt */
            bipush 6
            iconst_3
            invokeinterface java.sql.PreparedStatement.setInt:(II)V
        23: .line 653
            aload 8 /* pstmt */
            invokeinterface java.sql.PreparedStatement.executeQuery:()Ljava/sql/ResultSet;
            checkcast com.microsoft.sqlserver.jdbc.SQLServerResultSet
            astore 7 /* rs */
        24: .line 654
            aload 7 /* rs */
            iconst_5
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.getColumn:(I)Lcom/microsoft/sqlserver/jdbc/Column;
            new com.microsoft.sqlserver.jdbc.DataTypeFilter
            dup
            invokespecial com.microsoft.sqlserver.jdbc.DataTypeFilter.<init>:()V
            invokevirtual com.microsoft.sqlserver.jdbc.Column.setFilter:(Lcom/microsoft/sqlserver/jdbc/ColumnFilter;)V
        25: .line 655
            aload 7 /* rs */
            bipush 7
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.getColumn:(I)Lcom/microsoft/sqlserver/jdbc/Column;
            new com.microsoft.sqlserver.jdbc.ZeroFixupFilter
            dup
            invokespecial com.microsoft.sqlserver.jdbc.ZeroFixupFilter.<init>:()V
            invokevirtual com.microsoft.sqlserver.jdbc.Column.setFilter:(Lcom/microsoft/sqlserver/jdbc/ColumnFilter;)V
        26: .line 656
            aload 7 /* rs */
            bipush 8
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.getColumn:(I)Lcom/microsoft/sqlserver/jdbc/Column;
            new com.microsoft.sqlserver.jdbc.ZeroFixupFilter
            dup
            invokespecial com.microsoft.sqlserver.jdbc.ZeroFixupFilter.<init>:()V
            invokevirtual com.microsoft.sqlserver.jdbc.Column.setFilter:(Lcom/microsoft/sqlserver/jdbc/ColumnFilter;)V
        27: .line 657
            aload 7 /* rs */
            bipush 16
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerResultSet.getColumn:(I)Lcom/microsoft/sqlserver/jdbc/Column;
            new com.microsoft.sqlserver.jdbc.ZeroFixupFilter
            dup
            invokespecial com.microsoft.sqlserver.jdbc.ZeroFixupFilter.<init>:()V
            invokevirtual com.microsoft.sqlserver.jdbc.Column.setFilter:(Lcom/microsoft/sqlserver/jdbc/ColumnFilter;)V
        28: .line 658
            goto 43
      StackMap locals:
      StackMap stack: java.sql.SQLException
        29: astore 9 /* e */
        start local 9 // java.sql.SQLException e
        30: .line 659
            aload 8 /* pstmt */
            ifnull 38
        31: .line 661
            aload 8 /* pstmt */
            invokeinterface java.sql.PreparedStatement.close:()V
        32: .line 662
            goto 38
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement java.sql.SQLException
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerException
        33: pop
        34: .line 663
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 38
        35: .line 664
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.loggerExternal:Ljava/util/logging/Logger;
        36: .line 665
            ldc "getColumns() threw an exception when attempting to close PreparedStatement"
        37: .line 664
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        38: .line 669
      StackMap locals:
      StackMap stack:
            aload 9 /* e */
            athrow
        end local 9 // java.sql.SQLException e
        39: .line 670
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
            astore 10
        40: .line 671
            aload 5 /* originalCatalog */
            ifnull 42
        41: .line 672
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 5 /* originalCatalog */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.setCatalog:(Ljava/lang/String;)V
        42: .line 674
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        43: .line 671
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.SQLServerResultSet java.sql.PreparedStatement
      StackMap stack:
            aload 5 /* originalCatalog */
            ifnull 45
        44: .line 672
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 5 /* originalCatalog */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.setCatalog:(Ljava/lang/String;)V
        45: .line 676
      StackMap locals:
      StackMap stack:
            aload 7 /* rs */
            areturn
        end local 8 // java.sql.PreparedStatement pstmt
        end local 7 // com.microsoft.sqlserver.jdbc.SQLServerResultSet rs
        end local 6 // java.lang.String spColumnsSql
        46: .line 683
      StackMap locals:
      StackMap stack:
            ldc Lcom/microsoft/sqlserver/jdbc/SQLServerDatabaseMetaData;
            dup
            astore 6
            monitorenter
        47: .line 684
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDatabaseMetaData.getColumnsDWColumns:Ljava/util/LinkedHashMap;
            ifnonnull 81
        48: .line 685
            new java.util.LinkedHashMap
            dup
            invoke