Class CopyOutImpl
- java.lang.Object
-
- org.postgresql.core.v3.CopyOperationImpl
-
- org.postgresql.core.v3.CopyOutImpl
-
- All Implemented Interfaces:
CopyOperation
,CopyOut
public class CopyOutImpl extends CopyOperationImpl implements CopyOut
Anticipated flow of a COPY TO STDOUT operation:
CopyManager.copyOut() ->QueryExecutor.startCopy() - sends given query to server ->processCopyResults(): - receives CopyOutResponse from Server - creates new CopyOutImpl ->initCopy(): - receives copy metadata from server ->CopyOutImpl.init() ->lock() connection for this operation - if query fails an exception is thrown - if query returns wrong CopyOperation, copyOut() cancels it before throwing exception <-returned: new CopyOutImpl holding lock on connection repeat CopyOut.readFromCopy() until null ->CopyOutImpl.readFromCopy() ->QueryExecutorImpl.readFromCopy() ->processCopyResults() - on copydata row from server ->CopyOutImpl.handleCopydata() stores reference to byte array - on CopyDone, CommandComplete, ReadyForQuery ->unlock() connection for use by other operations <-returned: byte array of data received from server or null at end.
-
-
Constructor Summary
Constructors Constructor Description CopyOutImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
handleCopydata(byte[] data)
Consume received copy data.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 org.postgresql.core.v3.CopyOperationImpl
cancelCopy, getFieldCount, getFieldFormat, getFormat, getHandledRowCount, getQueryExecutor, handleCommandStatus, isActive
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.postgresql.copy.CopyOperation
cancelCopy, getFieldCount, getFieldFormat, getFormat, getHandledRowCount, isActive
-
-
-
-
Method Detail
-
readFromCopy
public byte[] readFromCopy() throws java.sql.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:
java.sql.SQLException
- if something goes wrong for example socket timeout
-
readFromCopy
public byte[] readFromCopy(boolean block) throws java.sql.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:
java.sql.SQLException
- if something goes wrong for example socket timeout
-
handleCopydata
protected void handleCopydata(byte[] data)
Description copied from class:CopyOperationImpl
Consume received copy data.- Specified by:
handleCopydata
in classCopyOperationImpl
- Parameters:
data
- data that was receive by copy protocol
-
-