Thread: Switching from MySQL to PostgreSQL, JDBC drivers behaving differently

Switching from MySQL to PostgreSQL, JDBC drivers behaving differently

From
"Matthias Karlsson"
Date:
Hi,

I originally had a much longer mail written describing in detail why I had a
problem with my current framework, but I decided to go with a simple
question instead :)

If I submit the following query to PostgreSQL:

select a.*, b.* from A a
inner join B b on b.id = a.b_id

where (for instance) both A and B have a column named 'name', is it possible
to distinguish between the two without using explicit positioning with the
JDBC interface? That is, with the MySQL driver, I can write:

rs.getString("a.name") and rs.getString("b.name"), but this doesn't seem to
work with PostgreSQL.

Sincerely,
Matthias Karlsson


Re: Switching from MySQL to PostgreSQL, JDBC drivers behaving differently

From
Dave Cramer
Date:
Matthias,
On 4-Mar-07, at 9:12 AM, Matthias Karlsson wrote:

> Hi,
>
> I originally had a much longer mail written describing in detail
> why I had a
> problem with my current framework, but I decided to go with a simple
> question instead :)
>
> If I submit the following query to PostgreSQL:
>
> select a.*, b.* from A a
> inner join B b on b.id = a.b_id
>
> where (for instance) both A and B have a column named 'name', is it
> possible
> to distinguish between the two without using explicit positioning
> with the
> JDBC interface? That is, with the MySQL driver, I can write:
>
> rs.getString("a.name") and rs.getString("b.name"), but this doesn't
> seem to
> work with PostgreSQL.
That's correct it does not work with postgresql.

This is why hibernate,and other persistence layers explicitly name
their columns.

Dave
>
> Sincerely,
> Matthias Karlsson
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 6: explain analyze is your friend
>