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 int
available()
void
cancelCopy()
Cancels this copy operation, discarding any exchanged data.void
close()
int
getFieldCount()
int
getFieldFormat(int field)
int
getFormat()
long
getHandledRowCount()
After successful end of copy, returns the number of database records handled in that operation.boolean
isActive()
int
read()
int
read(byte[] buf)
int
read(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:
available
in classInputStream
- Throws:
IOException
-
read
public int read() throws IOException
- Specified by:
read
in classInputStream
- Throws:
IOException
-
read
public int read(byte[] buf) throws IOException
- Overrides:
read
in classInputStream
- Throws:
IOException
-
read
public int read(byte[] buf, int off, int siz) throws IOException
- Overrides:
read
in classInputStream
- Throws:
IOException
-
readFromCopy
public byte[] readFromCopy() throws SQLException
Description copied from interface:CopyOut
Blocks wait for a row of data to be received from server on an active copy operation.- Specified by:
readFromCopy
in 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 SQLException
Description copied from interface:CopyOut
Wait for a row of data to be received from server on an active copy operation.- Specified by:
readFromCopy
in interfaceCopyOut
- Parameters:
block
-true
if need wait data from server otherwisefalse
and 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:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classInputStream
- Throws:
IOException
-
cancelCopy
public void cancelCopy() throws SQLException
Description copied from interface:CopyOperation
Cancels this copy operation, discarding any exchanged data.- Specified by:
cancelCopy
in interfaceCopyOperation
- Throws:
SQLException
- if cancelling fails
-
getFormat
public int getFormat()
- Specified by:
getFormat
in interfaceCopyOperation
- Returns:
- overall format of each row: 0 = textual, 1 = binary
-
getFieldFormat
public int getFieldFormat(int field)
- Specified by:
getFieldFormat
in interfaceCopyOperation
- Parameters:
field
- number of field (0..fieldCount()-1)- Returns:
- format of requested field: 0 = textual, 1 = binary
-
getFieldCount
public int getFieldCount()
- Specified by:
getFieldCount
in interfaceCopyOperation
- Returns:
- number of fields in each row for this operation
-
isActive
public boolean isActive()
- Specified by:
isActive
in interfaceCopyOperation
- Returns:
- is connection reserved for this Copy operation?
-
getHandledRowCount
public long getHandledRowCount()
Description copied from interface:CopyOperation
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.- Specified by:
getHandledRowCount
in interfaceCopyOperation
- Returns:
- number of handled rows or -1
-
-