You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "changxue (Jira)" <ji...@apache.org> on 2023/02/22 01:36:00 UTC

[jira] [Assigned] (IOTDB-5569) [session]SessionDataSet should more friendly to user

     [ https://issues.apache.org/jira/browse/IOTDB-5569?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

changxue reassigned IOTDB-5569:
-------------------------------

    Assignee: Haonan Hou  (was: Yukun Zhou)

> [session]SessionDataSet should more friendly to user
> ----------------------------------------------------
>
>                 Key: IOTDB-5569
>                 URL: https://issues.apache.org/jira/browse/IOTDB-5569
>             Project: Apache IoTDB
>          Issue Type: Improvement
>            Reporter: changxue
>            Assignee: Haonan Hou
>            Priority: Major
>
> SessionDataSet should more friendly to user
> When I get the result of an sql statement with session.executeQueryStatement(sql), I'm confusing with how can I get the proper result of different result.
> There are 2 kinds of result:
>  # select * from root.xx;
> {code:java}
> String sql="select count(*) from root.ln.wf01.wt01;";
> SessionDataSet records = session.executeQueryStatement(sql);
> SessionDataSet.DataIterator recordsIter = records.iterator();
> int count = 0;
> while (recordsIter.next()) {
>     // I must know data type previously and I'm confusing of the index, it's only for int values or for all columns.
>     count = recordsIter.getInt(1);
>     System.out.println(count);
> }{code}
>  # select last(*) from root.xx;
> {code:java}
> //        IoTDB> select last(*) from root.ln.wf01.wt01
> //                +-----------------------------+-----------------------------+-----+--------+
> //                |                         Time|                   Timeseries|Value|DataType|
> //                +-----------------------------+-----------------------------+-----+--------+
> //                |1970-01-01T08:00:00.001+08:00|root.ln.wf01.wt01.temperature|  2.6|   FLOAT|
> //|1970-01-01T08:00:00.001+08:00|     root.ln.wf01.wt01.status| true| BOOLEAN|
> //                +-----------------------------+-----------------------------+-----+--------+
> //                        Total line number = 2
> //        It costs 0.016s
> //        IoTDB> select * from root.ln.wf01.wt01;
> //        +-----------------------------+-----------------------------+------------------------+
> //                |                         Time|root.ln.wf01.wt01.temperature|root.ln.wf01.wt01.status|
> //                +-----------------------------+-----------------------------+------------------------+
> //                |1970-01-01T08:00:00.001+08:00|                          2.6|                    true|
> //                +-----------------------------+-----------------------------+------------------------+
>         String sql = "select last(*) from root.ln.wf01.wt01";
>         SessionDataSet dataSet = session.executeQueryStatement(sql);
>         while (dataSet.hasNext()) {
>             RowRecord records = dataSet.next();
>             out.println(records.getFields().get(0).getStringValue());
>             // string value is available, but if I'd like to get specified data type like FLOAT, I must add switch statement.It's a bad experience.             out.println(records.getFields().get(1).getStringValue());
>             // useless, return the default initialized value
>             out.println(records.getFields().get(1).getObjectValue(TSDataType.BOOLEAN));
> //            out.println(records.getFields().get(1).toString());
>         } {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)