Обсуждение: jdbc driver return wrong medata values
Hi,
Environment :
Windows XP SP2
Postgres 8.0
JDK 1.5.0_02
postgresql-8.0-311.jdbc3.jar
While analysing the index structures of a metadata table with the
following statement :
ResultSet parts = dbMeta.getIndexInfo("aCatalog", "aMetaSchema",
"aTable", false, false);
...
if (parts != null) {
try {
while (parts.next()) {
String indexName = parts.getString(6);
String columnName = parts.getString(9);
short position= parts.getShort(8);
String direction = parts.getString(10);
boolean unique = parts.getBoolean(4);
}
} finally {
parts.close();
}
}
While controling the result with pgadmin III it appears that :
- Unique Index have a returned boolean unique set to false :
- this value should apply to Non Unique Index
- Non Unique Index have a returned boolean unique set to true :
- this value should apply to Unique Index
Regards.
On Thu, 14 Apr 2005, Xavier Maysonnave wrote:
> postgresql-8.0-311.jdbc3.jar
>
> While analysing the index structures of a metadata table with the
> following statement :
>
> ResultSet parts = dbMeta.getIndexInfo("aCatalog", "aMetaSchema",
> "aTable", false, false);
> ...
> if (parts != null) {
> try {
> while (parts.next()) {
> String indexName = parts.getString(6);
> String columnName = parts.getString(9);
> short position= parts.getShort(8);
> String direction = parts.getString(10);
> boolean unique = parts.getBoolean(4);
> }
> } finally {
> parts.close();
> }
> }
>
> While controling the result with pgadmin III it appears that :
>
> - Unique Index have a returned boolean unique set to false :
> - this value should apply to Non Unique Index
> - Non Unique Index have a returned boolean unique set to true :
> - this value should apply to Unique Index
>
If you check the javadoc for getIndexInfo you will see column four is
actually "NON_UNIQUE" not unique.
Kris Jurka