public class org.h2.mvstore.db.ValueDataType implements org.h2.mvstore.type.DataType
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.mvstore.db.ValueDataType
  super_class: java.lang.Object
{
  private static final byte NULL;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final byte BYTE;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final byte SHORT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final byte INT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final byte LONG;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final byte DECIMAL;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  private static final byte DOUBLE;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private static final byte FLOAT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final byte TIME;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  private static final byte DATE;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static final byte TIMESTAMP;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  private static final byte BYTES;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  private static final byte STRING;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  private static final byte STRING_IGNORECASE;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 14

  private static final byte BLOB;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 15

  private static final byte CLOB;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final byte ARRAY;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 17

  private static final byte RESULT_SET;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 18

  private static final byte JAVA_OBJECT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 19

  private static final byte UUID;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  private static final byte STRING_FIXED;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 21

  private static final byte GEOMETRY;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 22

  private static final byte TIMESTAMP_TZ;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 24

  private static final byte ENUM;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 25

  private static final byte INTERVAL;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 26

  private static final byte ROW;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 27

  private static final byte INT_0_15;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final byte LONG_0_7;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 48

  private static final byte DECIMAL_0_1;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 56

  private static final byte DECIMAL_SMALL_0;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 58

  private static final byte DECIMAL_SMALL;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 59

  private static final byte DOUBLE_0_1;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 60

  private static final byte FLOAT_0_1;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 62

  private static final byte BOOLEAN_FALSE;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  private static final byte BOOLEAN_TRUE;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65

  private static final byte INT_NEG;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 66

  private static final byte LONG_NEG;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 67

  private static final byte STRING_0_31;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 68

  private static final int BYTES_0_31;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  private static final int SPATIAL_KEY_2D;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 132

  private static final int CUSTOM_DATA_TYPE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 133

  final org.h2.store.DataHandler handler;
    descriptor: Lorg/h2/store/DataHandler;
    flags: (0x0010) ACC_FINAL

  final org.h2.value.CompareMode compareMode;
    descriptor: Lorg/h2/value/CompareMode;
    flags: (0x0010) ACC_FINAL

  protected final org.h2.engine.Mode mode;
    descriptor: Lorg/h2/engine/Mode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  final int[] sortTypes;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  org.h2.mvstore.rtree.SpatialDataType spatialType;
    descriptor: Lorg/h2/mvstore/rtree/SpatialDataType;
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.ValueDataType this
         0: .line 112
            aload 0 /* this */
            aconst_null
            iconst_0
            invokestatic org.h2.value.CompareMode.getInstance:(Ljava/lang/String;I)Lorg/h2/value/CompareMode;
            aconst_null
            aconst_null
            aconst_null
            invokespecial org.h2.mvstore.db.ValueDataType.<init>:(Lorg/h2/value/CompareMode;Lorg/h2/engine/Mode;Lorg/h2/store/DataHandler;[I)V
         1: .line 113
            return
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/db/ValueDataType;

  public void <init>(org.h2.engine.Database, int[]);
    descriptor: (Lorg/h2/engine/Database;[I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // org.h2.engine.Database database
        start local 2 // int[] sortTypes
         0: .line 116
            aload 0 /* this */
            aload 1 /* database */
            invokevirtual org.h2.engine.Database.getCompareMode:()Lorg/h2/value/CompareMode;
            aload 1 /* database */
            invokevirtual org.h2.engine.Database.getMode:()Lorg/h2/engine/Mode;
            aload 1 /* database */
            aload 2 /* sortTypes */
            invokespecial org.h2.mvstore.db.ValueDataType.<init>:(Lorg/h2/value/CompareMode;Lorg/h2/engine/Mode;Lorg/h2/store/DataHandler;[I)V
         1: .line 117
            return
        end local 2 // int[] sortTypes
        end local 1 // org.h2.engine.Database database
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/h2/mvstore/db/ValueDataType;
            0    2     1   database  Lorg/h2/engine/Database;
            0    2     2  sortTypes  [I
    MethodParameters:
           Name  Flags
      database   
      sortTypes  

  private void <init>(org.h2.value.CompareMode, org.h2.engine.Mode, org.h2.store.DataHandler, int[]);
    descriptor: (Lorg/h2/value/CompareMode;Lorg/h2/engine/Mode;Lorg/h2/store/DataHandler;[I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // org.h2.value.CompareMode compareMode
        start local 2 // org.h2.engine.Mode mode
        start local 3 // org.h2.store.DataHandler handler
        start local 4 // int[] sortTypes
         0: .line 119
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 121
            aload 0 /* this */
            aload 1 /* compareMode */
            putfield org.h2.mvstore.db.ValueDataType.compareMode:Lorg/h2/value/CompareMode;
         2: .line 122
            aload 0 /* this */
            aload 2 /* mode */
            putfield org.h2.mvstore.db.ValueDataType.mode:Lorg/h2/engine/Mode;
         3: .line 123
            aload 0 /* this */
            aload 3 /* handler */
            putfield org.h2.mvstore.db.ValueDataType.handler:Lorg/h2/store/DataHandler;
         4: .line 124
            aload 0 /* this */
            aload 4 /* sortTypes */
            putfield org.h2.mvstore.db.ValueDataType.sortTypes:[I
         5: .line 125
            return
        end local 4 // int[] sortTypes
        end local 3 // org.h2.store.DataHandler handler
        end local 2 // org.h2.engine.Mode mode
        end local 1 // org.h2.value.CompareMode compareMode
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/h2/mvstore/db/ValueDataType;
            0    6     1  compareMode  Lorg/h2/value/CompareMode;
            0    6     2         mode  Lorg/h2/engine/Mode;
            0    6     3      handler  Lorg/h2/store/DataHandler;
            0    6     4    sortTypes  [I
    MethodParameters:
             Name  Flags
      compareMode  
      mode         
      handler      
      sortTypes    

  private org.h2.mvstore.rtree.SpatialDataType getSpatialDataType();
    descriptor: ()Lorg/h2/mvstore/rtree/SpatialDataType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.ValueDataType this
         0: .line 128
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.spatialType:Lorg/h2/mvstore/rtree/SpatialDataType;
            ifnonnull 2
         1: .line 129
            aload 0 /* this */
            new org.h2.mvstore.rtree.SpatialDataType
            dup
            iconst_2
            invokespecial org.h2.mvstore.rtree.SpatialDataType.<init>:(I)V
            putfield org.h2.mvstore.db.ValueDataType.spatialType:Lorg/h2/mvstore/rtree/SpatialDataType;
         2: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.spatialType:Lorg/h2/mvstore/rtree/SpatialDataType;
            areturn
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/db/ValueDataType;

  public int compare(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // java.lang.Object a
        start local 2 // java.lang.Object b
         0: .line 136
            aload 1 /* a */
            aload 2 /* b */
            if_acmpne 2
         1: .line 137
            iconst_0
            ireturn
         2: .line 139
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            instanceof org.h2.value.ValueCollectionBase
            ifeq 27
            aload 2 /* b */
            instanceof org.h2.value.ValueCollectionBase
            ifeq 27
         3: .line 140
            aload 1 /* a */
            checkcast org.h2.value.ValueCollectionBase
            invokevirtual org.h2.value.ValueCollectionBase.getList:()[Lorg/h2/value/Value;
            astore 3 /* ax */
        start local 3 // org.h2.value.Value[] ax
         4: .line 141
            aload 2 /* b */
            checkcast org.h2.value.ValueCollectionBase
            invokevirtual org.h2.value.ValueCollectionBase.getList:()[Lorg/h2/value/Value;
            astore 4 /* bx */
        start local 4 // org.h2.value.Value[] bx
         5: .line 142
            aload 3 /* ax */
            arraylength
            istore 5 /* al */
        start local 5 // int al
         6: .line 143
            aload 4 /* bx */
            arraylength
            istore 6 /* bl */
        start local 6 // int bl
         7: .line 144
            iload 5 /* al */
            iload 6 /* bl */
            invokestatic java.lang.Math.min:(II)I
            istore 7 /* len */
        start local 7 // int len
         8: .line 145
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         9: goto 21
        10: .line 146
      StackMap locals: org.h2.mvstore.db.ValueDataType java.lang.Object java.lang.Object org.h2.value.Value[] org.h2.value.Value[] int int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.sortTypes:[I
            ifnonnull 11
            iconst_0
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.sortTypes:[I
            iload 8 /* i */
            iaload
      StackMap locals:
      StackMap stack: int
        12: istore 9 /* sortType */
        start local 9 // int sortType
        13: .line 147
            aload 3 /* ax */
            iload 8 /* i */
            aaload
            astore 10 /* one */
        start local 10 // org.h2.value.Value one
        14: .line 148
            aload 4 /* bx */
            iload 8 /* i */
            aaload
            astore 11 /* two */
        start local 11 // org.h2.value.Value two
        15: .line 149
            aload 10 /* one */
            ifnull 16
            aload 11 /* two */
            ifnonnull 17
        16: .line 150
      StackMap locals: int org.h2.value.Value org.h2.value.Value
      StackMap stack:
            aload 0 /* this */
            aload 3 /* ax */
            iload 7 /* len */
            iconst_1
            isub
            aaload
            aload 4 /* bx */
            iload 7 /* len */
            iconst_1
            isub
            aaload
            iconst_0
            invokevirtual org.h2.mvstore.db.ValueDataType.compareValues:(Lorg/h2/value/Value;Lorg/h2/value/Value;I)I
            ireturn
        17: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 10 /* one */
            aload 11 /* two */
            iload 9 /* sortType */
            invokevirtual org.h2.mvstore.db.ValueDataType.compareValues:(Lorg/h2/value/Value;Lorg/h2/value/Value;I)I
            istore 12 /* comp */
        start local 12 // int comp
        18: .line 154
            iload 12 /* comp */
            ifeq 20
        19: .line 155
            iload 12 /* comp */
            ireturn
        end local 12 // int comp
        end local 11 // org.h2.value.Value two
        end local 10 // org.h2.value.Value one
        end local 9 // int sortType
        20: .line 145
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 8 /* i */
            iload 7 /* len */
            if_icmplt 10
        end local 8 // int i
        22: .line 158
            iload 7 /* len */
            iload 5 /* al */
            if_icmpge 24
        23: .line 159
            iconst_m1
            ireturn
        24: .line 160
      StackMap locals:
      StackMap stack:
            iload 7 /* len */
            iload 6 /* bl */
            if_icmpge 26
        25: .line 161
            iconst_1
            ireturn
        26: .line 163
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // int len
        end local 6 // int bl
        end local 5 // int al
        end local 4 // org.h2.value.Value[] bx
        end local 3 // org.h2.value.Value[] ax
        27: .line 165
      StackMap locals: org.h2.mvstore.db.ValueDataType java.lang.Object java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* a */
            checkcast org.h2.value.Value
            aload 2 /* b */
            checkcast org.h2.value.Value
            iconst_0
            invokevirtual org.h2.mvstore.db.ValueDataType.compareValues:(Lorg/h2/value/Value;Lorg/h2/value/Value;I)I
            ireturn
        end local 2 // java.lang.Object b
        end local 1 // java.lang.Object a
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lorg/h2/mvstore/db/ValueDataType;
            0   28     1         a  Ljava/lang/Object;
            0   28     2         b  Ljava/lang/Object;
            4   27     3        ax  [Lorg/h2/value/Value;
            5   27     4        bx  [Lorg/h2/value/Value;
            6   27     5        al  I
            7   27     6        bl  I
            8   27     7       len  I
            9   22     8         i  I
           13   20     9  sortType  I
           14   20    10       one  Lorg/h2/value/Value;
           15   20    11       two  Lorg/h2/value/Value;
           18   20    12      comp  I
    MethodParameters:
      Name  Flags
      a     
      b     

  private int compareValues(org.h2.value.Value, org.h2.value.Value, int);
    descriptor: (Lorg/h2/value/Value;Lorg/h2/value/Value;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // org.h2.value.Value a
        start local 2 // org.h2.value.Value b
        start local 3 // int sortType
         0: .line 169
            aload 1 /* a */
            aload 2 /* b */
            if_acmpne 2
         1: .line 170
            iconst_0
            ireturn
         2: .line 172
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpne 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* aNull */
        start local 4 // boolean aNull
         5: .line 173
            iload 4 /* aNull */
            ifne 6
            aload 2 /* b */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpne 7
         6: .line 174
      StackMap locals: int
      StackMap stack:
            iload 4 /* aNull */
            iload 3 /* sortType */
            invokestatic org.h2.result.SortOrder.compareNull:(ZI)I
            ireturn
         7: .line 177
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            aload 2 /* b */
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.mode:Lorg/h2/engine/Mode;
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.compareMode:Lorg/h2/value/CompareMode;
            invokevirtual org.h2.value.Value.compareTo:(Lorg/h2/value/Value;Lorg/h2/engine/Mode;Lorg/h2/value/CompareMode;)I
            istore 5 /* comp */
        start local 5 // int comp
         8: .line 179
            iload 3 /* sortType */
            iconst_1
            iand
            ifeq 10
         9: .line 180
            iload 5 /* comp */
            ineg
            istore 5 /* comp */
        10: .line 182
      StackMap locals: int
      StackMap stack:
            iload 5 /* comp */
            ireturn
        end local 5 // int comp
        end local 4 // boolean aNull
        end local 3 // int sortType
        end local 2 // org.h2.value.Value b
        end local 1 // org.h2.value.Value a
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/h2/mvstore/db/ValueDataType;
            0   11     1         a  Lorg/h2/value/Value;
            0   11     2         b  Lorg/h2/value/Value;
            0   11     3  sortType  I
            5   11     4     aNull  Z
            8   11     5      comp  I
    MethodParameters:
          Name  Flags
      a         
      b         
      sortType  

  public int getMemory(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // java.lang.Object obj
         0: .line 187
            aload 1 /* obj */
            instanceof org.h2.mvstore.rtree.SpatialKey
            ifeq 2
         1: .line 188
            aload 0 /* this */
            invokevirtual org.h2.mvstore.db.ValueDataType.getSpatialDataType:()Lorg/h2/mvstore/rtree/SpatialDataType;
            aload 1 /* obj */
            invokevirtual org.h2.mvstore.rtree.SpatialDataType.getMemory:(Ljava/lang/Object;)I
            ireturn
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast org.h2.value.Value
            invokestatic org.h2.mvstore.db.ValueDataType.getMemory:(Lorg/h2/value/Value;)I
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/db/ValueDataType;
            0    3     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  private static int getMemory(org.h2.value.Value);
    descriptor: (Lorg/h2/value/Value;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.value.Value v
         0: .line 194
            aload 0 /* v */
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* v */
            invokevirtual org.h2.value.Value.getMemory:()I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.h2.value.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     v  Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      v     

  public void read(java.nio.ByteBuffer, java.lang.Object[], int, boolean);
    descriptor: (Ljava/nio/ByteBuffer;[Ljava/lang/Object;IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // java.nio.ByteBuffer buff
        start local 2 // java.lang.Object[] obj
        start local 3 // int len
        start local 4 // boolean key
         0: .line 199
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         1: goto 4
         2: .line 200
      StackMap locals: int
      StackMap stack:
            aload 2 /* obj */
            iload 5 /* i */
            aload 0 /* this */
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.db.ValueDataType.read:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
            aastore
         3: .line 199
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 5 /* i */
            iload 3 /* len */
            if_icmplt 2
        end local 5 // int i
         5: .line 202
            return
        end local 4 // boolean key
        end local 3 // int len
        end local 2 // java.lang.Object[] obj
        end local 1 // java.nio.ByteBuffer buff
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/mvstore/db/ValueDataType;
            0    6     1  buff  Ljava/nio/ByteBuffer;
            0    6     2   obj  [Ljava/lang/Object;
            0    6     3   len  I
            0    6     4   key  Z
            1    5     5     i  I
    MethodParameters:
      Name  Flags
      buff  
      obj   
      len   
      key   

  public void write(org.h2.mvstore.WriteBuffer, java.lang.Object[], int, boolean);
    descriptor: (Lorg/h2/mvstore/WriteBuffer;[Ljava/lang/Object;IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // org.h2.mvstore.WriteBuffer buff
        start local 2 // java.lang.Object[] obj
        start local 3 // int len
        start local 4 // boolean key
         0: .line 206
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         1: goto 4
         2: .line 207
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buff */
            aload 2 /* obj */
            iload 5 /* i */
            aaload
            invokevirtual org.h2.mvstore.db.ValueDataType.write:(Lorg/h2/mvstore/WriteBuffer;Ljava/lang/Object;)V
         3: .line 206
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 5 /* i */
            iload 3 /* len */
            if_icmplt 2
        end local 5 // int i
         5: .line 209
            return
        end local 4 // boolean key
        end local 3 // int len
        end local 2 // java.lang.Object[] obj
        end local 1 // org.h2.mvstore.WriteBuffer buff
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/mvstore/db/ValueDataType;
            0    6     1  buff  Lorg/h2/mvstore/WriteBuffer;
            0    6     2   obj  [Ljava/lang/Object;
            0    6     3   len  I
            0    6     4   key  Z
            1    5     5     i  I
    MethodParameters:
      Name  Flags
      buff  
      obj   
      len   
      key   

  public java.lang.Object read(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // java.nio.ByteBuffer buff
         0: .line 213
            aload 0 /* this */
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.db.ValueDataType.readValue:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
            areturn
        end local 1 // java.nio.ByteBuffer buff
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/ValueDataType;
            0    1     1  buff  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      buff  

  public void write(org.h2.mvstore.WriteBuffer, java.lang.Object);
    descriptor: (Lorg/h2/mvstore/WriteBuffer;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // org.h2.mvstore.WriteBuffer buff
        start local 2 // java.lang.Object obj
         0: .line 218
            aload 2 /* obj */
            instanceof org.h2.mvstore.rtree.SpatialKey
            ifeq 4
         1: .line 219
            aload 1 /* buff */
            bipush -124
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
         2: .line 220
            aload 0 /* this */
            invokevirtual org.h2.mvstore.db.ValueDataType.getSpatialDataType:()Lorg/h2/mvstore/rtree/SpatialDataType;
            aload 1 /* buff */
            aload 2 /* obj */
            invokevirtual org.h2.mvstore.rtree.SpatialDataType.write:(Lorg/h2/mvstore/WriteBuffer;Ljava/lang/Object;)V
         3: .line 221
            return
         4: .line 223
      StackMap locals:
      StackMap stack:
            aload 2 /* obj */
            checkcast org.h2.value.Value
            astore 3 /* x */
        start local 3 // org.h2.value.Value x
         5: .line 224
            aload 0 /* this */
            aload 1 /* buff */
            aload 3 /* x */
            invokevirtual org.h2.mvstore.db.ValueDataType.writeValue:(Lorg/h2/mvstore/WriteBuffer;Lorg/h2/value/Value;)V
         6: .line 225
            return
        end local 3 // org.h2.value.Value x
        end local 2 // java.lang.Object obj
        end local 1 // org.h2.mvstore.WriteBuffer buff
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/h2/mvstore/db/ValueDataType;
            0    7     1  buff  Lorg/h2/mvstore/WriteBuffer;
            0    7     2   obj  Ljava/lang/Object;
            5    7     3     x  Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      buff  
      obj   

  private void writeValue(org.h2.mvstore.WriteBuffer, org.h2.value.Value);
    descriptor: (Lorg/h2/mvstore/WriteBuffer;Lorg/h2/value/Value;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // org.h2.mvstore.WriteBuffer buff
        start local 2 // org.h2.value.Value v
         0: .line 228
            aload 2 /* v */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpne 3
         1: .line 229
            aload 1 /* buff */
            iconst_0
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
         2: .line 230
            return
         3: .line 232
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getValueType:()I
            istore 3 /* type */
        start local 3 // int type
         4: .line 233
            iload 3 /* type */
            tableswitch { // 1 - 39
                    1: 5
                    2: 9
                    3: 11
                    4: 13
                    5: 24
                    6: 33
                    7: 125
                    8: 136
                    9: 58
                   10: 66
                   11: 69
                   12: 95
                   13: 110
                   14: 119
                   15: 147
                   16: 147
                   17: 161
                   18: 172
                   19: 90
                   20: 105
                   21: 122
                   22: 197
                   23: 220
                   24: 79
                   25: 13
                   26: 203
                   27: 203
                   28: 203
                   29: 203
                   30: 203
                   31: 211
                   32: 211
                   33: 211
                   34: 211
                   35: 211
                   36: 211
                   37: 211
                   38: 211
                   39: 161
              default: 220
          }
         5: .line 235
      StackMap locals: int
      StackMap stack:
            aload 1 /* buff */
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getBoolean:()Z
            ifeq 6
            bipush 65
            goto 7
      StackMap locals:
      StackMap stack: org.h2.mvstore.WriteBuffer
         6: bipush 64
      StackMap locals: org.h2.mvstore.db.ValueDataType org.h2.mvstore.WriteBuffer org.h2.value.Value int
      StackMap stack: org.h2.mvstore.WriteBuffer int
         7: invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
         8: .line 236
            goto 228
         9: .line 238
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            iconst_2
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getByte:()B
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
        10: .line 239
            goto 228
        11: .line 241
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            iconst_3
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getShort:()S
            invokevirtual org.h2.mvstore.WriteBuffer.putShort:(S)Lorg/h2/mvstore/WriteBuffer;
            pop
        12: .line 242
            goto 228
        13: .line 245
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getInt:()I
            istore 4 /* x */
        start local 4 // int x
        14: .line 246
            iload 4 /* x */
            ifge 17
        15: .line 247
            aload 1 /* buff */
            bipush 66
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            iload 4 /* x */
            ineg
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
        16: .line 248
            goto 228
      StackMap locals: int
      StackMap stack:
        17: iload 4 /* x */
            bipush 16
            if_icmpge 20
        18: .line 249
            aload 1 /* buff */
            bipush 32
            iload 4 /* x */
            iadd
            i2b
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
        19: .line 250
            goto 228
        20: .line 251
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            iload 3 /* type */
            iconst_4
            if_icmpne 21
            iconst_4
            goto 22
      StackMap locals:
      StackMap stack: org.h2.mvstore.WriteBuffer
        21: bipush 25
      StackMap locals: org.h2.mvstore.db.ValueDataType org.h2.mvstore.WriteBuffer org.h2.value.Value int int
      StackMap stack: org.h2.mvstore.WriteBuffer int
        22: invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            iload 4 /* x */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
        23: .line 253
            goto 228
        end local 4 // int x
        24: .line 256
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getLong:()J
            lstore 4 /* x */
        start local 4 // long x
        25: .line 257
            lload 4 /* x */
            lconst_0
            lcmp
            ifge 28
        26: .line 258
            aload 1 /* buff */
            bipush 67
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            lload 4 /* x */
            lneg
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
        27: .line 259
            goto 228
      StackMap locals: long
      StackMap stack:
        28: lload 4 /* x */
            ldc 8
            lcmp
            ifge 31
        29: .line 260
            aload 1 /* buff */
            ldc 48
            lload 4 /* x */
            ladd
            l2i
            i2b
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
        30: .line 261
            goto 228
        31: .line 262
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            iconst_5
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            lload 4 /* x */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
        32: .line 264
            goto 228
        end local 4 // long x
        33: .line 267
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getBigDecimal:()Ljava/math/BigDecimal;
            astore 4 /* x */
        start local 4 // java.math.BigDecimal x
        34: .line 268
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            aload 4 /* x */
            invokevirtual java.math.BigDecimal.equals:(Ljava/lang/Object;)Z
            ifeq 37
        35: .line 269
            aload 1 /* buff */
            bipush 56
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
        36: .line 270
            goto 228
      StackMap locals: java.math.BigDecimal
      StackMap stack:
        37: getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            aload 4 /* x */
            invokevirtual java.math.BigDecimal.equals:(Ljava/lang/Object;)Z
            ifeq 40
        38: .line 271
            aload 1 /* buff */
            bipush 57
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
        39: .line 272
            goto 228
        40: .line 273
      StackMap locals:
      StackMap stack:
            aload 4 /* x */
            invokevirtual java.math.BigDecimal.scale:()I
            istore 5 /* scale */
        start local 5 // int scale
        41: .line 274
            aload 4 /* x */
            invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
            astore 6 /* b */
        start local 6 // java.math.BigInteger b
        42: .line 275
            aload 6 /* b */
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 7 /* bits */
        start local 7 // int bits
        43: .line 276
            iload 7 /* bits */
            bipush 63
            if_icmpgt 52
        44: .line 277
            iload 5 /* scale */
            ifne 48
        45: .line 278
            aload 1 /* buff */
            bipush 58
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
        46: .line 279
            aload 6 /* b */
            invokevirtual java.math.BigInteger.longValue:()J
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
        47: .line 280
            goto 228
        48: .line 281
      StackMap locals: int java.math.BigInteger int
      StackMap stack:
            aload 1 /* buff */
            bipush 59
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
        49: .line 282
            iload 5 /* scale */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
        50: .line 283
            aload 6 /* b */
            invokevirtual java.math.BigInteger.longValue:()J
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
        51: .line 285
            goto 228
        52: .line 286
      StackMap locals:
      StackMap stack:
            aload 6 /* b */
            invokevirtual java.math.BigInteger.toByteArray:()[B
            astore 8 /* bytes */
        start local 8 // byte[] bytes
        53: .line 287
            aload 1 /* buff */
            bipush 6
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
        54: .line 288
            iload 5 /* scale */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
        55: .line 289
            aload 8 /* bytes */
            arraylength
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
        56: .line 290
            aload 8 /* bytes */
            invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
            pop
        end local 8 // byte[] bytes
        end local 7 // int bits
        end local 6 // java.math.BigInteger b
        end local 5 // int scale
        57: .line 293
            goto 228
        end local 4 // java.math.BigDecimal x
        58: .line 296
      StackMap locals: org.h2.mvstore.db.ValueDataType org.h2.mvstore.WriteBuffer org.h2.value.Value int
      StackMap stack:
            aload 2 /* v */
            checkcast org.h2.value.ValueTime
            astore 4 /* t */
        start local 4 // org.h2.value.ValueTime t
        59: .line 297
            aload 4 /* t */
            invokevirtual org.h2.value.ValueTime.getNanos:()J
            lstore 5 /* nanos */
        start local 5 // long nanos
        60: .line 298
            lload 5 /* nanos */
            ldc 1000000
            ldiv
            lstore 7 /* millis */
        start local 7 // long millis
        61: .line 299
            lload 5 /* nanos */
            lload 7 /* millis */
            ldc 1000000
            lmul
            lsub
            lstore 5 /* nanos */
        62: .line 300
            aload 1 /* buff */
            bipush 9
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
        63: .line 301
            lload 7 /* millis */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
        64: .line 302
            lload 5 /* nanos */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
        65: .line 303
            goto 228
        end local 7 // long millis
        end local 5 // long nanos
        end local 4 // org.h2.value.ValueTime t
        66: .line 306
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            checkcast org.h2.value.ValueDate
            invokevirtual org.h2.value.ValueDate.getDateValue:()J
            lstore 4 /* x */
        start local 4 // long x
        67: .line 307
            aload 1 /* buff */
            bipush 10
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            lload 4 /* x */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
        68: .line 308
            goto 228
        end local 4 // long x
        69: .line 311
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            checkcast org.h2.value.ValueTimestamp
            astore 4 /* ts */
        start local 4 // org.h2.value.ValueTimestamp ts
        70: .line 312
            aload 4 /* ts */
            invokevirtual org.h2.value.ValueTimestamp.getDateValue:()J
            lstore 5 /* dateValue */
        start local 5 // long dateValue
        71: .line 313
            aload 4 /* ts */
            invokevirtual org.h2.value.ValueTimestamp.getTimeNanos:()J
            lstore 7 /* nanos */
        start local 7 // long nanos
        72: .line 314
            lload 7 /* nanos */
            ldc 1000000
            ldiv
            lstore 9 /* millis */
        start local 9 // long millis
        73: .line 315
            lload 7 /* nanos */
            lload 9 /* millis */
            ldc 1000000
            lmul
            lsub
            lstore 7 /* nanos */
        74: .line 316
            aload 1 /* buff */
            bipush 11
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
        75: .line 317
            lload 5 /* dateValue */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
        76: .line 318
            lload 9 /* millis */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
        77: .line 319
            lload 7 /* nanos */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
        78: .line 320
            goto 228
        end local 9 // long millis
        end local 7 // long nanos
        end local 5 // long dateValue
        end local 4 // org.h2.value.ValueTimestamp ts
        79: .line 323
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            checkcast org.h2.value.ValueTimestampTimeZone
            astore 4 /* ts */
        start local 4 // org.h2.value.ValueTimestampTimeZone ts
        80: .line 324
            aload 4 /* ts */
            invokevirtual org.h2.value.ValueTimestampTimeZone.getDateValue:()J
            lstore 5 /* dateValue */
        start local 5 // long dateValue
        81: .line 325
            aload 4 /* ts */
            invokevirtual org.h2.value.ValueTimestampTimeZone.getTimeNanos:()J
            lstore 7 /* nanos */
        start local 7 // long nanos
        82: .line 326
            lload 7 /* nanos */
            ldc 1000000
            ldiv
            lstore 9 /* millis */
        start local 9 // long millis
        83: .line 327
            lload 7 /* nanos */
            lload 9 /* millis */
            ldc 1000000
            lmul
            lsub
            lstore 7 /* nanos */
        84: .line 328
            aload 1 /* buff */
            bipush 24
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
        85: .line 329
            lload 5 /* dateValue */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
        86: .line 330
            lload 9 /* millis */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
        87: .line 331
            lload 7 /* nanos */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
        88: .line 332
            aload 4 /* ts */
            invokevirtual org.h2.value.ValueTimestampTimeZone.getTimeZoneOffsetMins:()S
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
        89: .line 333
            goto 228
        end local 9 // long millis
        end local 7 // long nanos
        end local 5 // long dateValue
        end local 4 // org.h2.value.ValueTimestampTimeZone ts
        90: .line 336
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getBytesNoCopy:()[B
            astore 4 /* b */
        start local 4 // byte[] b
        91: .line 337
            aload 1 /* buff */
            bipush 19
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
        92: .line 338
            aload 4 /* b */
            arraylength
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
        93: .line 339
            aload 4 /* b */
            invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
            pop
        94: .line 340
            goto 228
        end local 4 // byte[] b
        95: .line 343
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getBytesNoCopy:()[B
            astore 4 /* b */
        start local 4 // byte[] b
        96: .line 344
            aload 4 /* b */
            arraylength
            istore 5 /* len */
        start local 5 // int len
        97: .line 345
            iload 5 /* len */
            bipush 32
            if_icmpge 101
        98: .line 346
            aload 1 /* buff */
            bipush 100
            iload 5 /* len */
            iadd
            i2b
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
        99: .line 347
            aload 4 /* b */
            invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
            pop
       100: .line 348
            goto 228
       101: .line 349
      StackMap locals: byte[] int
      StackMap stack:
            aload 1 /* buff */
            bipush 12
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       102: .line 350
            aload 4 /* b */
            arraylength
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
       103: .line 351
            aload 4 /* b */
            invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
            pop
       104: .line 353
            goto 228
        end local 5 // int len
        end local 4 // byte[] b
       105: .line 356
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            checkcast org.h2.value.ValueUuid
            astore 4 /* uuid */
        start local 4 // org.h2.value.ValueUuid uuid
       106: .line 357
            aload 1 /* buff */
            bipush 20
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       107: .line 358
            aload 4 /* uuid */
            invokevirtual org.h2.value.ValueUuid.getHigh:()J
            invokevirtual org.h2.mvstore.WriteBuffer.putLong:(J)Lorg/h2/mvstore/WriteBuffer;
       108: .line 359
            aload 4 /* uuid */
            invokevirtual org.h2.value.ValueUuid.getLow:()J
            invokevirtual org.h2.mvstore.WriteBuffer.putLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
       109: .line 360
            goto 228
        end local 4 // org.h2.value.ValueUuid uuid
       110: .line 363
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getString:()Ljava/lang/String;
            astore 4 /* s */
        start local 4 // java.lang.String s
       111: .line 364
            aload 4 /* s */
            invokevirtual java.lang.String.length:()I
            istore 5 /* len */
        start local 5 // int len
       112: .line 365
            iload 5 /* len */
            bipush 32
            if_icmpge 116
       113: .line 366
            aload 1 /* buff */
            bipush 68
            iload 5 /* len */
            iadd
            i2b
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       114: .line 367
            aload 4 /* s */
            iload 5 /* len */
            invokevirtual org.h2.mvstore.WriteBuffer.putStringData:(Ljava/lang/String;I)Lorg/h2/mvstore/WriteBuffer;
            pop
       115: .line 368
            goto 228
       116: .line 369
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 1 /* buff */
            bipush 13
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       117: .line 370
            aload 1 /* buff */
            aload 4 /* s */
            invokestatic org.h2.mvstore.db.ValueDataType.writeString:(Lorg/h2/mvstore/WriteBuffer;Ljava/lang/String;)V
       118: .line 372
            goto 228
        end local 5 // int len
        end local 4 // java.lang.String s
       119: .line 375
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            bipush 14
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       120: .line 376
            aload 1 /* buff */
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getString:()Ljava/lang/String;
            invokestatic org.h2.mvstore.db.ValueDataType.writeString:(Lorg/h2/mvstore/WriteBuffer;Ljava/lang/String;)V
       121: .line 377
            goto 228
       122: .line 379
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            bipush 21
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       123: .line 380
            aload 1 /* buff */
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getString:()Ljava/lang/String;
            invokestatic org.h2.mvstore.db.ValueDataType.writeString:(Lorg/h2/mvstore/WriteBuffer;Ljava/lang/String;)V
       124: .line 381
            goto 228
       125: .line 383
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getDouble:()D
            dstore 4 /* x */
        start local 4 // double x
       126: .line 384
            dload 4 /* x */
            dconst_1
            dcmpl
            ifne 129
       127: .line 385
            aload 1 /* buff */
            bipush 61
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       128: .line 386
            goto 228
       129: .line 387
      StackMap locals: double
      StackMap stack:
            dload 4 /* x */
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lstore 6 /* d */
        start local 6 // long d
       130: .line 388
            lload 6 /* d */
            lconst_0
            lcmp
            ifne 133
       131: .line 389
            aload 1 /* buff */
            bipush 60
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       132: .line 390
            goto 228
       133: .line 391
      StackMap locals: long
      StackMap stack:
            aload 1 /* buff */
            bipush 7
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       134: .line 392
            lload 6 /* d */
            invokestatic java.lang.Long.reverse:(J)J
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
        end local 6 // long d
       135: .line 395
            goto 228
        end local 4 // double x
       136: .line 398
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getFloat:()F
            fstore 4 /* x */
        start local 4 // float x
       137: .line 399
            fload 4 /* x */
            fconst_1
            fcmpl
            ifne 140
       138: .line 400
            aload 1 /* buff */
            bipush 63
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       139: .line 401
            goto 228
       140: .line 402
      StackMap locals: float
      StackMap stack:
            fload 4 /* x */
            invokestatic java.lang.Float.floatToIntBits:(F)I
            istore 5 /* f */
        start local 5 // int f
       141: .line 403
            iload 5 /* f */
            ifne 144
       142: .line 404
            aload 1 /* buff */
            bipush 62
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       143: .line 405
            goto 228
       144: .line 406
      StackMap locals: int
      StackMap stack:
            aload 1 /* buff */
            bipush 8
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       145: .line 407
            iload 5 /* f */
            invokestatic java.lang.Integer.reverse:(I)I
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
        end local 5 // int f
       146: .line 410
            goto 228
        end local 4 // float x
       147: .line 414
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            iload 3 /* type */
            bipush 15
            if_icmpne 148
            bipush 15
            goto 149
      StackMap locals:
      StackMap stack: org.h2.mvstore.WriteBuffer
       148: bipush 16
      StackMap locals: org.h2.mvstore.db.ValueDataType org.h2.mvstore.WriteBuffer org.h2.value.Value int
      StackMap stack: org.h2.mvstore.WriteBuffer int
       149: invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       150: .line 415
            aload 2 /* v */
            checkcast org.h2.value.ValueLobDb
            astore 4 /* lob */
        start local 4 // org.h2.value.ValueLobDb lob
       151: .line 416
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLobDb.getSmall:()[B
            astore 5 /* small */
        start local 5 // byte[] small
       152: .line 417
            aload 5 /* small */
            ifnonnull 158
       153: .line 418
            aload 1 /* buff */
            bipush -3
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
       154: .line 419
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLobDb.getTableId:()I
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
       155: .line 420
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLobDb.getLobId:()J
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
       156: .line 421
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLobDb.getType:()Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getPrecision:()J
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
       157: .line 422
            goto 228
       158: .line 423
      StackMap locals: org.h2.value.ValueLobDb byte[]
      StackMap stack:
            aload 1 /* buff */
            aload 5 /* small */
            arraylength
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
       159: .line 424
            aload 5 /* small */
            invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
            pop
       160: .line 426
            goto 228
        end local 5 // byte[] small
        end local 4 // org.h2.value.ValueLobDb lob
       161: .line 430
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            checkcast org.h2.value.ValueCollectionBase
            invokevirtual org.h2.value.ValueCollectionBase.getList:()[Lorg/h2/value/Value;
            astore 4 /* list */
        start local 4 // org.h2.value.Value[] list
       162: .line 431
            aload 1 /* buff */
            iload 3 /* type */
            bipush 17
            if_icmpne 163
            bipush 17
            goto 164
      StackMap locals: org.h2.mvstore.db.ValueDataType org.h2.mvstore.WriteBuffer org.h2.value.Value int org.h2.value.Value[]
      StackMap stack: org.h2.mvstore.WriteBuffer
       163: bipush 27
      StackMap locals: org.h2.mvstore.db.ValueDataType org.h2.mvstore.WriteBuffer org.h2.value.Value int org.h2.value.Value[]
      StackMap stack: org.h2.mvstore.WriteBuffer int
       164: invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       165: .line 432
            aload 4 /* list */
            arraylength
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
       166: .line 433
            aload 4 /* list */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 170
      StackMap locals: org.h2.mvstore.db.ValueDataType org.h2.mvstore.WriteBuffer org.h2.value.Value int org.h2.value.Value[] top int int org.h2.value.Value[]
      StackMap stack:
       167: aload 8
            iload 6
            aaload
            astore 5 /* x */
        start local 5 // org.h2.value.Value x
       168: .line 434
            aload 0 /* this */
            aload 1 /* buff */
            aload 5 /* x */
            invokevirtual org.h2.mvstore.db.ValueDataType.writeValue:(Lorg/h2/mvstore/WriteBuffer;Lorg/h2/value/Value;)V
        end local 5 // org.h2.value.Value x
       169: .line 433
            iinc 6 1
      StackMap locals:
      StackMap stack:
       170: iload 6
            iload 7
            if_icmplt 167
       171: .line 436
            goto 228
        end local 4 // org.h2.value.Value[] list
       172: .line 439
      StackMap locals: org.h2.mvstore.db.ValueDataType org.h2.mvstore.WriteBuffer org.h2.value.Value int
      StackMap stack:
            aload 1 /* buff */
            bipush 18
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       173: .line 440
            aload 2 /* v */
            checkcast org.h2.value.ValueResultSet
            invokevirtual org.h2.value.ValueResultSet.getResult:()Lorg/h2/result/ResultInterface;
            astore 4 /* result */
        start local 4 // org.h2.result.ResultInterface result
       174: .line 441
            aload 4 /* result */
            invokeinterface org.h2.result.ResultInterface.getVisibleColumnCount:()I
            istore 5 /* columnCount */
        start local 5 // int columnCount
       175: .line 442
            aload 1 /* buff */
            iload 5 /* columnCount */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
       176: .line 443
            iconst_0
            istore 6 /* i */
        start local 6 // int i
       177: goto 185
       178: .line 444
      StackMap locals: org.h2.result.ResultInterface int int
      StackMap stack:
            aload 1 /* buff */
            aload 4 /* result */
            iload 6 /* i */
            invokeinterface org.h2.result.ResultInterface.getAlias:(I)Ljava/lang/String;
            invokestatic org.h2.mvstore.db.ValueDataType.writeString:(Lorg/h2/mvstore/WriteBuffer;Ljava/lang/String;)V
       179: .line 445
            aload 1 /* buff */
            aload 4 /* result */
            iload 6 /* i */
            invokeinterface org.h2.result.ResultInterface.getColumnName:(I)Ljava/lang/String;
            invokestatic org.h2.mvstore.db.ValueDataType.writeString:(Lorg/h2/mvstore/WriteBuffer;Ljava/lang/String;)V
       180: .line 446
            aload 4 /* result */
            iload 6 /* i */
            invokeinterface org.h2.result.ResultInterface.getColumnType:(I)Lorg/h2/value/TypeInfo;
            astore 7 /* columnType */
        start local 7 // org.h2.value.TypeInfo columnType
       181: .line 447
            aload 1 /* buff */
            aload 7 /* columnType */
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
       182: .line 448
            aload 7 /* columnType */
            invokevirtual org.h2.value.TypeInfo.getPrecision:()J
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
       183: .line 449
            aload 7 /* columnType */
            invokevirtual org.h2.value.TypeInfo.getScale:()I
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
        end local 7 // org.h2.value.TypeInfo columnType
       184: .line 443
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
       185: iload 6 /* i */
            iload 5 /* columnCount */
            if_icmplt 178
        end local 6 // int i
       186: .line 451
            goto 194
       187: .line 452
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            iconst_1
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       188: .line 453
            aload 4 /* result */
            invokeinterface org.h2.result.ResultInterface.currentRow:()[Lorg/h2/value/Value;
            astore 6 /* row */
        start local 6 // org.h2.value.Value[] row
       189: .line 454
            iconst_0
            istore 7 /* i */
        start local 7 // int i
       190: goto 193
       191: .line 455
      StackMap locals: org.h2.value.Value[] int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buff */
            aload 6 /* row */
            iload 7 /* i */
            aaload
            invokevirtual org.h2.mvstore.db.ValueDataType.writeValue:(Lorg/h2/mvstore/WriteBuffer;Lorg/h2/value/Value;)V
       192: .line 454
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
       193: iload 7 /* i */
            iload 5 /* columnCount */
            if_icmplt 191
        end local 7 // int i
        end local 6 // org.h2.value.Value[] row
       194: .line 451
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            invokeinterface org.h2.result.ResultInterface.next:()Z
            ifne 187
       195: .line 458
            aload 1 /* buff */
            iconst_0
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
       196: .line 459
            goto 228
        end local 5 // int columnCount
        end local 4 // org.h2.result.ResultInterface result
       197: .line 462
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getBytes:()[B
            astore 4 /* b */
        start local 4 // byte[] b
       198: .line 463
            aload 4 /* b */
            arraylength
            istore 5 /* len */
        start local 5 // int len
       199: .line 464
            aload 1 /* buff */
            bipush 22
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       200: .line 465
            iload 5 /* len */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
       201: .line 466
            aload 4 /* b */
            invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
            pop
       202: .line 467
            goto 228
        end local 5 // int len
        end local 4 // byte[] b
       203: .line 474
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            checkcast org.h2.value.ValueInterval
            astore 4 /* interval */
        start local 4 // org.h2.value.ValueInterval interval
       204: .line 475
            iload 3 /* type */
            bipush 26
            isub
            istore 5 /* ordinal */
        start local 5 // int ordinal
       205: .line 476
            aload 4 /* interval */
            invokevirtual org.h2.value.ValueInterval.isNegative:()Z
            ifeq 207
       206: .line 477
            iload 5 /* ordinal */
            iconst_m1
            ixor
            istore 5 /* ordinal */
       207: .line 479
      StackMap locals: org.h2.value.ValueInterval int
      StackMap stack:
            aload 1 /* buff */
            bipush 26
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       208: .line 480
            iload 5 /* ordinal */
            i2b
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       209: .line 481
            aload 4 /* interval */
            invokevirtual org.h2.value.ValueInterval.getLeading:()J
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
       210: .line 482
            goto 228
        end local 5 // int ordinal
        end local 4 // org.h2.value.ValueInterval interval
       211: .line 492
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            checkcast org.h2.value.ValueInterval
            astore 4 /* interval */
        start local 4 // org.h2.value.ValueInterval interval
       212: .line 493
            iload 3 /* type */
            bipush 26
            isub
            istore 5 /* ordinal */
        start local 5 // int ordinal
       213: .line 494
            aload 4 /* interval */
            invokevirtual org.h2.value.ValueInterval.isNegative:()Z
            ifeq 215
       214: .line 495
            iload 5 /* ordinal */
            iconst_m1
            ixor
            istore 5 /* ordinal */
       215: .line 497
      StackMap locals: org.h2.value.ValueInterval int
      StackMap stack:
            aload 1 /* buff */
            bipush 26
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       216: .line 498
            iload 5 /* ordinal */
            i2b
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       217: .line 499
            aload 4 /* interval */
            invokevirtual org.h2.value.ValueInterval.getLeading:()J
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
       218: .line 500
            aload 4 /* interval */
            invokevirtual org.h2.value.ValueInterval.getRemaining:()J
            invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
            pop
       219: .line 501
            goto 228
        end local 5 // int ordinal
        end local 4 // org.h2.value.ValueInterval interval
       220: .line 504
      StackMap locals:
      StackMap stack:
            getstatic org.h2.util.JdbcUtils.customDataTypesHandler:Lorg/h2/api/CustomDataTypesHandler;
            ifnull 227
       221: .line 505
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getBytesNoCopy:()[B
            astore 4 /* b */
        start local 4 // byte[] b
       222: .line 506
            aload 1 /* buff */
            bipush -123
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
       223: .line 507
            iload 3 /* type */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
       224: .line 508
            aload 4 /* b */
            arraylength
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
       225: .line 509
            aload 4 /* b */
            invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
            pop
       226: .line 510
            goto 228
        end local 4 // byte[] b
       227: .line 512
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "type="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* v */
            invokevirtual org.h2.value.Value.getValueType:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
       228: .line 514
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int type
        end local 2 // org.h2.value.Value v
        end local 1 // org.h2.mvstore.WriteBuffer buff
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0  229     0         this  Lorg/h2/mvstore/db/ValueDataType;
            0  229     1         buff  Lorg/h2/mvstore/WriteBuffer;
            0  229     2            v  Lorg/h2/value/Value;
            4  229     3         type  I
           14   24     4            x  I
           25   33     4            x  J
           34   58     4            x  Ljava/math/BigDecimal;
           41   57     5        scale  I
           42   57     6            b  Ljava/math/BigInteger;
           43   57     7         bits  I
           53   57     8        bytes  [B
           59   66     4            t  Lorg/h2/value/ValueTime;
           60   66     5        nanos  J
           61   66     7       millis  J
           67   69     4            x  J
           70   79     4           ts  Lorg/h2/value/ValueTimestamp;
           71   79     5    dateValue  J
           72   79     7        nanos  J
           73   79     9       millis  J
           80   90     4           ts  Lorg/h2/value/ValueTimestampTimeZone;
           81   90     5    dateValue  J
           82   90     7        nanos  J
           83   90     9       millis  J
           91   95     4            b  [B
           96  105     4            b  [B
           97  105     5          len  I
          106  110     4         uuid  Lorg/h2/value/ValueUuid;
          111  119     4            s  Ljava/lang/String;
          112  119     5          len  I
          126  136     4            x  D
          130  135     6            d  J
          137  147     4            x  F
          141  146     5            f  I
          151  161     4          lob  Lorg/h2/value/ValueLobDb;
          152  161     5        small  [B
          162  172     4         list  [Lorg/h2/value/Value;
          168  169     5            x  Lorg/h2/value/Value;
          174  197     4       result  Lorg/h2/result/ResultInterface;
          175  197     5  columnCount  I
          177  186     6            i  I
          181  184     7   columnType  Lorg/h2/value/TypeInfo;
          189  194     6          row  [Lorg/h2/value/Value;
          190  194     7            i  I
          198  203     4            b  [B
          199  203     5          len  I
          204  211     4     interval  Lorg/h2/value/ValueInterval;
          205  211     5      ordinal  I
          212  220     4     interval  Lorg/h2/value/ValueInterval;
          213  220     5      ordinal  I
          222  227     4            b  [B
    MethodParameters:
      Name  Flags
      buff  
      v     

  private static void writeString(org.h2.mvstore.WriteBuffer, java.lang.String);
    descriptor: (Lorg/h2/mvstore/WriteBuffer;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.mvstore.WriteBuffer buff
        start local 1 // java.lang.String s
         0: .line 517
            aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         1: .line 518
            aload 0 /* buff */
            iload 2 /* len */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
            aload 1 /* s */
            iload 2 /* len */
            invokevirtual org.h2.mvstore.WriteBuffer.putStringData:(Ljava/lang/String;I)Lorg/h2/mvstore/WriteBuffer;
            pop
         2: .line 519
            return
        end local 2 // int len
        end local 1 // java.lang.String s
        end local 0 // org.h2.mvstore.WriteBuffer buff
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  buff  Lorg/h2/mvstore/WriteBuffer;
            0    3     1     s  Ljava/lang/String;
            1    3     2   len  I
    MethodParameters:
      Name  Flags
      buff  
      s     

  private java.lang.Object readValue(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=9, args_size=2
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // java.nio.ByteBuffer buff
         0: .line 527
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            istore 2 /* type */
        start local 2 // int type
         1: .line 528
            iload 2 /* type */
            lookupswitch { // 40
                    0: 2
                    2: 9
                    3: 10
                    4: 6
                    5: 8
                    6: 18
                    7: 60
                    8: 61
                    9: 25
                   10: 24
                   11: 27
                   12: 34
                   13: 43
                   14: 44
                   15: 62
                   16: 62
                   17: 80
                   18: 90
                   19: 38
                   20: 42
                   21: 45
                   22: 109
                   24: 30
                   25: 6
                   26: 46
                   27: 80
                   56: 11
                   57: 12
                   58: 13
                   59: 15
                   60: 58
                   61: 59
                   62: 56
                   63: 57
                   64: 4
                   65: 3
                   66: 5
                   67: 7
                  132: 113
                  133: 114
              default: 125
          }
         2: .line 530
      StackMap locals: int
      StackMap stack:
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
         3: .line 532
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueBoolean.TRUE:Lorg/h2/value/ValueBoolean;
            areturn
         4: .line 534
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueBoolean.FALSE:Lorg/h2/value/ValueBoolean;
            areturn
         5: .line 536
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            ineg
            invokestatic org.h2.value.ValueInt.get:(I)Lorg/h2/value/ValueInt;
            areturn
         6: .line 539
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            invokestatic org.h2.value.ValueInt.get:(I)Lorg/h2/value/ValueInt;
            areturn
         7: .line 541
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            lneg
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            areturn
         8: .line 543
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            areturn
         9: .line 545
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.get:()B
            invokestatic org.h2.value.ValueByte.get:(B)Lorg/h2/value/ValueByte;
            areturn
        10: .line 547
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.getShort:()S
            invokestatic org.h2.value.ValueShort.get:(S)Lorg/h2/value/ValueShort;
            areturn
        11: .line 549
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueDecimal.ZERO:Ljava/lang/Object;
            areturn
        12: .line 551
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueDecimal.ONE:Ljava/lang/Object;
            areturn
        13: .line 554
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
        14: .line 553
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            invokestatic org.h2.value.ValueDecimal.get:(Ljava/math/BigDecimal;)Lorg/h2/value/ValueDecimal;
            areturn
        15: .line 556
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 3 /* scale */
        start local 3 // int scale
        16: .line 558
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            iload 3 /* scale */
        17: .line 557
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            invokestatic org.h2.value.ValueDecimal.get:(Ljava/math/BigDecimal;)Lorg/h2/value/ValueDecimal;
            areturn
        end local 3 // int scale
        18: .line 561
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 3 /* scale */
        start local 3 // int scale
        19: .line 562
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 4 /* len */
        start local 4 // int len
        20: .line 563
            iload 4 /* len */
            invokestatic org.h2.util.Utils.newBytes:(I)[B
            astore 5 /* buff2 */
        start local 5 // byte[] buff2
        21: .line 564
            aload 1 /* buff */
            aload 5 /* buff2 */
            iconst_0
            iload 4 /* len */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        22: .line 565
            new java.math.BigInteger
            dup
            aload 5 /* buff2 */
            invokespecial java.math.BigInteger.<init>:([B)V
            astore 6 /* b */
        start local 6 // java.math.BigInteger b
        23: .line 566
            new java.math.BigDecimal
            dup
            aload 6 /* b */
            iload 3 /* scale */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;I)V
            invokestatic org.h2.value.ValueDecimal.get:(Ljava/math/BigDecimal;)Lorg/h2/value/ValueDecimal;
            areturn
        end local 6 // java.math.BigInteger b
        end local 5 // byte[] buff2
        end local 4 // int len
        end local 3 // int scale
        24: .line 569
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            invokestatic org.h2.value.ValueDate.fromDateValue:(J)Lorg/h2/value/ValueDate;
            areturn
        25: .line 572
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            ldc 1000000
            lmul
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            ladd
            lstore 3 /* nanos */
        start local 3 // long nanos
        26: .line 573
            lload 3 /* nanos */
            invokestatic org.h2.value.ValueTime.fromNanos:(J)Lorg/h2/value/ValueTime;
            areturn
        end local 3 // long nanos
        27: .line 576
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            lstore 3 /* dateValue */
        start local 3 // long dateValue
        28: .line 577
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            ldc 1000000
            lmul
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            ladd
            lstore 5 /* nanos */
        start local 5 // long nanos
        29: .line 578
            lload 3 /* dateValue */
            lload 5 /* nanos */
            invokestatic org.h2.value.ValueTimestamp.fromDateValueAndNanos:(JJ)Lorg/h2/value/ValueTimestamp;
            areturn
        end local 5 // long nanos
        end local 3 // long dateValue
        30: .line 581
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            lstore 3 /* dateValue */
        start local 3 // long dateValue
        31: .line 582
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            ldc 1000000
            lmul
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            ladd
            lstore 5 /* nanos */
        start local 5 // long nanos
        32: .line 583
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            i2s
            istore 7 /* tz */
        start local 7 // short tz
        33: .line 584
            lload 3 /* dateValue */
            lload 5 /* nanos */
            iload 7 /* tz */
            invokestatic org.h2.value.ValueTimestampTimeZone.fromDateValueAndNanos:(JJS)Lorg/h2/value/ValueTimestampTimeZone;
            areturn
        end local 7 // short tz
        end local 5 // long nanos
        end local 3 // long dateValue
        34: .line 587
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 3 /* len */
        start local 3 // int len
        35: .line 588
            iload 3 /* len */
            invokestatic org.h2.util.Utils.newBytes:(I)[B
            astore 4 /* b */
        start local 4 // byte[] b
        36: .line 589
            aload 1 /* buff */
            aload 4 /* b */
            iconst_0
            iload 3 /* len */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        37: .line 590
            aload 4 /* b */
            invokestatic org.h2.value.ValueBytes.getNoCopy:([B)Lorg/h2/value/ValueBytes;
            areturn
        end local 4 // byte[] b
        end local 3 // int len
        38: .line 593
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 3 /* len */
        start local 3 // int len
        39: .line 594
            iload 3 /* len */
            invokestatic org.h2.util.Utils.newBytes:(I)[B
            astore 4 /* b */
        start local 4 // byte[] b
        40: .line 595
            aload 1 /* buff */
            aload 4 /* b */
            iconst_0
            iload 3 /* len */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        41: .line 596
            aconst_null
            aload 4 /* b */
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.handler:Lorg/h2/store/DataHandler;
            invokestatic org.h2.value.ValueJavaObject.getNoCopy:(Ljava/lang/Object;[BLorg/h2/store/DataHandler;)Lorg/h2/value/ValueJavaObject;
            areturn
        end local 4 // byte[] b
        end local 3 // int len
        42: .line 599
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.getLong:()J
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.getLong:()J
            invokestatic org.h2.value.ValueUuid.get:(JJ)Lorg/h2/value/ValueUuid;
            areturn
        43: .line 601
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readString:(Ljava/nio/ByteBuffer;)Ljava/lang/String;
            invokestatic org.h2.value.ValueString.get:(Ljava/lang/String;)Lorg/h2/value/Value;
            areturn
        44: .line 603
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readString:(Ljava/nio/ByteBuffer;)Ljava/lang/String;
            invokestatic org.h2.value.ValueStringIgnoreCase.get:(Ljava/lang/String;)Lorg/h2/value/ValueStringIgnoreCase;
            areturn
        45: .line 605
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readString:(Ljava/nio/ByteBuffer;)Ljava/lang/String;
            invokestatic org.h2.value.ValueStringFixed.get:(Ljava/lang/String;)Lorg/h2/value/ValueStringFixed;
            areturn
        46: .line 607
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 3 /* ordinal */
        start local 3 // int ordinal
        47: .line 608
            iload 3 /* ordinal */
            ifge 48
            iconst_1
            goto 49
      StackMap locals: int
      StackMap stack:
        48: iconst_0
      StackMap locals:
      StackMap stack: int
        49: istore 4 /* negative */
        start local 4 // boolean negative
        50: .line 609
            iload 4 /* negative */
            ifeq 52
        51: .line 610
            iload 3 /* ordinal */
            iconst_m1
            ixor
            istore 3 /* ordinal */
        52: .line 612
      StackMap locals: int
      StackMap stack:
            iload 3 /* ordinal */
            invokestatic org.h2.api.IntervalQualifier.valueOf:(I)Lorg/h2/api/IntervalQualifier;
            iload 4 /* negative */
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
        53: .line 613
            iload 3 /* ordinal */
            iconst_5
            if_icmpge 54
            lconst_0
            goto 55
      StackMap locals: org.h2.mvstore.db.ValueDataType java.nio.ByteBuffer int int int
      StackMap stack: org.h2.api.IntervalQualifier int long
        54: aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
        55: .line 612
      StackMap locals: org.h2.mvstore.db.ValueDataType java.nio.ByteBuffer int int int
      StackMap stack: org.h2.api.IntervalQualifier int long long
            invokestatic org.h2.value.ValueInterval.from:(Lorg/h2/api/IntervalQualifier;ZJJ)Lorg/h2/value/ValueInterval;
            areturn
        end local 4 // boolean negative
        end local 3 // int ordinal
        56: .line 616
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueFloat.ZERO:Lorg/h2/value/ValueFloat;
            areturn
        57: .line 618
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueFloat.ONE:Lorg/h2/value/ValueFloat;
            areturn
        58: .line 620
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueDouble.ZERO:Lorg/h2/value/ValueDouble;
            areturn
        59: .line 622
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueDouble.ONE:Lorg/h2/value/ValueDouble;
            areturn
        60: .line 624
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            invokestatic java.lang.Long.reverse:(J)J
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            invokestatic org.h2.value.ValueDouble.get:(D)Lorg/h2/value/ValueDouble;
            areturn
        61: .line 626
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            invokestatic java.lang.Integer.reverse:(I)I
            invokestatic java.lang.Float.intBitsToFloat:(I)F
            invokestatic org.h2.value.ValueFloat.get:(F)Lorg/h2/value/ValueFloat;
            areturn
        62: .line 629
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 3 /* smallLen */
        start local 3 // int smallLen
        63: .line 630
            iload 3 /* smallLen */
            iflt 69
        64: .line 631
            iload 3 /* smallLen */
            invokestatic org.h2.util.Utils.newBytes:(I)[B
            astore 4 /* small */
        start local 4 // byte[] small
        65: .line 632
            aload 1 /* buff */
            aload 4 /* small */
            iconst_0
            iload 3 /* smallLen */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        66: .line 633
            iload 2 /* type */
            bipush 15
            if_icmpne 67
            bipush 15
            goto 68
      StackMap locals: int byte[]
      StackMap stack:
        67: bipush 16
      StackMap locals:
      StackMap stack: int
        68: aload 4 /* small */
            invokestatic org.h2.value.ValueLobDb.createSmallLob:(I[B)Lorg/h2/value/ValueLobDb;
            areturn
        end local 4 // byte[] small
        69: .line 634
      StackMap locals:
      StackMap stack:
            iload 3 /* smallLen */
            bipush -3
            if_icmpne 77
        70: .line 635
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 4 /* tableId */
        start local 4 // int tableId
        71: .line 636
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            lstore 5 /* lobId */
        start local 5 // long lobId
        72: .line 637
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
            lstore 7 /* precision */
        start local 7 // long precision
        73: .line 638
            iload 2 /* type */
            bipush 15
            if_icmpne 74
            bipush 15
            goto 75
      StackMap locals: int long long
      StackMap stack:
        74: bipush 16
        75: .line 639
      StackMap locals:
      StackMap stack: int
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.handler:Lorg/h2/store/DataHandler;
            iload 4 /* tableId */
            lload 5 /* lobId */
            aconst_null
            lload 7 /* precision */
        76: .line 638
            invokestatic org.h2.value.ValueLobDb.create:(ILorg/h2/store/DataHandler;IJ[BJ)Lorg/h2/value/ValueLobDb;
            areturn
        end local 7 // long precision
        end local 5 // long lobId
        end local 4 // int tableId
        77: .line 641
      StackMap locals:
      StackMap stack:
            ldc 90030
        78: .line 642
            new java.lang.StringBuilder
            dup
            ldc "lob type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* smallLen */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        79: .line 641
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 3 // int smallLen
        80: .line 647
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 3 /* len */
        start local 3 // int len
        81: .line 648
            iload 3 /* len */
            anewarray org.h2.value.Value
            astore 4 /* list */
        start local 4 // org.h2.value.Value[] list
        82: .line 649
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        83: goto 86
        84: .line 650
      StackMap locals: int org.h2.value.Value[] int
      StackMap stack:
            aload 4 /* list */
            iload 5 /* i */
            aload 0 /* this */
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.db.ValueDataType.readValue:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
            checkcast org.h2.value.Value
            aastore
        85: .line 649
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        86: iload 5 /* i */
            iload 3 /* len */
            if_icmplt 84
        end local 5 // int i
        87: .line 652
            iload 2 /* type */
            bipush 17
            if_icmpne 88
            aload 4 /* list */
            invokestatic org.h2.value.ValueArray.get:([Lorg/h2/value/Value;)Lorg/h2/value/ValueArray;
            goto 89
      StackMap locals:
      StackMap stack:
        88: aload 4 /* list */
            invokestatic org.h2.value.ValueRow.get:([Lorg/h2/value/Value;)Lorg/h2/value/ValueRow;
      StackMap locals:
      StackMap stack: org.h2.value.ValueCollectionBase
        89: areturn
        end local 4 // org.h2.value.Value[] list
        end local 3 // int len
        90: .line 655
      StackMap locals:
      StackMap stack:
            new org.h2.result.SimpleResult
            dup
            invokespecial org.h2.result.SimpleResult.<init>:()V
            astore 3 /* rs */
        start local 3 // org.h2.result.SimpleResult rs
        91: .line 656
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 4 /* columns */
        start local 4 // int columns
        92: .line 657
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        93: goto 98
        94: .line 658
      StackMap locals: org.h2.result.SimpleResult int int
      StackMap stack:
            aload 3 /* rs */
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readString:(Ljava/nio/ByteBuffer;)Ljava/lang/String;
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readString:(Ljava/nio/ByteBuffer;)Ljava/lang/String;
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarLong:(Ljava/nio/ByteBuffer;)J
        95: .line 659
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
        96: .line 658
            invokevirtual org.h2.result.SimpleResult.addColumn:(Ljava/lang/String;Ljava/lang/String;IJI)V
        97: .line 657
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        98: iload 5 /* i */
            iload 4 /* columns */
            if_icmplt 94
        end local 5 // int i
        99: .line 661
            goto 107
       100: .line 662
      StackMap locals:
      StackMap stack:
            iload 4 /* columns */
            anewarray org.h2.value.Value
            astore 5 /* o */
        start local 5 // org.h2.value.Value[] o
       101: .line 663
            iconst_0
            istore 6 /* i */
        start local 6 // int i
       102: goto 105
       103: .line 664
      StackMap locals: org.h2.value.Value[] int
      StackMap stack:
            aload 5 /* o */
            iload 6 /* i */
            aload 0 /* this */
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.db.ValueDataType.readValue:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
            checkcast org.h2.value.Value
            aastore
       104: .line 663
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
       105: iload 6 /* i */
            iload 4 /* columns */
            if_icmplt 103
        end local 6 // int i
       106: .line 666
            aload 3 /* rs */
            aload 5 /* o */
            invokevirtual org.h2.result.SimpleResult.addRow:([Lorg/h2/value/Value;)V
        end local 5 // org.h2.value.Value[] o
       107: .line 661
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.get:()B
            ifne 100
       108: .line 668
            aload 3 /* rs */
            invokestatic org.h2.value.ValueResultSet.get:(Lorg/h2/result/SimpleResult;)Lorg/h2/value/ValueResultSet;
            areturn
        end local 4 // int columns
        end local 3 // org.h2.result.SimpleResult rs
       109: .line 671
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 3 /* len */
        start local 3 // int len
       110: .line 672
            iload 3 /* len */
            invokestatic org.h2.util.Utils.newBytes:(I)[B
            astore 4 /* b */
        start local 4 // byte[] b
       111: .line 673
            aload 1 /* buff */
            aload 4 /* b */
            iconst_0
            iload 3 /* len */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
       112: .line 674
            aload 4 /* b */
            invokestatic org.h2.value.ValueGeometry.get:([B)Lorg/h2/value/ValueGeometry;
            areturn
        end local 4 // byte[] b
        end local 3 // int len
       113: .line 677
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.db.ValueDataType.getSpatialDataType:()Lorg/h2/mvstore/rtree/SpatialDataType;
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.rtree.SpatialDataType.read:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
            areturn
       114: .line 679
      StackMap locals:
      StackMap stack:
            getstatic org.h2.util.JdbcUtils.customDataTypesHandler:Lorg/h2/api/CustomDataTypesHandler;
            ifnull 122
       115: .line 680
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 3 /* customType */
        start local 3 // int customType
       116: .line 681
            aload 1 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 4 /* len */
        start local 4 // int len
       117: .line 682
            iload 4 /* len */
            invokestatic org.h2.util.Utils.newBytes:(I)[B
            astore 5 /* b */
        start local 5 // byte[] b
       118: .line 683
            aload 1 /* buff */
            aload 5 /* b */
            iconst_0
            iload 4 /* len */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
       119: .line 684
            getstatic org.h2.util.JdbcUtils.customDataTypesHandler:Lorg/h2/api/CustomDataTypesHandler;
       120: .line 685
            aload 5 /* b */
            invokestatic org.h2.value.ValueBytes.getNoCopy:([B)Lorg/h2/value/ValueBytes;
            iload 3 /* customType */
       121: .line 684
            invokeinterface org.h2.api.CustomDataTypesHandler.convert:(Lorg/h2/value/Value;I)Lorg/h2/value/Value;
            areturn
        end local 5 // byte[] b
        end local 4 // int len
        end local 3 // int customType
       122: .line 687
      StackMap locals:
      StackMap stack:
            ldc 50004
       123: .line 688
            ldc "No CustomDataTypesHandler has been set up"
       124: .line 687
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
       125: .line 691
      StackMap locals:
      StackMap stack:
            iload 2 /* type */
            bipush 32
            if_icmplt 127
            iload 2 /* type */
            bipush 48
            if_icmpge 127
       126: .line 692
            iload 2 /* type */
            bipush 32
            isub
            invokestatic org.h2.value.ValueInt.get:(I)Lorg/h2/value/ValueInt;
            areturn
       127: .line 693
      StackMap locals:
      StackMap stack:
            iload 2 /* type */
            bipush 48
            if_icmplt 129
            iload 2 /* type */
            bipush 56
            if_icmpge 129
       128: .line 694
            iload 2 /* type */
            bipush 48
            isub
            i2l
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            areturn
       129: .line 695
      StackMap locals:
      StackMap stack:
            iload 2 /* type */
            bipush 100
            if_icmplt 134
            iload 2 /* type */
            sipush 132
            if_icmpge 134
       130: .line 696
            iload 2 /* type */
            bipush 100
            isub
            istore 3 /* len */
        start local 3 // int len
       131: .line 697
            iload 3 /* len */
            invokestatic org.h2.util.Utils.newBytes:(I)[B
            astore 4 /* b */
        start local 4 // byte[] b
       132: .line 698
            aload 1 /* buff */
            aload 4 /* b */
            iconst_0
            iload 3 /* len */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
       133: .line 699
            aload 4 /* b */
            invokestatic org.h2.value.ValueBytes.getNoCopy:([B)Lorg/h2/value/ValueBytes;
            areturn
        end local 4 // byte[] b
        end local 3 // int len
       134: .line 700
      StackMap locals:
      StackMap stack:
            iload 2 /* type */
            bipush 68
            if_icmplt 136
            iload 2 /* type */
            bipush 100
            if_icmpge 136
       135: .line 701
            aload 1 /* buff */
            iload 2 /* type */
            bipush 68
            isub
            invokestatic org.h2.mvstore.db.ValueDataType.readString:(Ljava/nio/ByteBuffer;I)Ljava/lang/String;
            invokestatic org.h2.value.ValueString.get:(Ljava/lang/String;)Lorg/h2/value/Value;
            areturn
       136: .line 703
      StackMap locals:
      StackMap stack:
            ldc 90030
            new java.lang.StringBuilder
            dup
            ldc "type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 2 // int type
        end local 1 // java.nio.ByteBuffer buff
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0  137     0        this  Lorg/h2/mvstore/db/ValueDataType;
            0  137     1        buff  Ljava/nio/ByteBuffer;
            1  137     2        type  I
           16   18     3       scale  I
           19   24     3       scale  I
           20   24     4         len  I
           21   24     5       buff2  [B
           23   24     6           b  Ljava/math/BigInteger;
           26   27     3       nanos  J
           28   30     3   dateValue  J
           29   30     5       nanos  J
           31   34     3   dateValue  J
           32   34     5       nanos  J
           33   34     7          tz  S
           35   38     3         len  I
           36   38     4           b  [B
           39   42     3         len  I
           40   42     4           b  [B
           47   56     3     ordinal  I
           50   56     4    negative  Z
           63   80     3    smallLen  I
           65   69     4       small  [B
           71   77     4     tableId  I
           72   77     5       lobId  J
           73   77     7   precision  J
           81   90     3         len  I
           82   90     4        list  [Lorg/h2/value/Value;
           83   87     5           i  I
           91  109     3          rs  Lorg/h2/result/SimpleResult;
           92  109     4     columns  I
           93   99     5           i  I
          101  107     5           o  [Lorg/h2/value/Value;
          102  106     6           i  I
          110  113     3         len  I
          111  113     4           b  [B
          116  122     3  customType  I
          117  122     4         len  I
          118  122     5           b  [B
          131  134     3         len  I
          132  134     4           b  [B
    MethodParameters:
      Name  Flags
      buff  

  private static int readVarInt(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.nio.ByteBuffer buff
         0: .line 708
            aload 0 /* buff */
            invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
            ireturn
        end local 0 // java.nio.ByteBuffer buff
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  buff  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      buff  

  private static long readVarLong(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.ByteBuffer buff
         0: .line 712
            aload 0 /* buff */
            invokestatic org.h2.mvstore.DataUtils.readVarLong:(Ljava/nio/ByteBuffer;)J
            lreturn
        end local 0 // java.nio.ByteBuffer buff
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  buff  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      buff  

  private static java.lang.String readString(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.nio.ByteBuffer buff
        start local 1 // int len
         0: .line 716
            aload 0 /* buff */
            iload 1 /* len */
            invokestatic org.h2.mvstore.DataUtils.readString:(Ljava/nio/ByteBuffer;I)Ljava/lang/String;
            areturn
        end local 1 // int len
        end local 0 // java.nio.ByteBuffer buff
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  buff  Ljava/nio/ByteBuffer;
            0    1     1   len  I
    MethodParameters:
      Name  Flags
      buff  
      len   

  private static java.lang.String readString(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.nio.ByteBuffer buff
         0: .line 720
            aload 0 /* buff */
            invokestatic org.h2.mvstore.db.ValueDataType.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 1 /* len */
        start local 1 // int len
         1: .line 721
            aload 0 /* buff */
            iload 1 /* len */
            invokestatic org.h2.mvstore.DataUtils.readString:(Ljava/nio/ByteBuffer;I)Ljava/lang/String;
            areturn
        end local 1 // int len
        end local 0 // java.nio.ByteBuffer buff
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  buff  Ljava/nio/ByteBuffer;
            1    2     1   len  I
    MethodParameters:
      Name  Flags
      buff  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.ValueDataType this
         0: .line 726
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.compareMode:Lorg/h2/value/CompareMode;
            invokevirtual org.h2.value.CompareMode.hashCode:()I
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.sortTypes:[I
            invokestatic java.util.Arrays.hashCode:([I)I
            ixor
            ireturn
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/ValueDataType;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.mvstore.db.ValueDataType this
        start local 1 // java.lang.Object obj
         0: .line 731
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 732
            iconst_1
            ireturn
         2: .line 733
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.h2.mvstore.db.ValueDataType
            ifne 4
         3: .line 734
            iconst_0
            ireturn
         4: .line 736
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast org.h2.mvstore.db.ValueDataType
            astore 2 /* v */
        start local 2 // org.h2.mvstore.db.ValueDataType v
         5: .line 737
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.compareMode:Lorg/h2/value/CompareMode;
            aload 2 /* v */
            getfield org.h2.mvstore.db.ValueDataType.compareMode:Lorg/h2/value/CompareMode;
            invokevirtual org.h2.value.CompareMode.equals:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 738
            iconst_0
            ireturn
         7: .line 740
      StackMap locals: org.h2.mvstore.db.ValueDataType
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.db.ValueDataType.sortTypes:[I
            aload 2 /* v */
            getfield org.h2.mvstore.db.ValueDataType.sortTypes:[I
            invokestatic java.util.Arrays.equals:([I[I)Z
            ireturn
        end local 2 // org.h2.mvstore.db.ValueDataType v
        end local 1 // java.lang.Object obj
        end local 0 // org.h2.mvstore.db.ValueDataType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/h2/mvstore/db/ValueDataType;
            0    8     1   obj  Ljava/lang/Object;
            5    8     2     v  Lorg/h2/mvstore/db/ValueDataType;
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "ValueDataType.java"