muhammadshoaib opened a new pull request, #1237: URL: https://github.com/apache/age/pull/1237
Fixed empty string handling Previously, the PG 16 outToken emitted `NULL` for an empty string, but now it emits an empty string `""`. Consequently, our cypher read function required modification to properly decode the empty string as a plain token, thereby addressing the comparison issue. Compared the branches and added the necessary changes so that the query's `rteperminfos` variable doesn't stay `NULL`. Fix missing include varatt.h (causing undefined symbol `VARDATA_ANY)` & Fixing some test cases of the failings Added missing include `varatt.h` to fix the undefined symbol while loading age into postgresql because usage of `VARDATA_ANY` needs to import `varatt.h` in PG16 Modified initialisation of `ResultRelInfo` and removed unnecessary `RTEs` Compared the branches and added the necessary changes so that the query's `rteperminfos` variable doesn't stay `NULL`. Modified initialisation of `ResultRelInfo` and removed unnecessary `RTEs` One of the problems that we were facing was related to the `ResultRelInfo` pointing at the wrong `RTE` via its `ri_RangeTableIndex`. The `create_entity_result_rel_info()` function does not have the capability of setting the `ri_RootResultRelInfo` to the correct `ResultRelInfo` node because it does not have access to the `ModifyTableState` node. The solution for this was to set the third argument in `InitResultRelInfo()` to be zero instead of `list_length(estate->es_range_table)`. In the `update_entity_tuple()` function, when we call `table_tuple_update()` and assign the returned value to the result variable, the buffer variable receives the value of 0. Made a workaround so that the original value isn't lost. This is a work in progress for the new field that was added to the struct Var called `varnullingrels`. According to the documentation, this field is responsible for marking the Vars as nullable, if they are coming from a `JOIN`, either `LEFT JOIN`, `RIGHT JOIN`, or `FULL OUTER JOIN`. The changes were made following an "optional match" clause which is being treated as a `LEFT JOIN` from our extension. A function `markRelsAsNulledBy` is added because its internal in Postgres and doesn't belong in a header file, therefore it can't be exported. This function is added before the creation of the Vars from the `make_vertex_expr` and `make_edge_expr`, to correctly mark the specific `PNSI` as `nullable`, so later in the planner stage, the Vars will be correctly nulled. Fix incorrect typecasting in `agtype_to_graphid` function. Fix incorrect returns to the fuction `_label_name`, `_ag_build_vertex` and `_ag_build_edge`. -- 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]
