This document outlines the changes that have been made to Apache AGE to make it compatible with PostgreSQL 14 (PG14). These changes are necessary due to the differences and improvements introduced in PG14. To use AGE with PG14, you need to upgrade to AGE version 1.3.0.
1. **Update Scripts Removal:**
In order to ensure compatibility with PG14, update scripts from older versions of AGE have been removed. As a result, upgrading to AGE version 1.3.0 is required to use AGE with PG14.
2. **Numeric:infinity Data Type Changes:**
Regression tests have been updated to reflect changes in the data type `numeric` with the introduction of `infinity` in PG14.
3. **Changes in function `process_utility_hook`:**
The definition of the function `process_utility_hook` has been modified. It now takes an additional boolean parameter named `readOnlyTree`. This parameter specifies whether the parse tree is read-only or not.
4. **Changes in function `standard_ProcessUtility`:**
Similarly, the definition of the function `standard_ProcessUtility` has been modified to include an additional boolean parameter `readOnlyTree`, indicating whether the parse tree is read-only or not.
5. **Handling of Read-Only Node Trees:**
When the given node tree is read-only, PostgreSQL makes a copy to ensure that the parsing and transformation processes do not alter the original tree.
6. **Changes in function `makeFuncCall`:**
The definition of the function `makeFuncCall` has been changed. It now requires an additional parameter named `CoercionForm`. This parameter informs the function about how to display the node.
7. **Changes in Parameter `estate->es_result_relation_info`:**
The parameter `estate->es_result_relation_info` has been modified and now takes the form of a double pointer to an array of `result_relations`.
8. **Changes in function `ExecInsertIndexTuples`:**
The definition of the function `ExecInsertIndexTuples` has been updated. It now takes `resultRelInfo` instead of `elemTupleSlot` as its first parameter.
9. **Changes in functions `post_parse_analyze` and `prev_post_parse_analyze_hook`:**
These functions have been modified and now require an additional parameter named `JumbleState`.
10. **Return Value of `list_delete_ptr`:**
The function `list_delete_ptr` now returns values.
11. **Changes in function `addRangeTableEntryForJoin`:**
The function `addRangeTableEntryForJoin` has been updated and now requires an additional alias for `join_using_alias`.
12. **Changes in `namestrcpy`:**
The function `namestrcpy` now takes `nameData` as input instead of `Name`.
By incorporating these changes, AGE becomes compatible with PostgreSQL 14 and leverages the new features and improvements offered by the latest version. If you plan to use AGE with PG14, ensure that you upgrade to AGE version 1.3.0 to take advantage of these enhancements and maintain compatibility with the new PostgreSQL release.