case 3:
return (U)new Tuple3(data[0], data[1], data[2]);
case 4:
return (U)new Tuple4(data[0], data[1], data[2], data[3]);
case 5:
return (U)new Tuple5(data[0], data[1], data[2], data[3], data[4]);
case 8:
return (U)new Tuple8(data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]);
default:
throw new IllegalArgumentException("Creating a tuple with a SQLReader with unknown size " + subreaders.length);
}