@@ -224,6 +224,9 @@ public void testLoad() throws Exception {
224224 generator .generateData (SchemaConfig .DEVICE_2 , 10000 , PARTITION_INTERVAL / 10_000 , false );
225225 generator .generateData (SchemaConfig .DEVICE_3 , 10000 , PARTITION_INTERVAL / 10_000 , false );
226226 generator .generateData (SchemaConfig .DEVICE_4 , 10000 , PARTITION_INTERVAL / 10_000 , true );
227+ for (int i = 0 ; i < 10000 ; i ++) {
228+ generator .generateData (SchemaConfig .DEVICE_4 , 1 , PARTITION_INTERVAL - 10 , true );
229+ }
227230 writtenPoint2 = generator .getTotalNumber ();
228231 }
229232
@@ -255,6 +258,86 @@ public void testLoad() throws Exception {
255258 }
256259 }
257260
261+ @ Test
262+ public void testLoadAcrossMultipleTimePartitions () throws Exception {
263+ registerSchema ();
264+
265+ final long writtenPoint1 ;
266+ // device 0, device 1, sg 0
267+ try (final TsFileGenerator generator =
268+ new TsFileGenerator (new File (tmpDir , "1-0-0-0.tsfile" ))) {
269+ generator .registerTimeseries (
270+ SchemaConfig .DEVICE_0 ,
271+ Arrays .asList (
272+ SchemaConfig .MEASUREMENT_00 ,
273+ SchemaConfig .MEASUREMENT_01 ,
274+ SchemaConfig .MEASUREMENT_02 ,
275+ SchemaConfig .MEASUREMENT_03 ,
276+ SchemaConfig .MEASUREMENT_04 ,
277+ SchemaConfig .MEASUREMENT_05 ,
278+ SchemaConfig .MEASUREMENT_06 ,
279+ SchemaConfig .MEASUREMENT_07 ));
280+ generator .registerAlignedTimeseries (
281+ SchemaConfig .DEVICE_1 ,
282+ Arrays .asList (
283+ SchemaConfig .MEASUREMENT_10 ,
284+ SchemaConfig .MEASUREMENT_11 ,
285+ SchemaConfig .MEASUREMENT_12 ,
286+ SchemaConfig .MEASUREMENT_13 ,
287+ SchemaConfig .MEASUREMENT_14 ,
288+ SchemaConfig .MEASUREMENT_15 ,
289+ SchemaConfig .MEASUREMENT_16 ,
290+ SchemaConfig .MEASUREMENT_17 ));
291+ for (int i = 0 ; i < 1000 ; i ++) {
292+ generator .generateData (SchemaConfig .DEVICE_0 , 1 , PARTITION_INTERVAL - 10 , true );
293+ }
294+ for (int i = 0 ; i < 1000 ; i ++) {
295+ generator .generateData (SchemaConfig .DEVICE_1 , 1 , PARTITION_INTERVAL - 10 , true );
296+ }
297+ writtenPoint1 = generator .getTotalNumber ();
298+ }
299+
300+ final long writtenPoint2 ;
301+ // device 2, device 3, device4, sg 1
302+ try (final TsFileGenerator generator =
303+ new TsFileGenerator (new File (tmpDir , "2-0-0-0.tsfile" ))) {
304+ generator .registerTimeseries (
305+ SchemaConfig .DEVICE_2 , Collections .singletonList (SchemaConfig .MEASUREMENT_20 ));
306+ generator .registerTimeseries (
307+ SchemaConfig .DEVICE_3 , Collections .singletonList (SchemaConfig .MEASUREMENT_30 ));
308+ generator .registerAlignedTimeseries (
309+ SchemaConfig .DEVICE_4 , Collections .singletonList (SchemaConfig .MEASUREMENT_40 ));
310+ for (int i = 0 ; i < 1000 ; i ++) {
311+ generator .generateData (SchemaConfig .DEVICE_2 , 1 , PARTITION_INTERVAL - 10 , true );
312+ }
313+ for (int i = 0 ; i < 1000 ; i ++) {
314+ generator .generateData (SchemaConfig .DEVICE_3 , 1 , PARTITION_INTERVAL - 10 , true );
315+ }
316+ for (int i = 0 ; i < 1000 ; i ++) {
317+ generator .generateData (SchemaConfig .DEVICE_4 , 1 , PARTITION_INTERVAL - 10 , true );
318+ }
319+ writtenPoint2 = generator .getTotalNumber ();
320+ }
321+
322+ try (final Connection connection = EnvFactory .getEnv ().getConnection ();
323+ final Statement statement = connection .createStatement ()) {
324+
325+ statement .execute (String .format ("load \" %s\" sglevel=2" , tmpDir .getAbsolutePath ()));
326+
327+ try (final ResultSet resultSet =
328+ statement .executeQuery ("select count(*) from root.sg.** group by level=1,2" )) {
329+ if (resultSet .next ()) {
330+ long sg1Count = resultSet .getLong ("count(root.sg.test_0.*.*)" );
331+ Assert .assertEquals (writtenPoint1 , sg1Count );
332+ long sg2Count = resultSet .getLong ("count(root.sg.test_1.*.*)" );
333+ Assert .assertEquals (writtenPoint2 , sg2Count );
334+ } else {
335+ Assert .fail ("This ResultSet is empty." );
336+ }
337+ }
338+ }
339+ }
340+
258341 @ Test
259342 public void testLoadWithExtendTemplate () throws Exception {
260343 final long writtenPoint1 ;
0 commit comments