Package org.postgresql.core
Interface BaseConnection
-
- All Superinterfaces:
java.lang.AutoCloseable
,java.sql.Connection
,PGConnection
,java.sql.Wrapper
- All Known Implementing Classes:
PgConnection
public interface BaseConnection extends PGConnection, java.sql.Connection
Driver-internal connection interface. Application code should not use this interface.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
addTimerTask(java.util.TimerTask timerTask, long milliSeconds)
Schedule a TimerTask for later execution.boolean
binaryTransferSend(int oid)
Returns true if value for the given oid should be sent using binary transfer.void
cancelQuery()
Cancel the current query executing on this connection.CachedQuery
createQuery(java.lang.String sql, boolean escapeProcessing, boolean isParameterized, java.lang.String... columnNames)
byte[]
encodeString(java.lang.String str)
Encode a string using the database's client_encoding (usually UTF8, but can vary on older server versions).java.lang.String
escapeString(java.lang.String str)
Escapes a string for use as string-literal within an SQL command.java.sql.ResultSet
execSQLQuery(java.lang.String s)
Execute a SQL query that returns a single resultset.java.sql.ResultSet
execSQLQuery(java.lang.String s, int resultSetType, int resultSetConcurrency)
void
execSQLUpdate(java.lang.String s)
Execute a SQL query that does not return results.Encoding
getEncoding()
LruCache<FieldMetadata.Key,FieldMetadata>
getFieldMetadataCache()
Return metadata cache for given connectionLogger
getLogger()
java.lang.Object
getObject(java.lang.String type, java.lang.String value, byte[] byteValue)
Construct and return an appropriate object for the given type and value.QueryExecutor
getQueryExecutor()
Get the QueryExecutor implementation for this connection.boolean
getStandardConformingStrings()
Returns whether the server treats string-literals according to the SQL standard or if it uses traditional PostgreSQL escaping rules.boolean
getStringVarcharFlag()
TimestampUtils
getTimestampUtils()
TransactionState
getTransactionState()
Get the current transaction state of this connection.TypeInfo
getTypeInfo()
PGXmlFactoryFactory
getXmlFactoryFactory()
Retrieve the factory to instantiate XML processing factories.boolean
haveMinimumCompatibleVersion(int ver)
Check if we should use driver behaviour introduced in a particular driver version.boolean
haveMinimumCompatibleVersion(java.lang.String ver)
Deprecated.Avoid using this in new code that can require PgJDBC 9.4.boolean
haveMinimumCompatibleVersion(Version ver)
Check if we should use driver behaviour introduced in a particular driver version.boolean
haveMinimumServerVersion(int ver)
Check if we have at least a particular server version.boolean
haveMinimumServerVersion(java.lang.String ver)
Deprecated.Use haveMinimumServerVersion(int) insteadboolean
haveMinimumServerVersion(Version ver)
Check if we have at least a particular server version.boolean
isColumnSanitiserDisabled()
Return whether to disable column name sanitation.void
purgeTimerTasks()
Invoke purge() on the underlying shared Timer so that internal resources will be released.void
setFlushCacheOnDeallocate(boolean flushCacheOnDeallocate)
By default, the connection resets statement cache in case deallocate all/discard all message is observed.-
Methods inherited from interface java.sql.Connection
abort, beginRequest, clearWarnings, close, commit, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, endRequest, getAutoCommit, getCatalog, getClientInfo, getClientInfo, getHoldability, getMetaData, getNetworkTimeout, getSchema, getTransactionIsolation, getTypeMap, getWarnings, isClosed, isReadOnly, isValid, nativeSQL, prepareCall, prepareCall, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, rollback, rollback, setAutoCommit, setCatalog, setClientInfo, setClientInfo, setHoldability, setNetworkTimeout, setReadOnly, setSavepoint, setSavepoint, setSchema, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid, setTransactionIsolation, setTypeMap
-
Methods inherited from interface org.postgresql.PGConnection
addDataType, addDataType, escapeIdentifier, escapeLiteral, getAutosave, getBackendPID, getCopyAPI, getDefaultFetchSize, getFastpathAPI, getLargeObjectAPI, getNotifications, getPreferQueryMode, getPrepareThreshold, setAutosave, setDefaultFetchSize, setPrepareThreshold
-
-
-
-
Method Detail
-
cancelQuery
void cancelQuery() throws java.sql.SQLException
Cancel the current query executing on this connection.- Throws:
java.sql.SQLException
- if something goes wrong.
-
execSQLQuery
java.sql.ResultSet execSQLQuery(java.lang.String s) throws java.sql.SQLException
Execute a SQL query that returns a single resultset. Never causes a new transaction to be started regardless of the autocommit setting.- Parameters:
s
- the query to execute- Returns:
- the (non-null) returned resultset
- Throws:
java.sql.SQLException
- if something goes wrong.
-
execSQLQuery
java.sql.ResultSet execSQLQuery(java.lang.String s, int resultSetType, int resultSetConcurrency) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
execSQLUpdate
void execSQLUpdate(java.lang.String s) throws java.sql.SQLException
Execute a SQL query that does not return results. Never causes a new transaction to be started regardless of the autocommit setting.- Parameters:
s
- the query to execute- Throws:
java.sql.SQLException
- if something goes wrong.
-
getQueryExecutor
QueryExecutor getQueryExecutor()
Get the QueryExecutor implementation for this connection.- Returns:
- the (non-null) executor
-
getObject
java.lang.Object getObject(java.lang.String type, java.lang.String value, byte[] byteValue) throws java.sql.SQLException
Construct and return an appropriate object for the given type and value. This only considers the types registered viaPGConnection.addDataType(String, Class)
andPGConnection.addDataType(String, String)
.If no class is registered as handling the given type, then a generic
PGobject
instance is returned.- Parameters:
type
- the backend typenamevalue
- the type-specific string representation of the valuebyteValue
- the type-specific binary representation of the value- Returns:
- an appropriate object; never null.
- Throws:
java.sql.SQLException
- if something goes wrong
-
getEncoding
Encoding getEncoding() throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
getTypeInfo
TypeInfo getTypeInfo()
-
haveMinimumCompatibleVersion
@Deprecated boolean haveMinimumCompatibleVersion(java.lang.String ver)
Deprecated.Avoid using this in new code that can require PgJDBC 9.4.Check if we should use driver behaviour introduced in a particular driver version. This defaults to behaving as the actual driver's version but can be overridden by the "compatible" URL parameter. If possible you should use the integer version of this method instead. It was introduced with the 9.4 driver release.- Parameters:
ver
- the driver version to check- Returns:
- true if the driver's behavioural version is at least "ver".
-
haveMinimumCompatibleVersion
boolean haveMinimumCompatibleVersion(int ver)
Check if we should use driver behaviour introduced in a particular driver version. This defaults to behaving as the actual driver's version but can be overridden by the "compatible" URL parameter. The version is of the form xxyyzz, e.g. 90401 for PgJDBC 9.4.1. This is used to toggle between different functionality as it changes across different releases of the jdbc driver code. The values here are versions of the jdbc client and not server versions. For example in 7.1 get/setBytes worked on LargeObject values, in 7.2 these methods were changed to work on bytea values. This change in functionality could be disabled by setting the "compatible" level to be 7.1, in which case the driver will revert to the 7.1 functionality.- Parameters:
ver
- the driver version to check, eg 90401 for 9.4.1- Returns:
- true if the driver's behavioural version is at least "ver".
-
haveMinimumCompatibleVersion
boolean haveMinimumCompatibleVersion(Version ver)
Check if we should use driver behaviour introduced in a particular driver version. This defaults to behaving as the actual driver's version but can be overridden by the "compatible" URL parameter.- Parameters:
ver
- the driver version to check- Returns:
- true if the driver's behavioural version is at least "ver".
-
haveMinimumServerVersion
@Deprecated boolean haveMinimumServerVersion(java.lang.String ver)
Deprecated.Use haveMinimumServerVersion(int) insteadCheck if we have at least a particular server version.- Parameters:
ver
- the server version to check- Returns:
- true if the server version is at least "ver".
-
haveMinimumServerVersion
boolean haveMinimumServerVersion(int ver)
Check if we have at least a particular server version. The input version is of the form xxyyzz, matching a PostgreSQL version like xx.yy.zz. So 9.0.12 is 90012 .- Parameters:
ver
- the server version to check, of the form xxyyzz eg 90401- Returns:
- true if the server version is at least "ver".
-
haveMinimumServerVersion
boolean haveMinimumServerVersion(Version ver)
Check if we have at least a particular server version. The input version is of the form xxyyzz, matching a PostgreSQL version like xx.yy.zz. So 9.0.12 is 90012 .- Parameters:
ver
- the server version to check- Returns:
- true if the server version is at least "ver".
-
encodeString
byte[] encodeString(java.lang.String str) throws java.sql.SQLException
Encode a string using the database's client_encoding (usually UTF8, but can vary on older server versions). This is used when constructing synthetic resultsets (for example, in metadata methods).- Parameters:
str
- the string to encode- Returns:
- an encoded representation of the string
- Throws:
java.sql.SQLException
- if something goes wrong.
-
escapeString
java.lang.String escapeString(java.lang.String str) throws java.sql.SQLException
Escapes a string for use as string-literal within an SQL command. The method chooses the applicable escaping rules based on the value ofgetStandardConformingStrings()
.- Parameters:
str
- a string value- Returns:
- the escaped representation of the string
- Throws:
java.sql.SQLException
- if the string contains a \0 character
-
getStandardConformingStrings
boolean getStandardConformingStrings()
Returns whether the server treats string-literals according to the SQL standard or if it uses traditional PostgreSQL escaping rules. Versions up to 8.1 always treated backslashes as escape characters in string-literals. Since 8.2, this depends on the value of the standard_conforming_strings server variable.- Returns:
- true if the server treats string literals according to the SQL standard
- See Also:
QueryExecutor.getStandardConformingStrings()
-
getTimestampUtils
TimestampUtils getTimestampUtils()
-
getLogger
Logger getLogger()
-
getStringVarcharFlag
boolean getStringVarcharFlag()
-
getTransactionState
TransactionState getTransactionState()
Get the current transaction state of this connection.- Returns:
- current transaction state of this connection
-
binaryTransferSend
boolean binaryTransferSend(int oid)
Returns true if value for the given oid should be sent using binary transfer. False if value should be sent using text transfer.- Parameters:
oid
- The oid to check.- Returns:
- True for binary transfer, false for text transfer.
-
isColumnSanitiserDisabled
boolean isColumnSanitiserDisabled()
Return whether to disable column name sanitation.- Returns:
- true column sanitizer is disabled
-
addTimerTask
void addTimerTask(java.util.TimerTask timerTask, long milliSeconds)
Schedule a TimerTask for later execution. The task will be scheduled with the shared Timer for this connection.- Parameters:
timerTask
- timer task to schedulemilliSeconds
- delay in milliseconds
-
purgeTimerTasks
void purgeTimerTasks()
Invoke purge() on the underlying shared Timer so that internal resources will be released.
-
getFieldMetadataCache
LruCache<FieldMetadata.Key,FieldMetadata> getFieldMetadataCache()
Return metadata cache for given connection- Returns:
- metadata cache
-
createQuery
CachedQuery createQuery(java.lang.String sql, boolean escapeProcessing, boolean isParameterized, java.lang.String... columnNames) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setFlushCacheOnDeallocate
void setFlushCacheOnDeallocate(boolean flushCacheOnDeallocate)
By default, the connection resets statement cache in case deallocate all/discard all message is observed. This API allows to disable that feature for testing purposes.- Parameters:
flushCacheOnDeallocate
- true if statement cache should be reset when "deallocate/discard" message observed
-
getXmlFactoryFactory
PGXmlFactoryFactory getXmlFactoryFactory() throws java.sql.SQLException
Retrieve the factory to instantiate XML processing factories.- Returns:
- The factory to use to instantiate XML processing factories
- Throws:
java.sql.SQLException
- if the class cannot be found or instantiated.
-
-