You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by si...@apache.org on 2023/12/10 18:06:35 UTC
(hudi) branch master updated: [HUDI-7201] Schema Evolution: use target schema if source is empty (#10288)
This is an automated email from the ASF dual-hosted git repository.
sivabalan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new 5fb00ef506f [HUDI-7201] Schema Evolution: use target schema if source is empty (#10288)
5fb00ef506f is described below
commit 5fb00ef506f3616c7c435973aebe1625d8374397
Author: Jon Vexler <jb...@gmail.com>
AuthorDate: Sun Dec 10 13:06:30 2023 -0500
[HUDI-7201] Schema Evolution: use target schema if source is empty (#10288)
---------
Co-authored-by: Jonathan Vexler <=>
---
.../apache/hudi/internal/schema/utils/AvroSchemaEvolutionUtils.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/hudi-common/src/main/java/org/apache/hudi/internal/schema/utils/AvroSchemaEvolutionUtils.java b/hudi-common/src/main/java/org/apache/hudi/internal/schema/utils/AvroSchemaEvolutionUtils.java
index 2fdd2f4c2db..35ca13820f2 100644
--- a/hudi-common/src/main/java/org/apache/hudi/internal/schema/utils/AvroSchemaEvolutionUtils.java
+++ b/hudi-common/src/main/java/org/apache/hudi/internal/schema/utils/AvroSchemaEvolutionUtils.java
@@ -140,10 +140,14 @@ public class AvroSchemaEvolutionUtils {
* @return schema (based off {@code source} one) that has nullability constraints and datatypes reconciled
*/
public static Schema reconcileSchemaRequirements(Schema sourceSchema, Schema targetSchema, Map<String, String> opts) {
- if (sourceSchema.getType() == Schema.Type.NULL || sourceSchema.getFields().isEmpty() || targetSchema.getFields().isEmpty()) {
+ if (targetSchema.getType() == Schema.Type.NULL || targetSchema.getFields().isEmpty()) {
return sourceSchema;
}
+ if (sourceSchema.getType() == Schema.Type.NULL || sourceSchema.getFields().isEmpty()) {
+ return targetSchema;
+ }
+
InternalSchema sourceInternalSchema = convert(sourceSchema);
InternalSchema targetInternalSchema = convert(targetSchema);