Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.Integer,java.lang.Character> |
arrayOidToDelimiter |
private BaseConnection |
conn |
private java.sql.PreparedStatement |
getAllTypeInfoStatement |
private java.sql.PreparedStatement |
getArrayDelimiterStatement |
private java.sql.PreparedStatement |
getArrayElementOidStatement |
private java.sql.PreparedStatement |
getNameStatement |
private java.sql.PreparedStatement |
getOidStatementComplexArray |
private java.sql.PreparedStatement |
getOidStatementComplexNonArray |
private java.sql.PreparedStatement |
getOidStatementSimple |
private java.sql.PreparedStatement |
getTypeInfoStatement |
private static java.util.logging.Logger |
LOGGER |
private java.util.Map<java.lang.Integer,java.lang.String> |
oidToPgName |
private java.util.Map<java.lang.Integer,java.lang.Integer> |
pgArrayToPgType |
private java.util.Map<java.lang.String,java.lang.String> |
pgNameToJavaClass |
private java.util.Map<java.lang.String,java.lang.Integer> |
pgNameToOid |
private java.util.Map<java.lang.String,java.lang.Class<? extends PGobject>> |
pgNameToPgObject |
private java.util.Map<java.lang.String,java.lang.Integer> |
pgNameToSQLType |
private static java.util.HashMap<java.lang.String,java.lang.String> |
typeAliases
PG maps several alias to real type names.
|
private static java.lang.Object[][] |
types |
private int |
unknownLength |
Constructor and Description |
---|
TypeInfoCache(BaseConnection conn,
int unknownLength) |
Modifier and Type | Method and Description |
---|---|
void |
addCoreType(java.lang.String pgTypeName,
java.lang.Integer oid,
java.lang.Integer sqlType,
java.lang.String javaClass,
java.lang.Integer arrayOid) |
void |
addDataType(java.lang.String type,
java.lang.Class<? extends PGobject> klass) |
void |
cacheSQLTypes() |
protected int |
convertArrayToBaseOid(int oid)
Return the oid of the array's base element if it's an array, if not return the provided oid.
|
char |
getArrayDelimiter(int oid)
Determine the delimiter for the elements of the given array type oid.
|
int |
getDisplaySize(int oid,
int typmod) |
java.lang.String |
getJavaClass(int oid) |
int |
getMaximumPrecision(int oid) |
private java.sql.PreparedStatement |
getOidStatement(java.lang.String pgTypeName) |
int |
getPGArrayElement(int oid)
Look up the oid of an array's base type given the array's type oid.
|
int |
getPGArrayType(java.lang.String elementTypeName)
Determine the oid of the given base postgresql type's array type.
|
java.lang.Class<? extends PGobject> |
getPGobject(java.lang.String type) |
java.lang.String |
getPGType(int oid)
Look up the postgresql type name for a given oid.
|
int |
getPGType(java.lang.String pgTypeName)
Look up the oid for a given postgresql type name.
|
java.util.Iterator<java.lang.String> |
getPGTypeNamesWithSQLTypes() |
int |
getPrecision(int oid,
int typmod) |
int |
getScale(int oid,
int typmod) |
int |
getSQLType(int oid)
Look up the SQL typecode for a given type oid.
|
int |
getSQLType(java.lang.String pgTypeName)
Look up the SQL typecode for a given postgresql type name.
|
private int |
getSQLTypeFromQueryResult(java.sql.ResultSet rs) |
private java.lang.String |
getSQLTypeQuery(boolean typnameParam) |
java.lang.String |
getTypeForAlias(java.lang.String alias) |
boolean |
isCaseSensitive(int oid) |
boolean |
isSigned(int oid) |
boolean |
requiresQuoting(int oid) |
boolean |
requiresQuotingSqlType(int sqlType)
Returns true if particular sqlType requires quoting.
|
private static final java.util.logging.Logger LOGGER
private java.util.Map<java.lang.String,java.lang.Integer> pgNameToSQLType
private java.util.Map<java.lang.String,java.lang.String> pgNameToJavaClass
private java.util.Map<java.lang.Integer,java.lang.String> oidToPgName
private java.util.Map<java.lang.String,java.lang.Integer> pgNameToOid
private java.util.Map<java.lang.String,java.lang.Class<? extends PGobject>> pgNameToPgObject
private java.util.Map<java.lang.Integer,java.lang.Integer> pgArrayToPgType
private java.util.Map<java.lang.Integer,java.lang.Character> arrayOidToDelimiter
private BaseConnection conn
private final int unknownLength
private java.sql.PreparedStatement getOidStatementSimple
private java.sql.PreparedStatement getOidStatementComplexNonArray
private java.sql.PreparedStatement getOidStatementComplexArray
private java.sql.PreparedStatement getNameStatement
private java.sql.PreparedStatement getArrayElementOidStatement
private java.sql.PreparedStatement getArrayDelimiterStatement
private java.sql.PreparedStatement getTypeInfoStatement
private java.sql.PreparedStatement getAllTypeInfoStatement
private static final java.lang.Object[][] types
private static final java.util.HashMap<java.lang.String,java.lang.String> typeAliases
public TypeInfoCache(BaseConnection conn, int unknownLength)
public void addCoreType(java.lang.String pgTypeName, java.lang.Integer oid, java.lang.Integer sqlType, java.lang.String javaClass, java.lang.Integer arrayOid)
addCoreType
in interface TypeInfo
public void addDataType(java.lang.String type, java.lang.Class<? extends PGobject> klass) throws java.sql.SQLException
addDataType
in interface TypeInfo
java.sql.SQLException
public java.util.Iterator<java.lang.String> getPGTypeNamesWithSQLTypes()
getPGTypeNamesWithSQLTypes
in interface TypeInfo
private java.lang.String getSQLTypeQuery(boolean typnameParam)
private int getSQLTypeFromQueryResult(java.sql.ResultSet rs) throws java.sql.SQLException
java.sql.SQLException
public void cacheSQLTypes() throws java.sql.SQLException
java.sql.SQLException
public int getSQLType(int oid) throws java.sql.SQLException
TypeInfo
getSQLType
in interface TypeInfo
oid
- the type's OIDTypes
) for the typejava.sql.SQLException
- if an error occurs when retrieving sql typepublic int getSQLType(java.lang.String pgTypeName) throws java.sql.SQLException
TypeInfo
getSQLType
in interface TypeInfo
pgTypeName
- the server type name to look upTypes
) for the typejava.sql.SQLException
- if an error occurs when retrieving sql typeprivate java.sql.PreparedStatement getOidStatement(java.lang.String pgTypeName) throws java.sql.SQLException
java.sql.SQLException
public int getPGType(java.lang.String pgTypeName) throws java.sql.SQLException
TypeInfo
TypeInfo.getPGType(int)
.public java.lang.String getPGType(int oid) throws java.sql.SQLException
TypeInfo
TypeInfo.getPGType(String)
.public int getPGArrayType(java.lang.String elementTypeName) throws java.sql.SQLException
TypeInfo
getPGArrayType
in interface TypeInfo
elementTypeName
- the base type'sjava.sql.SQLException
- if an error occurs when retrieving array typeprotected int convertArrayToBaseOid(int oid)
oid
- input oidpublic char getArrayDelimiter(int oid) throws java.sql.SQLException
TypeInfo
getArrayDelimiter
in interface TypeInfo
oid
- the array type's OIDjava.sql.SQLException
- if an error occurs when retrieving array delimiterpublic int getPGArrayElement(int oid) throws java.sql.SQLException
TypeInfo
getPGArrayElement
in interface TypeInfo
oid
- the array type's OIDjava.sql.SQLException
- if an error occurs when retrieving array elementpublic java.lang.Class<? extends PGobject> getPGobject(java.lang.String type)
getPGobject
in interface TypeInfo
public java.lang.String getJavaClass(int oid) throws java.sql.SQLException
getJavaClass
in interface TypeInfo
java.sql.SQLException
public java.lang.String getTypeForAlias(java.lang.String alias)
getTypeForAlias
in interface TypeInfo
public int getPrecision(int oid, int typmod)
getPrecision
in interface TypeInfo
public boolean isCaseSensitive(int oid)
isCaseSensitive
in interface TypeInfo
public int getDisplaySize(int oid, int typmod)
getDisplaySize
in interface TypeInfo
public int getMaximumPrecision(int oid)
getMaximumPrecision
in interface TypeInfo
public boolean requiresQuoting(int oid) throws java.sql.SQLException
requiresQuoting
in interface TypeInfo
java.sql.SQLException
public boolean requiresQuotingSqlType(int sqlType) throws java.sql.SQLException
requiresQuotingSqlType
in interface TypeInfo
sqlType
- sql type as in java.sql.Typesjava.sql.SQLException
- if something goes wrong