From: | rcohen(at)e1b(dot)org |
---|---|
To: | Dave Cramer <pg(at)fastcrypt(dot)com> |
Cc: | "Hudson, Derrick" <dhudson(at)redcom(dot)com>, "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: sql type reported for enum |
Date: | 2015-08-19 18:16:39 |
Message-ID: | OF710D760D.ABBEB025-ON85257EA6.0052FC2C-85257EA6.00646726@e1b.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
It breaks the jdbc meta-data; that is for an enum column
columnsResultSet.getInt("DATA_TYPE")
now returns Types.VARCHAR.
This breaks some of my code; it also breaks DBUnit's support for
postgres. Now
I can code around this, but should the metadata be reporting that an enum
column
is of type Types.VARCHAR? This seems like incorrect behavior.
Yes, enums should probably be avoided, but that isn't an option for me
right now.
Ross
From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: "Hudson, Derrick" <dhudson(at)redcom(dot)com>,
Cc: "rcohen(at)e1b(dot)org" <rcohen(at)e1b(dot)org>, "pgsql-jdbc(at)postgresql(dot)org"
<pgsql-jdbc(at)postgresql(dot)org>
Date: 08/19/2015 09:18 AM
Subject: Re: [JDBC] sql type reported for enum
Sent by: davecramer(at)gmail(dot)com
So what does this break ?
FWIW, I avoid enum's for many reasons and use check constraints instead.
Dave Cramer
dave.cramer(at)credativ(dot)ca
http://www.credativ.ca
On 19 August 2015 at 09:11, Hudson, Derrick <dhudson(at)redcom(dot)com> wrote:
There is the following change, which may be related:
https://jdbc.postgresql.org/documentation/changelog.html#version_9.2-1003
Author: Tom Dunstan Date: Sun Jul 7 16:20:41 2013 +0930
Make PreparedStatement.getObject() for an enum type return a string
rather than a PGObject
________________________________________
From: pgsql-jdbc-owner(at)postgresql(dot)org [pgsql-jdbc-owner(at)postgresql(dot)org] On
Behalf Of rcohen(at)e1b(dot)org [rcohen(at)e1b(dot)org]
Sent: Tuesday, August 18, 2015 5:21 PM
To: pgsql-jdbc(at)postgresql(dot)org
Subject: [JDBC] sql type reported for enum
I have some metadata utilities that query jdbc column metadata,
and I'm fairly certain that my enum colums, which used to be reported at
Type.OTHER, are now being reported as Type.VARCHAR.
That is,
rs.getInt("DATA_TYPE")
returns Type.OTHER
The type names, however, seem to be correct. Thus,
rs.getString("TYPE_NAME")
returns the actual enum name.
Not only does my code now behave differently, but I also
see that 3rd party libraries (DBUnit) are also now missing
enum columns.
Thus, DBUnit's PostgresqlDataTypeFactory code for returning enums never
gets hits because the sqlType is never Types.OTHER:
if (sqlType == Types.OTHER)
if ("uuid".equals(sqlTypeName))
return new UuidType();
else if ("interval".equals(sqlTypeName))
return new IntervalType();
else if ("inet".equals(sqlTypeName))
return new InetType();
else
{
// Finally check whether the user defined a custom
datatype
if(isEnumType(sqlTypeName))
{
if(logger.isDebugEnabled())
return new GenericEnumType(sqlTypeName);
}
}
So did something change recently in the drivers? I've recently upgraded
my database from
9.1 to 9.4, along with my jdbc drivers.
Thanks,
Ross
--
Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc
Spam
Not spam
Forget previous vote
Confidentiality Notice:
This electronic message and any attachments may contain confidential or
privileged information, and is intended only for the individual or entity
identified above as the addressee. If you are not the addressee (or the
employee or agent responsible to deliver it to the addressee), or if this
message has been addressed to you in error, you are hereby notified that
you may not copy, forward, disclose or use any part of this message or any
attachments. Please notify the sender immediately by return e-mail or
telephone and delete this message from your system.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Smith | 2015-08-19 19:20:57 | best way to convert JSONB object from result |
Previous Message | Tom Lane | 2015-08-19 18:11:31 | Re: Proposal: Implement failover on libpq connect level. |