2727import org .apache .iotdb .rpc .StatementExecutionException ;
2828import org .apache .iotdb .session .TableSessionBuilder ;
2929
30+ import org .apache .tsfile .enums .ColumnCategory ;
3031import org .apache .tsfile .enums .TSDataType ;
3132import org .apache .tsfile .file .metadata .enums .CompressionType ;
3233import org .apache .tsfile .file .metadata .enums .TSEncoding ;
4344
4445import java .time .LocalDate ;
4546import java .util .ArrayList ;
47+ import java .util .Arrays ;
4648import java .util .List ;
4749import java .util .stream .Collectors ;
4850
4951public class IoTDBSessionCompressedIT {
5052
51- private static ITableSession session1 ;
52- private static ITableSession session2 ;
53- private static ITableSession session3 ;
54- private static ITableSession session4 ;
55- private static ITableSession session5 ;
53+ private static List <ITableSession > sessions ;
5654
5755 @ BeforeClass
5856 public static void setUpClass () throws IoTDBConnectionException {
@@ -62,8 +60,7 @@ public static void setUpClass() throws IoTDBConnectionException {
6260 EnvFactory .getEnv ().getDataNodeWrapperList ().stream ()
6361 .map (DataNodeWrapper ::getIpAndPortString )
6462 .collect (Collectors .toList ());
65- // List<String> nodeUrls = Collections.singletonList("127.0.0.1:6667");
66- session1 =
63+ ITableSession session1 =
6764 new TableSessionBuilder ()
6865 .nodeUrls (nodeUrls )
6966 .username (CommonDescriptor .getInstance ().getConfig ().getAdminName ())
@@ -83,7 +80,7 @@ public static void setUpClass() throws IoTDBConnectionException {
8380 .withDateEncoding (TSEncoding .PLAIN )
8481 .withTimeStampEncoding (TSEncoding .PLAIN )
8582 .build ();
86- session2 =
83+ ITableSession session2 =
8784 new TableSessionBuilder ()
8885 .nodeUrls (nodeUrls )
8986 .username (CommonDescriptor .getInstance ().getConfig ().getAdminName ())
@@ -103,7 +100,7 @@ public static void setUpClass() throws IoTDBConnectionException {
103100 .withDateEncoding (TSEncoding .PLAIN )
104101 .withTimeStampEncoding (TSEncoding .SPRINTZ )
105102 .build ();
106- session3 =
103+ ITableSession session3 =
107104 new TableSessionBuilder ()
108105 .nodeUrls (nodeUrls )
109106 .username (CommonDescriptor .getInstance ().getConfig ().getAdminName ())
@@ -123,7 +120,7 @@ public static void setUpClass() throws IoTDBConnectionException {
123120 .withDateEncoding (TSEncoding .RLE )
124121 .withTimeStampEncoding (TSEncoding .RLE )
125122 .build ();
126- session4 =
123+ ITableSession session4 =
127124 new TableSessionBuilder ()
128125 .nodeUrls (nodeUrls )
129126 .username (CommonDescriptor .getInstance ().getConfig ().getAdminName ())
@@ -143,7 +140,7 @@ public static void setUpClass() throws IoTDBConnectionException {
143140 .withDateEncoding (TSEncoding .RLE )
144141 .withTimeStampEncoding (TSEncoding .ZIGZAG )
145142 .build ();
146- session5 =
143+ ITableSession session5 =
147144 new TableSessionBuilder ()
148145 .nodeUrls (nodeUrls )
149146 .username (CommonDescriptor .getInstance ().getConfig ().getAdminName ())
@@ -153,26 +150,55 @@ public static void setUpClass() throws IoTDBConnectionException {
153150 .enableAutoFetch (false )
154151 .enableCompaction (false )
155152 .build ();
153+ sessions = Arrays .asList (session1 , session2 , session3 , session4 , session5 );
156154 }
157155
158156 @ AfterClass
159157 public static void tearDownClass () throws IoTDBConnectionException {
160- if ( session1 != null ) {
161- session1 .close ();
158+ for ( ITableSession session : sessions ) {
159+ session .close ();
162160 }
163- if (session2 != null ) {
164- session2 .close ();
161+ EnvFactory .getEnv ().cleanClusterEnvironment ();
162+ }
163+
164+ @ Test
165+ public void testAllNullColumn () throws IoTDBConnectionException , StatementExecutionException {
166+ Tablet tablet =
167+ new Tablet (
168+ "t1" ,
169+ Arrays .asList ("tag1" , "attr1" , "s1" ),
170+ Arrays .asList (TSDataType .STRING , TSDataType .STRING , TSDataType .DATE ),
171+ Arrays .asList (ColumnCategory .TAG , ColumnCategory .ATTRIBUTE , ColumnCategory .FIELD ),
172+ 100 );
173+ for (int i = 0 ; i < 10 ; i ++) {
174+ tablet .addTimestamp (i , i );
175+ tablet .addValue ("tag1" , i , "d1" );
176+ tablet .addValue ("attr1" , i , "blue" );
165177 }
166- if (session3 != null ) {
167- session3 .close ();
178+ for (ITableSession session : sessions ) {
179+ session .executeNonQueryStatement ("CREATE DATABASE IF NOT EXISTS test" );
180+ session .executeNonQueryStatement ("USE test" );
181+ session .insert (tablet );
168182 }
169- if (session4 != null ) {
170- session4 .close ();
183+ }
184+
185+ @ Test
186+ public void testAllNull () throws IoTDBConnectionException , StatementExecutionException {
187+ Tablet tablet =
188+ new Tablet (
189+ "t1" ,
190+ Arrays .asList ("tag1" , "attr1" , "s1" ),
191+ Arrays .asList (TSDataType .STRING , TSDataType .STRING , TSDataType .DATE ),
192+ Arrays .asList (ColumnCategory .TAG , ColumnCategory .ATTRIBUTE , ColumnCategory .FIELD ),
193+ 100 );
194+ for (int i = 0 ; i < 10 ; i ++) {
195+ tablet .addTimestamp (i , i );
171196 }
172- if (session5 != null ) {
173- session5 .close ();
197+ for (ITableSession session : sessions ) {
198+ session .executeNonQueryStatement ("CREATE DATABASE IF NOT EXISTS test" );
199+ session .executeNonQueryStatement ("USE test" );
200+ session .insert (tablet );
174201 }
175- EnvFactory .getEnv ().cleanClusterEnvironment ();
176202 }
177203
178204 @ Test
@@ -273,91 +299,36 @@ public void testRpcCompressed() throws IoTDBConnectionException, StatementExecut
273299 String tableName = "table_13" ;
274300 Tablet tablet = new Tablet (tableName , schemas , timestamp , values , partBitMap , 4 );
275301
276- session1 .executeNonQueryStatement ("create database IF NOT EXISTS dbTest_0" );
277- session1 .executeNonQueryStatement ("use dbTest_0" );
278- session2 .executeNonQueryStatement ("use dbTest_0" );
279- session3 .executeNonQueryStatement ("use dbTest_0" );
280- session4 .executeNonQueryStatement ("use dbTest_0" );
281- session5 .executeNonQueryStatement ("use dbTest_0" );
302+ sessions .get (0 ).executeNonQueryStatement ("create database IF NOT EXISTS dbTest_0" );
303+ for (ITableSession session : sessions ) {
304+ session .executeNonQueryStatement ("use dbTest_0" );
305+ }
282306
283307 // 1. insert
284- session1 .insert (tablet );
285- session2 .insert (tablet );
286- session3 .insert (tablet );
287- session4 .insert (tablet );
288- session5 .insert (tablet );
308+ for (ITableSession session : sessions ) {
309+ session .insert (tablet );
310+ }
289311
290312 // 2. assert
291- SessionDataSet sessionDataSet1 =
292- session1 .executeQueryStatement ("select * from dbTest_0." + tableName );
293- SessionDataSet sessionDataSet2 =
294- session2 .executeQueryStatement ("select * from dbTest_0." + tableName );
295- SessionDataSet sessionDataSet3 =
296- session3 .executeQueryStatement ("select * from dbTest_0." + tableName );
297- SessionDataSet sessionDataSet4 =
298- session4 .executeQueryStatement ("select * from dbTest_0." + tableName );
299- SessionDataSet sessionDataSet5 =
300- session5 .executeQueryStatement ("select * from dbTest_0." + tableName );
301-
302- if (sessionDataSet1 .hasNext ()) {
303- RowRecord next = sessionDataSet1 .next ();
304- Assert .assertEquals (3L , next .getFields ().get (0 ).getLongV ());
305- Assert .assertEquals (1 , next .getFields ().get (1 ).getIntV ());
306- Assert .assertEquals (1L , next .getFields ().get (2 ).getLongV ());
307- Assert .assertEquals (1.1f , next .getFields ().get (3 ).getFloatV (), 0.01 );
308- Assert .assertEquals (0.707 , next .getFields ().get (4 ).getDoubleV (), 0.01 );
309- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (5 ).getBinaryV ());
310- Assert .assertEquals (true , next .getFields ().get (6 ).getBoolV ());
311- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (7 ).getBinaryV ());
312- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (8 ).getBinaryV ());
313- }
314- if (sessionDataSet2 .hasNext ()) {
315- RowRecord next = sessionDataSet2 .next ();
316- Assert .assertEquals (3L , next .getFields ().get (0 ).getLongV ());
317- Assert .assertEquals (1 , next .getFields ().get (1 ).getIntV ());
318- Assert .assertEquals (1L , next .getFields ().get (2 ).getLongV ());
319- Assert .assertEquals (1.1f , next .getFields ().get (3 ).getFloatV (), 0.01 );
320- Assert .assertEquals (0.707 , next .getFields ().get (4 ).getDoubleV (), 0.01 );
321- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (5 ).getBinaryV ());
322- Assert .assertEquals (true , next .getFields ().get (6 ).getBoolV ());
323- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (7 ).getBinaryV ());
324- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (8 ).getBinaryV ());
325- }
326- if (sessionDataSet3 .hasNext ()) {
327- RowRecord next = sessionDataSet3 .next ();
328- Assert .assertEquals (3L , next .getFields ().get (0 ).getLongV ());
329- Assert .assertEquals (1 , next .getFields ().get (1 ).getIntV ());
330- Assert .assertEquals (1L , next .getFields ().get (2 ).getLongV ());
331- Assert .assertEquals (1.1f , next .getFields ().get (3 ).getFloatV (), 0.01 );
332- Assert .assertEquals (0.707 , next .getFields ().get (4 ).getDoubleV (), 0.01 );
333- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (5 ).getBinaryV ());
334- Assert .assertEquals (true , next .getFields ().get (6 ).getBoolV ());
335- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (7 ).getBinaryV ());
336- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (8 ).getBinaryV ());
337- }
338- if (sessionDataSet4 .hasNext ()) {
339- RowRecord next = sessionDataSet4 .next ();
340- Assert .assertEquals (3L , next .getFields ().get (0 ).getLongV ());
341- Assert .assertEquals (1 , next .getFields ().get (1 ).getIntV ());
342- Assert .assertEquals (1L , next .getFields ().get (2 ).getLongV ());
343- Assert .assertEquals (1.1f , next .getFields ().get (3 ).getFloatV (), 0.01 );
344- Assert .assertEquals (0.707 , next .getFields ().get (4 ).getDoubleV (), 0.01 );
345- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (5 ).getBinaryV ());
346- Assert .assertEquals (true , next .getFields ().get (6 ).getBoolV ());
347- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (7 ).getBinaryV ());
348- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (8 ).getBinaryV ());
349- }
350- if (sessionDataSet5 .hasNext ()) {
351- RowRecord next = sessionDataSet5 .next ();
352- Assert .assertEquals (3L , next .getFields ().get (0 ).getLongV ());
353- Assert .assertEquals (1 , next .getFields ().get (1 ).getIntV ());
354- Assert .assertEquals (1L , next .getFields ().get (2 ).getLongV ());
355- Assert .assertEquals (1.1f , next .getFields ().get (3 ).getFloatV (), 0.01 );
356- Assert .assertEquals (0.707 , next .getFields ().get (4 ).getDoubleV (), 0.01 );
357- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (5 ).getBinaryV ());
358- Assert .assertEquals (true , next .getFields ().get (6 ).getBoolV ());
359- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (7 ).getBinaryV ());
360- Assert .assertEquals (new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (8 ).getBinaryV ());
313+ for (ITableSession session : sessions ) {
314+ try (SessionDataSet sessionDataSet =
315+ session .executeQueryStatement ("select * from dbTest_0." + tableName )) {
316+ if (sessionDataSet .hasNext ()) {
317+ RowRecord next = sessionDataSet .next ();
318+ Assert .assertEquals (3L , next .getFields ().get (0 ).getLongV ());
319+ Assert .assertEquals (1 , next .getFields ().get (1 ).getIntV ());
320+ Assert .assertEquals (1L , next .getFields ().get (2 ).getLongV ());
321+ Assert .assertEquals (1.1f , next .getFields ().get (3 ).getFloatV (), 0.01 );
322+ Assert .assertEquals (0.707 , next .getFields ().get (4 ).getDoubleV (), 0.01 );
323+ Assert .assertEquals (
324+ new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (5 ).getBinaryV ());
325+ Assert .assertTrue (next .getFields ().get (6 ).getBoolV ());
326+ Assert .assertEquals (
327+ new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (7 ).getBinaryV ());
328+ Assert .assertEquals (
329+ new Binary (new byte [] {(byte ) 32 }), next .getFields ().get (8 ).getBinaryV ());
330+ }
331+ }
361332 }
362333 }
363334}
0 commit comments