[JDBC] Como descobrir chaves primarias de uma tabela

Olá pessoal!
Estou tendo problemas para descobrir as chaves primarias de uma tabela no banco de dados HSQLDB.

//A conexao(conn) esta funcionando perfeitamente.
//String nomeDaTabela= nome da tabela recebido por parametro no método

DatabaseMetaData dmd = conn.getMetaData();
ResultSet pk = dmd.getPrimaryKeys(null,null,nomeDaTabela);
while(pk.next()){
       String columnName =pk.getString(4);
       System.out.println("Chave primaria:"+columnName);
}
pk.close();
conn.close();

O ResultSet retornado pelo getPrimaryKeys não entra no while(mesmo sabendo que a tabela que estou buscando possui uma chave primaria) .
Pergunto:
1- O que eu estou fazendo de errado?
2 - Encontrei em alguns outros sites que é na coluna 4 do ResulSet pk que ficam os nomes das colunas chave-primarias, esta correto?

Grato pela atenção

Teoricamente está tudo ok, mas acho que tem algum detalhe passando despercebido. No lugar de null no schema e catalog, passa uma String vazia…

http://docs.oracle.com/javase/1.4.2/docs/api/java/sql/DatabaseMetaData.html#getPrimaryKeys(java.lang.String,%20java.lang.String,%20java.lang.String)

[quote=luksrn]Teoricamente está tudo ok, mas acho que tem algum detalhe passando despercebido. No lugar de null no schema e catalog, passa uma String vazia…

http://docs.oracle.com/javase/1.4.2/docs/api/java/sql/DatabaseMetaData.html#getPrimaryKeys(java.lang.String,%20java.lang.String,%20java.lang.String)
[/quote]

Troquei por strings vazios e ainda não deu certo.
Tentei desta forma mas também nao deu certo ,(mesmo problema, pk.next() retorna false)

[code]
DatabaseMetaData dmd = conn.getMetaData();

ResultSet pk =dmd.getBestRowIdentifier(null, null, nome, 2, false);
while(pk.next()){
String columnName =pk.getString(2);
System.out.println(“Chave primaria:”+columnName);
} [/code]

existe alguma outra forma (facil) de conseguir isso?

Consegui resolver o problema. A questão era que o string q eu estava usando para o nome da tabela tinha que ser com letras maiusculas.

Obrigado pela atenção