Top Description Fields Constructors Methods
org.postgresql.copy

public Class PGCopyInputStream

extends InputStream
implements CopyOut
Class Inheritance
All Implemented Interfaces
org.postgresql.copy.CopyOut, org.postgresql.copy.CopyOperation
Static Imports
org.postgresql.util.internal.Nullness.castNonNull

InputStream for reading from a PostgreSQL COPY TO STDOUT operation.

Field Summary

Modifier and TypeField and Description
private int
private @Nullable byte[]
private int
private @Nullable CopyOut

Constructor Summary

AccessConstructor and Description
public
PGCopyInputStream(PGConnection
database connection to use for copying (protocol version 3 required)
connection
,
String
COPY TO STDOUT statement
sql
)

Uses given connection for specified COPY TO STDOUT operation.

public
PGCopyInputStream(CopyOut
COPY TO STDOUT operation
op
)

Use given CopyOut operation for reading.

Method Summary

Modifier and TypeMethod and Description
public int
available()

Overrides java.io.InputStream.available.

Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking, which may be 0, or 0 when end of stream is detected.

public void
cancelCopy()

Implements org.postgresql.copy.CopyOperation.cancelCopy.

Cancels this copy operation, discarding any exchanged data.

private void
public void
close()

Overrides java.io.InputStream.close.

Implements java.io.Closeable.close.

Closes this input stream and releases any system resources associated with the stream.

private @Nullable byte[]
public int
public int
getFieldFormat(int
number of field (0..fieldCount()-1)
field
)

Implements org.postgresql.copy.CopyOperation.getFieldFormat.

public int
public long
getHandledRowCount()

Implements org.postgresql.copy.CopyOperation.getHandledRowCount.

After successful end of copy, returns the number of database records handled in that operation.

private CopyOut
public boolean
public int
read()

Implements abstract java.io.InputStream.read.

Reads the next byte of data from the input stream.

public int
read(byte[]
the buffer into which the data is read.
buf
)

Overrides java.io.InputStream.read.

Reads some number of bytes from the input stream and stores them into the buffer array b.

public int
read(byte[]
the buffer into which the data is read.
buf
,
int
the start offset in array b at which the data is written.
off
,
int
the maximum number of bytes to read.
siz
)

Overrides java.io.InputStream.read.

Reads up to len bytes of data from the input stream into an array of bytes.

public @Nullable byte[]
readFromCopy()

Implements org.postgresql.copy.CopyOut.readFromCopy.

Blocks wait for a row of data to be received from server on an active copy operation.

public @Nullable byte[]
readFromCopy(boolean
true if need wait data from server otherwise false and will read pending message from server
block
)

Implements org.postgresql.copy.CopyOut.readFromCopy.

Wait for a row of data to be received from server on an active copy operation.

Inherited from java.io.InputStream:
markmarkSupportednullInputStreamreadAllBytesreadNBytesreadNBytesresetskipskipNBytestransferTo

Field Detail

atback to summary
private int at
bufback to summary
private @Nullable byte[] buf
lenback to summary
private int len
opback to summary
private @Nullable CopyOut op

Constructor Detail

PGCopyInputStreamback to summary
public PGCopyInputStream(PGConnection connection, String sql) throws SQLException

Uses given connection for specified COPY TO STDOUT operation.

Parameters
connection:PGConnection

database connection to use for copying (protocol version 3 required)

sql:String

COPY TO STDOUT statement

Exceptions
SQLException:
if initializing the operation fails
PGCopyInputStreamback to summary
public PGCopyInputStream(CopyOut op)

Use given CopyOut operation for reading.

Parameters
op:CopyOut

COPY TO STDOUT operation

Method Detail

availableback to summary
public int available() throws IOException

Overrides java.io.InputStream.available.

Doc from java.io.InputStream.available.

Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking, which may be 0, or 0 when end of stream is detected. The read might be on the same thread or another thread. A single read or skip of this many bytes will not block, but may read or skip fewer bytes.

Note that while some implementations of InputStream will return the total number of bytes in the stream, many will not. It is never correct to use the return value of this method to allocate a buffer intended to hold all data in this stream.

A subclass's implementation of this method may choose to throw an IOException if this input stream has been closed by invoking the close() method.

Returns:int

an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking or 0 when it reaches the end of the input stream.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs.
cancelCopyback to summary
public void cancelCopy() throws SQLException

Implements org.postgresql.copy.CopyOperation.cancelCopy.

Doc from org.postgresql.copy.CopyOperation.cancelCopy.

Cancels this copy operation, discarding any exchanged data.

Annotations
@Override
Exceptions
SQLException:
if cancelling fails
checkClosedback to summary
private void checkClosed() throws IOException
closeback to summary
public void close() throws IOException

Overrides java.io.InputStream.close.

Implements java.io.Closeable.close.

Doc from java.io.InputStream.close.

Closes this input stream and releases any system resources associated with the stream.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs.
fillBufferback to summary
private @Nullable byte[] fillBuffer() throws IOException
getFieldCountback to summary
public int getFieldCount()

Implements org.postgresql.copy.CopyOperation.getFieldCount.

Returns:int

Doc from org.postgresql.copy.CopyOperation.getFieldCount.

