Package com.impossibl.postgres.jdbc
Class PGDirectConnection
- java.lang.Object
-
- com.impossibl.postgres.system.AbstractContext
-
- com.impossibl.postgres.system.BasicContext
-
- com.impossibl.postgres.jdbc.PGDirectConnection
-
- All Implemented Interfaces:
PGConnection,Configuration,Context,AutoCloseable,Connection,Wrapper
public class PGDirectConnection extends BasicContext implements PGConnection
Direct connection implementation
-
-
Field Summary
-
Fields inherited from class com.impossibl.postgres.system.BasicContext
charset, registry, settings, typeMap
-
Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidabort(Executor executor)voidaddNotificationListener(PGNotificationListener listener)Adds an, unnamed, unfiltered, asynchronous notification listener to this connectionvoidaddNotificationListener(String channelNameFilter, PGNotificationListener listener)Adds an, unnamed, filtered, asynchronous notification listener to this connectionvoidaddNotificationListener(String name, String channelNameFilter, PGNotificationListener listener)Adds a filtered asynchronous notification listener to this connectionvoidclearWarnings()voidclose()voidcommit()protected voidconnectionClosed()Called whenBasicContext.serverConnectionwas closed externally (i.e.protected voidconnectionNotificationReceived(int processId, String channelName, String payload)Called whenBasicContext.serverConnectionreceived an asynchronous notificationvoidcopyFrom(String sql, InputStream inputStream)Allows issuing PostgreSQL's COPY command providing anInputStreamstream to read from, instead of relying onSystem.in.voidcopyTo(String sql, OutputStream outputStream)Allows issuing PostgreSQL's COPY command providing anOutputStreamstream to write to, instead of relying onSystem.out.ArraycreateArrayOf(String typeName, Object[] elements)BlobcreateBlob()ClobcreateClob()NClobcreateNClob()SQLXMLcreateSQLXML()PGStatementcreateStatement()PGStatementcreateStatement(int resultSetType, int resultSetConcurrency)PGStatementcreateStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)StructcreateStruct(String typeName, Object[] attributes)booleangetAutoCommit()StringgetCatalog()PropertiesgetClientInfo()StringgetClientInfo(String name)IntegergetDefaultFetchSize()Get the default fetch sizeintgetHoldability()DatabaseMetaDatagetMetaData()intgetNetworkTimeout()StringgetSchema()intgetTransactionIsolation()TransactionStatusgetTransactionStatus()Map<String,Class<?>>getTypeMap()SQLWarninggetWarnings()voidinit(SharedRegistry.Factory sharedRegistryFactory)booleanisClosed()booleanisReadOnly()booleanisServerMinimumVersion(int major, int minor)Checks the minimum server versionbooleanisStrictMode()Is strict modebooleanisValid(int timeout)booleanisWrapperFor(Class<?> iface)StringnativeSQL(String sql)CallableStatementprepareCall(String sql)CallableStatementprepareCall(String sql, int resultSetType, int resultSetConcurrency)CallableStatementprepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)com.impossibl.postgres.jdbc.PGPreparedStatementprepareStatement(SQLText sqlText, int resultSetType, int resultSetConcurrency, int resultSetHoldability)com.impossibl.postgres.jdbc.PGPreparedStatementprepareStatement(String sql)PreparedStatementprepareStatement(String sql, int autoGeneratedKeys)PreparedStatementprepareStatement(String sql, int[] columnIndexes)com.impossibl.postgres.jdbc.PGPreparedStatementprepareStatement(String sql, int resultSetType, int resultSetConcurrency)com.impossibl.postgres.jdbc.PGPreparedStatementprepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)PreparedStatementprepareStatement(String sql, String[] columnNames)voidreleaseSavepoint(Savepoint savepointParam)voidremoveNotificationListener(PGNotificationListener listener)Removes a notification listenervoidremoveNotificationListener(String listenerName)Removes a named notification listenerPGAnyTyperesolveType(String name)Resolves a name to an SQLType suitable for passing to any method that accepts one.voidrollback()voidrollback(Savepoint savepointParam)voidsetAutoCommit(boolean autoCommit)voidsetCatalog(String catalog)voidsetClientInfo(String name, String value)voidsetClientInfo(Properties properties)voidsetDefaultFetchSize(Integer v)Set the default fetch sizevoidsetHoldability(int holdability)voidsetNetworkTimeout(Executor executor, int networkTimeout)voidsetReadOnly(boolean readOnly)SavepointsetSavepoint()SavepointsetSavepoint(String name)voidsetSchema(String schema)voidsetStrictMode(boolean v)Set strict modevoidsetTransactionIsolation(int level)voidsetTypeMap(Map<String,Class<?>> typeMap)<T> Tunwrap(Class<T> iface)-
Methods inherited from class com.impossibl.postgres.system.BasicContext
getAllocator, getCharset, getClientCurrencyFormatter, getClientDateFormat, getClientDecimalFormatter, getClientIntegerFormatter, getClientIntervalFormat, getClientTimeFormat, getClientTimestampFormat, getCustomTypeMap, getKeyData, getRegistry, getRequestExecutor, getServerConnection, getServerCurrencyFormatter, getServerDateFormat, getServerInfo, getServerIntervalFormat, getServerTimeFormat, getServerTimestampFormat, getSetting, getTimeZone, getTimeZoneId, isUtilQueryPrepared, prepareUtilQuery, query, queryBatch, queryBatchPrepared, queryBatchPrepared, queryString, shutdown, unwrap
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.impossibl.postgres.system.Configuration
getSetting
-
Methods inherited from interface java.sql.Connection
beginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid
-
-
-
-
Method Detail
-
init
public void init(SharedRegistry.Factory sharedRegistryFactory) throws IOException
- Overrides:
initin classBasicContext- Throws:
IOException
-
getTransactionStatus
public TransactionStatus getTransactionStatus() throws SQLException
- Throws:
SQLException
-
setStrictMode
public void setStrictMode(boolean v)
Set strict mode- Specified by:
setStrictModein interfacePGConnection- Parameters:
v- The value
-
isStrictMode
public boolean isStrictMode()
Is strict mode- Specified by:
isStrictModein interfacePGConnection- Returns:
- The value
-
setDefaultFetchSize
public void setDefaultFetchSize(Integer v)
Set the default fetch size- Specified by:
setDefaultFetchSizein interfacePGConnection- Parameters:
v- The value
-
getDefaultFetchSize
public Integer getDefaultFetchSize()
Get the default fetch size- Specified by:
getDefaultFetchSizein interfacePGConnection- Returns:
- The value
-
resolveType
public PGAnyType resolveType(String name) throws SQLException
Description copied from interface:PGConnectionResolves a name to an SQLType suitable for passing to any method that accepts one. As the method queries the server for the type information any type name acceptable to the server is allowed (i.e. qualified, unqualified, quoted, etc.) Using this method allows the resolution of a name to a type to be re-used; speeding up performance in cases where named types are used. NOTE: The possibility of DDL changing the name to type mapping means named types are always looked up when used. This ensures that the correct type is used always. When resolving a named type using this method it is only valid as long as no commands are issued that invalidate it (e.g. dropping and re-adding a type or extension).- Specified by:
resolveTypein interfacePGConnection- Parameters:
name- Name of type to resolve (anything acceptable to the server)- Returns:
- Type instance representing the current name to type mapping.
- Throws:
SQLException
-
connectionClosed
protected void connectionClosed()
Description copied from class:BasicContextCalled whenBasicContext.serverConnectionwas closed externally (i.e. without callingBasicContext.shutdown()- Overrides:
connectionClosedin classBasicContext
-
isServerMinimumVersion
public boolean isServerMinimumVersion(int major, int minor)Checks the minimum server version- Specified by:
isServerMinimumVersionin interfacePGConnection- Parameters:
major- The major releaseminor- The minor release- Returns:
Trueif the server is minimum the specified version, otherwisefalse.
-
isValid
public boolean isValid(int timeout) throws SQLException- Specified by:
isValidin interfaceConnection- Throws:
SQLException
-
getTypeMap
public Map<String,Class<?>> getTypeMap() throws SQLException
- Specified by:
getTypeMapin interfaceConnection- Throws:
SQLException
-
setTypeMap
public void setTypeMap(Map<String,Class<?>> typeMap) throws SQLException
- Specified by:
setTypeMapin interfaceConnection- Throws:
SQLException
-
getHoldability
public int getHoldability() throws SQLException- Specified by:
getHoldabilityin interfaceConnection- Throws:
SQLException
-
setHoldability
public void setHoldability(int holdability) throws SQLException- Specified by:
setHoldabilityin interfaceConnection- Throws:
SQLException
-
getMetaData
public DatabaseMetaData getMetaData() throws SQLException
- Specified by:
getMetaDatain interfaceConnection- Throws:
SQLException
-
getAutoCommit
public boolean getAutoCommit() throws SQLException- Specified by:
getAutoCommitin interfaceConnection- Throws:
SQLException
-
setAutoCommit
public void setAutoCommit(boolean autoCommit) throws SQLException- Specified by:
setAutoCommitin interfaceConnection- Throws:
SQLException
-
isReadOnly
public boolean isReadOnly() throws SQLException- Specified by:
isReadOnlyin interfaceConnection- Throws:
SQLException
-
setReadOnly
public void setReadOnly(boolean readOnly) throws SQLException- Specified by:
setReadOnlyin interfaceConnection- Throws:
SQLException
-
getTransactionIsolation
public int getTransactionIsolation() throws SQLException- Specified by:
getTransactionIsolationin interfaceConnection- Throws:
SQLException
-
setTransactionIsolation
public void setTransactionIsolation(int level) throws SQLException- Specified by:
setTransactionIsolationin interfaceConnection- Throws:
SQLException
-
commit
public void commit() throws SQLException- Specified by:
commitin interfaceConnection- Throws:
SQLException
-
rollback
public void rollback() throws SQLException- Specified by:
rollbackin interfaceConnection- Throws:
SQLException
-
setSavepoint
public Savepoint setSavepoint() throws SQLException
- Specified by:
setSavepointin interfaceConnection- Throws:
SQLException
-
setSavepoint
public Savepoint setSavepoint(String name) throws SQLException
- Specified by:
setSavepointin interfaceConnection- Throws:
SQLException
-
rollback
public void rollback(Savepoint savepointParam) throws SQLException
- Specified by:
rollbackin interfaceConnection- Throws:
SQLException
-
releaseSavepoint
public void releaseSavepoint(Savepoint savepointParam) throws SQLException
- Specified by:
releaseSavepointin interfaceConnection- Throws:
SQLException
-
getCatalog
public String getCatalog() throws SQLException
- Specified by:
getCatalogin interfaceConnection- Throws:
SQLException
-
setCatalog
public void setCatalog(String catalog) throws SQLException
- Specified by:
setCatalogin interfaceConnection- Throws:
SQLException
-
getSchema
public String getSchema() throws SQLException
- Specified by:
getSchemain interfaceConnection- Throws:
SQLException
-
setSchema
public void setSchema(String schema) throws SQLException
- Specified by:
setSchemain interfaceConnection- Throws:
SQLException
-
nativeSQL
public String nativeSQL(String sql) throws SQLException
- Specified by:
nativeSQLin interfaceConnection- Throws:
SQLException
-
createStatement
public PGStatement createStatement() throws SQLException
- Specified by:
createStatementin interfaceConnection- Throws:
SQLException
-
createStatement
public PGStatement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
- Specified by:
createStatementin interfaceConnection- Throws:
SQLException
-
createStatement
public PGStatement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
- Specified by:
createStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public com.impossibl.postgres.jdbc.PGPreparedStatement prepareStatement(String sql) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public com.impossibl.postgres.jdbc.PGPreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public com.impossibl.postgres.jdbc.PGPreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public com.impossibl.postgres.jdbc.PGPreparedStatement prepareStatement(SQLText sqlText, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
- Specified by:
prepareStatementin interfaceConnection- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql) throws SQLException
- Specified by:
prepareCallin interfaceConnection- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
- Specified by:
prepareCallin interfaceConnection- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
- Specified by:
prepareCallin interfaceConnection- Throws:
SQLException
-
createBlob
public Blob createBlob() throws SQLException
- Specified by:
createBlobin interfaceConnection- Throws:
SQLException
-
createClob
public Clob createClob() throws SQLException
- Specified by:
createClobin interfaceConnection- Throws:
SQLException
-
createSQLXML
public SQLXML createSQLXML() throws SQLException
- Specified by:
createSQLXMLin interfaceConnection- Throws:
SQLException
-
createArrayOf
public Array createArrayOf(String typeName, Object[] elements) throws SQLException
- Specified by:
createArrayOfin interfaceConnection- Throws:
SQLException
-
createStruct
public Struct createStruct(String typeName, Object[] attributes) throws SQLException
- Specified by:
createStructin interfaceConnection- Throws:
SQLException
-
getClientInfo
public String getClientInfo(String name) throws SQLException
- Specified by:
getClientInfoin interfaceConnection- Throws:
SQLException
-
getClientInfo
public Properties getClientInfo() throws SQLException
- Specified by:
getClientInfoin interfaceConnection- Throws:
SQLException
-
setClientInfo
public void setClientInfo(String name, String value) throws SQLClientInfoException
- Specified by:
setClientInfoin interfaceConnection- Throws:
SQLClientInfoException
-
setClientInfo
public void setClientInfo(Properties properties) throws SQLClientInfoException
- Specified by:
setClientInfoin interfaceConnection- Throws:
SQLClientInfoException
-
createNClob
public NClob createNClob() throws SQLException
- Specified by:
createNClobin interfaceConnection- Throws:
SQLException
-
isClosed
public boolean isClosed()
- Specified by:
isClosedin interfaceConnection
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceConnection
-
abort
public void abort(Executor executor)
- Specified by:
abortin interfaceConnection
-
getWarnings
public SQLWarning getWarnings() throws SQLException
- Specified by:
getWarningsin interfaceConnection- Throws:
SQLException
-
clearWarnings
public void clearWarnings() throws SQLException- Specified by:
clearWarningsin interfaceConnection- Throws:
SQLException
-
getNetworkTimeout
public int getNetworkTimeout() throws SQLException- Specified by:
getNetworkTimeoutin interfaceConnection- Throws:
SQLException
-
setNetworkTimeout
public void setNetworkTimeout(Executor executor, int networkTimeout) throws SQLException
- Specified by:
setNetworkTimeoutin interfaceConnection- Throws:
SQLException
-
unwrap
public <T> T unwrap(Class<T> iface) throws SQLException
- Specified by:
unwrapin interfaceWrapper- Throws:
SQLException
-
isWrapperFor
public boolean isWrapperFor(Class<?> iface)
- Specified by:
isWrapperForin interfaceWrapper
-
connectionNotificationReceived
protected void connectionNotificationReceived(int processId, String channelName, String payload)Description copied from class:BasicContextCalled whenBasicContext.serverConnectionreceived an asynchronous notification- Overrides:
connectionNotificationReceivedin classBasicContext
-
addNotificationListener
public void addNotificationListener(PGNotificationListener listener)
Description copied from interface:PGConnectionAdds an, unnamed, unfiltered, asynchronous notification listener to this connection- Specified by:
addNotificationListenerin interfacePGConnection- Parameters:
listener- Notification listener
-
addNotificationListener
public void addNotificationListener(String channelNameFilter, PGNotificationListener listener)
Description copied from interface:PGConnectionAdds an, unnamed, filtered, asynchronous notification listener to this connection- Specified by:
addNotificationListenerin interfacePGConnection- Parameters:
channelNameFilter- Channel name based notification filter (Regular Expression)listener- Notification listener
-
addNotificationListener
public void addNotificationListener(String name, String channelNameFilter, PGNotificationListener listener)
Description copied from interface:PGConnectionAdds a filtered asynchronous notification listener to this connection- Specified by:
addNotificationListenerin interfacePGConnection- Parameters:
name- Name of listenerchannelNameFilter- Channel name based notification filter (Regular Expression)listener- Notification listener
-
removeNotificationListener
public void removeNotificationListener(PGNotificationListener listener)
Description copied from interface:PGConnectionRemoves a notification listener- Specified by:
removeNotificationListenerin interfacePGConnection- Parameters:
listener- Listener instance to remove
-
removeNotificationListener
public void removeNotificationListener(String listenerName)
Description copied from interface:PGConnectionRemoves a named notification listener- Specified by:
removeNotificationListenerin interfacePGConnection- Parameters:
listenerName- Name of listener to remove
-
copyFrom
public void copyFrom(String sql, InputStream inputStream) throws SQLException
Description copied from interface:PGConnectionAllows issuing PostgreSQL's COPY command providing anInputStreamstream to read from, instead of relying onSystem.in.- Specified by:
copyFromin interfacePGConnection- Parameters:
sql- SQL text for a validCOPY ... FROM STDINcommand.inputStream-InputStreamcontaining data inCOPYformat.- Throws:
SQLException- If an error occurs during the copy operation or if an alternate command is provided.
-
copyTo
public void copyTo(String sql, OutputStream outputStream) throws SQLException
Description copied from interface:PGConnectionAllows issuing PostgreSQL's COPY command providing anOutputStreamstream to write to, instead of relying onSystem.out.- Specified by:
copyToin interfacePGConnection- Parameters:
sql- SQL text for a validCOPY ... TO STDOUTcommand.outputStream-OutputStreamto write data inCOPYformat.- Throws:
SQLException- If an error occurs during the copy operation or if an alternate command is provided.
-
-