Обсуждение: TypeInfoCache.getPGArrayElement - determine if array

Поиск
Список
Период
Сортировка

TypeInfoCache.getPGArrayElement - determine if array

От
Radosław Smogura
Дата:
Hi,

In TypeInfo.getPGArrayElement it is written "Returns: the base type's OID,
or 0 if unknown", but if given oid isn't array exception is thrown (empty
result set), if unknown doesn't means unspecified then following patch

        ResultSet rs = _getArrayElementOidStatement.getResultSet();
        if (!rs.next()) {
            pgType = Integer.valueOf(0);
            _pgArrayToPgType.put(new Integer(oid), pgType);
        }else {
            pgType = Integer.valueOf((int)rs.getLong(1));
            _pgArrayToPgType.put(new Integer(oid), pgType);
            _pgNameToOid.put(rs.getString(2), pgType);
            _oidToPgName.put(pgType, rs.getString(2));
        }

--
----------
Radosław Smogura
http://www.softperience.eu

Re: TypeInfoCache.getPGArrayElement - determine if array

От
Kris Jurka
Дата:

On Mon, 22 Nov 2010, Rados?aw Smogura wrote:

>
> In TypeInfo.getPGArrayElement it is written "Returns: the base type's OID,
> or 0 if unknown", but if given oid isn't array exception is thrown (empty
> result set), if unknown doesn't means unspecified then following patch

Yes, it does have the assumption that the oid passes is an array type, but
I'm not sure that's a problem.  Is there a case that you want to use this
for a type that may or may not be an array and don't want an exception
thrown?  If not, I think updating the documentation is the way to go.

Kris Jurka

Re: TypeInfoCache.getPGArrayElement - determine if array

От
Radosław Smogura
Дата:
Hi,

Yes, I works on binary read/write (more read) and I search simple way to
determine if given type is array type. But I think I've found good solution
getSQLType() == Java.ARRAY, is it OK?

By the way I've passed almost 85% of JDBC test in binary mode, arrays,
unknown types and few procedure meta data test left. Few fails are for
discussion, as binary PG doesn't give information available in text mode.

Kind regards,
Radek

On Tue, 23 Nov 2010 02:28:02 -0500 (EST), Kris Jurka <books@ejurka.com>
wrote:
> On Mon, 22 Nov 2010, Rados?aw Smogura wrote:
>
>>
>> In TypeInfo.getPGArrayElement it is written "Returns: the base type's
>> OID,
>> or 0 if unknown", but if given oid isn't array exception is thrown
(empty
>> result set), if unknown doesn't means unspecified then following patch
>
> Yes, it does have the assumption that the oid passes is an array type,
but
> I'm not sure that's a problem.  Is there a case that you want to use
this
> for a type that may or may not be an array and don't want an exception
> thrown?  If not, I think updating the documentation is the way to go.
>
> Kris Jurka

--
----------
Radosław Smogura
http://www.softperience.eu