Class CopyOutImpl
- All Implemented Interfaces:
CopyOperation
,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
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
handleCopydata
(byte[] data) Consume received copy data.byte @Nullable []
Blocks wait for a row of data to be received from server on an active copy operation.byte @Nullable []
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
-
Constructor Details
-
CopyOutImpl
public CopyOutImpl()
-
-
Method Details
-
readFromCopy
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
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
-
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
-