org.postgresql.core.v3
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.
Method Summary |
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CopyOutImpl
public CopyOutImpl()
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 interface CopyOut
- 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 interface CopyOut
- Parameters:
block
- true
if need wait data from server otherwise false
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 class CopyOperationImpl
- Parameters:
data
- data that was receive by copy protocol
Copyright © 2017 PostgreSQL Global Development Group. All rights reserved.