public class PgResultSetMetaData extends Object implements ResultSetMetaData, PGResultSetMetaData
| Modifier and Type | Field and Description |
|---|---|
protected BaseConnection |
connection |
protected Field[] |
fields |
columnNoNulls, columnNullable, columnNullableUnknown| Constructor and Description |
|---|
PgResultSetMetaData(BaseConnection connection,
Field[] fields)
Initialise for a result with a tuple set and a field descriptor set
|
| Modifier and Type | Method and Description |
|---|---|
String |
getBaseColumnName(int column)
Returns the underlying column name of a query result, or "" if it is unable to be determined.
|
String |
getBaseSchemaName(int column)
Returns the underlying schema name of query result, or "" if it is unable to be determined.
|
String |
getBaseTableName(int column)
Returns the underlying table name of query result, or "" if it is unable to be determined.
|
String |
getCatalogName(int column) |
String |
getColumnClassName(int column) |
int |
getColumnCount() |
int |
getColumnDisplaySize(int column) |
String |
getColumnLabel(int column) |
String |
getColumnName(int column) |
int |
getColumnType(int column) |
String |
getColumnTypeName(int column) |
protected Field |
getField(int columnIndex)
For several routines in this package, we need to convert a columnIndex into a Field[]
descriptor.
|
int |
getFormat(int column)
Is a column Text or Binary?
|
protected @Nullable String |
getPGType(int columnIndex) |
int |
getPrecision(int column) |
int |
getScale(int column) |
String |
getSchemaName(int column) |
protected int |
getSQLType(int columnIndex) |
String |
getTableName(int column) |
boolean |
isAutoIncrement(int column) |
boolean |
isCaseSensitive(int column) |
boolean |
isCurrency(int column) |
boolean |
isDefinitelyWritable(int column) |
int |
isNullable(int column) |
boolean |
isReadOnly(int column) |
boolean |
isSearchable(int column) |
boolean |
isSigned(int column) |
boolean |
isWrapperFor(Class<?> iface) |
boolean |
isWritable(int column) |
<T> T |
unwrap(Class<T> iface) |
protected final BaseConnection connection
protected final Field[] fields
public PgResultSetMetaData(BaseConnection connection, Field[] fields)
connection - the connection to retrieve metadatafields - the array of field descriptorspublic int getColumnCount()
throws SQLException
getColumnCount in interface ResultSetMetaDataSQLExceptionpublic boolean isAutoIncrement(int column)
throws SQLException
It is believed that PostgreSQL does not support this feature.
isAutoIncrement in interface ResultSetMetaDatacolumn - the first column is 1, the second is 2...SQLException - if a database access error occurspublic boolean isCaseSensitive(int column)
throws SQLException
Does a column's case matter? ASSUMPTION: Any field that is not obviously case insensitive is assumed to be case sensitive
isCaseSensitive in interface ResultSetMetaDatacolumn - the first column is 1, the second is 2...SQLException - if a database access error occurspublic boolean isSearchable(int column)
throws SQLException
Can the column be used in a WHERE clause? Basically for this, I split the functions into two types: recognised types (which are always useable), and OTHER types (which may or may not be useable). The OTHER types, for now, I will assume they are useable. We should really query the catalog to see if they are useable.
isSearchable in interface ResultSetMetaDatacolumn - the first column is 1, the second is 2...SQLException - if a database access error occurspublic boolean isCurrency(int column)
throws SQLException
Is the column a cash value? 6.1 introduced the cash/money type, which haven't been incorporated as of 970414, so I just check the type name for both 'cash' and 'money'
isCurrency in interface ResultSetMetaDatacolumn - the first column is 1, the second is 2...SQLException - if a database access error occurspublic int isNullable(int column)
throws SQLException
isNullable in interface ResultSetMetaDataSQLExceptionpublic boolean isSigned(int column)
throws SQLException
Is the column a signed number? In PostgreSQL, all numbers are signed, so this is trivial. However, strings are not signed (duh!)
isSigned in interface ResultSetMetaDatacolumn - the first column is 1, the second is 2...SQLException - if a database access error occurspublic int getColumnDisplaySize(int column)
throws SQLException
getColumnDisplaySize in interface ResultSetMetaDataSQLExceptionpublic String getColumnLabel(int column) throws SQLException
getColumnLabel in interface ResultSetMetaDataSQLExceptionpublic String getColumnName(int column) throws SQLException
getColumnName in interface ResultSetMetaDataSQLExceptionpublic String getBaseColumnName(int column) throws SQLException
PGResultSetMetaDatagetBaseColumnName in interface PGResultSetMetaDatacolumn - column position (1-based)SQLException - if something wrong happenspublic String getSchemaName(int column) throws SQLException
getSchemaName in interface ResultSetMetaDataSQLExceptionpublic String getBaseSchemaName(int column) throws SQLException
PGResultSetMetaDatagetBaseSchemaName in interface PGResultSetMetaDatacolumn - column position (1-based)SQLException - if something wrong happenspublic int getPrecision(int column)
throws SQLException
getPrecision in interface ResultSetMetaDataSQLExceptionpublic int getScale(int column)
throws SQLException
getScale in interface ResultSetMetaDataSQLExceptionpublic String getTableName(int column) throws SQLException
getTableName in interface ResultSetMetaDataSQLExceptionpublic String getBaseTableName(int column) throws SQLException
PGResultSetMetaDatagetBaseTableName in interface PGResultSetMetaDatacolumn - column position (1-based)SQLException - if something wrong happenspublic String getCatalogName(int column) throws SQLException
As with getSchemaName(), we can say that if getTableName() returns n/a, then we can too - otherwise, we need to work on it.
getCatalogName in interface ResultSetMetaDatacolumn - the first column is 1, the second is 2...SQLException - if a database access error occurspublic int getColumnType(int column)
throws SQLException
getColumnType in interface ResultSetMetaDataSQLExceptionpublic int getFormat(int column)
throws SQLException
PGResultSetMetaDatagetFormat in interface PGResultSetMetaDatacolumn - column position (1-based)SQLException - if something wrong happensField.BINARY_FORMAT,
Field.TEXT_FORMATpublic String getColumnTypeName(int column) throws SQLException
getColumnTypeName in interface ResultSetMetaDataSQLExceptionpublic boolean isReadOnly(int column)
throws SQLException
In reality, we would have to check the GRANT/REVOKE stuff for this to be effective, and I haven't really looked into that yet, so this will get re-visited.
isReadOnly in interface ResultSetMetaDatacolumn - the first column is 1, the second is 2, etc.*SQLException - if a database access error occurspublic boolean isWritable(int column)
throws SQLException
In reality have to check the GRANT/REVOKE stuff, which I haven't worked with as yet. However, if it isn't ReadOnly, then it is obviously writable.
isWritable in interface ResultSetMetaDatacolumn - the first column is 1, the second is 2, etc.SQLException - if a database access error occurspublic boolean isDefinitelyWritable(int column)
throws SQLException
Hmmm...this is a bad one, since the two preceding functions have not been really defined. I cannot tell is the short answer. I thus return isWritable() just to give us an idea.
isDefinitelyWritable in interface ResultSetMetaDatacolumn - the first column is 1, the second is 2, etc..SQLException - if a database access error occursprotected Field getField(int columnIndex) throws SQLException
columnIndex - the first column is 1, the second is 2...SQLException - if a database access error occursprotected @Nullable String getPGType(int columnIndex) throws SQLException
SQLExceptionprotected int getSQLType(int columnIndex)
throws SQLException
SQLExceptionpublic String getColumnClassName(int column) throws SQLException
getColumnClassName in interface ResultSetMetaDataSQLExceptionpublic boolean isWrapperFor(Class<?> iface) throws SQLException
isWrapperFor in interface WrapperSQLExceptionpublic <T> T unwrap(Class<T> iface) throws SQLException
unwrap in interface WrapperSQLExceptionCopyright © 1997-2020 PostgreSQL Global Development Group. All Rights Reserved.