You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Marco <ma...@gmail.com> on 2015/01/12 10:58:11 UTC
JDBC: Result set is null (Select)
I have a table 'truck_events' in Hbase, which I've created via Phoenix :
stmt.executeUpdate("create table \"truck_events\" ( pk varchar
primary key, \"events\".e VARCHAR)");
Now, I fill with a java application data into this table. This works
well. The rows in Hbase Shell
looks like:
ROW COLUMN+CELL
11|1|922337061612340 column=events:d, timestamp=1421050588783, value=11
8527
11|1|922337061612340 column=events:e, timestamp=1421050588783, value=Normal
8527
11|1|922337061612340 column=events:la, timestamp=1421050588783, value=42.143401
8527 00000004
11|1|922337061612340 column=events:lo, timestamp=1421050588783, value=-79.67304
8527 1999999896
11|1|922337061612340 column=events:t, timestamp=1421050588783, value=1
8527
11|1|922337061612340 column=events:tim, timestamp=1421050588783, value=\x00\x00
8527 \x01J\xCA0?p
11|1|922337061612341 column=events:d, timestamp=1421050588770, value=11
2542
Now I want to select the data via Apache Phoenix via JDBC:
PreparedStatement statement = con.prepareStatement("select * from
\"truck_events\"");
rset = statement.executeQuery();
ResultSetMetaData rsmd = rset.getMetaData();
System.out.println("No. of columns : " + rsmd.getColumnCount());
while (rset.next()) {
System.out.println(rset.getString(2));
}
The select statement works, but the result set (rset.getString())
returns for each row 'null'. Also if I provide the column name. What
do I do wrong here?
I've tried it with a simple other table and there all works fine.
Thanks,
Marco
Re: JDBC: Result set is null (Select)
Posted by Marco <ma...@gmail.com>.
Hi Gabriel,
thank you very much for your help. That was the issue :)
BR Marco
2015-01-12 14:44 GMT+01:00 Gabriel Reid <ga...@gmail.com>:
> Hi Marco,
>
> Because the name of your 'e' column is not quoted in your DDL
> statement, the column name 'e' internally gets upper-cased to 'E'. If
> you store values under column-family 'events' and column qualifier
> 'E', they will show up in Phoenix queries.
>
> Alternatively, you can change your DDL statement to 'create table
> \"truck_events\" ( pk varchar primary key, \"events\"."e" VARCHAR)'
> and then the data as you posted it should show up in you query
> results.
>
> - Gabriel
>
>
> On Mon, Jan 12, 2015 at 10:58 AM, Marco <ma...@gmail.com> wrote:
>> I have a table 'truck_events' in Hbase, which I've created via Phoenix :
>>
>> stmt.executeUpdate("create table \"truck_events\" ( pk varchar
>> primary key, \"events\".e VARCHAR)");
>>
>> Now, I fill with a java application data into this table. This works
>> well. The rows in Hbase Shell
>> looks like:
>>
>> ROW COLUMN+CELL
>> 11|1|922337061612340 column=events:d, timestamp=1421050588783, value=11
>> 8527
>> 11|1|922337061612340 column=events:e, timestamp=1421050588783, value=Normal
>> 8527
>> 11|1|922337061612340 column=events:la, timestamp=1421050588783, value=42.143401
>> 8527 00000004
>> 11|1|922337061612340 column=events:lo, timestamp=1421050588783, value=-79.67304
>> 8527 1999999896
>> 11|1|922337061612340 column=events:t, timestamp=1421050588783, value=1
>> 8527
>> 11|1|922337061612340 column=events:tim, timestamp=1421050588783, value=\x00\x00
>> 8527 \x01J\xCA0?p
>> 11|1|922337061612341 column=events:d, timestamp=1421050588770, value=11
>> 2542
>>
>>
>> Now I want to select the data via Apache Phoenix via JDBC:
>>
>> PreparedStatement statement = con.prepareStatement("select * from
>> \"truck_events\"");
>> rset = statement.executeQuery();
>>
>> ResultSetMetaData rsmd = rset.getMetaData();
>> System.out.println("No. of columns : " + rsmd.getColumnCount());
>>
>> while (rset.next()) {
>> System.out.println(rset.getString(2));
>> }
>>
>> The select statement works, but the result set (rset.getString())
>> returns for each row 'null'. Also if I provide the column name. What
>> do I do wrong here?
>>
>> I've tried it with a simple other table and there all works fine.
>>
>> Thanks,
>> Marco
--
Viele Grüße,
Marco
Re: JDBC: Result set is null (Select)
Posted by Gabriel Reid <ga...@gmail.com>.
Hi Marco,
Because the name of your 'e' column is not quoted in your DDL
statement, the column name 'e' internally gets upper-cased to 'E'. If
you store values under column-family 'events' and column qualifier
'E', they will show up in Phoenix queries.
Alternatively, you can change your DDL statement to 'create table
\"truck_events\" ( pk varchar primary key, \"events\"."e" VARCHAR)'
and then the data as you posted it should show up in you query
results.
- Gabriel
On Mon, Jan 12, 2015 at 10:58 AM, Marco <ma...@gmail.com> wrote:
> I have a table 'truck_events' in Hbase, which I've created via Phoenix :
>
> stmt.executeUpdate("create table \"truck_events\" ( pk varchar
> primary key, \"events\".e VARCHAR)");
>
> Now, I fill with a java application data into this table. This works
> well. The rows in Hbase Shell
> looks like:
>
> ROW COLUMN+CELL
> 11|1|922337061612340 column=events:d, timestamp=1421050588783, value=11
> 8527
> 11|1|922337061612340 column=events:e, timestamp=1421050588783, value=Normal
> 8527
> 11|1|922337061612340 column=events:la, timestamp=1421050588783, value=42.143401
> 8527 00000004
> 11|1|922337061612340 column=events:lo, timestamp=1421050588783, value=-79.67304
> 8527 1999999896
> 11|1|922337061612340 column=events:t, timestamp=1421050588783, value=1
> 8527
> 11|1|922337061612340 column=events:tim, timestamp=1421050588783, value=\x00\x00
> 8527 \x01J\xCA0?p
> 11|1|922337061612341 column=events:d, timestamp=1421050588770, value=11
> 2542
>
>
> Now I want to select the data via Apache Phoenix via JDBC:
>
> PreparedStatement statement = con.prepareStatement("select * from
> \"truck_events\"");
> rset = statement.executeQuery();
>
> ResultSetMetaData rsmd = rset.getMetaData();
> System.out.println("No. of columns : " + rsmd.getColumnCount());
>
> while (rset.next()) {
> System.out.println(rset.getString(2));
> }
>
> The select statement works, but the result set (rset.getString())
> returns for each row 'null'. Also if I provide the column name. What
> do I do wrong here?
>
> I've tried it with a simple other table and there all works fine.
>
> Thanks,
> Marco