public class ExtendedQueryProtocolHandlerHandles the message flow for the extended query protocol. Wire-protocol messages are buffered in memory until a flush/sync is received.
Constructors
ExtendedQueryProtocolHandler(ConnectionHandler connectionHandler)
public ExtendedQueryProtocolHandler(ConnectionHandler connectionHandler)Creates an ExtendedQueryProtocolHandler for the given connection.
| Parameter | |
|---|---|
| Name | Description |
connectionHandler |
ConnectionHandler |
ExtendedQueryProtocolHandler(ConnectionHandler connectionHandler, BackendConnection backendConnection)
public ExtendedQueryProtocolHandler(ConnectionHandler connectionHandler, BackendConnection backendConnection)Constructor only intended for testing.
| Parameters | |
|---|---|
| Name | Description |
connectionHandler |
ConnectionHandler |
backendConnection |
BackendConnection |
Methods
buffer(AbstractQueryProtocolMessage message)
public void buffer(AbstractQueryProtocolMessage message)Buffer an extended query protocol message for execution when the next flush/sync message is received.
| Parameter | |
|---|---|
| Name | Description |
message |
AbstractQueryProtocolMessage |
flush()
public void flush()Flushes the current queue of messages. Any pending database statements are first executed, before sending the wire-protocol responses to the frontend. A flush does not commit the implicit transaction (if any).
This method will execute a #sync(boolean) if it determines that the next message in the buffer is a Sync message.
| Exceptions | |
|---|---|
| Type | Description |
Exception |
|
getBackendConnection()
public BackendConnection getBackendConnection()Returns the backend PG connection for this query handler.
| Returns | |
|---|---|
| Type | Description |
BackendConnection |
|
getTracer()
public Tracer getTracer()| Returns | |
|---|---|
| Type | Description |
io.opentelemetry.api.trace.Tracer |
|
maybeStartSpan(boolean isExtendedProtocol)
public void maybeStartSpan(boolean isExtendedProtocol)| Parameter | |
|---|---|
| Name | Description |
isExtendedProtocol |
boolean |
sync(boolean includeReadyResponse)
public void sync(boolean includeReadyResponse)Flushes the current queue of messages and commits the implicit transaction (if any). Any pending database statements are first executed, before sending the wire-protocol responses to the frontend.
| Parameter | |
|---|---|
| Name | Description |
includeReadyResponse |
boolean |
| Exceptions | |
|---|---|
| Type | Description |
Exception |
|