Package | Description |
---|---|
org.postgresql.copy | |
org.postgresql.core | |
org.postgresql.core.v2 | |
org.postgresql.core.v3 |
Modifier and Type | Interface and Description |
---|---|
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 | Method and Description |
---|---|
CopyOperation |
QueryExecutorImpl.startCopy(String sql,
boolean suppressBegin) |
Modifier and Type | Class and Description |
---|---|
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 © 2016 PostgreSQL Global Development Group. All rights reserved.