Package org.h2.server.pg
Class PgServer
- java.lang.Object
-
- org.h2.server.pg.PgServer
-
- All Implemented Interfaces:
Service
public class PgServer extends java.lang.Object implements Service
This class implements a subset of the PostgreSQL protocol as described here: https://www.postgresql.org/docs/devel/protocol.html The PostgreSQL catalog is described here: https://www.postgresql.org/docs/7.4/catalogs.html
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_PORTThe default port to use for the PG server.static intPG_TYPE_BOOLstatic intPG_TYPE_BPCHARstatic intPG_TYPE_BYTEAstatic intPG_TYPE_DATEstatic intPG_TYPE_FLOAT4static intPG_TYPE_FLOAT8static intPG_TYPE_INT2static intPG_TYPE_INT2_ARRAYstatic intPG_TYPE_INT4static intPG_TYPE_INT4_ARRAYstatic intPG_TYPE_INT8static intPG_TYPE_NUMERICstatic intPG_TYPE_TEXTstatic intPG_TYPE_TIMEstatic intPG_TYPE_TIMESTAMPstatic intPG_TYPE_TIMESTAMPTZstatic intPG_TYPE_TIMETZstatic intPG_TYPE_UNKNOWNstatic intPG_TYPE_VARCHARThe VARCHAR type.static intPG_TYPE_VARCHAR_ARRAY
-
Constructor Summary
Constructors Constructor Description PgServer()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringcheckKeyAndGetDatabaseName(java.lang.String db)If no key is set, return the original database name.static intconvertType(TypeInfo type)Convert the SQL type to a PostgreSQL typestatic java.lang.StringformatType(int pgType)Returns the name of the given type.booleangetAllowOthers()Check if remote connections are allowed.java.lang.StringgetName()Get the human readable name of the service.intgetPort()Gets the port this service is listening on.java.lang.StringgetType()Get the human readable short name of the service.java.lang.StringgetURL()Get the URL of this service in a human readable formvoidinit(java.lang.String... args)Initialize the service from command line options.booleanisDaemon()Check if a daemon thread should be used.booleanisRunning(boolean traceError)Check if the service is running.voidlisten()Listen for incoming connections.voidstart()Start the service.voidstop()Stop the service.
-
-
-
Field Detail
-
DEFAULT_PORT
public static final int DEFAULT_PORT
The default port to use for the PG server. This value is also in the documentation and in the Server javadoc.- See Also:
- Constant Field Values
-
PG_TYPE_VARCHAR
public static final int PG_TYPE_VARCHAR
The VARCHAR type.- See Also:
- Constant Field Values
-
PG_TYPE_BOOL
public static final int PG_TYPE_BOOL
- See Also:
- Constant Field Values
-
PG_TYPE_BYTEA
public static final int PG_TYPE_BYTEA
- See Also:
- Constant Field Values
-
PG_TYPE_BPCHAR
public static final int PG_TYPE_BPCHAR
- See Also:
- Constant Field Values
-
PG_TYPE_INT8
public static final int PG_TYPE_INT8
- See Also:
- Constant Field Values
-
PG_TYPE_INT2
public static final int PG_TYPE_INT2
- See Also:
- Constant Field Values
-
PG_TYPE_INT4
public static final int PG_TYPE_INT4
- See Also:
- Constant Field Values
-
PG_TYPE_TEXT
public static final int PG_TYPE_TEXT
- See Also:
- Constant Field Values
-
PG_TYPE_FLOAT4
public static final int PG_TYPE_FLOAT4
- See Also:
- Constant Field Values
-
PG_TYPE_FLOAT8
public static final int PG_TYPE_FLOAT8
- See Also:
- Constant Field Values
-
PG_TYPE_UNKNOWN
public static final int PG_TYPE_UNKNOWN
- See Also:
- Constant Field Values
-
PG_TYPE_INT2_ARRAY
public static final int PG_TYPE_INT2_ARRAY
- See Also:
- Constant Field Values
-
PG_TYPE_INT4_ARRAY
public static final int PG_TYPE_INT4_ARRAY
- See Also:
- Constant Field Values
-
PG_TYPE_VARCHAR_ARRAY
public static final int PG_TYPE_VARCHAR_ARRAY
- See Also:
- Constant Field Values
-
PG_TYPE_DATE
public static final int PG_TYPE_DATE
- See Also:
- Constant Field Values
-
PG_TYPE_TIME
public static final int PG_TYPE_TIME
- See Also:
- Constant Field Values
-
PG_TYPE_TIMETZ
public static final int PG_TYPE_TIMETZ
- See Also:
- Constant Field Values
-
PG_TYPE_TIMESTAMP
public static final int PG_TYPE_TIMESTAMP
- See Also:
- Constant Field Values
-
PG_TYPE_TIMESTAMPTZ
public static final int PG_TYPE_TIMESTAMPTZ
- See Also:
- Constant Field Values
-
PG_TYPE_NUMERIC
public static final int PG_TYPE_NUMERIC
- See Also:
- Constant Field Values
-
-
Method Detail
-
init
public void init(java.lang.String... args)
Description copied from interface:ServiceInitialize the service from command line options.
-
getURL
public java.lang.String getURL()
Description copied from interface:ServiceGet the URL of this service in a human readable form
-
getPort
public int getPort()
Description copied from interface:ServiceGets the port this service is listening on.
-
start
public void start()
Description copied from interface:ServiceStart the service. This usually means create the server socket. This method must not block.
-
listen
public void listen()
Description copied from interface:ServiceListen for incoming connections. This method blocks.
-
stop
public void stop()
Description copied from interface:ServiceStop the service.
-
isRunning
public boolean isRunning(boolean traceError)
Description copied from interface:ServiceCheck if the service is running.
-
getAllowOthers
public boolean getAllowOthers()
Description copied from interface:ServiceCheck if remote connections are allowed.- Specified by:
getAllowOthersin interfaceService- Returns:
- true if remote connections are allowed
-
getType
public java.lang.String getType()
Description copied from interface:ServiceGet the human readable short name of the service.
-
getName
public java.lang.String getName()
Description copied from interface:ServiceGet the human readable name of the service.
-
formatType
public static java.lang.String formatType(int pgType)
Returns the name of the given type.- Parameters:
pgType- the PostgreSQL type oid- Returns:
- the name of the given type
-
convertType
public static int convertType(TypeInfo type)
Convert the SQL type to a PostgreSQL type- Parameters:
type- the SQL type- Returns:
- the PostgreSQL type
-
checkKeyAndGetDatabaseName
public java.lang.String checkKeyAndGetDatabaseName(java.lang.String db)
If no key is set, return the original database name. If a key is set, check if the key matches. If yes, return the correct database name. If not, throw an exception.- Parameters:
db- the key to test (or database name if no key is used)- Returns:
- the database name
- Throws:
DbException- if a key is set but doesn't match
-
-