Class ControlMessage (0.8.0)

public abstract class ControlMessage extends WireMessage

Generic representation for a control wire message: that is, a message which does not handle any form of start-up, but reather general communications.

Inheritance

java.lang.Object > WireMessage > ControlMessage

Static Methods

create(ConnectionHandler connection)

public static ControlMessage create(ConnectionHandler connection)

Factory method to create the message from the specific command type char.

Parameter
Name Description
connection ConnectionHandler

The connection handler object setup with the ability to send/receive.

Returns
Type Description
ControlMessage

The constructed wire message given the input message.

Exceptions
Type Description
Exception

If construction or reading fails.

getFormatCodes(DataInputStream input)

protected static List<Short> getFormatCodes(DataInputStream input)

Extract format codes from message (useful for both input and output format codes).

Parameter
Name Description
input DataInputStream

The data stream containing the user request.

Returns
Type Description
List<Short>

A list of format codes.

Exceptions
Type Description
Exception

If reading fails in any way.

Constructors

ControlMessage(ConnectionHandler connection)

public ControlMessage(ConnectionHandler connection)
Parameter
Name Description
connection ConnectionHandler

ControlMessage(ConnectionHandler connection, int length, ControlMessage.ManuallyCreatedToken token)

protected ControlMessage(ConnectionHandler connection, int length, ControlMessage.ManuallyCreatedToken token)

Constructor for manually created Control messages.

Parameters
Name Description
connection ConnectionHandler
length int
token ControlMessage.ManuallyCreatedToken

Methods

handleError(Exception exception)

protected void handleError(Exception exception)

Takes an Exception Object and relates its results to the user within the client.

Parameter
Name Description
exception Exception

The exception to be related.

Exceptions
Type Description
Exception

if there is some issue in the sending of the error messages.

isExtendedProtocol()

public boolean isExtendedProtocol()
Returns
Type Description
boolean

sendResultSet(IntermediateStatement describedResult, ConnectionHandler.QueryMode mode, long maxRows)

public SendResultSetState sendResultSet(IntermediateStatement describedResult, ConnectionHandler.QueryMode mode, long maxRows)

Simple Adapter, which takes specific results from Spanner, and packages them in a format Postgres understands.

Parameters
Name Description
describedResult IntermediateStatement

Statement output by Spanner.

mode ConnectionHandler.QueryMode

Specific Query Mode required for this specific message for Postgres

maxRows long

Maximum number of rows requested

Returns
Type Description
SendResultSetState

An adapted representation with specific metadata which PG wire requires.

Exceptions
Type Description
Exception

if traversing the ResultSet fails.

sendSpannerResult(IntermediateStatement statement, ConnectionHandler.QueryMode mode, long maxRows)

public void sendSpannerResult(IntermediateStatement statement, ConnectionHandler.QueryMode mode, long maxRows)

Sends the result of an execute or query to the client. The type of message depends on the type of result of the statement. This method may also be called multiple times for one result if the client has set a max number of rows to fetch for each execute message. The IntermediateStatement will cache the result in between calls and continue serving rows from the position it was left off after the last execute message.

NOTE: This method does not flush the output stream.

Parameters
Name Description
statement IntermediateStatement
mode ConnectionHandler.QueryMode
maxRows long
Exceptions
Type Description
Exception