@@ -180,166 +180,169 @@ public void testGetNumericPrecision() {
180
180
}
181
181
182
182
@ Test
183
- public void testMergeDataType () {
184
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .BINARY (17 ), DataTypes .BINARY (17 )))
183
+ public void testInferWiderType () {
184
+ Assertions .assertThat (
185
+ SchemaUtils .inferWiderType (DataTypes .BINARY (17 ), DataTypes .BINARY (17 )))
185
186
.isEqualTo (DataTypes .BINARY (17 ));
186
187
Assertions .assertThat (
187
- SchemaUtils .mergeDataType (DataTypes .VARBINARY (17 ), DataTypes .VARBINARY (17 )))
188
+ SchemaUtils .inferWiderType (
189
+ DataTypes .VARBINARY (17 ), DataTypes .VARBINARY (17 )))
188
190
.isEqualTo (DataTypes .VARBINARY (17 ));
189
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .BYTES (), DataTypes .BYTES ()))
191
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .BYTES (), DataTypes .BYTES ()))
190
192
.isEqualTo (DataTypes .BYTES ());
191
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .BOOLEAN (), DataTypes .BOOLEAN ()))
193
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .BOOLEAN (), DataTypes .BOOLEAN ()))
192
194
.isEqualTo (DataTypes .BOOLEAN ());
193
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .INT (), DataTypes .INT ()))
195
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .INT (), DataTypes .INT ()))
194
196
.isEqualTo (DataTypes .INT ());
195
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .TINYINT (), DataTypes .TINYINT ()))
197
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .TINYINT (), DataTypes .TINYINT ()))
196
198
.isEqualTo (DataTypes .TINYINT ());
197
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .SMALLINT (), DataTypes .SMALLINT ()))
199
+ Assertions .assertThat (
200
+ SchemaUtils .inferWiderType (DataTypes .SMALLINT (), DataTypes .SMALLINT ()))
198
201
.isEqualTo (DataTypes .SMALLINT ());
199
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .BIGINT (), DataTypes .BIGINT ()))
202
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .BIGINT (), DataTypes .BIGINT ()))
200
203
.isEqualTo (DataTypes .BIGINT ());
201
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .FLOAT (), DataTypes .FLOAT ()))
204
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .FLOAT (), DataTypes .FLOAT ()))
202
205
.isEqualTo (DataTypes .FLOAT ());
203
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .DOUBLE (), DataTypes .DOUBLE ()))
206
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .DOUBLE (), DataTypes .DOUBLE ()))
204
207
.isEqualTo (DataTypes .DOUBLE ());
205
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .CHAR (17 ), DataTypes .CHAR (17 )))
208
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .CHAR (17 ), DataTypes .CHAR (17 )))
206
209
.isEqualTo (DataTypes .CHAR (17 ));
207
210
Assertions .assertThat (
208
- SchemaUtils .mergeDataType (DataTypes .VARCHAR (17 ), DataTypes .VARCHAR (17 )))
211
+ SchemaUtils .inferWiderType (DataTypes .VARCHAR (17 ), DataTypes .VARCHAR (17 )))
209
212
.isEqualTo (DataTypes .VARCHAR (17 ));
210
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .STRING (), DataTypes .STRING ()))
213
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .STRING (), DataTypes .STRING ()))
211
214
.isEqualTo (DataTypes .STRING ());
212
215
Assertions .assertThat (
213
- SchemaUtils .mergeDataType (
216
+ SchemaUtils .inferWiderType (
214
217
DataTypes .DECIMAL (17 , 7 ), DataTypes .DECIMAL (17 , 7 )))
215
218
.isEqualTo (DataTypes .DECIMAL (17 , 7 ));
216
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .DATE (), DataTypes .DATE ()))
219
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .DATE (), DataTypes .DATE ()))
217
220
.isEqualTo (DataTypes .DATE ());
218
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .TIME (), DataTypes .TIME ()))
221
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .TIME (), DataTypes .TIME ()))
219
222
.isEqualTo (DataTypes .TIME ());
220
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .TIME (6 ), DataTypes .TIME (6 )))
223
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .TIME (6 ), DataTypes .TIME (6 )))
221
224
.isEqualTo (DataTypes .TIME (6 ));
222
225
Assertions .assertThat (
223
- SchemaUtils .mergeDataType (DataTypes .TIMESTAMP (), DataTypes .TIMESTAMP ()))
226
+ SchemaUtils .inferWiderType (DataTypes .TIMESTAMP (), DataTypes .TIMESTAMP ()))
224
227
.isEqualTo (DataTypes .TIMESTAMP ());
225
228
Assertions .assertThat (
226
- SchemaUtils .mergeDataType (DataTypes .TIMESTAMP (3 ), DataTypes .TIMESTAMP (3 )))
229
+ SchemaUtils .inferWiderType (DataTypes .TIMESTAMP (3 ), DataTypes .TIMESTAMP (3 )))
227
230
.isEqualTo (DataTypes .TIMESTAMP (3 ));
228
231
Assertions .assertThat (
229
- SchemaUtils .mergeDataType (
232
+ SchemaUtils .inferWiderType (
230
233
DataTypes .TIMESTAMP_TZ (), DataTypes .TIMESTAMP_TZ ()))
231
234
.isEqualTo (DataTypes .TIMESTAMP_TZ ());
232
235
Assertions .assertThat (
233
- SchemaUtils .mergeDataType (
236
+ SchemaUtils .inferWiderType (
234
237
DataTypes .TIMESTAMP_TZ (3 ), DataTypes .TIMESTAMP_TZ (3 )))
235
238
.isEqualTo (DataTypes .TIMESTAMP_TZ (3 ));
236
239
Assertions .assertThat (
237
- SchemaUtils .mergeDataType (
240
+ SchemaUtils .inferWiderType (
238
241
DataTypes .TIMESTAMP_LTZ (), DataTypes .TIMESTAMP_LTZ ()))
239
242
.isEqualTo (DataTypes .TIMESTAMP_LTZ ());
240
243
Assertions .assertThat (
241
- SchemaUtils .mergeDataType (
244
+ SchemaUtils .inferWiderType (
242
245
DataTypes .TIMESTAMP_LTZ (3 ), DataTypes .TIMESTAMP_LTZ (3 )))
243
246
.isEqualTo (DataTypes .TIMESTAMP_LTZ (3 ));
244
247
Assertions .assertThat (
245
- SchemaUtils .mergeDataType (
248
+ SchemaUtils .inferWiderType (
246
249
DataTypes .ARRAY (DataTypes .INT ()), DataTypes .ARRAY (DataTypes .INT ())))
247
250
.isEqualTo (DataTypes .ARRAY (DataTypes .INT ()));
248
251
Assertions .assertThat (
249
- SchemaUtils .mergeDataType (
252
+ SchemaUtils .inferWiderType (
250
253
DataTypes .MAP (DataTypes .INT (), DataTypes .STRING ()),
251
254
DataTypes .MAP (DataTypes .INT (), DataTypes .STRING ())))
252
255
.isEqualTo (DataTypes .MAP (DataTypes .INT (), DataTypes .STRING ()));
253
256
254
257
// Test compatible widening cast
255
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .INT (), DataTypes .BIGINT ()))
258
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .INT (), DataTypes .BIGINT ()))
256
259
.isEqualTo (DataTypes .BIGINT ());
257
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .VARCHAR (17 ), DataTypes .STRING ()))
260
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .VARCHAR (17 ), DataTypes .STRING ()))
258
261
.isEqualTo (DataTypes .STRING ());
259
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .FLOAT (), DataTypes .DOUBLE ()))
262
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .FLOAT (), DataTypes .DOUBLE ()))
260
263
.isEqualTo (DataTypes .DOUBLE ());
261
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .INT (), DataTypes .DECIMAL (4 , 0 )))
264
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .INT (), DataTypes .DECIMAL (4 , 0 )))
262
265
.isEqualTo (DataTypes .DECIMAL (10 , 0 ));
263
- Assertions .assertThat (SchemaUtils .mergeDataType (DataTypes .INT (), DataTypes .DECIMAL (10 , 5 )))
266
+ Assertions .assertThat (SchemaUtils .inferWiderType (DataTypes .INT (), DataTypes .DECIMAL (10 , 5 )))
264
267
.isEqualTo (DataTypes .DECIMAL (15 , 5 ));
265
268
Assertions .assertThat (
266
- SchemaUtils .mergeDataType (DataTypes .BIGINT (), DataTypes .DECIMAL (10 , 5 )))
269
+ SchemaUtils .inferWiderType (DataTypes .BIGINT (), DataTypes .DECIMAL (10 , 5 )))
267
270
.isEqualTo (DataTypes .DECIMAL (24 , 5 ));
268
271
Assertions .assertThat (
269
- SchemaUtils .mergeDataType (
272
+ SchemaUtils .inferWiderType (
270
273
DataTypes .DECIMAL (5 , 4 ), DataTypes .DECIMAL (10 , 2 )))
271
274
.isEqualTo (DataTypes .DECIMAL (12 , 4 ));
272
275
273
276
// Test merging with nullability
274
277
Assertions .assertThat (
275
- SchemaUtils .mergeDataType (
278
+ SchemaUtils .inferWiderType (
276
279
DataTypes .INT ().notNull (), DataTypes .INT ().notNull ()))
277
280
.isEqualTo (DataTypes .INT ().notNull ());
278
281
Assertions .assertThat (
279
- SchemaUtils .mergeDataType (
282
+ SchemaUtils .inferWiderType (
280
283
DataTypes .INT ().nullable (), DataTypes .INT ().notNull ()))
281
284
.isEqualTo (DataTypes .INT ().nullable ());
282
285
Assertions .assertThat (
283
- SchemaUtils .mergeDataType (
286
+ SchemaUtils .inferWiderType (
284
287
DataTypes .INT ().notNull (), DataTypes .INT ().nullable ()))
285
288
.isEqualTo (DataTypes .INT ().nullable ());
286
289
Assertions .assertThat (
287
- SchemaUtils .mergeDataType (
290
+ SchemaUtils .inferWiderType (
288
291
DataTypes .INT ().nullable (), DataTypes .INT ().nullable ()))
289
292
.isEqualTo (DataTypes .INT ().nullable ());
290
293
291
294
// incompatible type merges test
292
295
Assertions .assertThatThrownBy (
293
- () -> SchemaUtils .mergeDataType (DataTypes .INT (), DataTypes .DOUBLE ()))
296
+ () -> SchemaUtils .inferWiderType (DataTypes .INT (), DataTypes .DOUBLE ()))
294
297
.isExactlyInstanceOf (IllegalStateException .class );
295
298
296
299
Assertions .assertThatThrownBy (
297
300
() ->
298
- SchemaUtils .mergeDataType (
301
+ SchemaUtils .inferWiderType (
299
302
DataTypes .DECIMAL (17 , 0 ), DataTypes .DOUBLE ()))
300
303
.isExactlyInstanceOf (IllegalStateException .class );
301
304
Assertions .assertThatThrownBy (
302
- () -> SchemaUtils .mergeDataType (DataTypes .INT (), DataTypes .STRING ()))
305
+ () -> SchemaUtils .inferWiderType (DataTypes .INT (), DataTypes .STRING ()))
303
306
.isExactlyInstanceOf (IllegalStateException .class );
304
307
}
305
308
306
309
@ Test
307
- public void testMergeColumn () {
310
+ public void testInferWiderColumn () {
308
311
// Test normal merges
309
312
Assertions .assertThat (
310
- SchemaUtils .mergeColumn (
313
+ SchemaUtils .inferWiderColumn (
311
314
Column .physicalColumn ("Column1" , DataTypes .INT ()),
312
315
Column .physicalColumn ("Column1" , DataTypes .BIGINT ())))
313
316
.isEqualTo (Column .physicalColumn ("Column1" , DataTypes .BIGINT ()));
314
317
315
318
Assertions .assertThat (
316
- SchemaUtils .mergeColumn (
319
+ SchemaUtils .inferWiderColumn (
317
320
Column .physicalColumn ("Column2" , DataTypes .FLOAT ()),
318
321
Column .physicalColumn ("Column2" , DataTypes .DOUBLE ())))
319
322
.isEqualTo (Column .physicalColumn ("Column2" , DataTypes .DOUBLE ()));
320
323
321
324
// Test merging columns with incompatible types
322
325
Assertions .assertThatThrownBy (
323
326
() ->
324
- SchemaUtils .mergeColumn (
327
+ SchemaUtils .inferWiderColumn (
325
328
Column .physicalColumn ("Column3" , DataTypes .INT ()),
326
329
Column .physicalColumn ("Column3" , DataTypes .STRING ())))
327
330
.isExactlyInstanceOf (IllegalStateException .class );
328
331
329
332
// Test merging with incompatible names
330
333
Assertions .assertThatThrownBy (
331
334
() ->
332
- SchemaUtils .mergeColumn (
335
+ SchemaUtils .inferWiderColumn (
333
336
Column .physicalColumn ("Column4" , DataTypes .INT ()),
334
337
Column .physicalColumn ("AnotherColumn4" , DataTypes .INT ())))
335
338
.isExactlyInstanceOf (IllegalStateException .class );
336
339
}
337
340
338
341
@ Test
339
- public void testMergeSchema () {
342
+ public void testInferWiderSchema () {
340
343
// Test normal merges
341
344
Assertions .assertThat (
342
- SchemaUtils .mergeSchema (
345
+ SchemaUtils .inferWiderSchema (
343
346
Schema .newBuilder ()
344
347
.physicalColumn ("Column1" , DataTypes .INT ())
345
348
.physicalColumn ("Column2" , DataTypes .DOUBLE ())
@@ -363,7 +366,7 @@ public void testMergeSchema() {
363
366
// Test merging with incompatible types
364
367
Assertions .assertThatThrownBy (
365
368
() ->
366
- SchemaUtils .mergeSchema (
369
+ SchemaUtils .inferWiderSchema (
367
370
Schema .newBuilder ()
368
371
.physicalColumn ("Column1" , DataTypes .INT ())
369
372
.physicalColumn ("Column2" , DataTypes .DOUBLE ())
@@ -381,7 +384,7 @@ public void testMergeSchema() {
381
384
// Test merging with incompatible column names
382
385
Assertions .assertThatThrownBy (
383
386
() ->
384
- SchemaUtils .mergeSchema (
387
+ SchemaUtils .inferWiderSchema (
385
388
Schema .newBuilder ()
386
389
.physicalColumn ("Column1" , DataTypes .INT ())
387
390
.physicalColumn ("Column2" , DataTypes .DOUBLE ())
@@ -399,7 +402,7 @@ public void testMergeSchema() {
399
402
// Test merging with different column counts
400
403
Assertions .assertThatThrownBy (
401
404
() ->
402
- SchemaUtils .mergeSchema (
405
+ SchemaUtils .inferWiderSchema (
403
406
Schema .newBuilder ()
404
407
.physicalColumn ("Column1" , DataTypes .INT ())
405
408
.physicalColumn ("Column2" , DataTypes .DOUBLE ())
@@ -418,7 +421,7 @@ public void testMergeSchema() {
418
421
// Test merging with incompatible schema metadata
419
422
Assertions .assertThatThrownBy (
420
423
() ->
421
- SchemaUtils .mergeSchema (
424
+ SchemaUtils .inferWiderSchema (
422
425
Schema .newBuilder ()
423
426
.physicalColumn ("Column1" , DataTypes .INT ())
424
427
.physicalColumn ("Column2" , DataTypes .DOUBLE ())
0 commit comments