@@ -77,6 +77,11 @@ public class MockIcebergMetadata implements ConnectorMetadata {
77
77
public static final String MOCKED_PARTITIONED_DAY_TABLE_NAME = "t0_day" ;
78
78
public static final String MOCKED_PARTITIONED_HOUR_TABLE_NAME = "t0_hour" ;
79
79
public static final String MOCKED_PARTITIONED_BUCKET_TABLE_NAME = "t0_bucket" ;
80
+ // partition table with transforms and partition column type is timestamp with timezone
81
+ public static final String MOCKED_PARTITIONED_YEAR_TZ_TABLE_NAME = "t0_year_tz" ;
82
+ public static final String MOCKED_PARTITIONED_MONTH_TZ_TABLE_NAME = "t0_month_tz" ;
83
+ public static final String MOCKED_PARTITIONED_DAY_TZ_TABLE_NAME = "t0_day_tz" ;
84
+ public static final String MOCKED_PARTITIONED_HOUR_TZ_TABLE_NAME = "t0_hour_tz" ;
80
85
81
86
private static final List <String > PARTITION_TABLE_NAMES = ImmutableList .of (MOCKED_PARTITIONED_TABLE_NAME1 ,
82
87
MOCKED_STRING_PARTITIONED_TABLE_NAME1 , MOCKED_STRING_PARTITIONED_TABLE_NAME2 ,
@@ -85,7 +90,9 @@ public class MockIcebergMetadata implements ConnectorMetadata {
85
90
private static final List <String > PARTITION_TRANSFORM_TABLE_NAMES =
86
91
ImmutableList .of (MOCKED_PARTITIONED_YEAR_TABLE_NAME , MOCKED_PARTITIONED_MONTH_TABLE_NAME ,
87
92
MOCKED_PARTITIONED_DAY_TABLE_NAME , MOCKED_PARTITIONED_HOUR_TABLE_NAME ,
88
- MOCKED_PARTITIONED_BUCKET_TABLE_NAME );
93
+ MOCKED_PARTITIONED_BUCKET_TABLE_NAME ,
94
+ MOCKED_PARTITIONED_YEAR_TZ_TABLE_NAME , MOCKED_PARTITIONED_MONTH_TZ_TABLE_NAME ,
95
+ MOCKED_PARTITIONED_DAY_TZ_TABLE_NAME , MOCKED_PARTITIONED_HOUR_TZ_TABLE_NAME );
89
96
90
97
private static final List <String > PARTITION_NAMES_0 = Lists .newArrayList ("date=2020-01-01" ,
91
98
"date=2020-01-02" ,
@@ -218,9 +225,15 @@ private static Schema getIcebergPartitionSchema(String tblName) {
218
225
}
219
226
220
227
private static Schema getIcebergPartitionTransformSchema (String tblName ) {
221
- return new Schema (required (3 , "id" , Types .IntegerType .get ()),
222
- required (4 , "data" , Types .StringType .get ()),
223
- required (5 , "ts" , Types .TimestampType .withoutZone ()));
228
+ if (tblName .endsWith ("tz" )) {
229
+ return new Schema (required (3 , "id" , Types .IntegerType .get ()),
230
+ required (4 , "data" , Types .StringType .get ()),
231
+ required (5 , "ts" , Types .TimestampType .withZone ()));
232
+ } else {
233
+ return new Schema (required (3 , "id" , Types .IntegerType .get ()),
234
+ required (4 , "data" , Types .StringType .get ()),
235
+ required (5 , "ts" , Types .TimestampType .withoutZone ()));
236
+ }
224
237
}
225
238
226
239
private static TestTables .TestTable getPartitionIdentityTable (String tblName , Schema schema ) throws IOException {
@@ -284,22 +297,58 @@ private static TestTables.TestTable getPartitionTransformTable(String tblName, S
284
297
+ MOCKED_PARTITIONED_BUCKET_TABLE_NAME ), MOCKED_PARTITIONED_BUCKET_TABLE_NAME ,
285
298
schema , spec , 1 );
286
299
}
300
+ case MOCKED_PARTITIONED_YEAR_TZ_TABLE_NAME : {
301
+ PartitionSpec spec =
302
+ PartitionSpec .builderFor (schema ).year ("ts" ).build ();
303
+ return TestTables .create (
304
+ new File (getStarRocksHome () + "/" + MOCKED_PARTITIONED_TRANSFORMS_DB_NAME + "/"
305
+ + MOCKED_PARTITIONED_YEAR_TZ_TABLE_NAME ), MOCKED_PARTITIONED_YEAR_TZ_TABLE_NAME ,
306
+ schema , spec , 1 );
307
+ }
308
+ case MOCKED_PARTITIONED_MONTH_TZ_TABLE_NAME : {
309
+ PartitionSpec spec =
310
+ PartitionSpec .builderFor (schema ).month ("ts" ).build ();
311
+ return TestTables .create (
312
+ new File (getStarRocksHome () + "/" + MOCKED_PARTITIONED_TRANSFORMS_DB_NAME + "/"
313
+ + MOCKED_PARTITIONED_MONTH_TZ_TABLE_NAME ), MOCKED_PARTITIONED_MONTH_TZ_TABLE_NAME ,
314
+ schema , spec , 1 );
315
+ }
316
+ case MOCKED_PARTITIONED_DAY_TZ_TABLE_NAME : {
317
+ PartitionSpec spec =
318
+ PartitionSpec .builderFor (schema ).day ("ts" ).build ();
319
+ return TestTables .create (
320
+ new File (getStarRocksHome () + "/" + MOCKED_PARTITIONED_TRANSFORMS_DB_NAME + "/"
321
+ + MOCKED_PARTITIONED_DAY_TZ_TABLE_NAME ), MOCKED_PARTITIONED_DAY_TZ_TABLE_NAME ,
322
+ schema , spec , 1 );
323
+ }
324
+ case MOCKED_PARTITIONED_HOUR_TZ_TABLE_NAME : {
325
+ PartitionSpec spec =
326
+ PartitionSpec .builderFor (schema ).hour ("ts" ).build ();
327
+ return TestTables .create (
328
+ new File (getStarRocksHome () + "/" + MOCKED_PARTITIONED_TRANSFORMS_DB_NAME + "/"
329
+ + MOCKED_PARTITIONED_HOUR_TZ_TABLE_NAME ), MOCKED_PARTITIONED_HOUR_TZ_TABLE_NAME ,
330
+ schema , spec , 1 );
331
+ }
287
332
}
288
333
return null ;
289
334
}
290
335
291
336
public static List <String > getTransformTablePartitionNames (String tblName ) {
292
337
switch (tblName ) {
293
338
case MOCKED_PARTITIONED_YEAR_TABLE_NAME :
339
+ case MOCKED_PARTITIONED_YEAR_TZ_TABLE_NAME :
294
340
return Lists .newArrayList ("ts_year=2019" , "ts_year=2020" ,
295
341
"ts_year=2021" , "ts_year=2022" , "ts_year=2023" );
296
342
case MOCKED_PARTITIONED_MONTH_TABLE_NAME :
343
+ case MOCKED_PARTITIONED_MONTH_TZ_TABLE_NAME :
297
344
return Lists .newArrayList ("ts_month=2022-01" , "ts_month=2022-02" ,
298
345
"ts_month=2022-03" , "ts_month=2022-04" , "ts_month=2022-05" );
299
346
case MOCKED_PARTITIONED_DAY_TABLE_NAME :
347
+ case MOCKED_PARTITIONED_DAY_TZ_TABLE_NAME :
300
348
return Lists .newArrayList ("ts_day=2022-01-01" , "ts_day=2022-01-02" ,
301
349
"ts_day=2022-01-03" , "ts_day=2022-01-04" , "ts_day=2022-01-05" );
302
350
case MOCKED_PARTITIONED_HOUR_TABLE_NAME :
351
+ case MOCKED_PARTITIONED_HOUR_TZ_TABLE_NAME :
303
352
return Lists .newArrayList ("ts_hour=2022-01-01-00" , "ts_hour=2022-01-01-01" ,
304
353
"ts_hour=2022-01-01-02" , "ts_hour=2022-01-01-03" , "ts_hour=2022-01-01-04" );
305
354
case MOCKED_PARTITIONED_BUCKET_TABLE_NAME :
0 commit comments