Package | Description |
---|---|
org.postgresql.copy | |
org.postgresql.core | |
org.postgresql.core.v3 |
Modifier and Type | Interface and Description |
---|---|
interface |
CopyDual
Bidirectional via copy stream protocol.
|
interface |
CopyIn
Copy bulk data from client into a PostgreSQL table very fast.
|
interface |
CopyOut |
Modifier and Type | Class and Description |
---|---|
class |
PGCopyInputStream
InputStream for reading from a PostgreSQL COPY TO STDOUT operation
|
class |
PGCopyOutputStream
OutputStream for buffered input into a PostgreSQL COPY FROM STDIN operation
|
Modifier and Type | Method and Description |
---|---|
CopyOperation |
QueryExecutor.startCopy(String sql,
boolean suppressBegin)
Issues a COPY FROM STDIN / COPY TO STDOUT statement and returns handler for associated
operation.
|
Modifier and Type | Class and Description |
---|---|
class |
CopyDualImpl |
class |
CopyInImpl
Anticipated flow of a COPY FROM STDIN operation:
CopyManager.copyIn() ->QueryExecutor.startCopy() - sends given query to server
->processCopyResults(): - receives CopyInResponse from Server - creates new CopyInImpl
->initCopy(): - receives copy metadata from server ->CopyInImpl.init() ->lock()
connection for this operation - if query fails an exception is thrown - if query returns wrong
CopyOperation, copyIn() cancels it before throwing exception <-return: new CopyInImpl holding
lock on connection repeat CopyIn.writeToCopy() for all data ->CopyInImpl.writeToCopy()
->QueryExecutorImpl.writeToCopy() - sends given data ->processCopyResults() - parameterized
not to block, just peek for new messages from server - on ErrorResponse, waits until protocol is
restored and unlocks connection CopyIn.endCopy() ->CopyInImpl.endCopy()
->QueryExecutorImpl.endCopy() - sends CopyDone - processCopyResults() - on CommandComplete
->CopyOperationImpl.handleCommandComplete() - sets updatedRowCount when applicable - on
ReadyForQuery unlock() connection for use by other operations <-return:
CopyInImpl.getUpdatedRowCount()
|
class |
CopyOperationImpl |
class |
CopyOutImpl
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.
|
Modifier and Type | Method and Description |
---|---|
CopyOperation |
QueryExecutorImpl.startCopy(String sql,
boolean suppressBegin)
Sends given query to BE to start, initialize and lock connection for a CopyOperation.
|
Copyright © 2017 PostgreSQL Global Development Group. All rights reserved.