bvaradar opened a new pull request, #14265:
URL: https://github.com/apache/hudi/pull/14265
### Describe the issue this Pull Request addresses
[HUDI-14263] New Hudi Schema Class - Initial implementation. Also, Add new
APIs based on current usage of Avro schema
### Summary and Changelog
#### **Implementation Details**
**Core Classes Implemented**
##### HoodieSchema (org.apache.hudi.schema.HoodieSchema)
- Primary wrapper for org.apache.avro.Schema
- Delegates all operations to underlying Avro Schema for compatibility
- Provides Builder pattern for complex schema construction
- Includes static factory methods for common schema types
- Supports all Avro schema types: RECORD, ARRAY, MAP, UNION, ENUM, FIXED,
and primitives
##### HoodieSchemaField (org.apache.hudi.schema.HoodieSchemaField)
- Wrapper for org.apache.avro.Schema.Field
- Provides field manipulation utilities
- Supports property management and field evolution
##### HoodieSchemaType (org.apache.hudi.schema.HoodieSchemaType)
- Enum wrapper for org.apache.avro.Schema.Type
- Provides type checking and conversion utilities
- Maintains mapping to Avro types
##### HoodieSchemaUtils (org.apache.hudi.schema.HoodieSchemaUtils)
- Utility class for table schema operations
- Delegates to existing AvroSchemaUtils for proven logic
- Provides HoodieSchema-native APIs for common operations
##### HoodieSchemaCompatibility
(org.apache.hudi.schema.HoodieSchemaCompatibility)
- Schema evolution and compatibility validation utilities
- Wraps AvroSchemaUtils compatibility checking logic
##### Supporting Classes
- HoodieFieldOrder - Wrapper for Schema.Field.Order enum
- HoodieSchemaFactory - Factory utilities for schema creation
- HoodieJsonProperties - Constants for JSON property handling
### Impact
Not integrated yet.
### Risk Level
None
### Documentation Update
<!-- Describe any necessary documentation update if there is any new
feature, config, or user-facing change. If not, put "none".
- The config description must be updated if new configs are added or the
default value of the configs are changed.
- Any new feature or user-facing change requires updating the Hudi website.
Please follow the
[instruction](https://hudi.apache.org/contribute/developer-setup#website)
to make changes to the website. -->
### Contributor's checklist
- [ ] Read through [contributor's
guide](https://hudi.apache.org/contribute/how-to-contribute)
- [ ] Enough context is provided in the sections above
- [ ] Adequate tests were added if applicable
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]