Package 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.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CopyOutImpl()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `handleCopydata(byte[] data)`
  Consume received copy data.
  `byte @Nullable []`
  `readFromCopy()`
  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

    public byte @Nullable [] 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 @Nullable [] 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