public void writeColumn(ObjectOutput out, int col, List<? extends List<?>> batch, Map<Object, Integer> cache, byte version) throws IOException { writeIsNullData(out, col, batch); Object obj = null; for (int i = 0; i < batch.size(); i++) { obj = batch.get(i).get(col); if (obj != null) { writeObject(out, obj, cache, version); } } }
public void writeColumn(ObjectOutput out, int col, List<? extends List<?>> batch, Map<Object, Integer> cache, byte version) throws IOException { writeIsNullData(out, col, batch); Object obj = null; for (int i = 0; i < batch.size(); i++) { obj = batch.get(i).get(col); if (obj != null) { writeObject(out, obj, cache, version); } } }
@Override protected void writeObject(ObjectOutput out, Object obj, Map<Object, Integer> cache, byte version) throws IOException { Object[] values = null; try { values = (Object[]) ((Array)obj).getArray(); } catch (SQLException e) { out.writeInt(-1); return; } out.writeInt(values.length); int code = DataTypeManager.getTypeCode(values.getClass().getComponentType()); if ((code == DataTypeManager.DefaultTypeCodes.GEOMETRY && version < VERSION_GEOMETRY) || (code == DataTypeManager.DefaultTypeCodes.GEOGRAPHY && version < VERSION_GEOGRAPHY)){ code = DataTypeManager.DefaultTypeCodes.BLOB; } else if ((code == DataTypeManager.DefaultTypeCodes.JSON && version < VERSION_GEOGRAPHY)){ code = DataTypeManager.DefaultTypeCodes.CLOB; } out.writeByte((byte)code); for (int i = 0; i < values.length;) { writeIsNullData(out, i, values); int end = Math.min(values.length, i+8); for (; i < end; i++) { if (values[i] != null) { this.ser.writeObject(out, values[i], code, cache, version); } } } out.writeBoolean((obj instanceof ArrayImpl && ((ArrayImpl)obj).isZeroBased())); }
@Override protected void writeObject(ObjectOutput out, Object obj, Map<Object, Integer> cache, byte version) throws IOException { Object[] values = null; try { values = (Object[]) ((Array)obj).getArray(); } catch (SQLException e) { out.writeInt(-1); return; } out.writeInt(values.length); int code = DataTypeManager.getTypeCode(values.getClass().getComponentType()); if ((code == DataTypeManager.DefaultTypeCodes.GEOMETRY && version < VERSION_GEOMETRY) || (code == DataTypeManager.DefaultTypeCodes.GEOGRAPHY && version < VERSION_GEOGRAPHY)){ code = DataTypeManager.DefaultTypeCodes.BLOB; } else if ((code == DataTypeManager.DefaultTypeCodes.JSON && version < VERSION_GEOGRAPHY)){ code = DataTypeManager.DefaultTypeCodes.CLOB; } out.writeByte((byte)code); for (int i = 0; i < values.length;) { writeIsNullData(out, i, values); int end = Math.min(values.length, i+8); for (; i < end; i++) { if (values[i] != null) { this.ser.writeObject(out, values[i], code, cache, version); } } } out.writeBoolean((obj instanceof ArrayImpl && ((ArrayImpl)obj).isZeroBased())); }