Re: sql type reported for enum - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: sql type reported for enum
Date
Msg-id CADK3HHLTqa0nhh0OX76cJ-PMr9m6D_=_YGuBuaLWs0E+MGjwXQ@mail.gmail.com
Whole thread Raw
In response to sql type reported for enum  (rcohen@e1b.org)
List pgsql-jdbc
Quite likely according to your report.

Dave Cramer

dave.cramer(at)credativ(dot)ca
http://www.credativ.ca

On 18 August 2015 at 17:21, <rcohen@e1b.org> wrote:
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



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.


pgsql-jdbc by date:

Previous
From: rcohen@e1b.org
Date:
Subject: sql type reported for enum
Next
From: Albe Laurenz
Date:
Subject: Re: Concurrent read and write access of LargeObject via getBlob() can raise exception