public class org.h2.bnf.context.DbSchema
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.bnf.context.DbSchema
  super_class: java.lang.Object
{
  public final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final boolean isDefault;
    descriptor: Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final boolean isSystem;
    descriptor: Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final java.lang.String quotedName;
    descriptor: Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private final org.h2.bnf.context.DbContents contents;
    descriptor: Lorg/h2/bnf/context/DbContents;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.h2.bnf.context.DbTableOrView[] tables;
    descriptor: [Lorg/h2/bnf/context/DbTableOrView;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.bnf.context.DbProcedure[] procedures;
    descriptor: [Lorg/h2/bnf/context/DbProcedure;
    flags: (0x0002) ACC_PRIVATE

  void <init>(org.h2.bnf.context.DbContents, java.lang.String, boolean);
    descriptor: (Lorg/h2/bnf/context/DbContents;Ljava/lang/String;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.h2.bnf.context.DbSchema this
        start local 1 // org.h2.bnf.context.DbContents contents
        start local 2 // java.lang.String name
        start local 3 // boolean isDefault
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            aload 0 /* this */
            aload 1 /* contents */
            putfield org.h2.bnf.context.DbSchema.contents:Lorg/h2/bnf/context/DbContents;
         2: .line 61
            aload 0 /* this */
            aload 2 /* name */
            putfield org.h2.bnf.context.DbSchema.name:Ljava/lang/String;
         3: .line 62
            aload 0 /* this */
            aload 1 /* contents */
            aload 2 /* name */
            invokevirtual org.h2.bnf.context.DbContents.quoteIdentifier:(Ljava/lang/String;)Ljava/lang/String;
            putfield org.h2.bnf.context.DbSchema.quotedName:Ljava/lang/String;
         4: .line 63
            aload 0 /* this */
            iload 3 /* isDefault */
            putfield org.h2.bnf.context.DbSchema.isDefault:Z
         5: .line 64
            aload 2 /* name */
            ifnonnull 8
         6: .line 66
            aload 0 /* this */
            iconst_1
            putfield org.h2.bnf.context.DbSchema.isSystem:Z
         7: .line 67
            goto 23
      StackMap locals: org.h2.bnf.context.DbSchema org.h2.bnf.context.DbContents java.lang.String int
      StackMap stack:
         8: ldc "INFORMATION_SCHEMA"
            aload 2 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 68
            aload 0 /* this */
            iconst_1
            putfield org.h2.bnf.context.DbSchema.isSystem:Z
        10: .line 69
            goto 23
      StackMap locals:
      StackMap stack:
        11: aload 1 /* contents */
            invokevirtual org.h2.bnf.context.DbContents.isH2:()Z
            ifne 15
        12: .line 70
            aload 2 /* name */
            invokestatic org.h2.util.StringUtils.toUpperEnglish:(Ljava/lang/String;)Ljava/lang/String;
            ldc "INFO"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 15
        13: .line 71
            aload 0 /* this */
            iconst_1
            putfield org.h2.bnf.context.DbSchema.isSystem:Z
        14: .line 72
            goto 23
      StackMap locals:
      StackMap stack:
        15: aload 1 /* contents */
            invokevirtual org.h2.bnf.context.DbContents.isPostgreSQL:()Z
            ifeq 19
        16: .line 73
            aload 2 /* name */
            invokestatic org.h2.util.StringUtils.toUpperEnglish:(Ljava/lang/String;)Ljava/lang/String;
            ldc "PG_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 19
        17: .line 74
            aload 0 /* this */
            iconst_1
            putfield org.h2.bnf.context.DbSchema.isSystem:Z
        18: .line 75
            goto 23
      StackMap locals:
      StackMap stack:
        19: aload 1 /* contents */
            invokevirtual org.h2.bnf.context.DbContents.isDerby:()Z
            ifeq 22
            aload 2 /* name */
            ldc "SYS"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 22
        20: .line 76
            aload 0 /* this */
            iconst_1
            putfield org.h2.bnf.context.DbSchema.isSystem:Z
        21: .line 77
            goto 23
        22: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.h2.bnf.context.DbSchema.isSystem:Z
        23: .line 80
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean isDefault
        end local 2 // java.lang.String name
        end local 1 // org.h2.bnf.context.DbContents contents
        end local 0 // org.h2.bnf.context.DbSchema this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lorg/h2/bnf/context/DbSchema;
            0   24     1   contents  Lorg/h2/bnf/context/DbContents;
            0   24     2       name  Ljava/lang/String;
            0   24     3  isDefault  Z
    MethodParameters:
           Name  Flags
      contents   
      name       
      isDefault  

  public org.h2.bnf.context.DbContents getContents();
    descriptor: ()Lorg/h2/bnf/context/DbContents;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.bnf.context.DbSchema this
         0: .line 86
            aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.contents:Lorg/h2/bnf/context/DbContents;
            areturn
        end local 0 // org.h2.bnf.context.DbSchema this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/bnf/context/DbSchema;

  public org.h2.bnf.context.DbTableOrView[] getTables();
    descriptor: ()[Lorg/h2/bnf/context/DbTableOrView;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.bnf.context.DbSchema this
         0: .line 93
            aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.tables:[Lorg/h2/bnf/context/DbTableOrView;
            areturn
        end local 0 // org.h2.bnf.context.DbSchema this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/bnf/context/DbSchema;

  public org.h2.bnf.context.DbProcedure[] getProcedures();
    descriptor: ()[Lorg/h2/bnf/context/DbProcedure;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.bnf.context.DbSchema this
         0: .line 100
            aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.procedures:[Lorg/h2/bnf/context/DbProcedure;
            areturn
        end local 0 // org.h2.bnf.context.DbSchema this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/bnf/context/DbSchema;

  public void readTables(java.sql.DatabaseMetaData, java.lang.String[]);
    descriptor: (Ljava/sql/DatabaseMetaData;[Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // org.h2.bnf.context.DbSchema this
        start local 1 // java.sql.DatabaseMetaData meta
        start local 2 // java.lang.String[] tableTypes
         0: .line 111
            aload 1 /* meta */
            aconst_null
            aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.name:Ljava/lang/String;
            aconst_null
            aload 2 /* tableTypes */
            invokeinterface java.sql.DatabaseMetaData.getTables:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/ResultSet;
            astore 3 /* rs */
        start local 3 // java.sql.ResultSet rs
         1: .line 112
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* list */
        start local 4 // java.util.ArrayList list
         2: .line 113
            goto 7
         3: .line 114
      StackMap locals: java.sql.ResultSet java.util.ArrayList
      StackMap stack:
            new org.h2.bnf.context.DbTableOrView
            dup
            aload 0 /* this */
            aload 3 /* rs */
            invokespecial org.h2.bnf.context.DbTableOrView.<init>:(Lorg/h2/bnf/context/DbSchema;Ljava/sql/ResultSet;)V
            astore 5 /* table */
        start local 5 // org.h2.bnf.context.DbTableOrView table
         4: .line 115
            aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.contents:Lorg/h2/bnf/context/DbContents;
            invokevirtual org.h2.bnf.context.DbContents.isOracle:()Z
            ifeq 6
            aload 5 /* table */
            invokevirtual org.h2.bnf.context.DbTableOrView.getName:()Ljava/lang/String;
            bipush 36
            invokevirtual java.lang.String.indexOf:(I)I
            ifle 6
         5: .line 116
            goto 7
         6: .line 118
      StackMap locals: org.h2.bnf.context.DbTableOrView
      StackMap stack:
            aload 4 /* list */
            aload 5 /* table */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.h2.bnf.context.DbTableOrView table
         7: .line 113
      StackMap locals:
      StackMap stack:
            aload 3 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 3
         8: .line 120
            aload 3 /* rs */
            invokeinterface java.sql.ResultSet.close:()V
         9: .line 121
            aload 0 /* this */
            aload 4 /* list */
            iconst_0
            anewarray org.h2.bnf.context.DbTableOrView
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.h2.bnf.context.DbTableOrView[]
            putfield org.h2.bnf.context.DbSchema.tables:[Lorg/h2/bnf/context/DbTableOrView;
        10: .line 122
            aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.tables:[Lorg/h2/bnf/context/DbTableOrView;
            arraylength
            getstatic org.h2.engine.SysProperties.CONSOLE_MAX_TABLES_LIST_COLUMNS:I
            if_icmpge 31
        11: .line 123
            aconst_null
            astore 5
            aconst_null
            astore 6
        12: aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.contents:Lorg/h2/bnf/context/DbContents;
            invokevirtual org.h2.bnf.context.DbContents.isH2:()Z
            ifeq 16
            aload 1 /* meta */
            invokeinterface java.sql.DatabaseMetaData.getConnection:()Ljava/sql/Connection;
        13: .line 124
            ldc "SELECT COLUMN_NAME, ORDINAL_POSITION, COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?"
        14: .line 123
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
        15: .line 125
            goto 17
        16: .line 126
      StackMap locals: java.lang.Throwable java.lang.Throwable
      StackMap stack:
            aconst_null
        17: .line 123
      StackMap locals:
      StackMap stack: java.sql.PreparedStatement
            astore 7 /* ps */
        start local 7 // java.sql.PreparedStatement ps
        18: .line 127
            aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.tables:[Lorg/h2/bnf/context/DbTableOrView;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 24
      StackMap locals: org.h2.bnf.context.DbSchema java.sql.DatabaseMetaData java.lang.String[] java.sql.ResultSet java.util.ArrayList java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement top int int org.h2.bnf.context.DbTableOrView[]
      StackMap stack:
        19: aload 11
            iload 9
            aaload
            astore 8 /* tab */
        start local 8 // org.h2.bnf.context.DbTableOrView tab
        20: .line 129
            aload 8 /* tab */
            aload 1 /* meta */
            aload 7 /* ps */
            invokevirtual org.h2.bnf.context.DbTableOrView.readColumns:(Ljava/sql/DatabaseMetaData;Ljava/sql/PreparedStatement;)V
        21: .line 130
            goto 23
      StackMap locals: org.h2.bnf.context.DbSchema java.sql.DatabaseMetaData java.lang.String[] java.sql.ResultSet java.util.ArrayList java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement org.h2.bnf.context.DbTableOrView int int org.h2.bnf.context.DbTableOrView[]
      StackMap stack: java.sql.SQLException
        22: pop
        end local 8 // org.h2.bnf.context.DbTableOrView tab
        23: .line 127
      StackMap locals: org.h2.bnf.context.DbSchema java.sql.DatabaseMetaData java.lang.String[] java.sql.ResultSet java.util.ArrayList java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement top int int org.h2.bnf.context.DbTableOrView[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        24: iload 9
            iload 10
            if_icmplt 19
        25: .line 138
            aload 7 /* ps */
            ifnull 31
            aload 7 /* ps */
            invokeinterface java.sql.PreparedStatement.close:()V
            goto 31
      StackMap locals: org.h2.bnf.context.DbSchema java.sql.DatabaseMetaData java.lang.String[] java.sql.ResultSet java.util.ArrayList java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
        26: astore 5
            aload 7 /* ps */
            ifnull 27
            aload 7 /* ps */
            invokeinterface java.sql.PreparedStatement.close:()V
        end local 7 // java.sql.PreparedStatement ps
      StackMap locals:
      StackMap stack:
        27: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 6
            aload 5
            ifnonnull 29
            aload 6
            astore 5
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 5
            aload 6
            if_acmpeq 30
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        30: aload 5
            athrow
        31: .line 140
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.ArrayList list
        end local 3 // java.sql.ResultSet rs
        end local 2 // java.lang.String[] tableTypes
        end local 1 // java.sql.DatabaseMetaData meta
        end local 0 // org.h2.bnf.context.DbSchema this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   32     0        this  Lorg/h2/bnf/context/DbSchema;
            0   32     1        meta  Ljava/sql/DatabaseMetaData;
            0   32     2  tableTypes  [Ljava/lang/String;
            1   32     3          rs  Ljava/sql/ResultSet;
            2   32     4        list  Ljava/util/ArrayList<Lorg/h2/bnf/context/DbTableOrView;>;
            4    7     5       table  Lorg/h2/bnf/context/DbTableOrView;
           18   27     7          ps  Ljava/sql/PreparedStatement;
           20   23     8         tab  Lorg/h2/bnf/context/DbTableOrView;
      Exception table:
        from    to  target  type
          20    21      22  Class java.sql.SQLException
          18    25      26  any
          12    28      28  any
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
            Name  Flags
      meta        
      tableTypes  

  public void readProcedures(java.sql.DatabaseMetaData);
    descriptor: (Ljava/sql/DatabaseMetaData;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.h2.bnf.context.DbSchema this
        start local 1 // java.sql.DatabaseMetaData meta
         0: .line 149
            aload 1 /* meta */
            aconst_null
            aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.name:Ljava/lang/String;
            aconst_null
            invokeinterface java.sql.DatabaseMetaData.getProcedures:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;
            astore 2 /* rs */
        start local 2 // java.sql.ResultSet rs
         1: .line 150
            invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
            astore 3 /* list */
        start local 3 // java.util.ArrayList list
         2: .line 151
            goto 4
         3: .line 152
      StackMap locals: java.sql.ResultSet java.util.ArrayList
      StackMap stack:
            aload 3 /* list */
            new org.h2.bnf.context.DbProcedure
            dup
            aload 0 /* this */
            aload 2 /* rs */
            invokespecial org.h2.bnf.context.DbProcedure.<init>:(Lorg/h2/bnf/context/DbSchema;Ljava/sql/ResultSet;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 151
      StackMap locals:
      StackMap stack:
            aload 2 /* rs */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 3
         5: .line 154
            aload 2 /* rs */
            invokeinterface java.sql.ResultSet.close:()V
         6: .line 155
            aload 0 /* this */
            aload 3 /* list */
            iconst_0
            anewarray org.h2.bnf.context.DbProcedure
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.h2.bnf.context.DbProcedure[]
            putfield org.h2.bnf.context.DbSchema.procedures:[Lorg/h2/bnf/context/DbProcedure;
         7: .line 156
            aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.procedures:[Lorg/h2/bnf/context/DbProcedure;
            arraylength
            getstatic org.h2.engine.SysProperties.CONSOLE_MAX_PROCEDURES_LIST_COLUMNS:I
            if_icmpge 13
         8: .line 157
            aload 0 /* this */
            getfield org.h2.bnf.context.DbSchema.procedures:[Lorg/h2/bnf/context/DbProcedure;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 12
      StackMap locals: org.h2.bnf.context.DbSchema java.sql.DatabaseMetaData java.sql.ResultSet java.util.ArrayList top int int org.h2.bnf.context.DbProcedure[]
      StackMap stack:
         9: aload 7
            iload 5
            aaload
            astore 4 /* procedure */
        start local 4 // org.h2.bnf.context.DbProcedure procedure
        10: .line 158
            aload 4 /* procedure */
            aload 1 /* meta */
            invokevirtual org.h2.bnf.context.DbProcedure.readParameters:(Ljava/sql/DatabaseMetaData;)V
        end local 4 // org.h2.bnf.context.DbProcedure procedure
        11: .line 157
            iinc 5 1
      StackMap locals:
      StackMap stack:
        12: iload 5
            iload 6
            if_icmplt 9
        13: .line 161
      StackMap locals: org.h2.bnf.context.DbSchema java.sql.DatabaseMetaData java.sql.ResultSet java.util.ArrayList
      StackMap stack:
            return
        end local 3 // java.util.ArrayList list
        end local 2 // java.sql.ResultSet rs
        end local 1 // java.sql.DatabaseMetaData meta
        end local 0 // org.h2.bnf.context.DbSchema this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lorg/h2/bnf/context/DbSchema;
            0   14     1       meta  Ljava/sql/DatabaseMetaData;
            1   14     2         rs  Ljava/sql/ResultSet;
            2   14     3       list  Ljava/util/ArrayList<Lorg/h2/bnf/context/DbProcedure;>;
           10   11     4  procedure  Lorg/h2/bnf/context/DbProcedure;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      meta  
}
SourceFile: "DbSchema.java"