@@ -71,28 +71,28 @@ protected Serializable[] deserializeRow(long tableId, BitSet includedColumns, By
7171 Serializable [] result = new Serializable [numberOfBitsSet (includedColumns )];
7272 BitSet nullColumns = inputStream .readBitSet (result .length , true );
7373 for (int i = 0 , numberOfSkippedColumns = 0 ; i < types .length ; i ++) {
74- int typeCode = types [i ] & 0xFF , meta = metadata [i ], length = 0 ;
75- if (typeCode == ColumnType .STRING .getCode () && meta > 256 ) {
76- int meta0 = meta >> 8 , meta1 = meta & 0xFF ;
77- if ((meta0 & 0x30 ) != 0x30 ) { // long CHAR field
78- typeCode = meta0 | 0x30 ;
79- length = meta1 | (((meta0 & 0x30 ) ^ 0x30 ) << 4 );
80- } else {
81- if (meta0 == ColumnType .SET .getCode () || meta0 == ColumnType .ENUM .getCode () ||
82- meta0 == ColumnType .STRING .getCode ()) {
83- typeCode = meta0 ;
84- length = meta1 ;
85- } else {
86- throw new IOException ("Unexpected meta " + meta + " for column of type " + typeCode );
87- }
88- }
89- }
9074 if (!includedColumns .get (i )) {
9175 numberOfSkippedColumns ++;
9276 continue ;
9377 }
9478 int index = i - numberOfSkippedColumns ;
9579 if (!nullColumns .get (index )) {
80+ int typeCode = types [i ] & 0xFF , meta = metadata [i ], length = 0 ;
81+ if (typeCode == ColumnType .STRING .getCode () && meta > 256 ) {
82+ int meta0 = meta >> 8 , meta1 = meta & 0xFF ;
83+ if ((meta0 & 0x30 ) != 0x30 ) { // long CHAR field
84+ typeCode = meta0 | 0x30 ;
85+ length = meta1 | (((meta0 & 0x30 ) ^ 0x30 ) << 4 );
86+ } else {
87+ if (meta0 == ColumnType .SET .getCode () || meta0 == ColumnType .ENUM .getCode () ||
88+ meta0 == ColumnType .STRING .getCode ()) {
89+ typeCode = meta0 ;
90+ length = meta1 ;
91+ } else {
92+ throw new IOException ("Unexpected meta " + meta + " for column of type " + typeCode );
93+ }
94+ }
95+ }
9696 result [index ] = deserializeCell (ColumnType .byCode (typeCode ), meta , length , inputStream );
9797 }
9898 }
@@ -374,4 +374,4 @@ private static long bigEndianLong(byte[] bytes, int offset, int length) {
374374 return result ;
375375 }
376376
377- }
377+ }
0 commit comments