Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Issue 1691 - MERGE incorrectly creates multiple vertices (#1718) #1729

Merged
merged 1 commit into from
Apr 5, 2024

Conversation

jrgemignani
Copy link
Contributor

Fixed issue 1691 where MERGE would incorrectly create multiple vertices. This only occurred when MERGE was being driven by a previous clause.

NOTE: To be more correct, the issue is with creating duplicate
paths.

The reason this happened was due to the visibility of tuples that were created during the MERGE instance. It is not possible to add them in to be rescanned.

Because of this limitation, it required adding the ability to MERGE to know what path an instance had already created.

Added regression tests.

Modified the following files to add missing functionality in PG13 and below branches. Specifically adding the function datum_image_hash.

modified:   src/backend/executor/cypher_utils.c
modified:   src/include/executor/cypher_utils.h

Resolved Conflicts: (due to differences between PG13 & PG12)
src/backend/executor/cypher_merge.c

Modified datum_image_hash to use hash_any.

Changed datum_image_eq to datumIsEqual as the former doesn't exist in PG11.

…1718)

Fixed issue 1691 where MERGE would incorrectly create multiple
vertices. This only occurred when MERGE was being driven by a
previous clause.

NOTE: To be more correct, the issue is with creating duplicate
      paths.

The reason this happened was due to the visibility of tuples that
were created during the MERGE instance. It is not possible to add
them in to be rescanned.

Because of this limitation, it required adding the ability to
MERGE to know what path an instance had already created.

Added regression tests.

Modified the following files to add missing functionality in PG13
and below branches. Specifically adding the function datum_image_hash.

    modified:   src/backend/executor/cypher_utils.c
    modified:   src/include/executor/cypher_utils.h

Resolved Conflicts: (due to differences between PG13 & PG12)
	src/backend/executor/cypher_merge.c

Modified datum_image_hash to use hash_any.

Changed datum_image_eq to datumIsEqual as the former doesn't exist
in PG11.
Copy link
Member

@MuhammadTahaNaveed MuhammadTahaNaveed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good!

@MuhammadTahaNaveed MuhammadTahaNaveed merged commit 8b9450c into apache:PG11 Apr 5, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PG11 PostgreSQL11
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants