Package org.postgresql.copy
Class PGCopyInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.postgresql.copy.PGCopyInputStream
-
- All Implemented Interfaces:
Closeable,AutoCloseable,CopyOperation,CopyOut
public class PGCopyInputStream extends InputStream implements CopyOut
InputStream for reading from a PostgreSQL COPY TO STDOUT operation.
-
-
Constructor Summary
Constructors Constructor Description PGCopyInputStream(CopyOut op)Use given CopyOut operation for reading.PGCopyInputStream(PGConnection connection, String sql)Uses given connection for specified COPY TO STDOUT operation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()voidcancelCopy()Cancels this copy operation, discarding any exchanged data.voidclose()intgetFieldCount()intgetFieldFormat(int field)intgetFormat()longgetHandledRowCount()After successful end of copy, returns the number of database records handled in that operation.booleanisActive()intread()intread(byte[] buf)intread(byte[] buf, int off, int siz)byte[]readFromCopy()Blocks wait for a row of data to be received from server on an active copy operation.byte[]readFromCopy(boolean block)Wait for a row of data to be received from server on an active copy operation.-
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
-
-
-
-
Constructor Detail
-
PGCopyInputStream
public PGCopyInputStream(PGConnection connection, String sql) throws SQLException
Uses given connection for specified COPY TO STDOUT operation.- Parameters:
connection- database connection to use for copying (protocol version 3 required)sql- COPY TO STDOUT statement- Throws:
SQLException- if initializing the operation fails
-
PGCopyInputStream
public PGCopyInputStream(CopyOut op)
Use given CopyOut operation for reading.- Parameters:
op- COPY TO STDOUT operation
-
-
Method Detail
-
available
public int available() throws IOException- Overrides:
availablein classInputStream- Throws:
IOException
-
read
public int read() throws IOException- Specified by:
readin classInputStream- Throws:
IOException
-
read
public int read(byte[] buf) throws IOException- Overrides:
readin classInputStream- Throws:
IOException
-
read
public int read(byte[] buf, int off, int siz) throws IOException- Overrides:
readin classInputStream- Throws:
IOException
-
readFromCopy
public byte[] readFromCopy() throws SQLExceptionDescription copied from interface:CopyOutBlocks wait for a row of data to be received from server on an active copy operation.- Specified by:
readFromCopyin interfaceCopyOut- Returns:
- byte array received from server, null if server complete copy operation
- Throws:
SQLException- if something goes wrong for example socket timeout
-
readFromCopy
public byte[] readFromCopy(boolean block) throws SQLExceptionDescription copied from interface:CopyOutWait for a row of data to be received from server on an active copy operation.- Specified by:
readFromCopyin interfaceCopyOut- Parameters:
block-trueif need wait data from server otherwisefalseand will read pending message from server- Returns:
- byte array received from server, if pending message from server absent and use no blocking mode return null
- Throws:
SQLException- if something goes wrong for example socket timeout
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classInputStream- Throws:
IOException
-
cancelCopy
public void cancelCopy() throws SQLExceptionDescription copied from interface:CopyOperationCancels this copy operation, discarding any exchanged data.- Specified by:
cancelCopyin interfaceCopyOperation- Throws:
SQLException- if cancelling fails
-
getFormat
public int getFormat()
- Specified by:
getFormatin interfaceCopyOperation- Returns:
- overall format of each row: 0 = textual, 1 = binary
-
getFieldFormat
public int getFieldFormat(int field)
- Specified by:
getFieldFormatin interfaceCopyOperation- Parameters:
field- number of field (0..fieldCount()-1)- Returns:
- format of requested field: 0 = textual, 1 = binary
-
getFieldCount
public int getFieldCount()
- Specified by:
getFieldCountin interfaceCopyOperation- Returns:
- number of fields in each row for this operation
-
isActive
public boolean isActive()
- Specified by:
isActivein interfaceCopyOperation- Returns:
- is connection reserved for this Copy operation?
-
getHandledRowCount
public long getHandledRowCount()
Description copied from interface:CopyOperationAfter 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.- Specified by:
getHandledRowCountin interfaceCopyOperation- Returns:
- number of handled rows or -1
-
-