int getV3Length(int index) { --index; // Null? if (paramValues[index] == NULL_OBJECT) { throw new IllegalArgumentException("can't getV3Length() on a null parameter"); } // Directly encoded? if (paramValues[index] instanceof byte[]) { return ((byte[]) paramValues[index]).length; } // Binary-format bytea? if (paramValues[index] instanceof StreamWrapper) { return ((StreamWrapper) paramValues[index]).getLength(); } // Already encoded? if (encoded[index] == null) { // Encode value and compute actual length using UTF-8. encoded[index] = Utils.encodeUTF8(paramValues[index].toString()); } return encoded[index].length; }
int getV3Length(int index) { --index; // Null? if (paramValues[index] == NULL_OBJECT) throw new IllegalArgumentException("can't getV3Length() on a null parameter"); // Directly encoded? if (paramValues[index] instanceof byte[]) return ((byte[])paramValues[index]).length; // Binary-format bytea? if (paramValues[index] instanceof StreamWrapper) return ((StreamWrapper)paramValues[index]).getLength(); // Already encoded? if (encoded[index] == null) { // Encode value and compute actual length using UTF-8. encoded[index] = Utils.encodeUTF8(paramValues[index].toString()); } return encoded[index].length; }
/** * Send a streamable bytea encoded as a text representation with an arbitary encoding. */ private void streamBytea(StreamWrapper param, Writer encodingWriter) throws IOException { // NB: we escape everything in this path, as I don't like assuming // that byte values 32..127 will make it through the encoding // unscathed.. InputStream stream = param.getStream(); char[] buffer = new char[] { '\\', '\\', 0, 0, 0 }; if (useEStringSyntax) { encodingWriter.write(' '); encodingWriter.write('E'); } encodingWriter.write('\''); for (int remaining = param.getLength(); remaining > 0; --remaining) { int nextByte = stream.read(); buffer[2] = (char)( '0' + ((nextByte >> 6) & 3)); buffer[3] = (char)( '0' + ((nextByte >> 3) & 7)); buffer[4] = (char)( '0' + (nextByte & 7)); encodingWriter.write(buffer, 0, 5); } encodingWriter.write('\''); }
void writeV2FastpathValue(int index, PGStream pgStream) throws IOException { --index; if (paramValues[index] instanceof StreamWrapper) { StreamWrapper wrapper = (StreamWrapper)paramValues[index]; pgStream.SendInteger4(wrapper.getLength()); copyStream(pgStream, wrapper); } else if (paramValues[index] instanceof byte[]) { byte[] data = (byte[])paramValues[index]; pgStream.SendInteger4(data.length); pgStream.Send(data); } else if (paramValues[index] instanceof String) { byte[] data = pgStream.getEncoding().encode((String)paramValues[index]); pgStream.SendInteger4(data.length); pgStream.Send(data); } else { throw new IllegalArgumentException("don't know how to stream parameter " + index); } }
int getV3Length(int index) { --index; // Null? if (paramValues[index] == NULL_OBJECT) throw new IllegalArgumentException("can't getV3Length() on a null parameter"); // Directly encoded? if (paramValues[index] instanceof byte[]) return ((byte[])paramValues[index]).length; // Binary-format bytea? if (paramValues[index] instanceof StreamWrapper) return ((StreamWrapper)paramValues[index]).getLength(); // Already encoded? if (encoded[index] == null) { // Encode value and compute actual length using UTF-8. encoded[index] = Utils.encodeUTF8(paramValues[index].toString()); } return encoded[index].length; }
int getV3Length(int index) { --index; // Null? if (paramValues[index] == NULL_OBJECT) throw new IllegalArgumentException("can't getV3Length() on a null parameter"); // Directly encoded? if (paramValues[index] instanceof byte[]) return ((byte[])paramValues[index]).length; // Binary-format bytea? if (paramValues[index] instanceof StreamWrapper) return ((StreamWrapper)paramValues[index]).getLength(); // Already encoded? if (encoded[index] == null) { // Encode value and compute actual length using UTF-8. encoded[index] = Utils.encodeUTF8(paramValues[index].toString()); } return encoded[index].length; }
/** * Send a streamable bytea encoded as a text representation with an arbitary encoding. */ private void streamBytea(StreamWrapper param, Writer encodingWriter) throws IOException { // NB: we escape everything in this path, as I don't like assuming // that byte values 32..127 will make it through the encoding // unscathed.. InputStream stream = param.getStream(); char[] buffer = new char[] { '\\', '\\', 0, 0, 0 }; if (useEStringSyntax) { encodingWriter.write(' '); encodingWriter.write('E'); } encodingWriter.write('\''); for (int remaining = param.getLength(); remaining > 0; --remaining) { int nextByte = stream.read(); buffer[2] = (char)( '0' + ((nextByte >> 6) & 3)); buffer[3] = (char)( '0' + ((nextByte >> 3) & 7)); buffer[4] = (char)( '0' + (nextByte & 7)); encodingWriter.write(buffer, 0, 5); } encodingWriter.write('\''); }
/** * Send a streamable bytea encoded as a text representation with an arbitary encoding. */ private void streamBytea(StreamWrapper param, Writer encodingWriter) throws IOException { // NB: we escape everything in this path, as I don't like assuming // that byte values 32..127 will make it through the encoding // unscathed.. InputStream stream = param.getStream(); char[] buffer = new char[] { '\\', '\\', 0, 0, 0 }; if (useEStringSyntax) { encodingWriter.write(' '); encodingWriter.write('E'); } encodingWriter.write('\''); for (int remaining = param.getLength(); remaining > 0; --remaining) { int nextByte = stream.read(); buffer[2] = (char)( '0' + ((nextByte >> 6) & 3)); buffer[3] = (char)( '0' + ((nextByte >> 3) & 7)); buffer[4] = (char)( '0' + (nextByte & 7)); encodingWriter.write(buffer, 0, 5); } encodingWriter.write('\''); }
void writeV2FastpathValue(int index, PGStream pgStream) throws IOException { --index; if (paramValues[index] instanceof StreamWrapper) { StreamWrapper wrapper = (StreamWrapper)paramValues[index]; pgStream.SendInteger4(wrapper.getLength()); copyStream(pgStream, wrapper); } else if (paramValues[index] instanceof byte[]) { byte[] data = (byte[])paramValues[index]; pgStream.SendInteger4(data.length); pgStream.Send(data); } else if (paramValues[index] instanceof String) { byte[] data = pgStream.getEncoding().encode((String)paramValues[index]); pgStream.SendInteger4(data.length); pgStream.Send(data); } else { throw new IllegalArgumentException("don't know how to stream parameter " + index); } }
void writeV2FastpathValue(int index, PGStream pgStream) throws IOException { --index; if (paramValues[index] instanceof StreamWrapper) { StreamWrapper wrapper = (StreamWrapper)paramValues[index]; pgStream.SendInteger4(wrapper.getLength()); copyStream(pgStream, wrapper); } else if (paramValues[index] instanceof byte[]) { byte[] data = (byte[])paramValues[index]; pgStream.SendInteger4(data.length); pgStream.Send(data); } else if (paramValues[index] instanceof String) { byte[] data = pgStream.getEncoding().encode((String)paramValues[index]); pgStream.SendInteger4(data.length); pgStream.Send(data); } else { throw new IllegalArgumentException("don't know how to stream parameter " + index); } }