Classes
ConnectionHandler
Handles a connection from a client to Spanner. This ConnectionHandler uses WireMessage to receive and send all messages from and to the client, using the intermediate representation IntermediateStatement that servers as a middle layer between Postgres and Spanner.
Each ConnectionHandler is also a Thread. Although a TCP connection does not necessarily need to have its own thread, this makes the implementation more straightforward.
ProxyServer
The proxy server listens for incoming client connections and starts a new ConnectionHandler for each incoming connection.
Server
Effectively this is the main class
Enums
ConnectionHandler.ConnectionStatus
Status of a ConnectionHandler
ConnectionHandler.QueryMode
PostgreSQL query mode (see also here).
ProxyServer.DataFormat
The PostgreSQL wire protocol can send data in both binary and text format. When using text format, the Server will normally send output back to the client using a format understood by PostgreSQL clients. If you are using the server with a text-only client that does not try to interpret the data that is returned by the server, such as for example psql, then it is advisable to use Cloud Spanner formatting. The server will then return all data in a format understood by Cloud Spanner.
The default format used by the server is DataFormat#POSTGRESQL_TEXT.