JackieTien97 opened a new pull request, #16967: URL: https://github.com/apache/iotdb/pull/16967
This pull request enhances the handling of the `READ_OBJECT` function in the query engine by adding support for dynamic offset and length parameters, improving test coverage, and making related codebase adjustments. The main changes include introducing new column transformers to support dynamic arguments, updating the query planner, and extending integration tests to verify the new functionality. **Enhancements to `READ_OBJECT` function support:** * Added `ReadObject2ColumnTransformer` and `ReadObject3ColumnTransformer` classes to handle `READ_OBJECT` with dynamic offset and length parameters, enabling the function to accept column-based arguments instead of just literals. [[1]](diffhunk://#diff-61f0e0fe70cce37f1d9274358521200446a61dafb3b5f7c8b448ccb10893f0b3R1-R78) [[2]](diffhunk://#diff-8d743eda9782d45ca5b46bbe97fc69b0e3a7875429139588d9bd7a305e935732R1-R99) * Updated `ColumnTransformerBuilder` to utilize the new transformers when `READ_OBJECT` is called with column arguments, and refactored the logic to distinguish between literal and column inputs for offset and length. [[1]](diffhunk://#diff-3b0b89be6f0edd72821d73b79d483f69cff0bcd87b29b4d645fc733c0f9ad4e8R88) [[2]](diffhunk://#diff-3b0b89be6f0edd72821d73b79d483f69cff0bcd87b29b4d645fc733c0f9ad4e8R109) [[3]](diffhunk://#diff-3b0b89be6f0edd72821d73b79d483f69cff0bcd87b29b4d645fc733c0f9ad4e8R1472-R1497) **Query planner and type handling improvements:** * Modified the operator tree generator to support linear fill for columns of type `OBJECT`, ensuring consistent behavior with other supported types. **Test and codebase updates:** * Expanded integration tests in `IoTDBObjectQueryIT.java` to cover various usages of `READ_OBJECT` with dynamic parameters and linear fill, verifying correct results for the new scenarios. [[1]](diffhunk://#diff-bd61f394b4a6948411de6d47468782dcaf5d703bd823de99592ee0ab83dd968cL65-R73) [[2]](diffhunk://#diff-bd61f394b4a6948411de6d47468782dcaf5d703bd823de99592ee0ab83dd968cR137-R213) * Renamed the test class `IoTDBObjectQueryIT2.java` to `IoTDBObjectQuery2IT.java` for consistency with naming conventions. **Refactoring and API improvements:** * Refactored the `ReadObjectColumnTransformer` to expose its `transform` and `readObject` methods as static, enabling reuse by the new transformer classes and supporting the extended API. [[1]](diffhunk://#diff-7656e0490139c4332e111ee0c7952c7b3dd647236fe45024d2fd5098b5af08caL76-R76) [[2]](diffhunk://#diff-7656e0490139c4332e111ee0c7952c7b3dd647236fe45024d2fd5098b5af08caL87-R114) -- 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]
