drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Devender Yadav <dev....@gmail.com>
Subject Re: null pointer at AbstractSqlAccessor.getString()
Date Mon, 01 Feb 2016 20:06:30 GMT
Thanks for prompt reply.

It's very much possible to have a null value in the data. Imagine a hive
table with millions of records. The probability of finding a null value is
very high.

I am not familiar with Drill's source code or design patterns or tradition
to handle null. I did not have experience in contributing to open source.

In that patch review request. I just added null check:


@Override
public String getString(int rowOffset) throws InvalidAccessException
{ return getObject(rowOffset)==null? null:getObject(rowOffset).toString(); }

instead of

@Override
public String getString(int rowOffset) throws InvalidAccessException
{ return getObject(rowOffset).toString(); }


We are also using Spark SQL for query federation. Spark SQL shows NULL in
the query output for null values. So, I also tried on Drill & got the null
pointer.










Regards,
Devender

On Tue, Feb 2, 2016 at 1:25 AM, Jason Altekruse <altekrusejason@gmail.com>
wrote:

> Sorry for losing track of this, we do fully support the JDBC driver. I did
> take a look at the review request you had opened and forgot to comment on
> it, I don't think there is actually a patch associated with the review.
>
> I'm not very familiar with the JDBC driver code myself, but it looks like
> this should only happen if you are requesting a string from a non-varchar
> field, as the NullableVarCharAccessor method that extends
> AbstractSqlAccessor overrides this method properly handling the null case.
>
> I am just trying to understand the issue and why we didn't have a test
> case for it.
>
> On Mon, Feb 1, 2016 at 11:30 AM, Devender Yadav <dev.emr@gmail.com> wrote:
>
>> Hi,
>>
>> This null pointer seems a blocker to me. I raised an issue. Asked on dev
>> & user both groups. This is a one-liner fix. I added patch also. I find
>> fewer people using Drill JDBC. So, nobody cares about that issue.
>>
>>
>>
>> On Fri, Jan 8, 2016 at 2:46 PM, Devender Yadav <dev.emr@gmail.com> wrote:
>>
>>> @Jason Altekruse
>>>
>>> Thanks for the reply.
>>>
>>> This is a very silly bug & critical for JDBC users. Please look into it
>>> once.
>>>
>>> Regards,
>>> Devender
>>>
>>> On Tue, Jan 5, 2016 at 2:03 PM, Devender Yadav <dev.emr@gmail.com>
>>> wrote:
>>>
>>>>  I am testing Drill JDBC. While fetching results, I got null pointer at
>>>>
>>>>
>>>> org.apache.drill.exec.vector.accessor.AbstractSqlAccessor.getString(AbstractSqlAccessor.jav
>>>> a:101)
>>>>
>>>> Below mentioned method is throwing null pointer becaue
>>>> getObject(rowOffset) returns null for null values & null.toString() is
>>>> throwing *null pointer*.
>>>>
>>>> @Override
>>>> public String getString(int rowOffset) throws InvalidAccessException
>>>> { return getObject(rowOffset).toString(); }
>>>>
>>>>
>>>> I raised an *issue*(https://issues.apache.org/jira/browse/DRILL-4128) on
>>>> Drill JIRA.‚Äč
>>>> Regards,
>>>> Devender
>>>>
>>>
>>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message