number of fields in each row for this operation

Annotations
@Override
getFieldFormatback to summary
public int getFieldFormat(int field)

Implements org.postgresql.copy.CopyOperation.getFieldFormat.

Parameters
field:int

Doc from org.postgresql.copy.CopyOperation.getFieldFormat.

number of field (0..fieldCount()-1)

Returns:int

Doc from org.postgresql.copy.CopyOperation.getFieldFormat.

format of requested field: 0 = textual, 1 = binary

Annotations
@Override
getFormatback to summary
public int getFormat()

Implements org.postgresql.copy.CopyOperation.getFormat.

Returns:int

Doc from org.postgresql.copy.CopyOperation.getFormat.

overall format of each row: 0 = textual, 1 = binary

Annotations
@Override
getHandledRowCountback to summary
public long getHandledRowCount()

Implements org.postgresql.copy.CopyOperation.getHandledRowCount.

Doc from org.postgresql.copy.CopyOperation.getHandledRowCount.

After successful end of copy, returns the number of database records handled in that operation. Only implemented in PostgreSQL server version 8.2 and up. Otherwise, returns -1.

Returns:long

number of handled rows or -1

Annotations
@Override
getOpback to summary
private CopyOut getOp()
isActiveback to summary
public boolean isActive()

Implements org.postgresql.copy.CopyOperation.isActive.

Returns:boolean

Doc from org.postgresql.copy.CopyOperation.isActive.

is connection reserved for this Copy operation?

Annotations
@Override
readback to summary
public int read() throws IOException

Implements abstract java.io.InputStream.read.

Doc from java.io.InputStream.read.

Reads the next byte of data from the input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

Returns:int

the next byte of data, or -1 if the end of the stream is reached.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs.
readback to summary
public int read(byte[] buf) throws IOException

Overrides java.io.InputStream.read.

Doc from java.io.InputStream.read.

Reads some number of bytes from the input stream and stores them into the buffer array b. The number of bytes actually read is returned as an integer. This method blocks until input data is available, end of file is detected, or an exception is thrown.

If the length of b is zero, then no bytes are read and 0 is returned; otherwise, there is an attempt to read at least one byte. If no byte is available because the stream is at the end of the file, the value -1 is returned; otherwise, at least one byte is read and stored into b.

The first byte read is stored into element b[0], the next one into b[1], and so on. The number of bytes read is, at most, equal to the length of b. Let k be the number of bytes actually read; these bytes will be stored in elements b[0] through b[k-1], leaving elements b[k] through b[b.length-1] unaffected.

Parameters
buf:byte[]

the buffer into which the data is read.

Returns:int

the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.

Annotations
@Override
Exceptions
IOException:
If the first byte cannot be read for any reason other than the end of the file, if the input stream has been closed, or if some other I/O error occurs.
readback to summary
public int read(byte[] buf, int off, int siz) throws IOException

Overrides java.io.InputStream.read.

Doc from java.io.InputStream.read.

Reads up to len bytes of data from the input stream into an array of bytes. An attempt is made to read as many as len bytes, but a smaller number may be read. The number of bytes actually read is returned as an integer.

This method blocks until input data is available, end of file is detected, or an exception is thrown.

If len is zero, then no bytes are read and 0 is returned; otherwise, there is an attempt to read at least one byte. If no byte is available because the stream is at end of file, the value -1 is returned; otherwise, at least one byte is read and stored into b.

The first byte read is stored into element b[off], the next one into b[off+1], and so on. The number of bytes read is, at most, equal to len. Let k be the number of bytes actually read; these bytes will be stored in elements b[off] through b[off+k-1], leaving elements b[off+k] through b[off+len-1] unaffected.

In every case, elements b[0] through b[off-1] and elements b[off+len] through b[b.length-1] are unaffected.

Parameters
buf:byte[]

the buffer into which the data is read.

off:int

the start offset in array b at which the data is written.

siz:int

the maximum number of bytes to read.

Returns:int

the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.

Annotations
@Override
Exceptions
IOException:
If the first byte cannot be read for any reason other than end of file, or if the input stream has been closed, or if some other I/O error occurs.
readFromCopyback to summary
public @Nullable byte[] readFromCopy() throws SQLException

Implements org.postgresql.copy.CopyOut.readFromCopy.

Doc from org.postgresql.copy.CopyOut.readFromCopy.

Blocks wait for a row of data to be received from server on an active copy operation.

Returns:@Nullable byte[]

byte array received from server, null if server complete copy operation

Annotations
@Override
Exceptions
SQLException:
if something goes wrong for example socket timeout
readFromCopyback to summary
public @Nullable byte[] readFromCopy(boolean block) throws SQLException

Implements org.postgresql.copy.CopyOut.readFromCopy.

Doc from org.postgresql.copy.CopyOut.readFromCopy.

Wait for a row of data to be received from server on an active copy operation.

Parameters
block:boolean

true if need wait data from server otherwise false and will read pending message from server

Returns:@Nullable byte[]

byte array received from server, if pending message from server absent and use no blocking mode return null

Annotations
@Override
Exceptions
SQLException:
if something goes wrong for example socket timeout