Re: getIndexInfo() throws NullPointerException - Mailing list pgsql-jdbc

From Cormac Twomey
Subject Re: getIndexInfo() throws NullPointerException
Date
Msg-id 00b401c1b8e7$ee89d0d0$6501a8c0@firbolg
Whole thread Raw
In response to Re: getIndexInfo() throws NullPointerException  ("Dave Cramer" <Dave@micro-automation.net>)
Responses Re: getIndexInfo() throws NullPointerException  ("Dave Cramer" <dave@fastcrypt.com>)
Re: getIndexInfo() throws NullPointerException Patch applied  ("Dave Cramer" <Dave@micro-automation.net>)
List pgsql-jdbc
Ok, I have one further issue, which I'm much less certain of - some of the indexes that I'm trying to obtain info about
are
multi-column indexes, but the resultset for getIndexInfo is only returning the column name of one of those columns. For
theother 
columns, it's returning an empty string.

So, for example, given the following index:

create index foo_abc_idx on foo (a, b, c)

calling getIndexInfo on table foo, will return 3 results (as I expected) but with the following columns:

ORDINAL_POSITION | COLUMN_NAME
------------------------------
1                | c
2                |
3                |

The documentation for this call is sparse enough, so I'm not sure I'm not doing something wrong.... ideas?

Thanks,
--Cormac

----- Original Message -----
From: "Dave Cramer" <Dave@micro-automation.net>
To: "'Cormac Twomey'" <cormac@bpallen.com>; <pgsql-jdbc@postgresql.org>; <Dave@micro-automation.net>
Sent: Monday, February 18, 2002 4:54 PM
Subject: Re: [JDBC] getIndexInfo() throws NullPointerException


> I'd have to agree with your bet, thanks a lot
>
> Dave
>
> -----Original Message-----
> From: Cormac Twomey [mailto:cormac@bpallen.com]
> Sent: Monday, February 18, 2002 7:40 PM
> To: pgsql-jdbc@postgresql.org; Dave@micro-automation.net
> Subject: [JDBC] getIndexInfo() throws NullPointerException
>
>
> Calling getIndexInfo against a postgresql-7.1 db with the 7.2 jdbc
> driver (or with 7.3dev built 2002-02-09 ), I get the following
> exception:
>
> Exception in thread "main" java.lang.NullPointerException
>         at org.postgresql.jdbc2.ResultSet.getBytes(Unknown source)
>         at org.postgresql.jdbc2.DatabaseMetaData.getIndexInfo(Unknown
> source)
>         at foo.bar(foo.java:253)
>         at foo.baz(foo.java:167)
>         at foo.main(foo.java:46)
>
> I decided to poke around in the source code and found the following
> piece of questionable-looking code in
> org/postgresql/jdbc2/DatabaseMetaData.jar:
>
> ...
>     if (columnNameRS.next())
>         tuple[8] = columnNameRS.getBytes(1);
>     else
>         tuple[8] = "".getBytes();
>     tuple[8] = columnNameRS.getBytes(1);
> ...
>
> Now, being willing to bet that that last line shouldn't be there, I
> commented it out and tried it again - and bingo! it worked fine.
>
> I see Dave Cramer's uid at the top of DatabaseMetaData.jar, so cc'ing
> him.
>
> Thanks,
> --Cormac Twomey
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>


pgsql-jdbc by date:

Previous
From: "Dave Cramer"
Date:
Subject: Re: getIndexInfo() throws NullPointerException
Next
From: Kovács Péter
Date:
Subject: Re: Jdbc1 over SSL